日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發(fā)布時間:2024/4/19 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arcgis怎么用python重新排序,使用ArcGIS脚本工具将点数据进行排序并编号 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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

今天我們就來分享使用ArcGIS腳本工具將點數(shù)據(jù)進行排序并編號,文末我們會附上點數(shù)據(jù)和直接使用的腳本工具。

我們先來看一下我們要達到的效果圖:

2.webp.jpg (18.93 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

詳細步驟:

第一步:打開點要素,在屬性表中添加X和Y兩個字段。

3.webp.jpg (102.42 KB, 下載次數(shù): 1)

2019-6-28 17:07 上傳

第二步:使用sort工具,將X和Y字段作為排序字段,生成排序后的點數(shù)據(jù)。

4.webp.jpg (47.67 KB, 下載次數(shù): 2)

2019-6-28 17:07 上傳

第三步:添加一個排序結果字段,將OBJECTID字段值賦給這個字段。

5.webp.jpg (100.74 KB, 下載次數(shù): 3)

2019-6-28 17:07 上傳

第四步:創(chuàng)建腳本工具

①首先創(chuàng)建工具箱

6.webp.jpg (24.87 KB, 下載次數(shù): 1)

2019-6-28 17:07 上傳

②添加腳本

7.webp.jpg (52.46 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

③打開腳本工具創(chuàng)建向導,填寫信息

8.webp.jpg (31.02 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

④添加Python腳本,加載已經(jīng)寫好的Python文件(*.py格式)

Python腳本的思路主要為:

首先規(guī)劃好該工具需要多少個參數(shù);# 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()將原數(shù)據(jù)復制一下;

再使用arcpy.AddXY_management()將復制得到的數(shù)據(jù)添加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(),生成排序后數(shù)據(jù);

最終使用工具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

第五步:下一步,添加界面參數(shù),這一步很重要,各個參數(shù)屬性要逐個填入,分別如下,其中Order、Sort_X、Sort_Y屬于list參數(shù)。

9.webp.jpg (34.55 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

10.webp.jpg (49.63 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

11.webp.jpg (40.54 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

設置完成后,點擊finish,腳步工具創(chuàng)建完成!

第六步:對上述的三個參數(shù)設置list列表

①點擊腳本工具的屬性

12.webp.jpg (27.49 KB, 下載次數(shù): 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"]

13.webp.jpg (75.92 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

至此,ArcGIS的點排序編號腳本工具基本完成,為了方便別人使用,可以添加描述等輔助。

①打開工具描述

14.webp.jpg (26.47 KB, 下載次數(shù): 1)

2019-6-28 17:07 上傳

②編輯工具信息

15.webp.jpg (19.5 KB, 下載次數(shù): 0)

2019-6-28 17:07 上傳

體驗一下該工具:

16.webp.jpg (26.22 KB, 下載次數(shù): 1)

2019-6-28 17:07 上傳

工具界面

查看結果編號:

17.webp.jpg (46.21 KB, 下載次數(shù): 0)

2019-6-28 17:12 上傳

工具結果

18.webp.jpg (30.18 KB, 下載次數(shù): 0)

2019-6-28 17:10 上傳

編號結果

提取碼:2fkt

總結

以上是生活随笔為你收集整理的arcgis怎么用python重新排序,使用ArcGIS脚本工具将点数据进行排序并编号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。