1、把压缩包解压缩,把里边的文件放到合适的位置。
2、在arcgis“目录”里点击“连接到文件夹”,将脚本工具所在的文件夹连接到目录里。
3、右击“批量添加坐标系”点击“属性”,进行属性修改。
4、点击“源”,找到之前解压的.py文件添加进来,点击“确认”,完成工具添加。
双击工具,显示操作页面,添加需要添加坐标系的要素类,选择所添加的坐标系,点击确定,完成要素类批量添加坐标系。
#Script to Import data to a feature class within a geodatabase
import arcpy, os,sys
reload(sys)
sys.setdefaultencoding('utf-8')
inputs=arcpy.GetParameterAsText(0)
coor_system=arcpy.GetParameterAsText(1)
inputlist = inputs.split(';')
for input in inputlist:
arcpy.DefineProjection_management(input, coor_system)
所用到的字段文本编辑格式为
字段名、字段别名(可选)、字段类型、字段长度(可选)、字段中可储存的数字位数(可选)、字段中储存的小数点位数(可选)。中间用英文逗号隔开,(可选)的在不需要时不用写上。
如:
FCODE,TEXT,50,
FSCALE,LONG,
USOURCE,TEXT,50,
UPDATETIME,TEXT,50,
UPDATESTATUS,TEXT,1,
status,TEXT,1,
字段类型有TEXT(文本)、FLOAT(单精度浮点)、DOUBLE(双精度浮点)、SHORT(短整型)、LONG(长整型)、DATE(日期)、BLOB(影像或多媒体)、RASTER(栅格影像)、GUID(GUID values),根据需要进行选择。
#Script to Import data to a feature class within a geodatabase
import arcpy, os,sys
reload(sys)
sys.setdefaultencoding('utf-8')
inputs=arcpy.GetParameterAsText(0)
inputlist = inputs.split(';')
for input in inputlist:
#arcpy.env.workspace = os.path.split(input)[0]
#arcpy.env.workspace = input
f=open(arcpy.GetParameterAsText(1),"r")
#lines=f.readlines()
line=f.readline()
#for line in lines:
while line:
lineList=line.split(',')
#add field
arcpy.AddField_management(input,field_name=lineList[0],field_alias=lineList[1],field_type=lineList[2],field_length=lineList[3],field_precision=lineList[4],field_scale=lineList[5].replace("\n",""))
line=f.readline()
#close the txt file
f.close()
所用到的更新字段文本编辑格式为
更新字段名,更新值,中间用英文逗号隔开。
如:
UPDATESTATUS,B
status,B
#Script to Import data to a feature class within a geodatabase
import arcpy, os,sys
reload(sys)
sys.setdefaultencoding('utf-8')
inputs=arcpy.GetParameterAsText(0)
f=open(arcpy.GetParameterAsText(1),"r")
lines=f.readlines()
inputlist = inputs.split(';')
for input in inputlist:
cursor = arcpy.UpdateCursor(input)
for my_row in cursor:
for line in lines:
lineList=line.split(',')
my_row.setValue(lineList[0],lineList[1].replace("\n",""))#####14
cursor.updateRow(my_row)
del my_row
#close the txt file
del cursor
f.close()
其中连接字段为字段名中间用英文分号隔开
如:
省代码;温编码
此脚本使用中可能会遇到“没有OID”的问题,原因是为连接的表中没有OBJECTID这一列,此字段为软件自动生成的,无法认为修改,通过将表格导入到gdb中,得到的表自动带有OBJECTID,此脚本便可正常使用。
#Script to Import data to a feature class within a geodatabase
import arcpy, os,sys
reload(sys)
sys.setdefaultencoding('utf-8')
inputs=arcpy.GetParameterAsText(0)
joinTable=arcpy.GetParameterAsText(1)
joinFieldA=arcpy.GetParameterAsText(2)
joinFieldB=arcpy.GetParameterAsText(3)
inputfields=arcpy.GetParameterAsText(4)
fieldList = inputfields.split(';')
#fieldList[-1]=fieldList[-1].replace("\n","")
inputlist = inputs.split(';')#13
for input in inputlist:
inputsfields=arcpy.JoinField_management (input, joinFieldA, joinTable, joinFieldB, fieldList)
以上所有工具已上传至基于arcpy开发的arcgis工具,欢迎有兴趣的朋友参考学习。
网盘链接
提取码:c6w8
ArcPy批量化入门篇
ArcGIS Python编程案例-创建自定义地理处理工具
ArcPy批量选择指定属性的要素
ArcGIS使用Python脚本工具
ArcGis Python脚本——批量添加字段
使用arcpy进行批量的空间连接