Arcgis 数据叠加前后面积不一致情况检查和解决办法

主要是以下几类情况:

   1、存在拓扑错误   →→→ “面重叠”
   
   2、存在弧段→→→“CAD数据 或者arcgis 贝塞尔曲线”
   
   3、数据问题→→→ “存在无效图形”*
   
   4、坐标系 →→→ “数据定义坐标系与数据节点坐标不一致”

解决办法

1、 拓扑问题
重叠面处理方法: 单个图层的点、线、面查找办法很多

     方法一  拓扑 -- 将数据导入文件地理数据库(.gdb )—创建数据集—构建拓扑(不能有面重叠)
   
     方法二  相交 --单个图层输入相加 --输出结果即是图层内的重叠部分

面重叠处理办法:

     *建议先把面的 M值 、Z值去除后处理在进行处理*
     
     *不需要面属性:*可以采用融合工具(arcpy.management.Dissolve)不勾选多部件选项,输出数据即不重叠。
     
     *需要面属性:*先用融合工具(arcpy.management.Dissolve)把原要素面转线 转点(点保留属性_勾选位于面内) ,把融合后的面按线要素分割,最后空间连接点属性(空间连接也可选择按照条件赋值)
     处理后检查面是否还存在重叠。

2、存在弧段
弧段检查方法

    弧段来源一般 是CAD数据或arcgis 光滑曲线导致  该类型会导致面积计算不准确 建库时椭球面积计算的误差也会非常大 (!shape.geodesicarea!、!shape.geodesiclength!),如果擦除弧段有可能导致面积不拟合


    
    方法一  转shp 格式,(.shp格式不存在弧段),原图斑擦除shp格式转回的图斑产生的弧段图斑 
   
    方法二   先转WKT坐标 格式,然后按照WKT格式转回矢量 ,原图斑擦除WKT格式转回图斑后的弧段图斑 (wkt可以在数据库里面操作)
    
    方法三   !shape.geodesicarea! 计算的面积与 !shape.area! 计算的面积相差较大(一般误差为1以内) , !shape.geodesicarea! -!shape.area!  大于1的就可能存在弧段   

 无论怎样处理办法,在格式转换过程中必须注意数据精度(如: 容差 arcpy.env.XYTolerance=XXXX米  、分辨率arcpy.env.XYResolution= XXXXX米 要一致)

弧段处理方法

    a.将数据转换为shp 、wkt 、vct 、txt 格式  →    转回矢量   (这个方法会丢失图形范围)
    
    b.计算椭球面积时候 先进行节点增密处理(增密工具) (这个方法导致节点过密)

3、无效图形→→→ “存在无效图形”

 修复几何 (修复时设置的环境精度要高于要素精度)若Arcgis 无法修复可以转Qgis修复和优化

4、坐标系 →→→ “数据定义坐标系与数据节点坐标不一致

 更改要素坐标系
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