Python與開源GIS:數(shù)據(jù)處理、空間分析與地圖制圖
定 價:108 元
叢書名:開源GIS技術(shù)叢書
- 作者:卜坤著
- 出版時間:2019/12/1
- ISBN:9787030629272
- 出 版 社:科學(xué)出版社
- 中圖法分類:P208.2
- 頁碼:360
- 紙張:
- 版次:31
- 開本:B5
開源GIS,可以減少GIS軟件的開發(fā)周期,降低軟件開發(fā)成本,提高軟件開發(fā)效率,同時可以降低GIS平臺軟件使用成本,促進(jìn)GIS社會化和大眾化,這些優(yōu)勢使之成為GIS研究的新熱點(diǎn)。隨著開源GIS項(xiàng)目越來越成熟,并且取得越開越多的應(yīng)用,開源GIS軟件目前已經(jīng)形成了一個比較齊全的產(chǎn)品線,在一些特定的功能方面優(yōu)于商業(yè)GIS平臺軟件,其免費(fèi)和開放的優(yōu)勢越來越多的企業(yè)、科研機(jī)構(gòu)和非政府組織投入到開源GIS軟件的研究、開發(fā)和應(yīng)用推廣中。
更多科學(xué)出版社服務(wù),請掃碼獲取。
目錄
序
前言
第1章 引言 1
1.1 GIS與開源GIS的基本概念 1
1.1.1 GIS的概念 1
1.1.2 位置、距離、度量與比例尺 4
1.1.3 地圖投影 7
1.1.4 空間分析的基本概念 11
1.1.5 開源GIS的概念 13
1.1.6 開源空間信息軟件體系與技術(shù)概述 16
1.2 GIS中的數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型 17
1.2.1 空間數(shù)據(jù)模型與數(shù)據(jù)格式 17
1.2.2 GeoTIFF文件格式與顏色空間 19
1.2.3 常用矢量數(shù)據(jù)格式與文件格式介紹 20
1.3 軟件安裝與環(huán)境配置 22
1.3.1 本書介紹的開源GIS 23
1.3.2 Debian Linux的安裝與配置 23
1.3.3 虛擬機(jī)的使用 25
1.3.4 編輯器與IDE 26
1.4 Python語言基本用法 27
1.4.1 Python基礎(chǔ)用法 28
1.4.2 Python的基本語句代碼結(jié)構(gòu)與數(shù)據(jù)類型 30
1.4.3 流程控制 33
1.4.4 Python中的列表、元組與字典數(shù)據(jù)結(jié)構(gòu) 36
1.5 本書的約定與注意事項(xiàng) 40
第2章 使用GDAL操作柵格數(shù)據(jù) 42
2.1 GDAL簡介 42
2.1.1 GDAL庫簡介 43
2.1.2 GDAL數(shù)據(jù)模型 44
2.2 使用GDAL獲取柵格數(shù)據(jù)集信息 48
2.2.1 開始使用GDAL 49
2.2.2 讀取遙感影像的信息 51
2.2.3 使用GDAL獲取柵格數(shù)據(jù)波段信息 54
2.3 訪問柵格數(shù)據(jù)中的像元 55
2.3.1 GDAL中的柵格數(shù)據(jù)類型 55
2.3.2 訪問數(shù)據(jù)集的數(shù)據(jù) 56
2.3.3 讀取波段中的數(shù)據(jù) 58
2.4 創(chuàng)建與保存柵格數(shù)據(jù)集 59
2.4.1 使用CreateCopy方法創(chuàng)建影像 60
2.4.2 使用Create方法創(chuàng)建影像 61
2.4.3 創(chuàng)建多波段影像 62
2.4.4 GDAL寫操作時的空間投影處理 63
2.4.5 建立影像金字塔 64
2.5 GDAL的其他問題 64
2.5.1 GDAL和Pillow的互操作 64
2.5.2 GDAL工具集介紹 67
2.5.3 訪問索引圖像中的數(shù)據(jù) 73
2.5.4 地圖代計(jì)算 77
2.5.5 GDAL中使用仿射地理變換進(jìn)行空間定位 78
第3章 使用OGR庫操作矢量數(shù)據(jù) 81
3.1 OGR簡介 81
3.1.1 OGR的命令行工具 82
3.1.2 在Python中的OGR基本類 83
3.2 使用OGR獲取Shapefile信息 83
3.2.1 導(dǎo)入OGR庫 83
3.2.2 讀取矢量數(shù)據(jù) 84
3.2.3 獲取圖層信息 85
3.2.4 獲取要素信息 87
3.2.5 矢量數(shù)據(jù)的空間參考 90
3.3 使用OGR創(chuàng)建矢量數(shù)據(jù) 91
3.3.1 使用OGR創(chuàng)建Shapefile 91
3.3.2 使用OGR創(chuàng)建要素幾何形狀 92
3.3.3 使用WKT創(chuàng)建數(shù)據(jù)集的幾何形狀 96
3.3.4 使用OGR復(fù)制方法創(chuàng)建新的Shapefile 99
3.3.5 OGR屬性字段的定義與使用 100
3.3.6 OGR中投影的處理方法 102
3.4 根據(jù)條件選擇數(shù)據(jù) 104
3.4.1 根據(jù)屬性條件選擇與生成要素 104
3.4.2 空間擇舍器 106
3.4.3 在OGR中使用SQL語句進(jìn)行查詢 108
3.5 使用Fiona進(jìn)行矢量數(shù)據(jù)讀寫與處理 109
3.5.1 Fiona簡介 110
3.5.2 讀取矢量數(shù)據(jù) 111
3.5.3 Fiona的數(shù)據(jù)模型 114
第4章 空間參考與坐標(biāo)轉(zhuǎn)換 118
4.1 空間參考與坐標(biāo)轉(zhuǎn)換原理 118
4.1.1 大地水準(zhǔn)面、地球橢球體與基準(zhǔn)面 118
4.1.2 PROJ.4、osgeo.osr模塊及投影表示方法簡介 120
4.1.3 在PROJ.4 中了解橢球體與基準(zhǔn)面 121
4.2 PROJ.4 命令行工具的使用 124
4.2.1 proj命令的用法 124
4.2.2 地圖投影設(shè)置 127
4.2.3 cs2cs程序的用法 130
4.2.4 geod程序的用法 131
4.3 在Python中使用PROJ.4的功能 133
4.3.1 Proj類 134
4.3.2 投影變換 136
4.3.3 Geod類的使用 137
4.4 osgeo.osr的使用方法 139
4.4.1 osr簡介 139
4.4.2 定義空間參考系統(tǒng) 139
4.4.3 空間參考對象的使用 142
4.4.4 從文件中獲取投影信息 143
4.4.5 不同坐標(biāo)系統(tǒng)之間轉(zhuǎn)換坐標(biāo) 145
第5章 矢量數(shù)據(jù)的空間分析:使用Shapely 147
5.1 Shapely介紹 147
5.1.1 JTS、GEOS與Shapely 148
5.1.2 Shapely中的空間數(shù)據(jù)模型 148
5.1.3 Shapely的基本使用方法 150
5.2 Shapely中的幾何對象 151
5.2.1 通用屬性與方法 151
5.2.2 Shapely中的幾何要素 152
5.2.3 Shapely中的幾何集合 156
5.3 Shapely中謂詞與關(guān)系 160
5.3.1 一元謂詞 160
5.3.2 二元謂詞 162
5.3.3 DE九交模型關(guān)系 164
5.4 使用Shapely空間分析方法構(gòu)建新對象 165
5.4.1 基于集合論方法構(gòu)建新的幾何對象 166
5.4.2 構(gòu)建新對象的方法 168
5.5 Shapely中其他操作 173
5.5.1 合并線狀要素 173
5.5.2 級聯(lián)合并 175
5.5.3 制備幾何操作 175
5.6 Shapely互操作的接口與使用 176
5.6.1 WKT格式 176
5.6.2 NumPy與Python列表 177
5.6.3 geo-interface接口與Shapely中的實(shí)現(xiàn) 178
第6章 使用SpatiaLite空間數(shù)據(jù)庫 181
6.1 開源空間數(shù)據(jù)庫的概念 182
6.1.1 SQLite與SpatiaLite介紹 182
6.1.2 安裝與基本使用 184
6.2 在命令行中使用SpatiaLiteShell 185
6.2.1 開始運(yùn)行SpatiaLite命令行 185
6.2.2 SpatiaLite中的基本SQL數(shù)據(jù)庫查詢用法 188
6.2.3 導(dǎo)出GIS數(shù)據(jù) 190
6.2.4 創(chuàng)建SpatiaLite數(shù)據(jù)庫 191
6.2.5 SpatiaLite中管理空間表 193
6.3 空間索引的概念與使用 196
6.3.1 空間索引的概念 196
6.3.2 空間索引:在SQLite中使用R-Tree 197
6.3.3 空間索引:使用MbrCache 201
6.4 在Python中使用SpatiaLite進(jìn)行數(shù)據(jù)管理 203
6.4.1 在Python中使用SpatiaLite 203
6.4.2 導(dǎo)入Shapefile 206
6.4.3 在表中進(jìn)行空間查詢查找 207
6.5 SpatiaLite幾何類型的定義與使用 208
6.5.1 熟悉Geometry 208
6.5.2 幾何要素 210
6.5.3 最小外包矩形(MBR)214
6.5.4 創(chuàng)建與更新數(shù)據(jù)表 214
6.5.5 Python中SQLite的事務(wù)操作 217
6.5.6 管理坐標(biāo)參考與坐標(biāo)轉(zhuǎn)換 218
6.6 使用虛擬表鏈接其他格式數(shù)據(jù)執(zhí)行SQL語句 221
6.6.1 在CSV與帶分隔符的TXT文件上進(jìn)行SQL查詢 221
6.6.2 在Shapefile上執(zhí)行SQL查詢 223
6.7 SpatiaLite中空間關(guān)系比較與空間運(yùn)算 225
6.7.1 評價MBR關(guān)系 226
6.7.2 評價幾何對象之間的關(guān)系 228
6.7.3 幾何對象之間空間運(yùn)算 231
第7章 GIS制圖:使用Mapnik進(jìn)行地圖制圖 232
7.1 Mapnik地圖制圖基本概念與技術(shù)框架 233
7.1.1 Mapnik簡介 233
7.1.2 地圖制圖的背景知識 233
7.1.3 Mapnik制圖的工作流程 235
7.1.4 使用XML渲染地圖 239
7.2 Mapnik制圖的技術(shù)細(xì)節(jié) 240
7.2.1 地圖和圖層 240
7.2.2 地圖及圖層對象的屬性和方法 242
7.2.3 地圖暈渲與保存 244
7.2.4 渲染結(jié)果輸出 246
7.2.5 Mapnik制圖中的地圖投影 247
7.3 數(shù)據(jù)的讀取與設(shè)置 248
7.3.1 數(shù)據(jù)源 248
7.3.2 常用數(shù)據(jù)格式的讀取 248
7.3.3 使用GDAL/OGR包進(jìn)行數(shù)據(jù)的讀取 249
7.3.4 使用文本數(shù)據(jù)源 250
7.4 繪制不同的要素 251
7.4.1 繪制柵格影像 251
7.4.2 繪制線 252
7.4.3 繪制多邊形 257
7.4.4 繪制標(biāo)注 259
7.4.5 繪制點(diǎn)狀要素 264
7.5 數(shù)據(jù)顯示的規(guī)則 267
7.5.1 數(shù)據(jù)顯示的規(guī)則 267
7.5.2 按比例尺顯示要素 270
第8章 使用Basemap進(jìn)行地圖可視化 272
8.1 Basemap簡介與基本使用方法 272
8.1.1 簡介 272
8.1.2 Basemap使用簡介 273
8.1.3 設(shè)置地圖投影 275
8.1.4 繪制地圖背景 279
8.1.5 控制制圖中的數(shù)據(jù)細(xì)節(jié) 282
8.2 在Basemap中添加Matplotlib繪制功能 284
8.2.1 使用annotate方法繪制標(biāo)注 284
8.2.2 使用plot函數(shù)繪圖 286
8.2.3 使用text方法繪制文本 288
8.2.4 混合使用plot方法與text方法 289
8.3 在Basemap中使用GIS數(shù)據(jù) 291
8.3.1 使用Shapefile 291
8.3.2 在Basemap中繪制DEM數(shù)據(jù)等高線 292
8.3.3 在Basemap中使用顏色對渲染DEM數(shù)據(jù) 294
8.4 USGS地震數(shù)據(jù)可視化實(shí)例 297
8.4.1 全球地震數(shù)據(jù)集讀取 297
8.4.2 繪制地震數(shù)據(jù)集 298
第9章 Python下面其他開源GIS庫使用 302
9.1 使用PyShp讀寫Shapefile 302
9.1.1 PyShp的介紹與安裝 302
9.1.2 讀取Shapefile 303
9.1.3 創(chuàng)建Shapefile 309
9.2 使用geojson庫處理GeoJSON數(shù)據(jù) 313
9.2.1 geojson模塊的安裝 313
9.2.2 geojson中的幾何對象、要素與要素集合 313
9.2.3 geojson中的方法 317
9.3 使用Descartes進(jìn)行繪圖 318
9.3.1 Descartes的安裝與使用 319
9.3.2 使用Descartes繪制Shapefile的實(shí)例 320
9.4 數(shù)據(jù)分析與可視化庫GeoPandas的基本用法 322
9.4.1 數(shù)據(jù)結(jié)構(gòu):GeoSeries 322
9.4.2 數(shù)據(jù)結(jié)構(gòu):GeoDataFrame 323
9.4.3 地圖工具 325
9.4.4 幾何圖形的疊加 328
9.4.5 幾何操作 331
9.4.6 管理投影 334
9.5 使用Folium進(jìn)行WebGIS應(yīng)用 336
9.5.1 Folium的基本用法 337
9.5.2 在Folium中添加用戶數(shù)據(jù) 340
彩圖