使用python製作ArcGIS外掛程式(5)其他技巧

2021-07-23 13:36:38 字數 2136 閱讀 1863

使用python製作arcgis外掛程式(5)其他技巧

by 李遠祥

使用python做外掛程式開發,除了了解arctoolbox工具之外,還需要在了解arcpy的相關函式和介面。只有掌握了這些,才可以順利的開發arcgis外掛程式。

假如程式設計師非常熟悉vb這個古老的語言,之前已經有一些邏輯實現在vb上完成了,希望能夠很好的遷移到python中來,如果什麼都得重新實現,那實在令人失望。下面介紹一種比較有效的方式去呼叫vb或者vbscript。

arcgis desktop在相當的一段時間內允許使用vbscript去擴充套件其功能,並且在很多的工具裡面都允許使用vbscript。以前有相當的這些成果,都可以使用python去呼叫這些既有的成果。

看以下乙個excel**的內容,這是乙個機場點的資料,一般情況下會使用十進位制度來描述經緯度,當然也有例外的時候,例如下圖這樣

用字母表達東經北緯等,維度的前兩位是整度,後面是小數字;經度的規律也是類似的。如果要將這個**進行落地,將其座標轉為點資料,那麼需要對這些非十進位制度進行轉換。常規的流程是使用excel轉表工具先轉為arcgis的table,然後對table新增兩個double欄位,用作重新計算x和y,之後用xy data工具轉為點資料。

這個流程問題不大,但主要是經緯度的轉換,在python下面做遠沒有在vb指令碼下做那麼簡單。如果我們希望用最簡單的方式去實現的話,只是這個轉換工作使用vbscript,其他部分還是使用python,那這樣就最優的方案。arcgis是允許這樣執行的。我們來看以下**

#

寫入經度

airport_x_codeblock="""

dim result

result = mid( [經度],2,3 )

if left( result ,1 )=0 then

result= mid(result,2,2 )

end if

result =result+"."+ mid( [經度],5,2 )

result = result+right( [經度],1 )

if left( [經度],1 )="w" then

result="-"+result

end if

"""arcpy.calculatefield_management(ab.airporttableurl,"x

","result

","vb

",airport_x_codeblock)

#寫入緯度

airport_y_codeblock="""

dim result

result = mid( [緯度],2,2 )

if left( result ,1 )=0 then

result= mid(result,2,2 )

end if

result =result+"."+ mid( [緯度],4,2 )

result = result+right( [緯度],1 )

if left( [經度],1 )="s" then

result="-"+result

end if

"""arcpy.calculatefield_management(ab.airporttableurl,"y

","result

","vb

",airport_y_codeblock)

#建立xy圖層,還沒加入座標系統選擇功能

#spref = r"coordinate systems\geographic coordinate systems\world\wgs 1984.prj"

arcpy.makexyeventlayer_management(ab.airporttableurl,"

x","

y",ab.airporttable,maplayerinfo.xyref)

上述**就是將vbscript**混在arcpy中進行呼叫,可以看到使用的是字段計算器,其中有一項是選擇指令碼語言,那麼可以選擇vb項進行呼叫。

arcgis有很多任務具都支援混合指令碼呼叫。這些都是非常重要的技巧,可以盡量使用自己熟悉的工具或者使用已有的成果來實現功能。

python 驗證碼 使用python製作驗證碼

當我們登入一些 註冊的時候,需要進行驗證碼的操作,可以防止刷票,論壇的刷帖等行為。這篇文章給大家講解一下驗證碼的製作,驗證碼分為兩大類,第一類就是簡訊形式推送的由數字和字母組成的字串,第二類就是登入介面的驗證碼。我們依次展開講解 一般對於推送簡訊形式的驗證碼都是由四個數字或者字母構成,數字為0 9,...

python使用Qt製作簡單小視窗

pip install pyqt5 pip install pyqt5 tools pip install pyside2 安裝好以後可以通過檢視版本號,驗證是否安裝成功 pyqt5 v成功後可以到python安裝依賴包的目錄下檢視,並找到designer.exe 開啟 designer.exe 建...

python 製作小蛇

coding utf 8 import turtle def drawsnake rad,angle,len,neckrad rad,描述圓形軌跡半徑的位置 for i in range len angle表示小烏龜沿著圓形爬行的弧度值 turtle.circle rad,angle turtle....