给一张表加一个自动编号字段_使用ArcGIS脚本工具将点数据进行排序并编号

   日期:2024-12-27     作者:ira0v       评论:0    移动:http://w.yusign.com/mobile/news/6370.html
核心提示:第一步:打开点要素,在属性表中添加X和Y两个字段。①首先创建工具箱Python脚本的思路主要为:首先规划好该工

第一步:打开点要素,在属性表中添加X和Y两个字段。

①首先创建工具箱

Python脚本的思路主要为

首先规划好该工具需要多少个参数

然后使用arcpy.CopyFeatures_management()将原数据复制一下

再使用arcpy.AddXY_management()将复制得到的数据添加XY两个字段,随后判断一下点排序的大体方向。

这里要注意一下,由于编码问题,当代码有中文字符,需要使用.decode()方法解码中文,不然工具运行时会报错。

if Order == '横向'.decode('UTF-8'):
sortfield = [["POINT_Y", Sort_Y],["POINT_X", Sort_X] ]
elif Order == '纵向'.decode('UTF-8'):
sortfield = [["POINT_X", Sort_X],["POINT_Y", Sort_Y]]

接着用arcpy.AddField_management()添加排序编号字段,使用arcpy.Sort_management(),生成排序后数据

最终使用工具arcpy.CalculateField_management(),将OBJECTID字段值赋给这个字段

python脚本完成所有代码如下

import arcpy
import time
# Script Tool Parameters
InputFeature = arcpy.GetParameterAsText(0)
Order = arcpy.GetParameterAsText(1)
Sort_X = arcpy.GetParameterAsText(2)
Sort_Y = arcpy.GetParameterAsText(3)
OutputFeature = arcpy.GetParameterAsText(4)
tempfea = InputFeature+str(time.time()).split('.')[0][-5:-1]
arcpy.CopyFeatures_management(InputFeature, tempfea)
arcpy.AddXY_management(tempfea)
if Order == '横向'.decode('UTF-8'):
sortfield = [["POINT_Y", Sort_Y],["POINT_X", Sort_X] ]
elif Order == '纵向'.decode('UTF-8'):
sortfield = [["POINT_X", Sort_X],["POINT_Y", Sort_Y]]
arcpy.Sort_management(tempfea,OutputFeature,sortfield)
arcpy.AddField_management(OutputFeature,'order1','DOUBLE')
arcpy.CalculateField_management(OutputFeature, 'order1','!OBJEC

第五步:下一步,添加界面参数,这一步很重要,各个参数属性要逐个填入,分别如下,其中Order、Sort_X、Sort_Y属于list参数。

第六步:对上述的三个参数设置list列表

①点击脚本工具的属性

①打开工具描述

     本文地址:http://w.yusign.com/news/6370.html    述古往 http://w.yusign.com/static/ , 查看更多
 
特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

举报收藏 0打赏 0评论 0
 
更多>同类资讯
0相关评论

相关文章
最新文章
推荐文章
推荐图文
资讯
点击排行
{
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  版权声明  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号