最近拿到一个全国省行政范围,需要将一个个省分别导出成一个shp图层数据用于分配工作,之前总是通过选中某个省要素,然后右键导出。本次数据量有点多,所以找了个简便的方法快速导出,现将操作方法整理如下,希望能帮到更多的同学。
一、数据准备:全国省行政范围
二、软件准备:arcmap桌面软件操作
三、操作步骤:
1、从开始位置找到arcmap软件,双击打开,如下图所示:
2、单击arcmap菜单上的python工具,如下图所示:
3、在弹出的python工具页面输入下面代码,然后回车即可执行程序,程序执行完成后会出现>>>;
... 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、最终结果如下:
注意:
1、row[0]代表的就是shp要素;
2、row[1]表示的是NAME字段,最好确保该字段的唯一性;
3、修改的时候,不需要该row[0] row[1] 只需要改‘NAME’为其他即可;
4、如果NAME字段是数值型,则在输出名称out_name时需要添加str,如果是字符型,则需要将str去掉;
5、代码最好自己手输,因为复制过程中容易有空格导致失败;