||| 第一章 Python語言基礎
說明
該系列是自己前兩年無聊的時候翻譯的Eric Pimpler的《Programming ArcGIS 10.1 with Python Cookbook》。
原書的代碼還是有不少錯誤的,這次在簡書上面的整理稿又把所有的代碼逐一驗證修復,竭力保證代碼的正確性,減少讀者學習過程中不必要的受挫感。
本書作為入門教程,以經典案例的形式分專題講解,向讀者介紹如何在ArcGIS環境下使用Python語言來編寫腳本以實現地理處理任務。
按照以下步驟來學習如何限制返回的地圖文檔中的圖層列表內容:
1.在ArcMap中打開c:\ArcpyBook\Ch3\Crime_Ch3.mxd
文件。
2.點擊ArcMap主工具欄上的Python窗口按鈕。
3.導入arcpy.mapping
模塊:
import arcpy.mapping as mapping
4.引用當前活動的地圖文檔(Crime_Ch3.mxd
)并將該引用賦值給變量:
mxd = mapping.MapDocument("CURRENT")
5.獲取地圖文檔中的數據框列表并查找一個名稱Crime
的數據框。注意文本字符串一定要包含在單引號或者雙引號之內:
for df in mapping.ListDataFrames(mxd):
if (df.name == 'Crime'):
6.調用ListLayers()
函數并將地圖文檔的引用參數,用于限制查找范圍的通配符參數以及數據框參數傳遞給該函數,其中數據框參數在本案例中位上一步指定的數據框。ListLayers()
函數一定要在上一步的if
語句的縮進范圍內:
layers = mapping.ListLayers(mxd,'Burg*',df)
7.使用for
循環語句打印輸出返回的每一個圖層名稱:
for layer in layers:
print layer.name
8.完整代碼如下:
import arcpy.mapping as mapping
mxd = mapping.MapDocument("CURRENT")
for df in mapping.ListDataFrames(mxd):
if (df.name == 'Crime'):
layers = mapping.ListLayers(mxd,'Burg*',df)
for layer in layers:
print layer.name
9.運行腳本將看到如下結果顯示:
Burglaries in 2009
另外除了詳細的代碼介紹,還會就每個案例分析代碼背后的GIS邏輯,向讀者解釋了要怎么做(How to do..),為什么這么做(How it works...),還可以怎么做(There is more...)。
主要內容
ArcGIS是由ESRI公司推出的行業標準級別的地理信息系統(Geographic information system)軟件。
該系列將介紹如何在ArcGIS桌面環境中使用Python編程語言來創建地理處理腳本(geoprocessing scripts),工具(tools)以及快捷菜單(shortcuts)。
你還將在本系列內容中了解ArcGIS腳本的相關專題內容,這些內容有助于提高使用ArcGIS軟件的工作效率。這些專題包括地圖文檔文件管理,地圖制圖和打印的自動化處理,損壞數據源的查找和修復,自定義地處理工具的創建,要素類和表單數據的處理以及其他。
該系列將會有14個專題內容(包含兩個附錄):
第一章 Python語言基礎
本章主要包括Python語言的基礎介紹。熟悉Python的同學可以跳過該部分。你會首先了解到如何創建一個新的Python腳本以及編輯已有腳本。在此之后,你將會了解Python的語言特性(features),比如注釋,變量以及內置的自動補齊功能(built-in typing system)等。之后我們將會介紹Python支持的數據類型,比如字符(string),數值(number),列表(list)和字典(dictionary)。除此之外,我們還將介紹決策支持語句和循環語句的內容。第二章 使用ArcPy編寫地理處理腳本
本章將會講解針對ArcGIS開發的Python站點包--ArcPy的基本概念,包括基本的模塊,函數和類。你可以在Python中調用ArcPy包來編寫地理處理腳本。第三章 管理地圖文檔和圖層
本章將會介紹使用ArcPy的制圖模塊(mapping modlule)來管理地圖文檔和圖層文件。你將會學習如何在地圖文檔中刪除圖層,插入圖層以及移動圖層。另外,你還會了解到如何更改圖層屬性和符號化系統。第四章 查找和修復數據源
本章將會介紹如何獲取地圖文檔中損壞的數據源列表并使用ArcPy的制圖功能來修復這些數據源。你會學習到如何在多個地圖文檔中自動化完成修復數據源處理任務。第五章 自動化地圖生產和打印
本章將會介紹如何自動化實現高質量地圖的生產。這些地圖將會以圖片文件格式或者以PDF地圖冊格式輸出打印。第六章 使用腳本執行地理處理工具
本章將會介紹如何在腳本中訪問執行ArcGIS中提供的地理處理工具。第七章 創建自定義的地理處理工具
本章將會介紹如何創建自定義的地理處理工具,這些工具可以添加到ArcGIS中,也可以分發給其他用戶使用。Python編寫的自定義的地理處理工具可用于處理和分析地理數據。第八章 數據查詢和選擇
本章將會介紹如何在腳本中調用按屬性選擇工具(Select by Attribute)和按位置選擇工具(Select by Location)來選擇要素和記錄。你可以了解到如何在按屬性選擇工具中where條件語句選項來構建查詢條件語句。本章還將介紹要素類和表視圖用作臨時數據集的相關內容。第九章 [ArcPy數據訪問模塊] (http://www.lxweimin.com/p/3898f35a1085)
本章將會介紹如何創建地理處理腳本來執行地理數據圖層和表數據的選擇,插入和更新等操作。通過使用ArcGIS10.1新引入的數據訪問模塊,地理處理腳本就可以從要素類和表數據中創建游標內存對象。你將會學習如何創建搜索游標,插入游標和更新游標等不同的游標對象。第十章 獲取GIS數據列表和描述性信息
本章將會介紹如何使用ArcPy的Describe()函數來獲取地理數據集的描述性信息。地理處理腳本的第一步通常是獲取地理數據列表,這些列表可通過不同操作來獲取。第十一章 使用加載項(Add-ins)自定義ArcGIS界面
本章將會介紹如何創建Python加載項來自定義ArcGIS界面。加載項是通過一組設計好的模塊化代碼庫向ArcGIS桌面軟件中添加用戶界面組件的方式來執行特定操作。界面組件包括按鈕,工具,工具條,菜單,組合框,工具選項板以及應用程序擴展。使用Python創建加載項,使用xml文件來定義用戶界面的外觀顯示。第十二章 異常和錯誤處理
本章將會介紹如何更好地處理地理處理腳本執行過程中出現的錯誤和異常。使用Python的try/except語句可以捕獲Arcpy和Python返回的錯誤并做相應地處理。附錄A 自動執行Python腳本
本章將會介紹如何設置在指定時間執行地理處理腳本的任務計劃。許多地理處理腳本運行時間較長并且需要定期地在非工時間執行。你將會學習如何創建包含地理處理腳本和執行時間的批處理文件。附錄B 五個常用Python處理任務
本章將會介紹如何使用Python腳本來完成一些常用處理任務,比如讀寫分隔符文本文件,發送電子郵件,訪問FTP服務器,創建壓縮文件以及讀寫JSON和XML文件等。GIS程序員都應當了解如何編寫Python腳本來完成上述工作。
代碼運行環境說明
書中案例運行環境需要安裝ArcGIS 10.x版本的桌面軟件。
工程文件和數據
百度云盤鏈接: https://pan.baidu.com/s/1ht2v7U0 密碼: pypy
||| 第一章 Python語言基礎