Cha*_*les 9 c# gis map terrain cartography
给定由纬度/经度/高程对组成的高程图,找到给定高程水平以上的所有点的最快方法是什么(或者更好的是,只有2D凹面船体)?
我正在开发一个GIS应用程序,我需要在地图上方渲染一个叠加层,以直观地指示高程别的区域; 它正在确定这个多边形/区域让我难倒(现在).我有一个简单的纬度/经度/高程对数组(更具体地说,GTOPO30 DEM文件),但我可以自由地将其转换为您建议的任何数据结构.
我们已经指出了三角网不规则网络(TIN),但是我不确定在生成TIN之后如何有效地查询这些数据.如果我们的问题可以像人们如何生成等高线图那样解决,我也不会感到惊讶,但我没有任何经验.任何建议都会很棒.
假设您将纬度/经度/海拔数据存储在一个数组(或三个单独的数组)中,您应该能够使用数组查询技术来选择海拔高于特定阈值的所有点。例如,在 python 中numpy你可以这样做:
indices = where(array > value)
Run Code Online (Sandbox Code Playgroud)
并且该变量将包含大于阈值indices的所有元素的索引。类似的命令在其他各种语言中也有(例如 IDL 有该命令,并且在 Matlab 中也可以完成类似的事情)。arrayvalueWHERE()
获得此索引列表后,您可以创建一个新的二进制数组,其中满足阈值的每个位置都设置为 1:
binary_array[indices] = 1
Run Code Online (Sandbox Code Playgroud)
(假设您创建了一个与原始纬度/经度/高程大小相同的空白数组并将其命名为binary_array.
如果您正在使用栅格数据(我建议将其用于此类工作),您可能会发现您可以简单地将这个数组覆盖在地图上,并显示一组不错的区域。但是,如果您需要将高于高程阈值的区域转换为矢量多边形,那么您可以使用许多内置 GIS 方法之一来将栅格转换为矢量。
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |