基于arcpy开发arcgis工具

基于arcpy开发arcgis工具

  • 1.添加工具
  • 2.使用方法
    • 2.1批量添加坐标系脚本
      • 工具简介
      • 工具源码
    • 2.2批量添加字段脚本
      • 工具简介
      • 工具源码
    • 2.3更新属性表脚本
      • 工具简介
      • 工具源码
    • 2.4批量连接表脚本
      • 工具简介
      • 工具源码
  • 3.工具分享
  • 4.参考

1.添加工具

1、把压缩包解压缩,把里边的文件放到合适的位置。
2、在arcgis“目录”里点击“连接到文件夹”,将脚本工具所在的文件夹连接到目录里。
基于arcpy开发arcgis工具_第1张图片
3、右击“批量添加坐标系”点击“属性”,进行属性修改。
图二
4、点击“源”,找到之前解压的.py文件添加进来,点击“确认”,完成工具添加。
基于arcpy开发arcgis工具_第2张图片

2.使用方法

2.1批量添加坐标系脚本

工具简介

双击工具,显示操作页面,添加需要添加坐标系的要素类,选择所添加的坐标系,点击确定,完成要素类批量添加坐标系。
基于arcpy开发arcgis工具_第3张图片

工具源码

#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)

2.2批量添加字段脚本

工具简介

所用到的字段文本编辑格式为
字段名、字段别名(可选)、字段类型、字段长度(可选)、字段中可储存的数字位数(可选)、字段中储存的小数点位数(可选)。中间用英文逗号隔开,(可选)的在不需要时不用写上。
如:
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()

2.3更新属性表脚本

工具简介

所用到的更新字段文本编辑格式为
更新字段名,更新值,中间用英文逗号隔开。
如:
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()

2.4批量连接表脚本

工具简介

其中连接字段为字段名中间用英文分号隔开
如:
省代码;温编码
此脚本使用中可能会遇到“没有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)

3.工具分享

以上所有工具已上传至基于arcpy开发的arcgis工具,欢迎有兴趣的朋友参考学习。
网盘链接
提取码:c6w8

4.参考

ArcPy批量化入门篇
ArcGIS Python编程案例-创建自定义地理处理工具
ArcPy批量选择指定属性的要素
ArcGIS使用Python脚本工具
ArcGis Python脚本——批量添加字段
使用arcpy进行批量的空间连接

你可能感兴趣的:(GIS,arcgis,python)