我已经下载了SRTM GDEM(约90公里分辨率)。
我正在使用ArcGIS 10。
我尝试使用空间分析器计算坡度。
但是,我无法计算斜率。
输出值只有两个范围0和0.1-90。
我不确定是什么问题?
我已经下载了SRTM GDEM(约90公里分辨率)。
我正在使用ArcGIS 10。
我尝试使用空间分析器计算坡度。
但是,我无法计算斜率。
输出值只有两个范围0和0.1-90。
我不确定是什么问题?
Answers:
这似乎是描述简单,快速且合理程度更高的方法来计算全球范围内DEM的斜率的好地方。
回想一下,某个点处的表面的坡度实质上是该点所有可能的方位处遇到的“上升”与“行程”的最大比率。问题是,当投影具有比例失真时,“游程”的值将被错误地计算。甚至更糟的是,当比例尺失真随轴承而变化时(所有投影都不是共形的情况),将不正确地估计斜率随轴承而变化的方式,从而无法准确识别最大上升/运行比(并歪斜方面的计算)。
我们可以通过使用保形投影来解决此问题,以确保比例失真不会随方位变化,然后校正斜率估计值以解决比例失真(在整个地图中随点的不同而变化)。诀窍是使用全局共形投影,该投影可对其比例尺失真进行简单表达。
墨卡托投影符合要求:假设赤道的比例正确,则其失真等于纬线的割线。也就是说,地图上的距离似乎是正割线的乘积。这将导致任何斜率计算都可以计算rise:(sec(f)* run)(这是一个比率),其中f是纬度。为了解决这个问题,我们需要将计算出的斜率乘以sec(f); 或者等效地,将它们除以cos(f)。这为我们提供了简单的方法:
使用Mercator投影计算坡度(以上升:运行或百分比表示),然后将结果除以纬度的余弦。
要使用以十进制度数给出的网格(例如SRTM DEM)来执行此操作,请执行以下步骤:
创建纬度网格。(这只是y坐标网格。)
计算其余弦。
项目二者的DEM和使用墨卡托投影在其规模是在赤道真纬度的余弦。
如有必要,将高程单位转换为与投影坐标的单位(通常为米)一致。
将投影DEM的斜率计算为纯斜率或百分比(而不是角度)。
将该斜率除以投影的余弦(纬度)网格。
如果需要,将坡度网格重新投影到任何其他坐标系以进行进一步的分析或映射。
斜率计算中的误差将高达0.3%(因为此过程使用的是球形地球模型,而不是椭圆形模型,该模型被展平了0.3%)。该误差明显小于斜率计算中涉及的其他误差,因此可以忽略不计。
墨卡托投影无法处理任一极。对于极地地区的工作,请考虑在极点使用真实比例的极地立体投影。比例失真等于2 /(1 + sin(f))。在工作流中使用此表达式代替sec(f)。具体而言,与其计算余弦(纬度)网格,不如计算其值为(1 + sin(latitude))/ 2的网格(如注释中所述,编辑:对南极使用-latitude)。然后完全像以前一样进行。
对于完整的全局解决方案,请考虑将地面网格划分为三个部分-每个极点周围一个,在赤道周围一个部分-,使用合适的投影分别在每个部分中执行斜率计算,然后拼接结果。拆分地球的合理位置是沿纬度为2 * ArcTan(1/3)的纬度圆(大约37度),因为在这些纬度上,墨卡托校正因子和立体校正因子彼此相等(具有共同的值为5/4),并且最好将所做的更改最小化。作为计算检查,网格应该在重叠的地方非常紧密地相吻合(微小的浮点不精确度和由于投影网格的重采样导致的差异应该是唯一的差异来源)。
John P. Snyder,《地图投影-工作手册》。USGS专业论文1395,1987。
我猜您的栅格的水平单位是度或弧秒。您需要将此栅格重新投影为水平和垂直单位都相同的空间投影(即,如果垂直单位为米,那么我建议使用具有水平米单位的UTM)。
要使用ArcCatalog / ArcGIS重新投影栅格,请查看:
ArcToolbox>数据管理工具>投影和转换>栅格>项目栅格
选择覆盖您感兴趣区域的投影空间参考,例如,尝试使用UTM区域。手册中还记录了许多其他选项。请注意,您无法为整个地球创建坡度数据集(如果您要这样做)。
现在,SRTM数据已全局可用,我可以实际查看和使用这些文件了。gdaldem
GDAL的实用程序可以使用缩放选项计算垂直单位与水平单位的比率,以计算坡度和山体阴影。手册建议使用111120 m /°用于SRTM瓷砖。因此,例如,从OSGeo4W shell:
$ gdaldem slope -s 111120 -compute_edges N44E007.hgt N44E007_slope.tif
-compute_edges
如果要将几个拼贴拼接在一起,该选项可使边缘更加无缝。或计算大区域的图块。“比例”技术的缺点是,除了赤道外,EW和NS方向上的距离不相等,因此,对于靠近极点的图块,可能会出现一些奇怪的坡度误表示。
gdaldem
状态文档:“对于不在赤道附近的位置,最好在使用gdaldem之前使用gdalwarp重新投影网格。” 不幸的是,这对覆盖全球的数据集是行不通的,除非您将它们分成小块(也许是74个UTM区域),进行投影,计算斜率并拼接结果。
简而言之,没有一个。根据定义,未投影基于度的坐标系。通常来说,我们说WGS84是“地理”投影,但这不是真的,只是为了方便。
我想我记得曾读过有关在未投影的地理空间中准确使用海拔模型的软件或过程的信息,但现在无法找到它。在任何情况下,它都可能是实验性的,或者是您自己通过代码类型的过程来构建的。
Ahhh发现了它:开发了一个全球坡度数据集,用于估算地震造成的滑坡发生率(USGS)。第4页很好地描述了问题
...一度的长度取决于其纬度位置。在赤道处,一度乘一度的块在转换为米单位时(在x方向为111,321米,在y方向为110,567米)是合理的正方形,但更接近于极点。由于子午线的收敛,x方向随纬度余弦的变化而变小,包括ArcGIS在内的大多数GIS程序包仅在正方形像素上运行,因此使用一个系数来调整x,y或z尺寸,以适应通用单位是不可能的。
本文继续描述了用于解决此基本问题的特定计算和软件工具(gdal,python,numpy)。该论文未包含代码,但是如果问得好,他们可能会分享。无论如何,尽管我可能只是问结果在哪里,但作为USGS,它可能已经在线上了。:)
可以使用EQUI7 GRID系统(Bauer-Marschallinger等人,2014)有效地导出全局DEM参数(其中大多数公式基于欧几里德空间的假设)。EQUI7 GRID将世界划分为7个陆地区域,所有区域均以等距投影系统进行投影,并且精度损失最小。请参见EQUI7 GRID 中250 m分辨率的全局DEM示例。在这里,您可以找到一些示例代码,这些示例代码显示了如何使用SAGA GIS导出全局DEM参数。在EQUI7 GRID系统中完成派生DEM参数后,可以将所有地图反向转换为WGS84 longlat
坐标,然后使用GDAL创建全局镶嵌。