使用SRTM Global DEM进行斜率计算吗?


17

我已经下载了SRTM GDEM(约90公里分辨率)。

我正在使用ArcGIS 10。

我尝试使用空间分析器计算坡度。

但是,我无法计算斜率。

输出值只有两个范围0和0.1-90。

我不确定是什么问题?


这取决于您要分析的地方。每个位置都有不同的预测。你在哪里检查
djq 2012年

5
分辨率实际上是〜90m,而不是〜90km。
Akheloes

只是一句评论,如果您要维护桌面,则可以登录ArcGIS Online并使用其高程服务(无需NA扩展)。倾斜层可以自由用作参考层。在澳大利亚,我们拥有1秒钟的SRTM数据(约3000万分辨率)blogs.esri.com/esri/arcgis/2014/07/11/…–
西蒙(Simon

Answers:


29

这似乎是描述简单,快速且合理程度更高的方法来计算全球范围内DEM的斜率的好地方。

原则

回想一下,某个点处的表面的坡度实质上是该点所有可能的方位处遇到的“上升”与“行程”的最大比率。问题是,当投影具有比例失真时,“游程”的值将被错误地计算。甚至更糟的是,当比例尺失真随轴承而变化时(所有投影都不是共形的情况),将不正确地估计斜率随轴承而变化的方式,从而无法准确识别最大上升/运行比(并歪斜方面的计算)。

我们可以通过使用保形投影来解决此问题,以确保比例失真不会随方位变化,然后校正斜率估计值以解决比例失真(在整个地图中随点的不同而变化)。诀窍是使用全局共形投影,该投影可对其比例尺失真进行简单表达。

墨卡托投影符合要求:假设赤道的比例正确,则其失真等于纬线的割线。也就是说,地图上的距离似乎是正割线的乘积。这将导致任何斜率计算都可以计算rise:(sec(f)* run)(这是一个比率),其中f是纬度。为了解决这个问题,我们需要将计算出的斜率乘以sec(f); 或者等效地,将它们除以cos(f)。这为我们提供了简单的方法:

使用Mercator投影计算坡度(以上升:运行或百分比表示),然后将结果除以纬度的余弦。

工作流程

要使用以十进制度数给出的网格(例如SRTM DEM)来执行此操作,请执行以下步骤:

  1. 创建纬度网格。(这只是y坐标网格。)

  2. 计算其余弦。

  3. 项目二者的DEM和使用墨卡托投影在其规模是在赤道真纬度的余弦。

  4. 如有必要,将高程单位转换为与投影坐标的单位(通常为米)一致。

  5. 将投影DEM的斜率计算为纯斜率或百分比(而不是角度)。

  6. 将该斜率除以投影的余弦(纬度)网格。

  7. 如果需要,将坡度网格重新投影到任何其他坐标系以进行进一步的分析或映射。

斜率计算中的误差将高达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。


7
我发现自己的位置,因为我经常用于描述一个解决方案做,再次whuber表达感谢的还有地提出该建立它的理由。先生,我的帽子好了。
马特·威尔基

谢谢@matt。我并不是要提早建议您放弃(现在已删除)的答案:实际上,我已经赞成,因为您共享了一个指向有趣的USGS参考的链接,该链接可能对许多读者有用。(我的评论只批评了该论文的次要段落,而不是论文本身。)
whuber

啊 感谢您的澄清。我已经恢复了答案,相信现在人们在他们面前有足够的信息可以做出明智的选择:)
matt wilkie 2012年

2
来自法国,花了我一段时间来翻译必要的术语以更好地理解这个好答案,所以我认为删除此链接对于像我这样的新手来说是一个很好的帮助:webhelp.esri.com/arcgisdesktop/9.2/…
Akheloes

这是一种很好的方法,我已经使用您的解决方案来生成全局坡度栅格。实际经验的一个提示:由于赤道以南的纬度值为负,因此您必须在以下方程式中使用绝对纬度值:(1 + sin(latitude))/ 2
Saleika

18

原始答案

我猜您的栅格的水平单位是度或弧秒。您需要将此栅格重新投影为水平和垂直单位都相同的空间投影(即,如果垂直单位为米,那么我建议使用具有水平米单位的UTM)。

要使用ArcCatalog / ArcGIS重新投影栅格,请查看:

ArcToolbox>数据管理工具>投影和转换>栅格>项目栅格

选择覆盖您感兴趣区域的投影空间参考,例如,尝试使用UTM区域。手册中记录了许多其他选项。请注意,您无法为整个地球创建坡度数据集(如果您要这样做)。

