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