使用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是允許這樣執行的。我們來看以下**
#上述**就是將vbscript**混在arcpy中進行呼叫,可以看到使用的是字段計算器,其中有一項是選擇指令碼語言,那麼可以選擇vb項進行呼叫。寫入經度
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)
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....