基於 ArcGIS 的 Python 編程秘笈, 2/e (Programming ArcGIS with Python Cookbook, 2/e)
內容描述
<內容簡介>
Python作為一種高級程序設計語言,憑藉其簡潔、易讀及可擴展性日漸成為程序設計領域備受推崇的語言。使用Python作為GIS開發的腳本語言,將大大提升ArcGIS數據處理的效率。
本書將介紹如何使用Python來創建桌面ArcGIS環境下的地理處理腳本、管理地圖文檔和圖層、查找和修復丟失的數據鏈接、編輯要素類和表中的數據等,以期能夠提高GIS開發人員的工作效率。
本書內容結構清晰,示例完整,不僅適合從事GIS開發的專業人士,而且適合那些有興趣接觸或從事Python編程的讀者。
<章節目錄>
第1章面向ArcGIS的Python語言基礎1
1.1使用IDLE進行Python腳本開發2
1.1.1 Python Shell窗口2
1.1.2 Python腳本窗口3
1.1.3編輯已有的Python腳本3
1.1.4在IDLE中運行腳本5
1.2 ArcGIS Python窗口的使用5
1.2.1 ArcGIS Python窗口5
1.2.2 ArcGIS Python窗口的顯示6
1.3 Python語言基礎8
1.3.1代碼註釋8
1.3.2模塊導入9
1.3.3變量10
1.3.4內置數據類型13
1.3.5類和對象19
1.3.6語句20
1.3.7文件I/O(輸入/輸出) 25
1.4總結26
第2章管理地圖文檔和圖層27
2.1引言27
2.2引用當前的地圖文檔28
2.2.1準備工作28
2.2.2操作方法28
2.2.3工作原理29
2.3引用磁盤上的地圖文檔30
2.3.1準備工作30
2.3.2操作方法30
2.3.3工作原理31
2.4獲取地圖文檔中的圖層列表31
2.4.1準備工作31
2.4.2操作方法31
2.4.3工作原理32
2.4.4拓展32
2.5限製圖層列表33
2.5.1準備工作33
2.5.2操作方法33
2.5.3工作原理34
2.6縮放至所選要素35
2.6.1準備工作35
2.6.2操作方法35
2.6.3工作原理37
2.7改變地圖範圍37
2.7.1準備工作37
2.7.2操作方法38
2.7.3工作原理39
2.8添加圖層到地圖文檔39
2.8.1準備工作40
2.8.2操作方法40
2.8.3工作原理42
2.8.4拓展42
2.9插入圖層到地圖文檔42
2.9.1準備工作42
2.9.2操作方法43
2.9.3工作原理44
2.9.4拓展45
2.10更新圖層的符號系統45
2.10.1準備工作45
2.10.2操作方法46
2.10.3工作原理47
2.10.4拓展48
2.11更新圖層屬性48
2.11 .1準備工作48
2.11.2操作方法48
2.12操作數據框中啟用時間的圖層53
2.12.1準備工作53
2.12.2操作方法54
2.12.3工作原理58
第3章查找和修復丟失的數據鏈接59
3.1引言59
3.2查找地圖文檔和圖層文件中丟失的數據源59
3.2.1準備工作60
3.2.2操作步驟60
3.2.3工作原理62
3.2.4拓展62
3.3使用MapDocument.findAndReplace WorkspacePaths()方法修復丟失的數據源62
3.3.1準備工作62
3.3.2操作步驟63
3.3.3工作原理64
3.3.4拓展64
3.4使用MapDocument.replaceWorkspaces()方法修復丟失的數據源65
3.4.1準備工作65
3.4 .2操作步驟65
3.4.3工作原理67
3.5使用replaceDataSource()方法修復單個圖層和表對象68
3.5.1準備工作69
3.5.2操作步驟69
3.5.3工作原理72
3.5.4拓展72
3.6查找文件夾中所有地圖文檔內丟失的數據源72
3.6.1準備工作72
3.6.2操作步驟73
3.6.3工作原理74
第4章自動化地圖製圖和打印76
4.1引言76
4.2創建佈局元素的Python列表77
4.2.1準備工作77
4.2.2操作方法78
4.2.3工作原理79
4.3為佈局元素指定唯一的名稱79
4.3.1準備工作79
4.3.2操作方法79
4.3.3工作原理82
4.3.4拓展82
4.4使用ListLayoutElements()函數限制返回的佈局元素83
4.4.1準備工作83
4.4.2操作方法83
4.4.3工作原理84
4.5更新佈局元素的屬性84
4.5.1準備工作84
4.5.2操作方法85
4.5 .3工作原理87
4.6獲取可用的打印機的列表87
4.6.1準備工作87
4.6.2操作方法87
4.6.3工作原理88
4.7使用PrintMap()函數打印地圖88
4.7.1準備工作89
4.7.2操作方法89
4.7.3工作原理90
4.8導出地圖為PDF文件90
4.8.1準備工作90
4.8.2操作方法90
4.8.3工作原理92
4.9導出地圖為圖像文件92
4.9.1準備工作92
4.9.2操作方法92
4.9.3工作原理93
4.10導出報表93
4.10.1準備工作94
4.10.2操作方法94
4.10.3工作原理97
4.11使用數據驅動頁面和ArcPy製圖模塊構建地圖冊98
4.11.1準備工作98
4.11 .2操作方法98
4.11.3工作原理102
4.12將地圖文檔發佈為ArcGISServer服務102
4.12.1準備工作103
4.12.2操作方法104
4.12.3工作原理109
第5章使用腳本執行地理處理工具110
5.1引言110
5.2查找地理處理工具110
5.2.1準備工作111
5.2.2操作方法111
5.2.3工作原理113
5.3查看工具箱別名114
5.3.1準備工作114
5.3.2操作方法115
5.3.3工作原理116
5.4使用腳本執行地理處理工具116
5.4.1準備工作117
5.4.2操作方法117
5.4.3工作原理118
5.4.4拓展119
5.5將一個工具的輸出作為另一個工具的輸入119
5.5.1準備工作119
5.5 .2操作方法120
5.5.3工作原理122
第6章創建自定義地理處理工具123
6.1引言123
6.2創建自定義地理處理工具123
6.2.1準備工作123
6.2.2操作方法124
6.2.3工作原理138
6.2.4拓展139
6.3創建Python工具箱139
6.3.1準備工作139
6.3.2操作方法139
6.3.3工作原理148
第7章查詢和選擇數據149
7.1引言149
7.2構造正確的屬性查詢語句149
7.2. 1準備工作150
7.2.2操作方法150
7.2.3工作原理153
7.3創建要素圖層和表視圖154
7.3.1準備工作154
7.3.2操作方法155
7.3.3工作原理157
7.3.4拓展157
7.4使用Select Layer by Attribute工具選擇要素和行158
7.4.1準備工作158
7.4.2操作方法159
7.4.3工作原理161
7.5使用Select Layer by Location工具選擇要素161
7.5.1準備工作161
7.5.2操作方法162
7.5.3工作原理165
7.6結合空間查詢和屬性查詢選擇要素165
7.6.1準備工作165
7.6.2操作方法166
7.6.3工作原理167
第8章在要素類和表中使用ArcPy數據訪問模塊168
8.1引言168
8.2使用SearchCursor檢索要素類中的要素171
8.2.1準備工作171
8.2.2操作方法171
8.2.3工作原理173
8.3使用where子句篩選記錄173
8.3.1準備工作173
8.3.2操作方法173
8.3.3工作原理174
8.4使用幾何令牌改進光標性能174
8.4.1準備工作174
8.4.2操作方法175
8.4.3工作原理178
8.5使用InsertCursor插入行178
8.5.1準備工作178
8.5.2操作方法179
8.5.3工作原理183
8.6使用UpdateCursor更新行183
8.6.1準備工作183
8.6.2操作方法184
8.6.3工作原理187
8.7使用UpdateCursor刪除行187
8.7.1準備工作187
8.7.2操作方法187
8.7 .3工作原理189
8.8在編輯會話中插入和更新行189
8.8.1準備工作189
8.8.2操作方法190
8.8.3工作原理192
8.9讀取要素類中的幾何信息193
8.9.1準備工作193
8.9 .2操作方法193
8.9.3工作原理195
8.10使用Walk()遍歷目錄195
8.10.1準備工作195
8.10.2操作方法195
8.10.3工作原理197
第9章獲取GIS數據的列表和描述198
9.1引言198
9.2使用ArcPy列表函數199
9.2.1準備工作199
9.2.2操作方法199
9.2.3工作原理201
9.2.4拓展201
9.3獲取要素類或表中的字段
列表202
9.3.1準備工作202
9.3.2操作方法202
9.3.3工作原理204
9.4使用Describe()函數返回要素類的描述性信息204
9.4.1準備工作204
9.4.2操作方法205
9.4.3工作原理207
9.5使用Describe()函數返回柵格圖像的描述性信息208
9.5.1準備工作208
9.5.2操作方法208
9.5.3工作原理210
第10章使用Add-in定製ArcGIS界面211
10.1引言211
10.2下載並安裝Python Add-in
Wizard 212
10.2. 1準備工作212
10.2.2操作方法212
10.2.3工作原理214
10.3創建按鈕加載項和使用Python加載項模塊214
10.3.1準備工作214
10.3.2操作方法215
10.3.3工作原理222
10.4安裝和測試加載項222
10.4.1準備工作223
10.4.2操作方法223
10.4.3工作原理227
10.5創建工具加載項228
10.5.1準備工作228
10.5.2操作方法229
10.5.3工作原理232
10.5.4拓展233
第11章異常識別和錯誤處理234
11.1引言234
11.2默認的Python錯誤消息235
11.2.1準備工作235
11.2.2操作方法235
11.2.3工作原理236
11.3添加Python異常處理結構(try/except/else) 236
11.3.1準備工作236
11.3.2操作方法237
11.3.3工作原理238
11.3.4拓展238
11.4使用GetMessages()函數獲取工具消息238
11.4.1準備工作238
11.4.2操作方法239
11.4.3工作原理239
11.5根據嚴重性級別篩選工具消息239
11.5.1準備工作240
11.5.2操作方法240
11.5.3工作原理241
11.6測試和響應特定的錯誤消息241
11.6.1準備工作241
11.6.2操作方法242
11.6.3工作原理243
第12章使用Python實現ArcGIS的高級功能244
12.1引言244
12.2 ArcGIS REST API入門245
12.2.1準備工作245
12.2.2操作方法245
12.2.3工作原理250
12.3使用Python構建HTTP請求並解析響應250
12.3.1準備工作251
12.3.2操作方法251
12.3.3工作原理254
12.4使用ArcGIS REST API和Python獲取圖層信息254
12.4.1準備工作254
12.4.2操作方法254
12.4.3工作原理256
12.5使用ArcGIS REST API和Python導出地圖257
12.5.1準備工作257
12.5.2操作方法257
12.5.3工作原理259
12.6使用ArcGIS REST API和Python查詢地圖服務260
12.6.1準備工作260
12.6.2操作方法260
12.6.3工作原理264
12.7使用Esri World GeocodingService進行地理編碼264
12.7.1準備工作264
12.7.2操作方法264
12.7.3工作原理266
12.8使用FieldMap和FieldMappings 266
12.8.1準備工作266
12.8. 2操作方法267
12.8.3工作原理273
12.9使用ValueTable將多值輸入到工具中273
12.9.1準備工作274
12.9.2操作方法274
12.9.3工作原理275
第13章在ArcGIS Pro中使用Python 276
13.1引言276
13.2在ArcGIS Pro中使用新的Python窗口277
13.3桌面ArcGIS與ArcGIS Pro中Python的編碼差異280
13.4為獨立的ArcGIS Pro腳本安裝Python 280
13.5將桌面ArcGIS中的Python代碼轉換到ArcGIS Pro中281
附錄A自動化Python腳本282
A.1引言282
A.2在命令行中運行Python腳本283
A.2.1準備工作283
A.2.2操作方法283
A.2.3工作原理288
A.3使用sys.argv[]捕獲命令行的輸入288
A.3.1準備工作288
A.3.2操作方法289
A.3.3工作原理290
A.4添加Python腳本到批處理文件290
A.4.1準備工作290
A.4.2操作方法291
A.4.3工作原理291
A.4.4拓展291
A.5在規定的時間運行批處理文件291
A.5.1準備工作292
A.5.2操作方法292
A.5.3工作原理296
附錄B GIS程序員不可不知的5個Python功能297
B .1引言297
B.2讀取帶分隔符的文本文件297
B.2.1準備工作298
B.2.2操作方法298
B.2.3工作原理300
B.2.4拓展301
B.3發送電子郵件301
B.3.1準備工作301
B.3.2操作方法302
B.3.3工作原理305
B.4檢索FTP服務中的文件305
B.4.1準備工作306
B.4.2操作方法306
B.4.3工作原理309
B.4.4拓展309
B.5創建ZIP文件309
B.5.1準備工作310
B.5.2操作方法310
B.5.3工作原理312
B.5.4拓展313
B.6讀取XML文件313
B.6.1準備工作313
B.6.2操作方法314
B.6.3工作原理315
B.6.4拓展316