blankblank blank


Archive for October, 2009

Create Garmin-Compatible Raster KMZ Files From Georeferenced Imagery With G-Raster

Garmin recently announced support for raster imagery like aerial photos and topo maps for some of their handheld GPS units, specifically their newer product lines: the Colorado, Oregon, and Dakota series. See recent posts at GPS Tracklog and GPS Fix for more information on this new feature. It requires download and installation of beta firmware on your Garmin GPS unit, and conversion of the raster images to a compatible format. Fortunately, the compatible format is the open format KMZ image overlay, which can be created in Google Earth:

  1. Zoom to the desired location in Google Earth
  2. Load the map or aerial image as an Image Overlay
  3. Calibrate the image by manually positioning, rotating and resizing it until it corresponds to the underlying Google Earth imagery.
  4. Save it as a KMZ file.
  5. Copy it to the \Garmin\Custom Maps folder on your Garmin GPS unit.

A fairly straightforward process, but there are some drawbacks:

  • The image must be no larger than one megapixel in size (1024 x 1024; 2048 x 512; etc.)
  • You can chop an image into subsections/tiles and combine them into a single overlay file, but this requires individually calibrating each tile
  • You can have no more than 100 such tiles loaded onto your GPS unit
  • If you have an image that’s georeferenced with either embedded geodata (like a GeoTiff, ERDAS Imagine, MRSID or BSB file), or a worldfile, there’s no way to use that georeferencing data, and you have to manually convert the file to JPG format

I’ve just finished version 1.0 of G-Raster, a utility that helps solve some of these problems:

  • Loads map/aerial imagery files with embedded geodata or worldfiles
  • Automatically extracts the geographic data, and optimally reprojects the image
  • Chops images larger than 1 megapixel into smaller subtiles, and calibrates all of them
  • Converts the image into JPG format
  • Creates a KMZ file that can be copied over to your Garmin unit

You can find the link to the latest version of the program installer here (look for the G-Raster download link, then the link that says “Click here to start download”). Once installed, run the program, and it will walk you through the process step by step.

graster

Step 1: Loading The Data

G-Raster accepts four basic types of georeferenced raster imagery:

Type 1: Files with the geographic data embedded in the graphic file itself. These include:

  • GeoTiffs: TIFF images with embedded geodata
  • MRSID imagery (file extension .sid or .mrsid)
  • NOAA BSB imagery (file extension .kap)
  • ERDAS Imagine format (file extension .img

Note: These must include all geographic data, including the type of coordinate system used. A great source for free USGS topo maps and aerial imagery is the USGS Seamless Server, which offers this data in the compatible GeoTiff format. Links to that site and other useful sources of data are available from the program menu.

Type 2: JPG imagery (”Big JPEG”) generated by the free program USAPhotoMaps. You will need to specify the UTM zone for the map you want to use.

Type 3: General graphic files with geodata in worldfile format for the UTM coordinate system (e.g. JPG with .jgw, BMP with .bpw, GIF with .gfw, TIF with .tfw). You will need to specify the UTM zone for the map, and also the datum and hemisphere if appropriate (default is northern hemisphere, WGS84 datum)

Type 4: General graphic files with geodata in worldfile format in any coordinate system. But you will have to: a) Know what that coordinate system is; b) Look up its EPSG code; c) Enter the code in the specified box

The process is easiest for Type 1 files; click the “Load …” button, and choose the file you want to create a KMZ overlay for. The program will automatically process the file, and take you directly to Step 3.

For Type 2 files, you will need to select the JPG file created by USAPhotomaps, normally placed into that program’s main directory. You will also need to specify the UTM zone for that map; you can get this information from USAPhotoMaps directly by choosing View => LatLon => UTM from the menu when viewing the maps you want to use; the UTM zone will be listed at the top. Alternatively, try one of the links under the UTM/EPSG Info menu. G-Raster will highlight the input section in red to remind you that it needs that data:

redcode

The process is similar for Type 3 files, except that you’ll have more choices for types of graphics (JPG, TIFF, BMG, GIF), and in addition to the UTM zone you’ll need to make sure the correct datum and hemisphere is chosen.

The process for Type 4 files is like that for Type 3 files, except that you will need to enter the EPSG code for the data in question.

Step 2: Process the raster graphic

After you enter the required data for files of Type 2-4, the button marked “Process Raster Graphic” will be enabled. Click on this button to start the process of converting the map graphic into the correct format. When it’s complete, a message will show up in green directly below this step, and the “Create KMZ File” button will be enabled. You can now go to Step 3

Possible problems:

- If the file is larger than 100 million pixels, it will be impossible for the program to process it as is; you’ll have the option of cropping the outer edges of the picture to bring it down to an acceptable size, but this will eliminate the map image data at the edges.

