原理: 利用圖斑最小外包矩形的左上角坐標(biāo)(數(shù)學(xué)坐標(biāo))Y坐標(biāo)將序、X坐標(biāo)升序的方式獲取自上而下,從左到右的要素記錄排序,然后遍歷編號(hào)。 "!shape.extent.xmin!"計(jì)算要素最小外包矩形的左上角X坐標(biāo); "!shape.extent.ymax!" 計(jì)算要素最小外包矩形的左上角Y坐標(biāo); 字段計(jì)算器中可做Python腳本表達(dá)式用,Arcpy中其類(lèi)型為Python_9.3,在“解析ArcGis字段計(jì)算器”相關(guān)博文中,已對(duì)上面代碼信息進(jìn)行過(guò)說(shuō)明。 代碼如下: #要素類(lèi)路徑 fcpath="C:/Users/Administrator/Desktop/shp/demo.shp" #新建Ymax/Xmin兩個(gè)字段,分別計(jì)算圖斑最小外包矩形的左上角Y、X坐標(biāo)(數(shù)學(xué)坐標(biāo)) arcpy.AddField_management(fcpath,"Xmin","DOUBLE") arcpy.AddField_management(fcpath,"Ymax","DOUBLE") #字段計(jì)算,計(jì)算坐標(biāo),計(jì)算表達(dá)式類(lèi)型為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") #迭代更新游標(biāo),"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字段(整型)存放編號(hào),每迭代一次+1 rows.updateRow(row) i+=1 arcpy.DeleteField_management(fcpath,"Xmin;Ymax")
|
|