❶ 怎麼用python開發arcgis
在Pyhton寫的一些代碼,用戶交互不方便,用戶體驗比較差,不方便重用。在ArcGIS中可以將用寫的Python代碼導入到ToolBox中,這樣用起來就比較方便了。這里用按要素裁剪柵格的Python來演示如何導入ArcGIS中。代碼如下:
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
import string
from arcpy.sa import *
try:
raster = arcpy.GetParameterAsText(0) #要裁剪的柵格
clip_feat = arcpy.GetParameterAsText(1) #裁剪要素類
field = arcpy.GetParameterAsText(2) #命名欄位
outworkspace = arcpy.GetParameterAsText(3) #命名欄位裁剪後輸出目錄
for row in arcpy.SearchCursor(clip_feat):
mask=row.getValue("Shape")
outPath=outworkspace+"\\"+str(row.getValue(field))
outExtractByMask = ExtractByMask(raster,mask)
outExtractByMask.save(outPath)
except arcpy.ExecuteError:
print arcpy.GetMessages() 在用戶工具箱中新建工具箱(在系統工具箱中不能新建),在工具箱右鍵,添加腳本;
輸入名稱、標簽、描述等信息。下一步,選擇腳本文件。(這里需要注意的是:一定要勾選"存儲相對路徑名"這個選項)
設置參數,這是最重要的一步。其中參數即代碼中GetParameterAsText(n),並選擇合適的數據類型,在參數屬性中也可以進行相關設置。如果輸出柵格名稱按裁剪要素中的某個欄位,需要設置"獲取息"屬性,還要進行過濾一下。
設置好一切參數過後,就可以來進行測試了。在本機上測試通!
接下來便是怎樣移植到其他電腦了的問題了。前面我說說過要存儲為相對路徑,否則,將報錯00576:腳本工具使用的腳本未處於所需位置。創建腳本工具時,有一個選項用於存儲相對路徑名(而不是絕對路徑名)。設置此選項後,腳本的相對位置和保存腳本工具的工具箱必須保持不變。執行工具時移動兩者中的任何一個都會出現此錯誤。
但改為相對路徑後,在其他電腦上也能正常運行,但彈出了警告窗口。原因是客戶機上沒有勾選擴展模塊相應的功能。這個示例需要勾選空間分析模板,因為使用了按掩膜提取這個工具。這個腳本實現的詳情參考:使用Python腳本批量裁切柵格
發布給他人,涉及到個人知識產權的問題,怎樣讓他人使用工具,又不能看到腳本代碼?如果編輯調試完成了,在腳本工具右鍵可導入腳本。
設置密碼後,即可。
❷ 如何用python讀取arcgis中shapefile文件的屬性表
可以用arcpy模塊中的SearchCursor讀取shp的屬性表。
Python(英語發音:/ˈpaɪθən/), 是一種面向對象、解釋型計算機程序設計語言,由Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。
Python是純粹的自由軟體, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協議。
ESRI公司的Shapefile文件是描述空間數據的幾何和屬性特徵的非拓撲實體矢量數據結構的一種格式。
一個Shapefile文件最少包括三個文件:
主文件(*.shp)、--存儲地理要素的幾何圖形的文件。
索引文件(*.shx)、--存儲圖形要素與屬性信息索引的文件。
dBASE表文件(*.dbf),--存儲要素信息屬性的dBase表文件。