Python作為一種高級程序設計語言, 憑借其簡潔、易讀及可擴展性日漸成為程序設計領域備受推崇的語言。作為ArcGIS的腳本語言, 使用Python將大大提升地理數(shù)據(jù)處理的效率。本書共13章, 分別介紹了空間數(shù)據(jù)、Python基礎、OGR庫、矢量數(shù)據(jù)、過濾和選擇數(shù)據(jù)、幾何對象的操作細節(jié)、空間關系、空間參考系統(tǒng)、GDAL庫、柵格數(shù)據(jù)、監(jiān)督和非監(jiān)督技術, 以及Python的相關模塊和庫的使用。通過閱讀本書, 讀者將詳細了解Python語言在地理數(shù)據(jù)處理領域的具體應用。本書講解細致、示例豐富, 適合任何想學習使用地理空間數(shù)據(jù)的讀者閱讀。地理空間分析領域的新讀者也將從本書受益。
作者在遙感和GIS領域積累了豐富的研發(fā)和教學經(jīng)驗,本書的內(nèi)容和代碼示例將非常適合讀者學習。通過詳細的理論講解,再結合豐富的代碼示例,讀者將能夠細致地掌握使用Python進行地理任務的處理,同時參考代碼示例的注釋,了解每一段代碼的真實含義。
Chris Garrard 是猶他州立大學的一名開發(fā)人員,她還教授一門使用Python 語言進行GIS編程的研究生課程。作者將其豐富的實踐和教學經(jīng)驗融匯貫通于本書,為讀者呈現(xiàn)了一本經(jīng)典的實戰(zhàn)類地理開發(fā)類的Python實戰(zhàn)指南。
第1章 引言 1
1.1 為什么使用Python和開源工具 2
1.2 空間數(shù)據(jù)的類型 3
1.3 地理數(shù)據(jù)處理 6
1.4 探究數(shù)據(jù) 8
1.5 小結 12
第2章 Python基礎 13
2.1 編寫和執(zhí)行代碼 14
2.2 一個腳本的基本結構 15
2.3 變量 16
2.4 數(shù)據(jù)類型 17
2.4.1 布爾型 18
2.4.2 數(shù)值型 18
2.4.3 字符串 19
2.4.4 列表和元組 21
2.4.5 集合 23
2.4.6 字典 24
2.5 控制流 24
2.5.1 if語句 25
2.5.2 while語句 26
2.5.3 for語句 26
2.5.4 break、continue和else 27
2.6 函數(shù) 29
2.7 類 30
2.8 小結 31
第3章 讀寫矢量數(shù)據(jù) 32
3.1 矢量數(shù)據(jù)介紹 32
3.2 OGR介紹 38
3.3 讀取矢量數(shù)據(jù) 41
3.3.1 訪問特定要素 44
3.3.2 查看數(shù)據(jù) 46
3.4 獲取數(shù)據(jù)的元數(shù)據(jù) 48
3.5 矢量數(shù)據(jù)寫入 51
3.5.1 創(chuàng)建新的數(shù)據(jù)源 55
3.5.2 新建屬性字段 57
3.6 更新現(xiàn)有數(shù)據(jù) 58
3.6.1 改變圖層定義 59
3.6.2 要素添加、更新和刪除 60
3.7 小結 61
第4章 處理不同的矢量文件 63
4.1 矢量文件格式 63
4.1.1 基于文件的格式如shapefiles和GeoJSON 64
4.1.2 多用戶數(shù)據(jù)庫格式如PostGIS 66
4.2 處理更多的數(shù)據(jù)格式 67
4.2.1 SpatiaLite 67
4.2.2 PostGIS 69
4.2.3 文件夾作為數(shù)據(jù)源(shapefiles和CSV) 69
4.2.4 Esri文件地理數(shù)據(jù)庫 70
4.2.5 網(wǎng)絡要素服務 71
4.3 測試格式能力 79
4.4 小結 81
第5章 使用OGR過濾數(shù)據(jù) 83
5.1 屬性過濾條件 84
5.2 空間過濾條件 87
5.3 使用SQL創(chuàng)建臨時圖層 91
5.4 充分利用過濾條件 95
5.5 小結 96
第6章 利用OGR處理幾何要素 97
6.1 幾何對象介紹 98
6.2 處理點集 99
6.2.1 創(chuàng)建和編輯單點 99
6.2.2 創(chuàng)建和編輯多點:多點作為一個幾何類型 101
6.3 處理線要素 103
6.3.1 創(chuàng)建和編輯單條線 105
6.3.2 創(chuàng)建和編輯多線:多線作為一個幾何類型 109
6.4 處理多邊形 112
6.4.1 創(chuàng)建和編輯單多邊形 113
6.4.2 創(chuàng)建和編輯multipolygons:復合多邊形成為一個幾何類型 115
6.4.3 編輯和創(chuàng)建帶洞的多邊形:甜甜圈 117
6.5 小結 120
第7章 使用GR進行矢量分析 121
7.1 疊加分析工具:什么在什么上面 122
7.2 鄰近分析工具:要素之間有多遠 128
7.3 實例:風力發(fā)電場選址 132
7.4 實例:動物跟蹤數(shù)據(jù) 136
7.5 小結 144
第8章 使用空間參照系統(tǒng)參考系統(tǒng) 145
8.1 空間參考介紹 145
8.2 使用OSR空間參考 150
8.2.1 空間參考對象 150
8.2.2 創(chuàng)建控件參考對象 153
8.2.3 為數(shù)據(jù)分配SRS 155
8.2.4 幾何對象重投影 155
8.2.5 重投影整個圖層 159
8.3 使用pyproj空間參考 159
8.3.1 在不同空間參考系統(tǒng)中轉換坐標 160
8.3.2 計算大圓距離 162
8.4 小結 163
第9章 讀寫柵格數(shù)據(jù) 164
9.1 柵格數(shù)據(jù)介紹 165
9.2 GDAL介紹 170
9.3 讀取部分數(shù)據(jù)集 176
9.3.1 使用現(xiàn)實世界的坐標 181
9.3.2 數(shù)據(jù)重采樣 185
9.4 字節(jié)序列 188
9.5 子數(shù)據(jù)集 191
9.6 網(wǎng)絡地圖服務 192
9.7 小結 195
第10章 處理柵格數(shù)據(jù) 196
10.1 地面控制點 197
10.2 將像素坐標轉換為另一圖像 200
10.3 顏色表 203
10.4 直方圖 205
10.5 屬性表 208
10.6 虛擬柵格格式 210
10.6.1 影像裁剪 212
10.6.2 創(chuàng)建問題格式 214
10.6.3 影像重投影 215
10.7 回調(diào)函數(shù) 216
10.8 異常和錯誤處理程序 219
10.9 小結 222
第11章 使用NumPy和SciPy做地圖運算 223
11.1 NumPy介紹 224
11.2 地圖代數(shù) 227
11.2.1 局部分析 228
11.2.2 焦點分析 232
11.2.3 區(qū)域分析 243
11.2.4 全局分析 247
11.3 數(shù)據(jù)重采樣 252
11.4 小結 259
第12章 地圖分類 260
12.1 非監(jiān)督分類 261
12.2 監(jiān)督分類 263
12.3 小結 269
第13章 數(shù)據(jù)可視化 270
13.1 Matplotlib 270
13.1.1 繪制矢量數(shù)據(jù) 271
13.1.2 繪制柵格數(shù)據(jù) 282
13.1.3 繪制三維數(shù)據(jù) 287
13.2 Mapnik 289
13.2.1 繪制矢量數(shù)據(jù) 290
13.2.2 使用XML存儲信息 295
13.2.3 繪制柵格數(shù)據(jù) 297
13.3 小結 300
附錄A 安裝 301
附錄B 參考文獻 308
收起全部↑