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