更好的答案,使用带有刻度的GDAL

现在,SRTM数据已全局可用,我可以实际查看和使用这些文件了。gdaldemGDAL实用程序可以使用缩放选项计算垂直单位与水平单位的比率,以计算坡度和山体阴影。手册建议使用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区域),进行投影,计算斜率并拼接结果。
ub

7

简而言之,没有一个。根据定义,未投影基于度的坐标系。通常来说,我们说WGS84是“地理”投影,但这不是真的,只是为了方便。

我想我记得曾读过有关在未投影的地理空间中准确使用海拔模型的软件或过程的信息,但现在无法找到它。在任何情况下,它都可能是实验性的,或者是您自己通过代码类型的过程来构建的。


Ahhh发现了它:开发了一个全球坡度数据集,用于估算地震造成的滑坡发生率(USGS)。第4页很好地描述了问题

...一度的长度取决于其纬度位置。在赤道处,一度乘一度的块在转换为米单位时(在x方向为111,321米,在y方向为110,567米)是合理的正方形,但更接近于极点。由于子午线的收敛,x方向随纬度余弦的变化而变小,包括ArcGIS在内的大多数GIS程序包仅在正方形像素上运行,因此使用一个系数来调整x,y或z尺寸,以适应通用单位是不可能的。

本文继续描述了用于解决此基本问题的特定计算和软件工具()。该论文未包含代码,但是如果问得好,他们可能会分享。无论如何,尽管我可能只是问结果在哪里,但作为USGS,它可能已经在线上了。:)


1
该论文的建议是可以使用方位角等距投影来计算斜率,这是错误的,也是错误的。确实会在投影的原点附近给出正确的斜率,但随着到原点距离的增加,它们的准确性也会逐渐降低。
Whuber

感谢您指出这一点。读者,请务必同时阅读gis.stackexchange.com/a/40464/108,以确保平衡
Matt wilkie 2012年

2

可以使用EQUI7 GRID系统(Bauer-Marschallinger等人,2014)有效地导出全局DEM参数(其中大多数公式基于欧几里德空间的假设)。EQUI7 GRID将世界划分为7个陆地区域,所有区域均以等距投影系统进行投影,并且精度损失最小。请参见EQUI7 GRID 中250 m分辨率的全局DEM示例。在这里,您可以找到一些示例代码,这些示例代码显示了如何使用SAGA GIS导出全局DEM参数。在EQUI7 GRID系统中完成派生DEM参数后,可以将所有地图反向转换为WGS84 longlat坐标,然后使用GDAL创建全局镶嵌。


您能解释一下如何回答这个问题吗?如果您打算将等距投影用于斜率计算,请注意,这是一个较差的解决方案,因为当人们从投影中心移出时会出现较大的相对度量失真。尽管将七个这样的预测重点放在土地上有助于缓解该问题,但这仍然不是最佳选择。
ub

由纸张鲍尔-Marschallinger等。(2014年)解释了为什么选择这些预测来代表全球土地质量(假设它们的精度损失最小)。我同意任何2D投影最终都会导致变形,但是据我所知,EQUI7是精度和商品(2D代数)损失之间的良好折衷。话虽这么说,六边形仍被用来表示全球陆地表面(尽管使用3D六边形进行DEM分析仍然很麻烦)。
Tom Hengl '17

感谢您的参考。它的摘要表明,它解决了一个完全不同的问题,即“最小化将普通卫星图像投影到常规栅格网格期间出现的本地数据过采样”。这并不意味着它将在其他目的(例如估算坡度)上表现良好。
whuber

当然,EQUI7不能绝对解决准确估计局部斜率的问题,但与使用上面建议的Mercator投影相比,它可能是一个更优雅的解决方案。最终,如果一个人希望以完美的精度估算坡度,那么唯一的选择可能是(1)使用较小的瓷砖(例如100 x 100 km)重叠10-20%的局部(等距)投影,如在Verdin等。(2007)或(2)使用六边形网格(dggridR包)。
Tom Hengl

问题不在于精度,而是在于产生系统上有偏差的坡度和坡度。由于等距投影的正交方向偏离与大地测量学正交的方向,因此长方体始终是错误的(尽管在所有变形都较低的中心附近,还是相当准确的),并且坡度的误差会随着距离的增加而迅速增大。当然可以使用许多局部投影,但这与您所重视的优雅截然相反。
ub

-2

坡度是上升/运行。计算上升和计算运行,您将得到答案。计算地理坐标之间的距离很简单。与转换为UTM等相比,这将引入更少的重采样错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.