ArcGIS常用实例之——拆分多部件要素与合并多部件要素

在ArcGIS中,频繁遇到的特殊情况,包括将多要素误识别为单个要素,或是单个要素在选择操作时看似与周围多个要素相连。这种情况通常源于几方面的原因,包括数据精度问题、拓扑错误、 symbology(符号系统)设置不当,或者是图层选择设置的混淆,所以我们需要手动来处理这些问题。

拆分多部件要素

问题一:多部件要素被识别成单一要素,即选择一个区域时,其他不相关区域也同时被选中,并在属性表显示为一条数据,如图以禾山街道为例,只有一个FID,但是关联了多个要素;

右键图层开始编辑——>编辑器——>更多编辑工具——>高级编辑;

点击高级编辑——>拆分多部件要素;

可以发现原有的禾山街道被拆分成多个,然后就可以删除或者更改其他不需要的部分了。

合并多部件要素

既然有拆分需求,自然有合并需求,所以仍然以禾山街道及其邻居金山街道为例;

点击编辑器——>合并;

选择要合并的街道,这里把金山街道合并到禾山街道里面;

然后禾山街道就变成一整块了,这里主要是讲述合并的操作步骤;

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。

好的,我了解了你的问题。你想要编写一个 ArcGIS Python 脚本,能够根据要素类(shp)的一个字段内容,将这个要素拆分成多个要素类,对吗? 那么,你可以按照以下步骤来编写这个脚本: 1. 首先,导入必要的 Python 模块和 ArcGIS 模块,包括 arcpy 和 os 模块。 ``` import arcpy import os ``` 2. 定义输入要素类的路径和字段名称。 ``` in_fc = r"path/to/input/feature/class.shp" split_field = "field_name" ``` 3. 使用 arcpy.da.SearchCursor 函数遍历要素类中的每个要素,并根据指定字段的值创建一个字典,其中键为字段值,值为要素类中包含该字段值的所有要素的列表。 ``` split_dict = {} with arcpy.da.SearchCursor(in_fc, [split_field]) as cursor: for row in cursor: if row[0] not in split_dict: split_dict[row[0]] = [] split_dict[row[0]].append(row) ``` 4. 遍历字典中的每个键值对,使用 arcpy.CopyFeatures_management 函数将包含每个键值对所对应字段值的所有要素复制到一个新的要素类中。 ``` out_folder = r"path/to/output/folder" for value, rows in split_dict.items(): out_name = "split_" + str(value) + ".shp" out_path = os.path.join(out_folder, out_name) arcpy.CopyFeatures_management(rows, out_path) ``` 5. 完整的代码如下所示: ``` import arcpy import os in_fc = r"path/to/input/feature/class.shp" split_field = "field_name" out_folder = r"path/to/output/folder" split_dict = {} with arcpy.da.SearchCursor(in_fc, [split_field]) as cursor: for row in cursor: if row[0] not in split_dict: split_dict[row[0]] = [] split_dict[row[0]].append(row) for value, rows in split_dict.items(): out_name = "split_" + str(value) + ".shp" out_path = os.path.join(out_folder, out_name) arcpy.CopyFeatures_management(rows, out_path) ``` 这个脚本将会根据输入要素类的指定字段值,将要素拆分成多个要素类,并将这些要素类保存到指定的输出文件夹中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图说交通

买猫粮,楼下的流浪猫在等我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值