arcgis怎么用python重新排序,使用ArcGIS脚本工具将点数据进行排序并编号

本帖最后由 大栗子 于 2019-6-28 17:21 编辑

今天我们就来分享使用ArcGIS脚本工具将点数据进行排序并编号,文末我们会附上点数据和直接使用的脚本工具。

我们先来看一下我们要达到的效果图:

57a225460eba4e1e138e5012f7b61c5c.gif

2.webp.jpg (18.93 KB, 下载次数: 0)

2019-6-28 17:07 上传

详细步骤:

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

57a225460eba4e1e138e5012f7b61c5c.gif

3.webp.jpg (102.42 KB, 下载次数: 1)

2019-6-28 17:07 上传

第二步:使用sort工具,将X和Y字段作为排序字段,生成排序后的点数据。

57a225460eba4e1e138e5012f7b61c5c.gif

4.webp.jpg (47.67 KB, 下载次数: 2)

2019-6-28 17:07 上传

第三步:添加一个排序结果字段,将OBJECTID字段值赋给这个字段。

57a225460eba4e1e138e5012f7b61c5c.gif

5.webp.jpg (100.74 KB, 下载次数: 3)

2019-6-28 17:07 上传

第四步:创建脚本工具

①首先创建工具箱

57a225460eba4e1e138e5012f7b61c5c.gif

6.webp.jpg (24.87 KB, 下载次数: 1)

2019-6-28 17:07 上传

②添加脚本

57a225460eba4e1e138e5012f7b61c5c.gif

7.webp.jpg (52.46 KB, 下载次数: 0)

2019-6-28 17:07 上传

③打开脚本工具创建向导,填写信息

57a225460eba4e1e138e5012f7b61c5c.gif

8.webp.jpg (31.02 KB, 下载次数: 0)

2019-6-28 17:07 上传

④添加Python脚本,加载已经写好的Python文件(*.py格式)

Python脚本的思路主要为:

首先规划好该工具需要多少个参数;# 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)

然后使用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参数。

57a225460eba4e1e138e5012f7b61c5c.gif

9.webp.jpg (34.55 KB, 下载次数: 0)

2019-6-28 17:07 上传

57a225460eba4e1e138e5012f7b61c5c.gif

10.webp.jpg (49.63 KB, 下载次数: 0)

2019-6-28 17:07 上传

57a225460eba4e1e138e5012f7b61c5c.gif

11.webp.jpg (40.54 KB, 下载次数: 0)

2019-6-28 17:07 上传

设置完成后,点击finish,脚步工具创建完成!

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

①点击脚本工具的属性

57a225460eba4e1e138e5012f7b61c5c.gif

12.webp.jpg (27.49 KB, 下载次数: 0)

2019-6-28 17:07 上传

②切换至验证选项卡(Validation),点击Edit,编辑验证代码,添加如下3行代码

self.params[1].filter.list = ['横向','纵向']

self.params[2].filter.list = ["ASCENDING","DESCENDING"]

self.params[3].filter.list = ["ASCENDING","DESCENDING"]

57a225460eba4e1e138e5012f7b61c5c.gif

13.webp.jpg (75.92 KB, 下载次数: 0)

2019-6-28 17:07 上传

至此,ArcGIS的点排序编号脚本工具基本完成,为了方便别人使用,可以添加描述等辅助。

①打开工具描述

57a225460eba4e1e138e5012f7b61c5c.gif

14.webp.jpg (26.47 KB, 下载次数: 1)

2019-6-28 17:07 上传

②编辑工具信息

57a225460eba4e1e138e5012f7b61c5c.gif

15.webp.jpg (19.5 KB, 下载次数: 0)

2019-6-28 17:07 上传

体验一下该工具:

57a225460eba4e1e138e5012f7b61c5c.gif

16.webp.jpg (26.22 KB, 下载次数: 1)

2019-6-28 17:07 上传

工具界面

查看结果编号:

57a225460eba4e1e138e5012f7b61c5c.gif

17.webp.jpg (46.21 KB, 下载次数: 0)

2019-6-28 17:12 上传

工具结果

57a225460eba4e1e138e5012f7b61c5c.gif