- In rare cases, an image close to but just below the maximum pixel count may not be able to be chopped up into 100 tiles or less. Future versions of the program will offer you the chance to resize the image slightly to fix this problem, but for now, you’ll have to crop or resize the image yourself.

Step 3: Set Parameters For KMZ Files

You’re almost ready to create the KMZ overlay file, but there are several options you might want to change:

KMZ Filename: The final output file will be saved using the name specified here in the same directory as the graphic file used to create it. Default is “Overlay_name”, and I’m assuming you’ll want to change this. If you choose a name that corresponds to a file that already exists, you’ll get an error message when you try to create the file.

JPG Quality: The output imagery is required by Garmin to be in JPG format. You can adjust the quality of the image from highest (100) to lowest (50 here) to reduce the total filesize, which may improve speed. Garmin’s recommended JPG quality number is 80, but you can experiment with lower/higher numbers to see which works better for you. One possible complication: the maximum image filesize is 3 MB, and in very rare circumstances choosing a high quality (98-100) might result in a tile that’s too large. Wouldn’t worry about it, but it’s something to keep in mind.

DrawOrder: Garmin offers two options for viewing the raster imagery. With On Top, the raster image displays above everything else, including any loaded vector maps. With Below Vector, the raster map still sits on top of some vector imagery (like lakes and parks), but can have other vector data on top of it (like roads and contour lines).

50% Transparency In Google Earth: Makes the overlay partially transparent in Google Earth, to help with determining whether it’s lined up correctly with underlying imagery. Has no effect on the map’s appearance in the Garmin unit’s display.

Rescale Factor / Rescale Image: Rescales the image to a smaller size based on the rescale factor entered ( > 1 only). For example, a rescale factor of 2 resizes the x and y dimensions by two, making the image a factor of 4 smaller in total pixel size. The advantage of this is to reduce the total number of tiles required to cover the image, in case you want to create multiple overlays with a total number of tiles less than the maximum 100. The disadvantage of this is that you will lose some image resolution, but depending on the Garmin zoom level you view the image at, you might not even notice the diminished resolution.

Step 4: Create KMZ File

Once you’ve set the parameters at left as desired, click the “Create KMZ File” button, and in a few seconds a message will pop up telling you that the KMZ file has been created in the same directory as the original graphic file.

If you like, you can now change some of the parameters, and create another KMZ file; this way, you can experiment with different settings. Just be sure to specify a different name for every one.

Step 5: Check the file in Google Earth

IMO, this is a mandatory step – you have to make sure the map is positioned correctly before trying to use it in your Garmin GPS unit.

You should have Google Earth installed on your computer for this step; if you don’t, go to the Google Earth website, and download/install the program on your computer. You can then double-click on the KMZ file created in Step 4 to load it into Google Earth. The KMZ overlay will be listed in the “Temporary Places” section of the info pane at left, and Google Earth will automatically zoom into the area covered by the map. Clicking the checkbox next to the overlay name will turn the image on and off, helping to see if it lines up correctly. If you chose 50% transparency as an option, the map image will be slightly transparent so that you can see what’s underneath – this may help you see how well the image is placed:

transparent_overlay

Depending on your location, you may notice a shift in position between the KMZ overlay and the underlying imagery of anywhere from 0 – 100 meters, with 10-20 meters being common for the US. This is not an indication of an error in the overlay, but rather a reflection of a fundamental limitation with Google Earth. The geographic position of Google Earth imagery isn’t always 100% accurate; see this post for more info. Unfortunately, there’s no way now to know how far off the imagery is shifted, which in turn imposes a limitation on how confident you can be that your overlay will be calibrated correctly in your Garmin unit.

Step 6 – Load The Overlay For Use In Your Garmin GPS Unit

Until the Garmin firmware is out of beta, I strongly recommend that you only install KMZ files on an external memory data card, not in the internal memory of your Garmin unit. This way, if there’s a problem, you can fix it by removing the card.

1. Take the external card, and put it into a separate card reader (not the Garmin itself). It will show up on your computer as a separate drive.

2. Open the drive, and go to the \Garmin\Custom Maps folder (if it doesn’t exist, you’ll have to create it)

3. Copy the KMZ raster overlay file into this folder.

4. Install the external memory card into your computer.

5. Follow Garmin’s instructions on its use, including turning it on and off.

In my next post, I’ll offer some tips and tricks to make the most of G-Raster.

Additional support for this new Garmin feature is available at the Garmin Custom Maps forum, including a helpful post if you have problems after installing a map.




Convert OCAD Maps Into Garmin Format

