Python是目前最熱門的開發(fā)語言之一, ESRI公司已經將Python作為ArcGIS產品的主要二次開發(fā)語言。在ArcGIS開發(fā)中使用Python語言,既可以高效地調取ArcGIS地理數(shù)據(jù)處理的功能,又可以便捷地使用眾多Python的開源資源。本書結合大量地理實際應用代碼和數(shù)據(jù),重點介紹了Python的基礎知識、ArcGIS中Python的使用方法、地圖文檔和圖層的訪問與管理、空間數(shù)據(jù)訪問與操作、矢量數(shù)據(jù)和柵格數(shù)據(jù)分析、地圖制圖、自定義工具、插件制作等內容。本書可供地理學、生態(tài)學等相關專業(yè)從事地理數(shù)據(jù)處理的人員學習使用,從而快速掌握ArcGIS Python編程方法。
芮小平,1975年生,博士(后),河海大學教授,博士生導師,美國威斯康辛大學(麥迪遜)與澳大利亞科廷大學訪問學者。主要從事地理信息系統(tǒng)理論與應用方面的研究,研究方向包括空間信息可視化、基于GIS的應急決策方法、路徑優(yōu)化與資源分配問題等,F(xiàn)為《地理與地理信息科學》雜志編委,中國系統(tǒng)仿真協(xié)會會員,近幾年,先后主持了國家自然科學基金項目面上和青年項目、北京市自然科學基金面上項目、國家科技重大專項油氣專項專題和水專項專題、國家科技支撐計劃專題、國家深部探測專項專題和北京市重大專項課題等18項國家和省部級縱向項目和7項橫向科研項目;參與了國家973項目專題“GIS支持的人類活動條件下區(qū)域地下水系統(tǒng)響應”和中國科學院重大戰(zhàn)略性先導專項課題“煤田自燃中的碳排放”等8項。2008年獲得國家測繪科技進步二等獎(排名第6),2014年獲得甘肅省林業(yè)科技進步獎一等獎(排名第10),2017年獲得江蘇省科技進步獎三等獎(排名第7),2018年獲北京市水利學會科技進步獎二等獎(排名第1)。已發(fā)表論文100余篇(其中被國際論文三大檢索機構檢收錄的論文達45篇),編寫專著1部和GIS開發(fā)教材2部。獲得軟件著作權16項和國家發(fā)明專利2項(排名第二)。
第1章 Python基礎 1
1.1 Python發(fā)展歷史及特點 1
1.1.1 Python發(fā)展歷史 1
1.1.2 Python特點 1
1.2 Python語言基礎 2
1.2.1 入門概念 2
1.2.2 變量、函數(shù)和類的定義使用 3
1.2.3 語句 12
1.2.4 數(shù)據(jù)文件操作 17
1.2.5 數(shù)據(jù)庫操作 19
1.2.6 中文字符操作 20
第2章 ArcPy編寫地理數(shù)據(jù)處理程序基礎 22
2.1 ArcPy概述 22
2.1.1 什么是ArcPy 22
2.1.2 為什么使用ArcPy 22
2.2 ArcGIS Python編程環(huán)境簡介 23
2.2.1 啟動Python shell窗口 23
2.2.2 啟動Python 腳本編輯窗口 24
2.3 ArcPy中的函數(shù)和類 28
2.3.1 基本概念 28
2.3.2 常用函數(shù) 29
2.3.3 常用類 33
2.4 利用ArcPy編寫第一個程序 43
2.5 ArcPy的錯誤和警告處理機制 46
2.5.1 ArcPy的錯誤處理機制 46
2.5.2 ArcPy的警告處理機制 47
第3章 管理地圖文檔與圖層 49
3.1 使用當前地圖文檔 49
3.1.1 將當前地圖文檔另存為其他地圖文檔 50
3.1.2 使用全文件名引用地圖文檔 50
3.2 獲取地圖數(shù)據(jù)框架 51
3.3 訪問地圖圖層信息 51
3.4 修改地圖圖層屬性 53
3.5 地圖文檔中的圖層操作 54
3.5.1 在地圖數(shù)據(jù)框架中添加圖層 54
3.5.2 在地圖數(shù)據(jù)框架中刪除圖層 57
3.5.3 在地圖文檔中移動圖層 57
第4章 ArcPy查詢空間數(shù)據(jù) 59
4.1 屬性字段的訪問 59
4.1.1 地理數(shù)據(jù)表中的字段 59
4.1.2 獲得字段名稱 59
4.2 空間數(shù)據(jù)屬性的查詢 61
4.2.1 Cursor和行對象 61
4.2.2 查詢功能的實現(xiàn) 62
4.2.3 空間數(shù)據(jù)編輯和更新 64
4.2.4 空間數(shù)據(jù)插入 65
4.2.5 游標和鎖定 66
4.3 操作二進制數(shù)據(jù) 67
4.3.1 向數(shù)據(jù)庫插入圖片 68
4.3.2 從數(shù)據(jù)庫讀取圖片 68
4.4 ArcGIS中通過屬性條件和空間位置關系的查詢 68
4.4.1 通過屬性條件查詢 69
4.4.2 通過空間位置關系查詢 70
第5章 ArcPy操作空間數(shù)據(jù) 73
5.1 屬性數(shù)據(jù)操作 73
5.1.1 添加屬性字段 73
5.1.2 刪除屬性字段 74
5.1.3 關系型表屬性字段值統(tǒng)計 75
5.1.4 要素類數(shù)據(jù)統(tǒng)計 76
5.1.5 ArcPy操作Excel文件 77
5.1.6 屬性表格數(shù)據(jù)格式轉換 78
5.2 幾何數(shù)據(jù)操作 79
5.2.1 矢量數(shù)據(jù)基本信息的獲取 79
5.2.2 幾何對象的屬性與方法 80
5.2.3 使用幾何令牌 89
5.2.4 創(chuàng)建shape文件 90
5.2.5 矢量數(shù)據(jù)的即時投影轉換 103
5.3 矢量數(shù)據(jù)專題圖與符號設置 104
5.3.1 專題圖制作 104
5.3.2 符號設置 108
5.4 柵格數(shù)據(jù)操作 116
5.4.1 常用基本操作 116
5.4.2 獲取柵格數(shù)據(jù)屬性 117
5.4.3 獲取單個像元值 118
5.4.4 柵格數(shù)據(jù)的數(shù)組方式操作 119
5.5 柵格數(shù)據(jù)專題圖 123
5.6 地圖打印輸出 126
5.6.1 簡單地圖輸出 127
5.6.2 考慮制圖要素的地圖輸出 128
5.6.3 基于Data Driven Pages的批量打印 131
第6章 ArcPy空間數(shù)據(jù)分析 136
6.1 矢量數(shù)據(jù)空間分析 136
6.1.1 矢量數(shù)據(jù)批處理 136
6.1.2 矢量數(shù)據(jù)工作流處理方式 144
6.1.3 矢量數(shù)據(jù)網(wǎng)絡分析 155
6.2 柵格數(shù)據(jù)空間分析 165
6.2.1 柵格數(shù)據(jù)的歸一化 165
6.2.2 成本距離分析 169
6.2.3 柵格數(shù)據(jù)的提取 172
6.2.4 地面因子分析 179
6.2.5 空間數(shù)據(jù)插值 183
6.2.6 柵格數(shù)據(jù)重分類 189
6.2.7 柵格數(shù)據(jù)重采樣 193
6.2.8 ArcPy水文分析 196
6.3 定義和調用Arctoolbox工具 199
6.3.1 新建工具箱 199
6.3.2 添加腳本工具 200
6.3.3 設置腳本工具屬性 200
6.4 基于ModelBuilder建模的ArcPy使用方法 210
第7章 ArcPy定制Add-In插件 222
7.1 Add-In簡介 222
7.1.1 Add-In基本類型 223
7.1.2 Add-In的組成 225
7.2 Python Add-In插件的制作方法 225
7.3 安裝和共享插件 235
7.3.1 安裝插件 235
7.3.2 共享插件 238
7.4 管理Add-In 239
7.5 插件編程方法及實例 241
7.5.1 ArcPy中插件相關的類和模塊 241
7.5.2 ArcPy中插件編程方法及實例 249