ArcGIS Python 操作地圖的基礎入門筆記
阿新 • • 發佈:2018-12-21
前沿:首先需要確保你的ArcGIS 安裝成功,ArcPy 也會預設安裝成功,本文只對軟體內帶有的Python模組操作。
(1)開啟ArcMap 隨便載入一個已有的地圖檔案,我這裡是“林地面積指標完成情況.mxd”,你可以開啟自己的地圖。
(2)在Desktop 介面上找到Python的按鈕,開啟IDE介面,如下圖:
(3)開始寫程式碼了,注意啊,敲黑板了:
# 匯入地圖模組, 列印地圖示題
import arcpy.mapping as mapping
print mxd.title
輸出結果:林地面積指標完成情況
# 可以將地圖儲存到指定路徑下 mxd.saveACopy("D:/test.mxd")
可以到指定路徑下檢視是否儲存。
# 獲取地圖中包含的圖層資訊列表
layer = mapping.ListLayers(mxd)
>>> for lyr in layer:
print(lyr.name) # 列印每個圖層的名稱
輸出結果:
research_2017_Union
research_2017
tree_area_2015
landuse_map_2015
# 如果想要獲取帶有條件約束的圖層,則加上名稱正則 layer_1 = mapping.ListLayers(mxd,'research_2017_U*',frames) for ly in layer_1: print(ly.name)
輸出結果:
research_2017_Union
# 將地圖匯出為圖片,有各種支援的格式.jpg .png .tif等
data = mapping.ExportToJPEG(mxd,'D:/mxd_output_jpg.jpg')
可以到制定的路徑下去檢視是否成功
(4)獲取地圖裡的資料:
實際上某圖層內包含的資料屬性資訊如下圖
import arcpy.da with arcpy.da.SearchCursor("DLTB_土地利用現狀_耕地",("Name")) as cursor: for row in sorted(cursor): print(row)
輸出結果:
這是為什麼呢?為什麼呢?資料呢?
應該是編碼問題,度娘查了一下,應該修改一下編碼方式;
with arcpy.da.SearchCursor("DLTB_土地利用現狀_耕地",("Name")) as cursor:
... for row in sorted(cursor):
... str = row[0].encode("gb2312").decode("gb2312")
... print(str)
輸出結果:
耕地
耕地
大功告成!此處有掌聲~~~~~
要想一次讀取不止一個屬性欄位,就要修改一點點
with arcpy.da.SearchCursor("DLTB_土地利用現狀_耕地",("Name","XING_ZHENG_QU_HUA")) as cursor:
... for row in sorted(cursor):
... str = row[1].encode("gb2312").decode("gb2312")
... print(str)
輸出結果:
包頭市
包頭市
包頭市
包頭市
好了,今天就先這樣吧,吃飯去了