arcgis中怎么根据面积大小进行破图斑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了arcgis中怎么根据面积大小进行破图斑相关的知识,希望对你有一定的参考价值。
参考技术A toolbox中的Eliminate工具往往不能满足要求 一般对小图斑合并的原则为 1、优先合并到相同地类中2、如果相邻地类找不到相同地类,优先合并到大类中 3、如果大类也找不到,合并到相邻地类
现在针对第一部来给出arcgis desktop的解决方法 由于采用的toolbox工具教多 采用model来做 思路如下:
1、先用select选出来面积小于600的A和大于等于600的B
2、用A来spatialjoin B,添加两个字段F1和F2,分别对一个唯一值字段和DLDM求join 3、对求出来的判断地类代码是否F2字段中存在,如果存在,把对应位置的F1里的id赋给一个字段
4、然后合并A和B,用Dissolve融合
ArcGIS消除图斑重叠错误
在生产中,经常会遇见有图斑重叠这种拓扑错误的矢量,大部分情况下,需要人工比对影像处理。但是如果只需要用到这些矢量的形状、面积,可以在ArcMap中用以下方法,快速消除图斑重叠错误,不必手工处理。
如下图所示,两个图斑存在重叠部分。
首先,使用 Intersect 工具,得到矢量所有相交部分,这时,相交结果矢量里,每一个图斑都有一个或以上形状完全相同的图斑存在。然后,使用 Delete Identical 工具,删除形状相同的其他图斑,删除结果就是矢量里所有相交的部分。
最后,使用 Update 工具,将删除结果更新到源矢量里,这样就将所有重叠部分独立出来,成为单独的图斑。
把这些步骤,写入脚本保存。
# coding:utf-8
import os
import arcpy
def GetNewFileName(dir, baseName):
for i in range(1, 100):
if not os.path.exists(os.path.join(dir, baseName + str(i))):
return os.path.join(dir, baseName + str(i))
return os.path.join(dir, baseName)
overlapedShp = arcpy.GetParameterAsText(0)
resultShp = arcpy.GetParameterAsText(1)
resultDir = os.path.split(resultShp)[0]
intersectedShp = GetNewFileName(resultDir, \'temp\') + \'.shp\'
arcpy.Intersect_analysis([overlapedShp], intersectedShp)
arcpy.DeleteIdentical_management(intersectedShp, [\'shape\'])
arcpy.Update_analysis(overlapedShp, intersectedShp, resultShp)
arcpy.Delete_management(intersectedShp)
以上是关于arcgis中怎么根据面积大小进行破图斑的主要内容,如果未能解决你的问题,请参考以下文章