Tuesday, February 28, 2006
Geotagging Photos and Trackpoint Reduction with TopoFusion
TopoFusion is a shareware product that can be used for free without time limit, the only limitation to the free version is partial obscuring of 1/3 of the tiles of the downloads maps (Topo, Aerial Photo and Satellite) automatically from Microsoft's TerraServer and NASA's OnEarth server.
Although somewhat reduced in value due to the ability to do similar things in Google maps, the software does offer some nifty features that can be appreciated without use of the mapping portion. In either case, its reasonable price of $40 makes it a good buy for anyone serious about GPS mapping and Geotagging photos.
Although somewhat reduced in value due to the ability to do similar things in Google maps, the software does offer some nifty features that can be appreciated without use of the mapping portion. In either case, its reasonable price of $40 makes it a good buy for anyone serious about GPS mapping and Geotagging photos.
- PhotoFusion: Geo-reference digital photos using EXIF timestamps. This include the ability to set the size of the thumbnails, and include an offset for the tiemstamp from GMT. It places photos along GPS tracks and produces HTML pages with clickable image maps. The camera icons are a bit hard to make out in topo view, but the page can be toggled into aerial view where it is much more visible.
- Multi-track playback: This feature allows various options for visualizing a single trip or multiple riders/travelers each using theri own GPS. The playback can be captured on screen with an appropriate screen capture program, such as xxx and made into a movie.
- Networks: A network of trails consists of individual trail segments that link between bike-route/trail intersections. The network reduces each bike-route/trail covered by any track to be represented only once.
- A single file (the trail network) is produced that contains one trail segment for each trail segment covered by the combination of all tracks.
- Multiple tracks are averaged together, typically producing a more accurate representation of the route/trail
- Trail intersections are marked and can be used as accurate waypoints.
- Routes that were not represented by the any of the original data can be created, mapped and measured.
- Trail segments can be combined together to create a new route--possibly one you've never taken before.
- Splining/Simplifying GPS data: Splining, increses the number of points and is primarily good for off road trails. It interpolates data points is an attempt to recreate the actual curve traveled. where Simplifying reduces the number of pointes and is primarily suited for road routes where a street can be reduced by the number of tracks without losing any accuracy.
Sunday, February 26, 2006
More Freeware Utilities
Another batch of freeware utilities that I have come across:
Graphics tools
Graphics tools
- ExifTool - ExifTool is a Perl module with an included command-line application for reading and writing meta information in image, audio and video files. It recognizes EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, AFCP and ID3 meta information as well as the maker notes of many digital cameras. This requires installation of Perl and a bit more work to use the command line interface, but hold much more promise for working with geotagging.
- IExif is a freeware tool used to get you to upgrade to their Operanda's Power Exif. I was underwhelmed with the pro version. The freeware version does have tabs for exif, gps, and iptc. it supports drag and drop of a single file and supports export as text or XML, but no command line options to extract to file.
- Photo Studio is a multi purpose tool for dealing with photographic images geared for getting images from digital camera to the web, including downloading from camera/memory card, rotating/resizing/conversion, previewing, edit comments/thumbnails/EXIF fields (including GPS info) and generating HTML index pages.
- EXIF Renamer does one thing: finds the EXIF date-time of all images in a folder and appends it to the front of the file name. You can also correct the time with this program. It does not seem to support EXIF very well. Raw photo from the camera came out OK of me, but those resized in Google's Picasa and uploaded to Yahoo's Flickr did not. The site also offers other utilities that might be worthwhile. What expecially attracted me is it small size (250k) and no install.
- Tweak PDF allows you to set the initial view preferences of a PDF document, e.g. hide window UI (slideshow mode); the page mode (full screen/outlines/thumbnail); properties (title/subject/author/keywords). Unfortunately, it does not support drag and drop, so you have to actually open the file through the Load... button.
- Exiv2 is another command line tool written in c++ that has source code available
- WinMerge is a visual text file differencing and merging tool for Win32 platforms. It has a handy drag and drop feature and can show what has changed by color coding and intensity (to differentiate only white space changes). Other fratures: editor, file filters in directory diff, highlights differences inside lines. It can also be used as a replacement for the built in brain dead diff tool in Visual SourceSafe.
- worldKit is a SWF (Flash Player) based mapping application for the Web. It's configured by XML, data fed by RSS, and can run as a stand-alone app or integrated in larger projects. This doesn't quite fit my typical profile, but portable apps are more and more likely to be hosted on the web, such as the web based version of Gaim
Sunday, February 19, 2006
New Freeware Utilities
I have added some new freeware utilites to my collection. The requirements for inclusion are that they are standalone, preferably portable-freeware.
File mangement tools
File mangement tools
- Xplorer2 lite - this can serve as a replacement for windows explorer. It has two panes that can be used for file sychronization comparisons (F9) This is the major feature for me. It can do byte for byte comparisons, useful for DVD-R backups that fail to see what the culprit files are. You'll have to get used to ingoring most of the buttons which are only available in the paid version.
- SyncBack is s used to back-up, restore, and synchronise files and directories, whether they be on a local drive, a network drive, an FTP server, a ZIP archive, or on removable media. You can carry out a 'Simulated Run' that will produce a report of what will be done. This takes more effort to set up that Xplorer2 lite. However for repeated operations, it is quite useful. This is another product that is a lite version of a commercial product.
- CCleaner - a PC optimization tool that removes unused and temporary files from your system. Deals with both IE and Firefox. Useful uninstaller to avoid the long startup for Add/Remove Control Panel feature. Shows statup apps. Has an analyze (this can take quite a while) and issues mode (registry setting inconcistencies) to see what it will do before cleaning things up. Although this does not qualify as a portable tool, it is still very nifty
- Empty Temp Folders not nearly as robust as the one above, but is partable. Cleans temp folders, recycle bin, clipboard, etc. that. Has additional EmpRunner program that can run periodically.
- 7-Zip - not as good a WinZip, but hey, its freeware and is a decent replacement with a friendly GUI that support 7z, ZIP, GZIP, BZIP2 and TAR. It can also uncompress RAR, CAB, ARJ, LZH, CHM, Z, CPIO, RPM and DEB
- IZArc is another archiver that is not as good as WinZip, but I like it better than 7-Zip. It supports a whole lot more formats, and as long as I have to used something other than WinZip, this has the extra functionality to makeit worthwhile. It has an explorer build into to select files and used with explorer, can do some simple drap and drop.
- Eraser is a file-shredder program. This is not the most intuitive user interface, but it has an explorer built into it that can be used to drag and drop to the other Outlook style section (only one can be visible at a time). You may be better off using exploere to do the drag and drop. Nevertheless, it is a security tool that can be useful to completely remove (sensitive) data from the hard drive by overwriting it several times with selected patterns.It alos has an Explorer shell extension and integrated scheduler to program overwriting of unused disk space.
- Filezilla I have been using SmartFTP for years and have finally gotten fed up enough with its progressively more restrictive licensing and nagging that I am biting the bullet to try another product. This one gets good reviews and after rejecting it 3 years ago, I think it has come far enough to give it another go.
Saturday, February 18, 2006
Prototype's parseQuery() extension to String Object
The Prototype Javascript Library 1.4.0 introduces a useful extension to String Object -- String.parseQuery() and its synonym String.toQueryParams()
- It takes a query string, i.e, the part of the url starting with the '?'.
- It can be obtained with the location.search value.
- The name/value pairs are separated with '&'
- Example url: http://www.xltd.com/util/location.htm?foo=bar&name=homer&place=springfield
Example Usage:
var queryString = location.search;
var qryStrKeys = queryString.parseQuery();
alert(qryStrKeys.foo + " " + qryStrKeys.name + " " + qryStrKeys.place);
Result: bar homer springfield
i
Thursday, February 16, 2006
GPX can now be pasted into map
Bike-routes.org Beta now supports the posting of a GPX file. The advantage to this approach is that the file is not sent to the server. It could be, but currently isn't. That is a planned option that will include:
- stripping the file to the bare essentials (latitude and ongitude) to plot
- stripping out extra trackpoints to limit the size to a predefined limit (default will likely be 200)
- option to save on server
- furnishing geocoding info for the file
Wednesday, February 15, 2006
Using ASP Server.MapPath
These yeild the physical location on the server
current directory: Server.MapPath(".")
parent directory: Server.MapPath("..")'
website root directory: Server.MapPath("/") is the same as Request.ServerVariables("APPL_PHYSICAL_PATH") except that the former does not include the trailing '/'
For that matter, none of the above MapPath expressions will return a trailing '/'
MapPath is useful when refererencing or writing out to a file, e.g.
xmldoc.save(Server.MapPath("sample.xml"))
current directory: Server.MapPath(".")
parent directory: Server.MapPath("..")'
website root directory: Server.MapPath("/") is the same as Request.ServerVariables("APPL_PHYSICAL_PATH") except that the former does not include the trailing '/'
For that matter, none of the above MapPath expressions will return a trailing '/'
MapPath is useful when refererencing or writing out to a file, e.g.
xmldoc.save(Server.MapPath("sample.xml"))
Using the HTTP Response object to avoid unnecessary character encoding/decoding when making AJAX calls
The problem of getting weird characters in the code that causes XML documents to fail to parse is common when moving the sata between different client or server machines. Using the Response Object directly without character conversion in the code eliminates the problem
This ASP page code sample demonstrates how to do it.
This ASP page code sample demonstrates how to do it.
Dim objXMLHTTP, URL, xmldoc
URL = Request("url")
Response.ContentType = "text/xml"
Response.CharSet = "UTF-8"
Set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.3.0")
Call objXMLHTTP.Open("GET", URL, False)
Call objXMLHTTP.Send()
If Err.Number = 0 Then
If objXMLHTTP.Status = 200 Then
Set xmldoc = Server.CreateObject("Msxml2.DOMDocument")
xmldoc.async = false
xmldoc.load(objXMLHTTP.ResponseBody)
Else
xmldoc = ErrorXML("Service Unavailable - Status: " & objXMLHTTP.Status & "
URL: " & URL)
End If
Else
xmldoc = ErrorXML(Err.Description)
End If
xmldoc.save(Response)
Function ErrorXml(str)
Dim xmldoc
Set xmldoc = Server.CreateObject("Msxml2.DOMDocument")
xmldoc.async = false
xmldoc.loadXML("" & str & " ")
ErrorXml = xmldoc
End Function
Tuesday, February 14, 2006
Planned Functionality for bike-routes.org
Bike-routes.org is currently a personal collection of bike routes to log rides of family and friends. Plans are in the works to expand the use of it for others. The following features are planned:
- capability to paste a GPX file into page that will validate and display the route
- run the GeoConv program as a web service that will reduce the trackpoint count to a manageable number for google maps. Probably around 200 points for a default
- capability to toggle on/off the display of markers, selectable by type
- integrate the Census 2000 U.S. Gazetteer Files to provide a web service that will identify the (closest) county, township/district, and city/village/town given a latitude and longitude. This will be used as for geographic taxonomy coding of the routes. A free zip code database can be obtained to map the US Censu one to actual cities (places in US Census Bureau speak). The USPS latitude and longitude values are far less accurate with many zip codes sharing the same values. There are free web services already that provide latitude and longitude given the address or zip or city/state.
- Enable seaches of stored routes by distance, location, and type of route
- locate and integrate a geocoding database to provide street level addresses that may be used to provide a web service to convert the route into a cue sheet
- Geo-reference digital photos using EXIF timestamps as described at topofusion.com . The site has an example of how to display photos over a map. A similar notion can be found at wayfaring.com
Update - it looks like the capability to already upload a track point file already exists at http://www.gpsvisualizer.com/map Looks nice for what it does.
Current functionality for maps at bike-routes.org
The functionality for bike routes uploaded to the site is currently limited to:
- zoom level - calulates the appropriate zoom level for the map based on the vertical (Latitude) and horizontal (Longitude) extremes of the trackpoints
- distance between two trackpoints - in either miles or kilometers
- image markers - can create marker for a given point using symbols and html text that includes: Name, comment, type, latitude, and longitude of the point. The symbols are either lettered symbols A-J; 11 colored symbols; or plus graphic symbols for key points of interest to a cyclist:
- campground
- convenience store
- gas station
- lodging
- museum
- restaurant
- restroom
- static directory structure for GPX files that includes a top level folder for country (using a two letter abbreviation) and a second level one for location or grouping within the country. Currently this includes a list of states using the 2 letter postal code abbreviation followed by a dask and the name of a city.
- track and route support - the GPX file is first searched for tracks, if none are found it looks for routes. If there are multipe tracks or routes, it will create a list with the names of each one plue an "All" selection that will stitch them all together
- total distance - calculates and displays the total distance of the selected GPX file
Sunday, February 12, 2006
GPS data file trackpoint reduction
I came across an interesting DOS based program called GEOCONV
GeoConv is a coordinate conversion program, which converts between different coordinate file formats, coordinate types and datums. GeoConv is written by Eino Uikkanen. It's a nifty freeware tool that perfroms batch conversion (it only works in batch mode). However the real value for me is the ability to perform filtering, such as:
GeoConv is a coordinate conversion program, which converts between different coordinate file formats, coordinate types and datums. GeoConv is written by Eino Uikkanen. It's a nifty freeware tool that perfroms batch conversion (it only works in batch mode). However the real value for me is the ability to perform filtering, such as:
- Reduce the number of waypoints in the reduced track/route (REDUCEPOINTCOUNT, REDUCEMAXERROR, REDUCEPOINTVIEW)
- Fix tracks by substituting track breaks with straight lines (FIXTRACK)
- Specify the maximum distance in kilometers of trackpoints from the reference point (MAXDIST, FROMPOINT, FROMCRDTYPE)
- Provide latitude and longitude ranges to limit the trackpoints that are output to the bounding box defined (LATRANGE, LONRANGE, RNGCRDTYPE)
- but I encountered some errors. I am simply trying to perform a trackpoint reduction on a GPX file.
- It appears to fail with more than 112 track points in a track segment.
- Breaking up the GPX file into segments of less than 113 trackpoints seem to work up to a limit that I have yet to figure out.
- For example, a test file of 2500+ trackpoint broken up into into 28 segments of 90 trackpoints or less fails.