分析两个shapefile之间的差异以将结果放入新的shapefile中?


9

我有两个来自不同年份(1985年和1997年)的相同区域的多边形shapefile,我需要分析两个shapefile之间的差异,导致第三个多边形shapefile仅显示差异。

shapefile覆盖具有建筑物,公园,密封/未密封区域和水域的市区区域。例如,我需要找出建筑物是否已拆除/建造,公园是否被移动或关闭或类似的事情。形状之间的任何差异。

我需要输出在第三个新的shapefile中。是否有自动化的方法来实现这一目标?

我正在使用ArcGIS 10.1中的专有文件地理数据库,因此我更喜欢ArcGIS中的解决方案。但是,如果在QGIS中有一种简便的方法,我也欢迎它。

我以为可以在ArcGIS中进行拓扑分析,但是我不太确定例如如何按属性比较形状:每个形状在属性表中都有一个“类型”字段,我不仅需要比较形状但是多边形的类型。

注意,使用ArcGIS for Desktop查找shapefile之间的差异吗?听起来很相似,但我正在寻找多边形形状文件格式的输出。

这是对矢量数据的更改检测过程(无遥感问题)。这个答案有一些不错的评论,但根本没有解决方案。


1
当您说差异时,您是指几何形状,属性还是两者都有差异?这是一个变更检测过程吗?
瑞安·加内特

是的,这是一个更改检测过程。首先,我需要更改几何形状,其次,我需要更改属性。但是几何形状更为重要,因为应该以某种方式可视化输出。
2013年

Answers:


2

虽然我认为Ryan的答案是最合理做法,但是您可以将两个要素类都用作输入来使用相交地理处理工具。

您获得的输出将包含来自两个输入的属性。您可以检查两个“类型”字段中具有不同值的特征。

此过程有一些限制:

  • 首先,相交工具就像所有过度的工具一样,只能在有限数量的顶点上运行。如果数据中的顶点过多,则必须平铺数据并分阶段运行该过程。

  • 您将在输出中找到许多条状多边形。

  • 这要求要素类完全覆盖您感兴趣的领域,并且没有空白。


这可以完成工作,谢谢!这是一个非常基本的解决方案,但是我可以配合使用。
2013年

6

有几种方法可以做到这一点。过去,通过结合使用属性和栅格处理,我已经取得了不错的成绩。该过程的前提是为每个要素分配n值(1、2、4、8、16、32、64等)。分配这些值可确保当您从第2层(1997)中减去第1层(1985)时,您将获得一个唯一值,该值标识了它所更改的内容。例如,如果1 =建筑物,2 =公园,4 =密封/未密封且8 =水;通过减去这些值,无法获得相同的值。添加此值列时,您将要使用ArcGIS或QGIS将多边形转换为栅格。我建议您将栅格像素大小设置为较小的值(即:如果数据是从Quickbird影像中收集的,则将其设置为Quickbird影像的像素大小)。使用栅格计算器(在ArcGIS或QGIS中)从Layer1中减去Laye​​r2。这将导致将Layer3更改为layer。您可以将此数据转换回多边形图层,以进行进一步的GIS分析。如果您需要更多信息或详细信息,我可以与您分享更多信息。


这是一种非常不错的方法,但是我不会将形状转换为栅格数据,否则会丢失太多信息。仅用矢量层就能实现吗?
2013年

您可以对向量进行类似的操作,但不使用值方法。您可能要使用ArcGIS和QGIS中提供的“对称差异”工具。我没有意识到模仿我概述的方法的基于向量的方法。
瑞安·加内特

像这里描述的approache让我想起了使用按位运算的blog.millermedeiros.com/...
geogeek

ARCGIS 9.2是否具有对称差异工具。我找不到 哪个版本的ARCGIS可用于此对称差异分析?
Bandrush Barda

我相信您需要ArcInfo许可证。如果您没有该许可证类型,则可以下载ETGeoWizards。“对称差异”是“地理处理”选项卡中的可用工具。QGIS在矢量工具中也具有对称差异,这是免费的。
瑞安·加内特

0

要在ArcGIS中进行变化检测,请使用两个多边形文件中的叠加操作(UNION)。这样,您便获得了显示更改细节的过渡矩阵(可能在土地覆被中)。


我认为这只是公认答案的一种变体,但说明不那么详细。同样,尽管“联合”和“相交”都是多边形叠加操作,但在这种情况下,我将使用“相交”来最小化输出和任何中间数据集的大小。
PolyGeo
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.