【发布时间】:2015-01-16 19:28:11
【问题描述】:
我正在尝试使用开放数据计算远足路线的海拔数据(避免像 Google 这样的许可限制)。
我能够阅读我所在国家/地区的公共 DEM(分辨率为 10 米) 使用 readGDAL(来自 RGDAL 包),proj4string(mygrid) 给了我:
"+proj=utm +zone=32 +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0"
.asc 文件的开头是:
ncols 9000
nrows 8884
xllcorner 323256,181155
yllcorner 4879269,74709
cellsize 10
NODATA_value -9999
978 998 1005 1008 1012 1016 1020 1025 .....
.....
..... 400 Megabytes of elevation values ....
.....
我只需要从这个网格中获取路线特定节点的高程数据,以便能够 计算海拔增益、负斜率、最小/最大高度...
我使用漂亮的包 OSMAR 从 OpenStreetMap 带来路线数据,所以我的路线数据表是这样的:
RouteId NodeId lat lon
1 -13828 -8754 45.36743 7.753664
2 -13828 -8756 45.36762 7.753878
3 -13828 -8758 45.36782 7.754344
4 -13828 -8760 45.36794 7.754541
....
但我不知道如何在 DEM 坐标参考系中转换纬度/经度坐标,然后如何带上相应的网格值(对最近点进行某种平均?)
我在谷歌上搜索到的所有文档都是关于渲染网格地图,而不是从中提取值。
任何帮助将不胜感激!
干杯,MB
附:第二个问题应该是: “有几个网格图块,如果一条路线跨越两个或多个图块,我该怎么办?合并它们,引用两者......”
【问题讨论】:
-
一种解决方案可能是 GraphHopper,其中已经获取了海拔数据(CGIAR 或 SRTM),您可以轻松计算远足路线。
-
感谢 Karussell,但 SRTM 数据的分辨率在 30 到 90 米之间:对于山区路线来说太多了...
-
好吧,您当然可以进行预处理和后处理,但您将获得一个现成且可扩展的解决方案。如果您有更好的数据:只需一个简单的 sn-p 即可将其输入 GraphHopper 并用于实际路线
标签: r openstreetmap rgdal osmar