在ArcGIS Desktop中对多边形重叠进行计数和栅格化吗?


17

如何获取具有重叠多边形的矢量层并将其转换为栅格,其中每个像元都计算包含该像元的多边形的数量?

我们正在研究1976年至2000年之间的火灾区域的多边形,希望了解每个栅格像元中将包含多少次火灾。

Answers:


22

分三个步骤进行操作:将多边形分成其组成部分,计算重叠部分,然后转换为栅格。这样避免了将每个多边形分别转换为栅格并组合这些栅格的潜在巨大计算成本。

  1. Union(在Geoprocessing菜单中)将多边形分成多个部分。

    不幸的是,每个重叠在输出中都是重复的:覆盖它的每个原始多边形都有一个相同的副本。因此

  2. Dissolve(再次在Geoprocessing菜单中)将合并重叠的部分,前提是您可以找到一种唯一标识它们的方法。通读对话框:到最后,您将可以选择计算“统计”。选择任何可能已标识原始多边形的字段并要求计数。

    在许多情况下,多边形面积和周长的组合将唯一地标识零件。如果没有,则可以在其他字段中添加更多几何属性,例如质心坐标,直到您积累了足够的信息来区分每个特征。

    所得的图层具有每个多边形重叠的一个特征,以及某种计算重叠数目的“计数”字段。

  3. 使用属性的“计数”字段将其转换为栅格。


例如,以下是一些重叠的多边形及其标识,其中显示了属性表:

在此处输入图片说明

在第二步之后,我们为每个重叠区域都有一个记录以及一个可以用来表示重叠量的计数:

在此处输入图片说明

其余的是容易-它只是一个单一的光栅化操作。


此矢量方法也很好用,除了在内存有限的计算机上将其应用于成千上万的具有很多重叠的多边形之外时
cn

@ccn当有更多的多边形比ArcGIS可以处理,分割数据集成部件,它可以处理。输出将是几个栅格,但不是成千上万个,因此可以直接求和。使用的另一个优点Union是,在几乎相同的工作流程下,它可以解决多边形驻留在多个数据集中的情况(这通常是不好的数据库设计,但不幸的是很常见):只需将所有输入数据集一次合并即可。
whuber

@ccn(续),您要提出的要点是:与使用矢量运算(union)然后进行栅格化相比,什么时候对多边形进行栅格化并使用栅格运算合并它们更好?当对要素进行比所需更多的数字化时,矢量运算将陷入困境,使它们具有过多的顶点。在这些极端情况下,栅格方法可能会更好(尽管首先简化多边形可能是更好的选择)。但是,在所有其他情况下,分别光栅化每个多边形将浪费大量的计算机人力。
whuber

1
+1为基于向量的解决方案。从这里来看,刻录周边数据永远不会很大。例如,1984-2010年的整个MTBS烧伤周长数据集(美国包括阿拉斯加)包含约19000个多边形。基于矢量或栅格的方法都可以正常工作。
亚伦

@Aaron谢谢您的观点。要以任何合理的分辨率(例如100m)立即执行连续的USA,例如,您将需要50000列和30000行的栅格,其中包含1,500,000,000个像元。生成19,000个这样的栅格(甚至考虑到内置的压缩​​),然后执行19,000 * 1500000000 =大约300万亿个附加栅格,将需要相当长的时间!相反,如果每个多边形都使用100个顶点(非常详细),则并集涉及1,900,000个顶点,并且是O(n log(n))运算;原则上(但不在ArcGIS:-中),该过程只需不到1秒的时间。
whuber

1

以下帖子有一个类似的问题,您可以找到一个相关的解决方案:从矢量多边形shapefile创建重叠的栅格表面吗?

对于这种计算快速简单的栅格方法,您需要(1)使用ModelBuilder中的按属性选择器和迭代器或脚本工具将重叠的多边形分成单独的图层(对于火灾多边形,按年份划分),(2)转换每个使用MAXIMUM_COMBINED_AREA像元分配的多边形到栅格(确保相同的像元大小捕捉栅格以及该范围)与整个多边形集相同)-使用恒定的字段值(例如,使用年字段或全为1的行)进行转换(再次将ModelBuilder与迭代器或Python脚本配合使用以帮助实现自动化),然后(3)应用以下Spatial Analyst工具:单元统计 -如果每个栅格都有唯一值(例如年),则使用statistics_type VARIETY;如果所有栅格像元值均为1,则使用SUM-确保检查以忽略NoData。

中间栅格(来自先前的转换)可以删除,也可以在后续栅格分析中使用。


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.