电竞比分网-中国电竞赛事及体育赛事平台

分享

ArcGis Python腳本

 唯依L 2019-02-18

原理:

利用圖斑最小外包矩形的左上角坐標(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中其類型為Python_9.3,在“解析ArcGis字段計(jì)算器”相關(guān)博文中,已對(duì)上面代碼信息進(jìn)行過說明。

代碼如下:

復(fù)制代碼
#要素類路徑
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á)式類型為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")
復(fù)制代碼

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多