As with yesterday’s posts on TomTom GPS units, this is another in my series of “stuff that looks cool, but I don’t have everything I need to try it out”. OCAD is a vector-based map-drawing program (current version 10 is not free; version 6 has been released as freeware, available on the Download page). I believe the “O” in OCAD originally stood for orienteering, the sport of navigating with map and compass especially popular in Europe, but the program has evolved into a more sophisticated mapping program. The World Of O website has an article on the free utility ocad2img that converts the vector OCAD format into a Garmin-compatible vector .img format. A bit technical, and the maps don’t look exactly the same, but they have the speed and file size advantages of vector data. Like I say, I can’t try it out, but the photo (from the website) looks good:

DSC_9954_s




Raster Maps On A TomTom GPS

There’s been a lot of buzz lately about Garmin adding raster map compatiblity to their Colorado/Oregon/Dakota lines of handheld GPS units; I’ll have something to add to that later this week. But I just stumbled across ttMaps, a free application that claims to let you view custom raster imagery on a TomTom GPS unit. Most (if not all) TomToms are designed primarily for automotive use instead of general outdoor use, but TomTom owners may still find this useful. Don’t have a TomTom myself, so I can’t try it out, but the screenshots (from the website) look promising:

bdortho_w NAD83_w scan25_w

Reading through the site, the biggest hurdle is likely to be getting the maps in the correct format; the program accepts maps only in the ECW format. The site’s Map Conversion How To walks you through using the free gdal_translate utility (available as part of the FWTools package), but as a command-line function with lots of parameters, it’s not the easiest process.




Incredible Satellite Shot Of Mars

Wow indeed.

mars dune field

Click on the picture for a larger view.

Via Bad Astronomy.




Climate Action Day 2009

Forgot Climate Action Day was today. Two indispensable links to deal with the standard global warming denial talking points:

How To Talk To A Climate Skeptic

Grist Magazine’s series on standard global warming denial talking points, written in non-technical language, and categorized for easy search and browsing. The first place to look.

RealClimate

A blog run by real climate scientists. Far more technical, and it’s more difficult to find a specific answer, but more authoritative and comprehensive. So, for example, if someone claims that the “hockey-stick” temperature curve has been disproved, you can check out this post, or this post, or this post, or any of the 50+ posts that discuss the topic, for references and graphs that show that’s not true.




Great Introductory GIS Tutorial And Screencast Series

The Department of Land Affairs, Eastern Cape, South Africa has created a terrific tutorial series on GIS called “introducing GIS”. PDF worksheets and video screencasts cover topics like vector and raster data, attributes, topology, coordinate systems, map production and spatial analysis in a clear and easy-to-follow fashion. The worksheets are freely distributable under the terms of the GNU Free Documentation License, while the screencasts are released under Creative Commons. While you can watch the screencasts in your browser, they are a bit small – I would recommend downloading them so that you can open them in a stand-alone video viewer that you can resize to larger dimensions for easier viewing. Right-click on the video link and choose “Save as”. For that matter, if you download all the screencasts and worksheets and put them on a DVD, you have a great educational resource to share and distribute.

The site has a custom Windows installer of the open source GIS Quantum GIS, including the data presented in the tutorials. However, Quantum GIS also runs on Mac and Linux, and they offer the tutorial data as a separate download; find the link at the bottom of the web page. For that matter, the Quantum GIS Windows installer they have is version 1.0.2, while the most recent stable release version for Windows is 1.2.0-1. So even if you have Windows, you may want to download the data separately, and install the most recent version of Quantum GIS using the osgeo4w installer.




Quick GPX Viewing In A Google Maps Interface With GPXViewer

It’s nothing fancy, but Zonum’s GPXViewer website lets you upload a GPX file (points and tracks), and then quickly plots it in a Google Maps interface:

gpxviewerz

No editing, export or additional info in this app, just display; but Zonums has other web apps like Digipoint and MapTool for that.




Put Custom Startup Graphics On Your Garmin GPSr Unit

Art writes about his programs Garmin 60CSx Whiz, Garmin Colorado Whiz and Garmin Oregon Whiz, which modify the firmware on a Garmin GPSMap unit to display a custom startup image and other alternate graphics. 60CSx-supported units include:

  • Garmin 60Cx
  • Garmin 60CSx
  • Garmin 76Sx
  • Garmin 76CSx

The interface looks straightforward enough (graphics from the program website):

60CSxWhiz_Art colwhiz Oregon_Whiz

Sample graphic images are provided for the 60CSx whiz, but you can also use your own (love the kookaburra):

60CSx_Examples

And apparently they do what they’re supposed to:

60CSx_Mod

I say “apparently” because I’m too chicken to try it out, even though Art has a pretty solid hack programming resume. But if any braver souls want to give it a try and post their results in the comment section, have at it!