在ArcMap中使用Hillshade选项?


15

这是我使用的栅格的漂亮图片-没有应用任何效果-只是调整了色带和直方图以显示所有浮雕-尽管是以2D方式进行的!

在此处输入图片说明

我有一个栅格图层,要使用默认的hillshade显示。我可以在代码中执行此操作,实际上与在ArcMap中选择Hillshade选项相同(请参见下文):

在此处输入图片说明

但是,当您执行此操作时-看起来很令人失望:

在此处输入图片说明

尤其是如果放大栅格,您会看到各种网格状的人工制品-看起来一点也不好!

在此处输入图片说明

但是,如果我使用带有Spatial Analyst的栅格来创建正确的Hillshade图层,并以85%的透明度对其进行覆盖,则它看起来会非常好并且非常不同!

在此处输入图片说明

  1. 如何在ArcMap中实现此效果并覆盖Hillshade选项的默认功能(我认为这是不可能的,或者我错过了某些设置而导致栅格显示不佳)。如果可以覆盖或选择正确的设置,则可以在ArcObjects中进行。
  2. 如果无法使用选项1,我可以通过创建一个Hillshade图层(不使用Spatial Analyst)来创建效果并将其有效地融合到原始栅格中吗-即,我不希望人们在ArcMap的目录中看到两层。我只想要一层,但是具有默认的我的选择/配置的hillshade渲染。我也需要以编程方式执行此操作,即ArcObjects。

我了解到的一件事是,您必须在正确的空间参考和测量单位中使用DEM,否则生成的山影看起来太黑且过于夸张-请观看视频以了解更多信息-这是一个很好的解释。

因此,我想我现在知道在生成一些高质量的阴影时需要做些什么,但是我认为这将需要一些底层的ArcObjects代码调整。我想我需要提出自己的图形渲染并将其插入ArcMap(我有一个dll,可以很酷的方式渲染网格的位图)。我认为显示此内容的一个好地方是重写IRasterRenderer之类的Draw()事件,并插入我自己的图像渲染。当然,使用重投影等可能会变得有些复杂。

是否有人在ArcMap中完成过这种低级图形渲染?如果可以,您可以提供任何指导或我应该注意的事情吗?


1
我从未做过,但是我觉得您可以使用IRasterRenderer定制如何渲​​染特定的栅格。如果您有两个数据集(山坡+常规),则可以使用IRasterCursor将每个像素混合并绘制在一起。
乔治·席尔瓦

5
对于它的价值,我昨天在ArcMap中尝试了同样的事情,它看起来也很糟糕。
乍得·库珀

@乔治,我认为RasterCursor会更改CELL值-而我想我想更改颜色值-即根据山影值有效地更改其颜色强度-您知道如何逐像素更改特定的RGB值吗?
维达尔2012年

1
看起来“山体阴影效应”是通过首先对高程值进行四舍五入来计算的,这实际上将您的DEM变成了许多小的陡峭梯田。如果正确的话,您不太可能找到解决方案:提交错误报告。您可以通过将网格和山体阴影层分组来解决两层问题。顺便说一句,我相信此选项在版本10中是新增的;指出您使用的是什么版本的ArcMap,将有助于更新标签。
whuber

@Vidar文档指定了用于“优化的光栅访问”的光栅光标。他们还必须能够阅读。
乔治·席尔瓦

Answers:


20

在显示期间使用双线性插值重采样

您可以通过将使用的重采样方法从默认的“最近的邻居”更改为“双线性插值”来稍微改善显示效果。图层属性->“显示”选项卡->使用以下项在显示期间重采样:双线性插值。

此效果与DEM和默认的黑白渐变效果最佳。

当您已经使用2栅格时,您将获得更好的结果和对显示的更多控制。确保在显示期间也使用双线性插值重采样方法。

添加DEM:

在此处输入图片说明

在以下位置切换“使用希尔斯阴影效果”: 在此处输入图片说明

在屏幕上呈现如下: 在此处输入图片说明

将显示期间的重采样更改为双线性插值: 在此处输入图片说明

在屏幕上呈现如下: 在此处输入图片说明


