OpenStreetMap

Hillshading Plus Relief Coloring

Posted by asciiphil on 10 May 2010 in English (English)

This weekend, I took a break from Cascadenik rules to play with rendering elevation data, mostly working off http://wiki.openstreetmap.org/wiki/Contours and http://wiki.openstreetmap.org/wiki/HikingBikingMaps . I'm keeping notes on my process, so when I've got something good I'll document everything in more detail, but I'm reasonably pleased with my results so far.

I'd previously set up contour lines and figured out how to have either a greyscale hillshaded or color relief underlay for my rendering, so I decided to work on combining the hillshading and color relief images. My rendering target is the US, so I started with the SRTM1 data and interpolated that from 30x30 meter pixels down to 15x15 meter pixels, then I used the PerryGeo utilities to generate separate hillshaded and colored relief images. Following that, I used the GIMP to combine them.

Unfortunately (for the simplicity of my rendering process) I'd like to render areas that span more than one SRTM tile. I say "unfortunately" because I'm still having problems with that aspect of things: I can't use gdal_merge.py to combine the images before processing them with the GIMP, because it makes BigTIFFs, which the GIMP won't read (my libtiff doesn't support them). That means I have to generate the shaded and colored images separately for each SRTM tile, combine them, and then use gdal_merge.py. I got most of the process down (I learned a little GIMP Script-FU to automate the merging process), but in my final merged image, I have thick black lines at the borders of the original SRTM tiles. It looks like the hillshading program is putting a black border around the edge of its generated image. Weirdly, the lines show up when I use the generate_tiles.py script, but not the generate_image.py script (the first image below spans the boundary between the N39W77 and N39W78 tiles). I need more research here.

I also need to work on my relief color schemes. The one I have now looks quite pretty, but is almost the same shade as trunk roads in places. I'd like to get something more muted, so it works well as a background, but still vivid enough that the elevation changes are visible.

Anyway, here are a couple of renderings I've done. I think they look pretty good.

Rendering Test with Hillshading

Rendering Closeup of Patapsco River

The second one is a zoom level 15, which is the last level where the hillshading looks passable; at higher levels, I fall back to just color relief underlays.

Comment from ColinMarquardt on 10 May 2010 at 20:51

Looks pretty good. The pixels can be smoothed further with other GDAL options I think - take a look at the links in the link below.

FWIW, for only the hillshading (i.e. not the color relief), I'm doing it a bit differently: http://wiki.openstreetmap.org/wiki/Hillshading_using_the_Alpha_Channel_of_an_Image

Cheers
Colin

Hide this comment

Comment from asciiphil on 10 May 2010 at 21:18

Having the hillshading in an overlay would be nice (it would shade the roads, too, which would increase the illusion of depth), but I'm primarily rendering for use on my phone, and the program I'm using (MapTool for WebOS) only supports a single tile layer.

I know I could interpolate more pixels into the SRTM data with gdal_translate, but it ends up taking up significantly more disk space. I already don't have enough space to do hillshading for the entire US, so I only get the pretty underlays for the east coast at the moment.

Hide this comment

Comment from ColinMarquardt on 10 May 2010 at 21:31

The awesome Dane Springmeyer wrote http://mapnik-utils.googlecode.com/svn/sandbox/tileblender/ for solving that problem when you absolutely need a single tile. Of course, if you are doing this specifically for such mobile applications, it makes sense to optimize for it and not incur the overhead of two tiles.

Hide this comment

Comment from robert on 11 May 2010 at 15:45

Yeah the gimp was never designed for huge (scientific-size) images.

Hide this comment

Leave a comment

Parsed with Markdown

  • Headings

    # Heading
    ## Subheading

  • Unordered list

    * First item
    * Second item

  • Ordered list

    1. First item
    2. Second item

  • Link

    [Text](URL)
  • Image

    ![Alt text](URL)

Login to leave a comment