ArcGis Python腳本——要素圖斑自動編號,自上而下,從左到右


插個廣告,制作ArcGIS的Tool工具學習下面的教程就對了:
零基礎學習Python制作ArcGIS自定義工具觀看鏈接
《零基礎學習Python制作ArcGIS自定義工具》課程簡介

以下是正文:


 

原理:

利用圖斑最小外包矩形的左上角坐標(數學坐標)Y坐標將序、X坐標升序的方式獲取自上而下,從左到右的要素記錄排序,然后遍歷編號。

"!shape.extent.xmin!"計算要素最小外包矩形的左上角X坐標;

"!shape.extent.ymax!" 計算要素最小外包矩形的左上角Y坐標;

字段計算器中可做Python腳本表達式用,Arcpy中其類型為Python_9.3,在“解析ArcGis字段計算器”相關博文中,已對上面代碼信息進行過說明。

代碼如下:

#要素類路徑
fcpath="C:/Users/Administrator/Desktop/shp/demo.shp"
#新建Ymax/Xmin兩個字段,分別計算圖斑最小外包矩形的左上角Y、X坐標(數學坐標)
arcpy.AddField_management(fcpath,"Xmin","DOUBLE")
arcpy.AddField_management(fcpath,"Ymax","DOUBLE")
#字段計算,計算坐標,計算表達式類型為Python_9.3
arcpy.CalculateField_management(fcpath,"Xmin","!shape.extent.xmin!","PYTHON_9.3")
arcpy.CalculateField_management(fcpath,"Ymax","!shape.extent.ymax!","PYTHON_9.3")
#迭代更新游標,"Ymax D;Xmin A" 意為Ymax字段將序,Xmin字段升序
rows=arcpy.UpdateCursor(fcpath,"","","","Ymax D;Xmin A")
i=0 #code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
for row in rows:
    row.setValue("BSM",i+1) #BSM字段(整型)存放編號,每迭代一次+1
    rows.updateRow(row)
    i+=1
del row
del rows arcpy.DeleteField_management(fcpath,"Xmin;Ymax")

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM