4 ms·
A killer feature using this dataset would be an API to get ground-level elevation (above sea level) by passing a latitude and longitude pair. This exists in abo
by cryptoz 12y ago
A killer feature using this dataset would be an API to get ground-level elevation (above sea level) by passing a latitude and longitude pair. This exists in about 10 different APIs across the web already, but they're wildly expensive (or low-res). Google's is wrapped inside Maps for Business, which IIRC would cost far more than most startups can afford.
Of course, we can get the data "for free" from the USGS. But then we'd have to host and query the data ourselves, which becomes...expensive. I wonder if there's an inexpensive solution out there, for high-res elevation APIs?
- japhyr 12y agoHow do you get this data from the USGS? Is this what you're referring to? http://ned.usgs.gov/epqs/ http://ned.usgs.gov/epqs/
- kersny 12y agoThis[1] post was on HN about a year ago pointing to the Data Science Toolkit[2] for getting elevation and performing other geographic data lookups. [1]: http://petewarden.com/2013/09/09/why-you-should-stop-pirating-googles-geo-apis/ http://petewarden.com/2013/09/09/why-you-should-stop-piratin... [2]: http://www.datasciencetoolkit.org/ http://www.datasciencetoolkit.org/
- danpat 12y agoYou can already do this fairly easily; 1) Download the SRTM elevation datasource for the region you're interested: http://e4ftl01.cr.usgs.gov/SRTM/SRTMUS1.003/2000.02.11/ http://e4ftl01.cr.usgs.gov/SRTM/SRTMUS1.003/2000.02.11/ 2) Load the .HGT files into PostGIS using raster2pgsql: http://postgis.net/docs/using_raster_dataman.html#RT_Raster_Loader http://postgis.net/docs/using_raster_dataman.html#RT_Raster_... 3) Run your queries, relatively simple: SELECT ST_Value(elevationraster, Point(51.123,-91.123)) FROM elevation_data;
- cullenking 12y agoSee my above comment for a library that requires no geospatial database, just DEM files in gridfloat format. By recording information about each gridfloat file (bounding box, cellsize in lat/lng) you can do some simple math and only one disk operation (in the optimal case) to get an elevation value. Even with my crappy code in the library I mentioned in the other comment, the service is very fast on even spinning disks.
- cullenking 12y agoIf you are interested in a service that does this, I host a redundant elevation service using NED, SRTM and ASTER data. It tries NED (highest res) first, falls back to SRTM and then finally to ASTER. ASTER is pretty bad in some areas, but it's the only dataset available above 60 degrees north/south. We use it for our route planner on http://ridewithgps.com http://ridewithgps.com Feel free to email me, cullen@ridewithgps.com if you want to use it, or just have questions about getting something together yourself. Edited to add: code is open source, you just need an afternoon to tweak it (it's a ruby lib and a sinatra app) to work, along with some SRTM gridfloat dems. Code is here: https://github.com/ridewithgps/humps https://github.com/ridewithgps/humps And if you need to convert from geotiff to gridfloat, here's some bad C: https://github.com/kingcu/geotiff2gridfloat https://github.com/kingcu/geotiff2gridfloat
- colanderman 12y agoI'd also like to see a tile server that serves up (raw) elevation data rather than imagery. The tricky part is that elevation data has a sufficiently large dynamic range that you can't use most common image formats; but even with a custom tile format this would be useful for e.g. stereoscopic display. I've been considering hosting one myself (based on USGS data), but only if it seems like there are other people who are interested in such a service.