本文目錄一覽:
- 1、怎樣使用 python arcpy 根據屬性選擇要素
- 2、如何用python讀取arcgis中shapefile文件的屬性表
- 3、怎麼用python開發arcgis
- 4、ArcGIS 應用Python中arcpy模塊
- 5、python調用 arcpy
怎樣使用 python arcpy 根據屬性選擇要素
SQL語句存在問題,參見下圖示例代碼:
SQL語句最外層由雙引號包含,然後是相應sql語句。
另外,對於文件存放位置也有要求:
最後,是我自己的測試,圖層文件(layer)位於文件夾,不在數據庫中:
如何用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表文件。
怎麼用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腳本批量裁切柵格
發佈給他人,涉及到個人知識產權的問題,怎樣讓他人使用工具,又不能看到腳本代碼?如果編輯調試完成了,在腳本工具右鍵可導入腳本。
設置密碼後,即可。
ArcGIS 應用Python中arcpy模塊
涉及到讀取要素屬性內容其實就是訪問要素,要用到arcpy.da里的seachcursor方法,也就是arcpy里的游標,seachcursor將要素圖層所有要素(若有選擇會只對選擇部分起效)返回遊標,利用for in 循環可以遍歷每一個要素,利用row[0….n]的就可以讀取各個要素的字段0一直到字段n的屬性值。
python調用 arcpy
你好,請使用柵格計算器,
在空間分析工具箱,
地圖代數,
柵格計算器。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/155259.html