GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協定下的開源柵格空間數據轉換庫。由於GDAL庫支持很多的數據格式,目前幾乎所有的GIS和RS軟體底層都使用GDAL來讀寫空間數據。 《GDAL源碼剖析與開發指南》是基於GDAL源碼剖析的編程開發指南,共9章,分為三部分。第一部分是前5章,介紹了GDAL的基本功能,包括GDAL簡介、ORG庫、GDAL庫以及GDAL的數據格式和配置項等;第二部分是第6章到第8章,是GDAL的高級使用說明,包括GDAL格式擴展、GDAL算法和CPL庫;第三部分是第9章,介紹GDAL工具的使用。 《GDAL源碼剖析與開發指南》適合地理信息系統和遙感等相關專業套用的開發人員閱讀參考。本書中大部分的示例代碼都是使用C/C++語言編寫,有一定C/C++語言基礎的讀者能夠快速上手開發相關套用。
基本介紹
- 書名:GDAL源碼剖析與開發指南
- 類型:計算機與網際網路
- 出版日期:2014年3月1日
- 語種:簡體中文
- ISBN:711533899X
- 作者:李民錄
- 出版社:人民郵電出版社
- 頁數:627頁
- 開本:16
基本介紹,內容簡介,作者簡介,媒體推薦,圖書目錄,
基本介紹
內容簡介
GDAL(Geospatial Data Abstraction Library)是一個在X/MIT許可協定下的開源柵格空間數據轉換庫。由於GDAL庫支持超多的數據格式,目前幾乎所有的GIS 和RS軟體底層都使用GDAL來進行讀寫空間數據。
GDAL源碼剖析與開發指南基於GDAL源碼剖析的編程開發指南,詳細介紹了GDAL的基本功能和具體套用。
包括以下內容:
◎ GDAL庫簡介;
◎ GDAL/OGR庫使用說明;
◎ GDAL數據格式及配置項說明;
◎ GDAL/OGR格式擴展;
◎ CPL庫使用說明;
◎ GDAL庫相關算法使用說明;
◎ GDAL工具使用說明。
適合地理信息系統和遙感等相關專業套用的開發人員閱讀參考。本書中大部分的示例代碼都是使用C/C++語言編寫,有一定C/C++語言基礎的讀者能夠快速上手開發相關套用。
GDAL源碼剖析與開發指南基於GDAL源碼剖析的編程開發指南,詳細介紹了GDAL的基本功能和具體套用。
包括以下內容:
◎ GDAL庫簡介;
◎ GDAL/OGR庫使用說明;
◎ GDAL數據格式及配置項說明;
◎ GDAL/OGR格式擴展;
◎ CPL庫使用說明;
◎ GDAL庫相關算法使用說明;
◎ GDAL工具使用說明。
適合地理信息系統和遙感等相關專業套用的開發人員閱讀參考。本書中大部分的示例代碼都是使用C/C++語言編寫,有一定C/C++語言基礎的讀者能夠快速上手開發相關套用。
作者簡介
李民錄,高級軟體工程師。畢業於中國礦業大學地理信息系統專業,長期從事遙感圖像處理相關的研發工作,熟練掌握對遙感圖像數據從星上接收到生成專題圖整個處理流程。熟悉常用的遙感圖像處理軟體和地理信息系統軟體,同時對GDAL庫有著較深入的理解。2013年,作為社區部落格之星,他接受了CSDN的專訪。
媒體推薦
GDAL是國內外廣泛套用的柵格、矢量開源庫。本書作者長期從事GIS/RS算法、軟體編寫工作,多年來堅持將自己GDAL研發經驗和體會編寫成百餘篇專題博文無私共享,成為CSDN等網站GDAL領域知名專家。本人作為“童鞋”之一,在學習工作實踐中受益匪淺,欣聞多年研究實踐成果應邀整理出版,並榮幸之至得以提前拜讀本書,驚奇發現書中內容、深度遠超原有博文,作者全面、系統、深入、詳實、清晰地剖析了GDAL。書中文筆樸實,講解深入淺出,內容層次分明且緊貼實用,並附大量直接引用實例源碼,實是學習、套用、研究GDAL不可多得的“良師益友”。
——中國土地勘測規劃院遙感所 沈均平博士
GDAL庫能支持矢量數據和絕大部分常見的柵格數據格式,還提供了很多基礎的地形分析算法。本書是深入學習GDAL進而開發獨立GIS系統不可或缺的讀物。
—— 中國科學院遙感與數字地球研究所
行星製圖與遙感實驗室 李巍博士
本書是國內第一部詳細論述GDAL/OGR使用方法的書籍,其中涵蓋了相關的理論說明及原始碼,適合從事遙感圖像處理工作的初學者及資深程式設計師學習。
——武漢大學遙感信息工程學院 李亮博士
——中國土地勘測規劃院遙感所 沈均平博士
GDAL庫能支持矢量數據和絕大部分常見的柵格數據格式,還提供了很多基礎的地形分析算法。本書是深入學習GDAL進而開發獨立GIS系統不可或缺的讀物。
—— 中國科學院遙感與數字地球研究所
行星製圖與遙感實驗室 李巍博士
本書是國內第一部詳細論述GDAL/OGR使用方法的書籍,其中涵蓋了相關的理論說明及原始碼,適合從事遙感圖像處理工作的初學者及資深程式設計師學習。
——武漢大學遙感信息工程學院 李亮博士
圖書目錄
第1章 GDAL簡介
1.1 什麼是GDAL
1.2 GDAL特點
1.3 GDAL支持的數據格式
1.4 GDAL源碼下載
1.5 GDAL源碼目錄
1.5.1 資料夾說明
1.5.2 檔案說明
1.6 GDAL編譯
1.6.1 常規編譯
1.6.2 自定義編譯
1.6.3 編譯其他方面
1.7 SWIG編譯
1.7.1 SWIG簡介
1.7.2 編譯C#版本GDAL
1.7.3 編譯Python版本GDAL
1.7.4 編譯Java版本GDAL
1.8 GDAL幫助文檔生成
1.8.1 Doxygen簡介
1.8.2 生成GDAL開發幫助文檔
1.9 簡單的調用
1.9.1 C++使用GDAL
1.9.2 C#使用GDAL
1.9.3 Python使用GDAL
1.9.4 Java使用GDAL
1.9.5 調試GDAL原始碼
第2章 OGR空間參考
2.1 空間參考簡介
2.1.1 大地水準面
2.1.2 地球橢球體
2.1.3 基準面
2.1.4 地圖投影
2.2 OGR空間參考
2.2.1 OGR空間參考簡介
2.2.2 OGR空間參考說明
2.3 OGR空間參考坐標轉換
2.4 OGR空間參考類說明
2.4.1 OGRSpatialReference類
2.4.2 OGRCoordinateTransformation類
2.5 OGR空間參考使用示例
2.5.1 C++使用
2.5.2 C#使用
2.5.3 Python使用
2.5.4 Java使用
第3章 OGR庫說明
3.1 OGR體系結構
3.1.1 Geometry(幾何對象)
3.1.2 Spatial Reference(空間參考)
3.1.3 Feature/Feature Definition(要素/要素定義)
3.1.4 Layer(圖層)
3.1.5 Data Source(數據源)
3.1.6 Drivers(格式驅動)
3.2 OGR常用類說明
3.2.1 OGRSFDriver類說明
3.2.2 OGRSFDriverRegistrar類說明
3.2.3 OGRDataSource類說明
3.2.4 OGRLayer類說明
3.2.5 OGRGeometry相關類說明
3.2.6 OGRFieldDefn類說明
3.2.7 OGRFeatureDefn類說明
3.2.8 OGRFeature類說明
3.2.9 其他說明
3.3 SQL說明
3.3.1 SELECT子句
3.3.2 WHERE子句
3.3.3 ORDER BY子句
3.3.4 JOIN子句
3.3.5 UNION ALL子句
3.3.6 特殊欄位
3.3.7 索引與表
3.3.8 ExecuteSQL()
3.3.9 Non—OGR SQL
3.4 OGR使用示例
3.4.1 C++使用
3.4.2 C#使用
3.4.3 Python使用
3.4.4 Java使用
第4章 GDAL庫說明
4.1 GDAL數據集總體概況
4.1.1 數據集(Dataset)
4.1.2 坐標系統(Coordinate System)
4.1.3 元數據(Metadata)
4.1.4 子數據集域(Subdatasets Domain)
4.1.5 圖像結構域(Image_Structure Domain)
4.1.6 RPC域(RPC Domain)
4.1.7 XML域(XML:Domains)
4.1.8 柵格波段(Raster Band)
4.1.9 顏色表(Color Table)
4.1.10 快視圖(Overviews)
4.2 GDAL常用類說明
4.2.1 GDALDriverManager類說明
4.2.2 GDALDriver類說明
4.2.3 GDALDataset類說明
4.2.4 GDALRasterBand類說明
4.3 GDAL元數據說明
4.4 RasterIO使用說明
4.5 圖像金字塔
4.6 顏色表說明
4.7 圖像統計信息說明
4.7.1 直方圖統計
4.7.2 極值計算
4.7.3 均值標準差計算
4.8 GDAL庫使用示例
4.8.1 C++使用
4.8.2 C#使用
4.8.3 Python使用
4.8.4 Java使用
第5章 GDAL數據格式及配置項說明
5.1 常用圖像格式使用說明
5.1.1 GeoTIFF格式
5.1.2 Erdas Imagine格式
5.1.3 PCI的PIX格式
5.1.4 ENVI的HDR格式
5.1.5 JPEG,PNG圖像使用說明
5.1.6 MEM檔案使用說明
5.2 GDAL對於HDF、NetCDF數據集讀取
5.2.1 HDF格式使用說明
5.2.2 NetCDF格式使用說明
5.3 VRT檔案格式說明
5.3.1 VRT格式說明
5.3.2 VRTRasterBand
5.3.3 VRT使用說明
5.3.4 編程創建VRT檔案
5.4 網路WMS數據使用說明
5.5 GDAL配置選項說明
5.5.1 設定配置選項
5.5.2 通用選項
5.5.3 GDAL庫選項
5.5.4 GeoTiff格式選項
5.5.5 GDAL/OGR網路選項
5.5.6 OGR庫選項
第6章 GDAL格式擴展說明
6.1 柵格格式擴展
6.1.1 從Dataset繼承
6.1.2 從RasterBand繼承
6.1.3 柵格驅動(Driver)
6.1.4 添加驅動到GDAL庫
6.1.5 添加地理參考信息
6.1.6 金字塔(快視圖)
6.1.7 創建檔案 359
6.1.8 RawDataset和RawRasterBand類
6.1.9 元數據和其他外部擴展
6.2 矢量格式擴展
6.2.1 實現OGRSFDriver類
6.2.2 從數據源中讀取數據
6.2.3 讀取圖層
6.3 裸數據格式擴展
第7章 GDAL算法使用說明
7.1 GDAL算法處理基礎
7.1.1 GDAL大圖像處理策略
7.1.2 GDAL中進度信息說明
7.2 GDALWarp說明
7.2.1 GDALWarpOptions
7.2.2 GDALWarpOperation
7.2.3 GDALWarpAPI使用說明
7.3 圖像重採樣
7.3.1 使用RasterIO重採樣
7.3.2 使用GDALWarp重採樣
7.4 圖像裁切
7.4.1 使用RasterIO裁切
7.4.2 使用GDALWarp裁切
7.5 圖像鑲嵌
7.6 GDALWarp坐標轉換
7.6.1 GDALWarp坐標轉換相關函式說明
7.6.2 GDALWarp坐標轉換流程
7.7 圖像重投影
7.8 圖像校正
7.8.1 幾何多項式校正(1~3次)
7.8.2 TPS校正
7.8.3 RPC校正
7.8.4 GeoLoc校正
7.9 圖像坐標轉換通用接口
7.103*3空間卷積運算
7.11 DEM地形分析
7.11.1 坡度坡向分析
7.11.2 地形指數
7.11.3 山體陰影
7.11.4 彩色渲染
7.11.5 立體彩色渲染
7.12 格網插值
7.12.1 計算數據指標
7.12.2 離散點數據插值
7.12.3 離散點數據插值示例
7.13 小碎斑去除
7.14 矢量柵格化
7.15 柵格矢量化
7.16 生成等高線
第8章 CPL庫介紹
8.1 cpl_port.h
8.1.1 數據類型定義
8.1.2 常量和函式定義
8.1.3 LSB和MSB相互轉換
8.2 cpl_error.h
8.2.1 常用的錯誤代碼
8.2.2 錯誤處理函式
8.3 cpl_conv.h
8.3.1 GDAL庫配置項讀寫
8.3.2 記憶體管理相關
8.3.3 文本檔案讀取相關
8.3.4 字元串與其他數據類型相關轉換
8.3.5 應用程式與動態庫相關
8.3.6 檔案系統以及路徑相關
8.3.7 度、分、秒與十進制度轉換
8.3.8 ZIP壓縮檔案讀寫
8.4 cpl_http.h
8.5 cpl_minixml.h
第9章 GDAL工具使用說明
9.1 GDAL工具通用參數說明
9.1.1 通用命令行選項
9.1.2 創建檔案通用選項
9.2 Exe工具使用說明
9.2.1 gdalinfo
9.2.2 gdal_translate
9.2.3 gdaladdo
9.2.4 gdalwarp
9.2.5 gdaltindex
9.2.6 gdalbuildvrt
9.2.7 gdal_contour
9.2.8 gdaldem
9.2.9 gdal_rasterize
9.2.10 gdaltransform
9.2.11 nearblack
9.2.12 gdal_grid
9.2.13 gdallocationinfo
9.2.14 gdalsrsinfo
9.2.15 gdal—config
9.2.16 gdalmanage
9.2.17 ogrinfo
9.2.18 ogr2ogr
9.2.19 ogrtindex
9.3 Python腳本工具使用說明
9.3.1 rgb2pct.py
9.3.2 pct2rgb.py
9.3.3 gdal_merge.py
9.3.4 gdal2tiles.py
9.3.5 gdal_retile.py
9.3.6 gdal_proximity.py
9.3.7 gdal_polygonize.py
9.3.8 gdal_sieve.py
9.3.9 gdal_fillnodata.py
9.3.10 gdalmove.py
9.3.11 gdal_edit.py
附錄
1.1 什麼是GDAL
1.2 GDAL特點
1.3 GDAL支持的數據格式
1.4 GDAL源碼下載
1.5 GDAL源碼目錄
1.5.1 資料夾說明
1.5.2 檔案說明
1.6 GDAL編譯
1.6.1 常規編譯
1.6.2 自定義編譯
1.6.3 編譯其他方面
1.7 SWIG編譯
1.7.1 SWIG簡介
1.7.2 編譯C#版本GDAL
1.7.3 編譯Python版本GDAL
1.7.4 編譯Java版本GDAL
1.8 GDAL幫助文檔生成
1.8.1 Doxygen簡介
1.8.2 生成GDAL開發幫助文檔
1.9 簡單的調用
1.9.1 C++使用GDAL
1.9.2 C#使用GDAL
1.9.3 Python使用GDAL
1.9.4 Java使用GDAL
1.9.5 調試GDAL原始碼
第2章 OGR空間參考
2.1 空間參考簡介
2.1.1 大地水準面
2.1.2 地球橢球體
2.1.3 基準面
2.1.4 地圖投影
2.2 OGR空間參考
2.2.1 OGR空間參考簡介
2.2.2 OGR空間參考說明
2.3 OGR空間參考坐標轉換
2.4 OGR空間參考類說明
2.4.1 OGRSpatialReference類
2.4.2 OGRCoordinateTransformation類
2.5 OGR空間參考使用示例
2.5.1 C++使用
2.5.2 C#使用
2.5.3 Python使用
2.5.4 Java使用
第3章 OGR庫說明
3.1 OGR體系結構
3.1.1 Geometry(幾何對象)
3.1.2 Spatial Reference(空間參考)
3.1.3 Feature/Feature Definition(要素/要素定義)
3.1.4 Layer(圖層)
3.1.5 Data Source(數據源)
3.1.6 Drivers(格式驅動)
3.2 OGR常用類說明
3.2.1 OGRSFDriver類說明
3.2.2 OGRSFDriverRegistrar類說明
3.2.3 OGRDataSource類說明
3.2.4 OGRLayer類說明
3.2.5 OGRGeometry相關類說明
3.2.6 OGRFieldDefn類說明
3.2.7 OGRFeatureDefn類說明
3.2.8 OGRFeature類說明
3.2.9 其他說明
3.3 SQL說明
3.3.1 SELECT子句
3.3.2 WHERE子句
3.3.3 ORDER BY子句
3.3.4 JOIN子句
3.3.5 UNION ALL子句
3.3.6 特殊欄位
3.3.7 索引與表
3.3.8 ExecuteSQL()
3.3.9 Non—OGR SQL
3.4 OGR使用示例
3.4.1 C++使用
3.4.2 C#使用
3.4.3 Python使用
3.4.4 Java使用
第4章 GDAL庫說明
4.1 GDAL數據集總體概況
4.1.1 數據集(Dataset)
4.1.2 坐標系統(Coordinate System)
4.1.3 元數據(Metadata)
4.1.4 子數據集域(Subdatasets Domain)
4.1.5 圖像結構域(Image_Structure Domain)
4.1.6 RPC域(RPC Domain)
4.1.7 XML域(XML:Domains)
4.1.8 柵格波段(Raster Band)
4.1.9 顏色表(Color Table)
4.1.10 快視圖(Overviews)
4.2 GDAL常用類說明
4.2.1 GDALDriverManager類說明
4.2.2 GDALDriver類說明
4.2.3 GDALDataset類說明
4.2.4 GDALRasterBand類說明
4.3 GDAL元數據說明
4.4 RasterIO使用說明
4.5 圖像金字塔
4.6 顏色表說明
4.7 圖像統計信息說明
4.7.1 直方圖統計
4.7.2 極值計算
4.7.3 均值標準差計算
4.8 GDAL庫使用示例
4.8.1 C++使用
4.8.2 C#使用
4.8.3 Python使用
4.8.4 Java使用
第5章 GDAL數據格式及配置項說明
5.1 常用圖像格式使用說明
5.1.1 GeoTIFF格式
5.1.2 Erdas Imagine格式
5.1.3 PCI的PIX格式
5.1.4 ENVI的HDR格式
5.1.5 JPEG,PNG圖像使用說明
5.1.6 MEM檔案使用說明
5.2 GDAL對於HDF、NetCDF數據集讀取
5.2.1 HDF格式使用說明
5.2.2 NetCDF格式使用說明
5.3 VRT檔案格式說明
5.3.1 VRT格式說明
5.3.2 VRTRasterBand
5.3.3 VRT使用說明
5.3.4 編程創建VRT檔案
5.4 網路WMS數據使用說明
5.5 GDAL配置選項說明
5.5.1 設定配置選項
5.5.2 通用選項
5.5.3 GDAL庫選項
5.5.4 GeoTiff格式選項
5.5.5 GDAL/OGR網路選項
5.5.6 OGR庫選項
第6章 GDAL格式擴展說明
6.1 柵格格式擴展
6.1.1 從Dataset繼承
6.1.2 從RasterBand繼承
6.1.3 柵格驅動(Driver)
6.1.4 添加驅動到GDAL庫
6.1.5 添加地理參考信息
6.1.6 金字塔(快視圖)
6.1.7 創建檔案 359
6.1.8 RawDataset和RawRasterBand類
6.1.9 元數據和其他外部擴展
6.2 矢量格式擴展
6.2.1 實現OGRSFDriver類
6.2.2 從數據源中讀取數據
6.2.3 讀取圖層
6.3 裸數據格式擴展
第7章 GDAL算法使用說明
7.1 GDAL算法處理基礎
7.1.1 GDAL大圖像處理策略
7.1.2 GDAL中進度信息說明
7.2 GDALWarp說明
7.2.1 GDALWarpOptions
7.2.2 GDALWarpOperation
7.2.3 GDALWarpAPI使用說明
7.3 圖像重採樣
7.3.1 使用RasterIO重採樣
7.3.2 使用GDALWarp重採樣
7.4 圖像裁切
7.4.1 使用RasterIO裁切
7.4.2 使用GDALWarp裁切
7.5 圖像鑲嵌
7.6 GDALWarp坐標轉換
7.6.1 GDALWarp坐標轉換相關函式說明
7.6.2 GDALWarp坐標轉換流程
7.7 圖像重投影
7.8 圖像校正
7.8.1 幾何多項式校正(1~3次)
7.8.2 TPS校正
7.8.3 RPC校正
7.8.4 GeoLoc校正
7.9 圖像坐標轉換通用接口
7.103*3空間卷積運算
7.11 DEM地形分析
7.11.1 坡度坡向分析
7.11.2 地形指數
7.11.3 山體陰影
7.11.4 彩色渲染
7.11.5 立體彩色渲染
7.12 格網插值
7.12.1 計算數據指標
7.12.2 離散點數據插值
7.12.3 離散點數據插值示例
7.13 小碎斑去除
7.14 矢量柵格化
7.15 柵格矢量化
7.16 生成等高線
第8章 CPL庫介紹
8.1 cpl_port.h
8.1.1 數據類型定義
8.1.2 常量和函式定義
8.1.3 LSB和MSB相互轉換
8.2 cpl_error.h
8.2.1 常用的錯誤代碼
8.2.2 錯誤處理函式
8.3 cpl_conv.h
8.3.1 GDAL庫配置項讀寫
8.3.2 記憶體管理相關
8.3.3 文本檔案讀取相關
8.3.4 字元串與其他數據類型相關轉換
8.3.5 應用程式與動態庫相關
8.3.6 檔案系統以及路徑相關
8.3.7 度、分、秒與十進制度轉換
8.3.8 ZIP壓縮檔案讀寫
8.4 cpl_http.h
8.5 cpl_minixml.h
第9章 GDAL工具使用說明
9.1 GDAL工具通用參數說明
9.1.1 通用命令行選項
9.1.2 創建檔案通用選項
9.2 Exe工具使用說明
9.2.1 gdalinfo
9.2.2 gdal_translate
9.2.3 gdaladdo
9.2.4 gdalwarp
9.2.5 gdaltindex
9.2.6 gdalbuildvrt
9.2.7 gdal_contour
9.2.8 gdaldem
9.2.9 gdal_rasterize
9.2.10 gdaltransform
9.2.11 nearblack
9.2.12 gdal_grid
9.2.13 gdallocationinfo
9.2.14 gdalsrsinfo
9.2.15 gdal—config
9.2.16 gdalmanage
9.2.17 ogrinfo
9.2.18 ogr2ogr
9.2.19 ogrtindex
9.3 Python腳本工具使用說明
9.3.1 rgb2pct.py
9.3.2 pct2rgb.py
9.3.3 gdal_merge.py
9.3.4 gdal2tiles.py
9.3.5 gdal_retile.py
9.3.6 gdal_proximity.py
9.3.7 gdal_polygonize.py
9.3.8 gdal_sieve.py
9.3.9 gdal_fillnodata.py
9.3.10 gdalmove.py
9.3.11 gdal_edit.py
附錄