如何修复shapefile的拓扑?


9

我使用ENVI EX进行了基于对象的图像分析,并将每个分类特征导出为shapefile。我将这些shapefile转移到ArcMap 10中,并尝试将它们与从GeoBase获得的相同区域的其他shapefile相交。

当我尝试运行相交工具时,收到一条错误消息,指出从ENVI EX提取的shapefile的拓扑无效。我试图打开拓扑工具来修复这些shapefile的拓扑,但是按钮显示为灰色,我似乎无法单击它们。拓扑工具不适用于我拥有的任何shapefile。

有什么办法吗?如何修复拓扑并运行相交?

Answers:


12

多边形也遇到类似的问题。也许您有类似的问题。

ESRI错误消息:“无效的拓扑(不完整的空多边形)”

实际错误:“无效的几何”

固定:运行“修复几何体”(就地更改数据,请注意,没有撤消操作)

发生的结果是报告的错误没有使用ESRI拓扑/几何术语,并且使所有人感到困惑。就我而言,虽然错误是在谈论拓扑,但是没有定义拓扑(如ESRI拓扑中的拓扑)。但是,当我检查几何图形(使用“检查几何图形”工具)时,发现我的几何图形(如ESRI几何图形)存在错误。


4

万一ArcMap无法正常工作,您可能需要尝试GRASS的v.clean工具。您可以将GRASS与QGIS一起安装。安装后:

使用GRASS Toolbox清理SHAPE文件的拓扑

  1. 将SHAPE文件加载到QGIS中
  2. 使用现有的GRASS地图集(或创建一个新的地图集)以及匹配的投影设置
  3. 现在,您必须使用工具箱->文件管理->导入GRASS->导入矢量到GRASS->从QGIS视图(v.in.ogr.qgis)导入矢量将SHAPE文件从QGIS传输到GRASS。根据您的SHAPE文件的质量,可能会报告一些拓扑问题。
  4. 现在,我们可以使用拓扑工具通过工具箱在GRASS中解决以下拓扑问题:矢量->开发地图->用于清理矢量地图拓扑的工具集-> v.clean.break。以地图单位定义阈值(例如0.5 [m]或类似值)。分析打印的报告,可能需要调整阈值或使用其他拓扑清除工具。然后单击查看输出以将结果显示为地图。
  5. 将清理后的地图导出为SHAPE格式:文件管理->从GRASS导出->从GRASS导出矢量-> v.out.ogr
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.