您说的没错-确实消除了网格化的假象-但山顶阴影看起来仍然很糟糕。从某种意义上说,我认为这些工件是一种次要问题-因为这是我真正想钉上的阴影。但是感谢您的回答!
维达尔

10

所描述的方法在飞行中的山影上运行Arcmap既快速又肮脏,决不能替代Spatial Analyst和/或3D Analyst的山影结果。尽管使用相同的术语来描述这两者,但它们根本不相同。

要在没有Spatial Analyst的情况下创建真实的山体阴影,您可以尝试使用GDAL的gdaldem

gdaldem hillshade dem.tif shade.tif

TileMill 地形数据教程很好地概述了如何使用gdaldem来构建具有测压着色的复合山体阴影。
山体阴影和水压合成浮雕的细节

如果实用程序对您的应用程序不够直接,请在此处找到gdaldem的C ++源代码。


1
好东西!尤其喜欢组合结果以及使用Hillshade和坡度的想法。从来没有想过将它们结合在一起。将不得不尝试一下。
Jakub Sisak GeoGraphics 2012年

gdaldem无疑是在ArcGIS上进行某些GIS操作的方式。据我了解,希尔斯海丁无疑是这类行动之一。
GIStack 2012年

1
@jakub,如果您喜欢结合阴影和坡度法的山体阴影的概念,请看一下汤姆·帕特森(Tom Patterson)关于交叉混合的坡度法测量色调利用卫星土地覆盖数据制作自然色图的工作。所讨论的技术旨在克服标准的高度定量着色的局限性,这些缺陷通常是将低海拔高度丰富的绿色与植被以及高海拔棕色/红色与沙漠或贫瘠的土地经常不适当地联系在一起。非常值得阅读和学习。
马特·威尔基

7

如果您要寻找一个需要花费一些时间才能创建的外观漂亮的山体阴影,但是对于大型项目则很有用,因为该项目会产生大量的曝光,您可以尝试使用瑞士山体阴影方法 -它需要3层,但是您可以导出它们到一个地理参考tiff,以节省空间并便于携带。我认为,此方法确实需要Spatial Analyst,因此它并不是OP问题的直接答案,但对其他在ArcGIS中研究山体阴影方法的人可能有用。该方法也适用于其他GIS系统,但是链接的工具箱适用于ArcGIS。

编辑11/2014: Esri最近发布了用于创建Hillshades的新工具。它看起来非常漂亮,应该与Asker的工作流程融合在一起。他们在这里介绍了它,您可以在此处下载代码和安装说明


我最近使用过几次。非常好。添加到我的绝招中。感谢分享。
Kstoney,2012年

没问题-很高兴您发现它有用。它肯定使山丘更好,而且我喜欢我可以保持层次不变,只是更改dem的颜色以强调所有内容而有所不同
nicksan 2012年

1
谢谢你 此外,在10.1中,栅格着色器(blogs.esri.com/esri/apl/2013/05/02/…)大大改善了对栅格显示的控制,并允许您创建漂亮的山体阴影。
SoilSciGuy

4

当您在项目#2中说“我是否可以通过创建Hillshade图层(不使用Spatial Analyst)来创建我的效果”时,是否表示要创建Hillshade的其他应用程序?

如果要在Spatial Analyst之外使用应用程序,我最近才了解(但从未使用过)“ SEXTANTE for ArcGIS扩展 ”(免费),它允许用户在ArcMap中使用SEXTANTE工具。如果观看此视频剪辑,您会看到它们演示了创建山体阴影的方法。


并非如此-我只想应用自己的阴影技术而不使用ESRI。我在开头的帖子中添加了额外的评论。
维达尔2012年

4

我总是被指示在做山体阴影时增加z过度消耗。
我刚刚在我的机器上尝试了100次,这似乎有些极端。
同样,更改拉伸类型也会使山体阴影的外观发生很大变化。
由于您正在谈论外观,因此您可能还会查看此帮助项目。 esir help
其中说,在显示像素分辨率下应用了阴影法。
并更改照明角度
Esri帮助
同时更改方向和对比度

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.