通过ArcGis(arcpy)按属性字段进行分割(一个shp变为多个shp)

       最近拿到一个全国省行政范围,需要将一个个省分别导出成一个shp图层数据用于分配工作,之前总是通过选中某个省要素,然后右键导出。本次数据量有点多,所以找了个简便的方法快速导出,现将操作方法整理如下,希望能帮到更多的同学。

 

一、数据准备:全国省行政范围

二、软件准备:arcmap桌面软件操作

三、操作步骤

1、从开始位置找到arcmap软件,双击打开,如下图所示:

b5f42196374b1308e06375f68e12e059.png

2、单击arcmap菜单上的python工具,如下图所示:

12c994e8ece0804201ba5f191709b5e2.png

 

3、在弹出的python工具页面输入下面代码,然后回车即可执行程序,程序执行完成后会出现>>>;

5e99f27d6fd6d73398e399a3a03161df.png

... import arcpy

... import os

... from arcpy import env

... shp ="C:/Users/admin/Desktop/0125/省界面.shp" #要处理的shp文件路径

... out_path="C:/Users/admin/Desktop/0125/aa"#输出文件夹的路径

... with arcpy.da.SearchCursor(shp, ["SHAPE@",'NAME']) as cursor:

... #SHAPE@指代单个要素,NAME是一个字段,该字段也是我们想要作为每个shp命名的值,也可以改为其他的字段

...     for row in cursor:

...     out_name=str(row[1])+'.shp'#输出文件名 确保均为字符串类型,注意命名是唯一的,这样就能将该shp数据中的所有要素都导出,本次测试数据字段为文本型,需要将str去掉

...     arcpy.FeatureClassToFeatureClass_conversion (row[0],out_path,out_name)

4、最终结果如下:

9c0f8df7757bb1c1c705821dcc728717.png

注意:

1、row[0]代表的就是shp要素;

2、row[1]表示的是NAME字段,最好确保该字段的唯一性;

3、修改的时候,不需要该row[0] row[1] 只需要改NAME为其他即可;

4、如果NAME字段是数值型,则在输出名称out_name时需要添加str,如果是字符型,则需要将str去掉;

5、代码最好自己手输,因为复制过程中容易有空格导致失败;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陆杨0321

你的鼓励将是我努力的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值