18.webp.jpg (30.18 KB, 下载次数: 0)

2019-6-28 17:10 上传

编号结果

提取码:2fkt

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ArcGIS中的Python脚本可以用于自动化地执行地理处理任务、数据管理和地图制作等操作。通过Python脚本,用户可以快速地批量处理数据、生成地图和报告等,提高工作效率。 在ArcGIS中,用户可以使用Python窗口或Python IDE来编写和运行Python脚本Python窗口是ArcGIS自带的一个交互式Python环境,用户可以在其中输入Python代码并直接执行。Python IDE则是一个独立的Python开发环境,用户可以在其中编写、调试和运行Python脚本。 在编写Python脚本时,用户需要了解ArcPy模块,它是ArcGIS中的Python库,提供了许多与地理处理相关的函数和类。用户可以使用ArcPy模块中的函数和类来完成各种地理处理任务,如数据导入、空间分析、地图制作等。 总之,ArcGIS中的Python脚本是一个非常强大的工具,可以帮助用户快速地完成各种地理处理任务,提高工作效率和数据分析能力。 ### 回答2: ArcGIS是一款常用的地理信息系统软件,而Python是一种具有简单易学、高效率、优美易读等特点的计算机编程语言。在ArcGIS中,Python脚本可以被用来操作和自动化地理数据的处理、分析和可视化,大大提高了处理数据的效率和精度,因此Python的应用在ArcGIS中变得越来越广泛。接下来,我将探讨ArcGISPython脚本使用方法。 首先,在ArcGIS软件中使用Python脚本需要先打开Python窗口,可以通过“自定义工具栏”中的“Python”来打开。在Python窗口中,可以输入各种Python脚本语句,来完成各种处理和分析工作。 其次,Python脚本ArcGIS中的应用范围非常广泛,可以用来进行地图绘制、数据处理、空间分析等多种应用。例如,可以利用Python脚本自动化地对地图进行布局与标注,自动对数据进行分析、统计,并将处理结果输出到不同的文件中,并用Python脚本进行计算和空间分析,以支持更高级的空间决策。 另外,Python脚本ArcGIS中还可以通过调用ArcPy库来使用更多的ArcGIS工具和函数,比如数据转换工具、批量处理工具、模型工具和地理处理工具,等等。可以通过掌握Python脚本和ArcPy库的使用,来更好地利用ArcGIS进行各种地理数据分析与处理。 总的来说,Python脚本ArcGIS中的运用可以大大节约时间和精力,提高数据分析的精度和效率,同时还可以实现复杂的数据分析与处理。但是需要注意的是,在使用Python脚本的过程中要注意脚本的正确性和稳定性,以此来保证程序的正确性和运行的稳定性,从而更好地进行各项工作。 ### 回答3: Python是一种非常流行的编程语言,可用于编写ArcGIS软件中的脚本。这些脚本可以减少处理地理空间数据的时间和工作量,使工作人员能够更快地完成工作。那么,ArcGIS软件中Python脚本使用是如何实现的呢? 首先,ArcGIS软件中的Python脚本可以在ArcToolbox中使用。在ArcToolbox中,可以选择“Python脚本工具”,打开Python脚本编辑器,输入Python代码并执行脚本。这些脚本可以用于处理数据、执行地理处理和创建地理数据。此外,在Python脚本编辑器中,还可以查看脚本的执行结果和错误信息。 其次,ArcGIS软件中的Python脚本还可以直接在ArcMap中使用。在ArcMap中,可以打开Python窗口,输入Python代码并执行脚本。这些脚本可以用于执行各种操作,如更改地图显示、添加图层、查询和选择要素等。 最后,ArcGIS软件中的Python脚本还可以与其他软件集成使用。例如,可以使用Python脚本连接到数据库,从网络上下载数据,将数据导入到ArcGIS中等等。这些脚本可以大大简化数据处理工作,提高效率。 总之,ArcGIS软件中Python脚本使用提供了一个方便、快捷、高效的地理处理工具,可以帮助工作人员更好地管理和分析地理数据。它不仅可以自动化各种操作,还可以扩展ArcGIS功能,通过与其他软件集成,使地理处理变得更加灵活和丰富。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值