Python code for working with Digital Elevation Models and tile rendering.
License in "LICENSE" file.
Hillup: package for handling DEM modules and intermediate storage of slope and aspect in tiled GeoTIFF data format. The Hillup.data module simplifies access to digital elevation models from the SRTM and NED data sets. The module is a TileStache provider that automatically downloads elevation data for requested regions. It also renders that data into multiband TIFF files that have precalculated slope and azimuth data for the selected region. The Hillup.tiles module uses TileStache and PIL to turn the slope-and-aspect TIFF files generated by hillfarm-seed.py and turn them in to image tiles suitable for use in an online slippy map.
hillup-seed.py is a script for pre-generating slope-and-aspect TIFF files for a selected region. It is used to seed the data directories for rendering.
python setup.py install
DEM-Tools relies on a large stack of open source software. Version dependencies are not exact, but just notes on what is known to work.
- Python (2.7)
- gdal (1.8.1) and its dependencies
- PIL (1.1.7)
- ModestMaps (1.2)
- TileStache (1.19.0)
On Debian or Ubuntu, all requirements can be installed via Apt and Python's easy_install/pip.
On MacOS, all requirements can be installed via HomeBrew and Python's easy_install/pip. Install Python first and pay close attention to HomeBrew's caveats about
/usr/local/share/python in your PATH. There is a known bug (issue #1) on MacOS where the multiband slope-and-aspect TIFFs generated by hillup-seed.py are corrupt and unusuable. For now we generate those input tiles on Linux: rendering works on MacOS.
- Clone the git repository.
python hillup-seed.py 10. That will download necessary DEM data and then populate the
outdirectory with slope-and-azimuth TIFFs for a small region near San Francisco at zoom level 10. If that works, you can then generate a larger set of TIFFs via a line like
python hillup-seed.py -b 41 -121 42 -120 4 5 6 7 8 9 10 11 12 13 14 15
render/tile.cgias a CGI script in your favorite web server. You can then test it by loading a URL like http://localhost/tiles/hills/10/163/395.png where
localhost/tiles/hillsmatches the installation path and
10/163/395.pngis the slippy math pap to a tile (in this case, near San Francisco at 37.84, -122.50).
hillup-seed.py downloads and generates many gigabytes of data in the
data/source directories for large scale renders. Provision accordingly.