GDAL(Geospatial Data Abstraction Library)是一個(gè)在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。由于GDAL庫支持很多的數(shù)據(jù)格式,目前幾乎所有的GIS和RS軟件底層都使用GDAL來讀寫空間數(shù)據(jù)。
《GDAL源碼剖析與開發(fā)指南》是基于GDAL源碼剖析的編程開發(fā)指南,共9章,分為三部分。第一部分是前5章,介紹了GDAL的基本功能,包括GDAL簡介、ORG庫、GDAL庫以及GDAL的數(shù)據(jù)格式和配置項(xiàng)等;第二部分是第6章到第8章,是GDAL的高級(jí)使用說明,包括GDAL格式擴(kuò)展、GDAL算法和CPL庫;第三部分是第9章,介紹GDAL工具的使用。
《GDAL源碼剖析與開發(fā)指南》適合地理信息系統(tǒng)和遙感等相關(guān)專業(yè)應(yīng)用的開發(fā)人員閱讀參考。本書中大部分的示例代碼都是使用C/C++語言編寫,有一定C/C++語言基礎(chǔ)的讀者能夠快速上手開發(fā)相關(guān)應(yīng)用。
GDAL(Geospatial Data Abstraction Library)是一個(gè)在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。由于GDAL庫支持超多的數(shù)據(jù)格式,目前幾乎所有的GIS 和RS軟件底層都使用GDAL來進(jìn)行讀寫空間數(shù)據(jù)! DAL源碼剖析與開發(fā)指南基于GDAL源碼剖析的編程開發(fā)指南,詳細(xì)介紹了GDAL的基本功能和具體應(yīng)用。 包括以下內(nèi)容: ◎ GDAL庫簡介; ◎ GDAL/OGR庫使用說明; ◎ GDAL數(shù)據(jù)格式及配置項(xiàng)說明; ◎ GDAL/OGR格式擴(kuò)展; ◎ CPL庫使用說明; ◎ GDAL庫相關(guān)算法使用說明; ◎ GDAL工具使用說明! ∵m合地理信息系統(tǒng)和遙感等相關(guān)專業(yè)應(yīng)用的開發(fā)人員閱讀參考。本書中大部分的示例代碼都是使用C/C++語言編寫,有一定C/C++語言基礎(chǔ)的讀者能夠快速上手開發(fā)相關(guān)應(yīng)用。
李民錄,高級(jí)軟件工程師。畢業(yè)于中國礦業(yè)大學(xué)地理信息系統(tǒng)專業(yè),長期從事遙感圖像處理相關(guān)的研發(fā)工作,熟練掌握對(duì)遙感圖像數(shù)據(jù)從星上接收到生成專題圖整個(gè)處理流程。熟悉常用的遙感圖像處理軟件和地理信息系統(tǒng)軟件,同時(shí)對(duì)GDAL庫有著較深入的理解。2013年,作為社區(qū)博客之星,他接受了CSDN的專訪。
第1章 GDAL簡介
1.1 什么是GDAL
1.2 GDAL特點(diǎn)
1.3 GDAL支持的數(shù)據(jù)格式
1.4 GDAL源碼下載
1.5 GDAL源碼目錄
1.5.1 文件夾說明
1.5.2 文件說明
1.6 GDAL編譯
1.6.1 常規(guī)編譯
1.6.2 自定義編譯
1.6.3 編譯其他方面
1.7 SWIG編譯
1.7.1 SWIG簡介
1.7.2 編譯C#版本GDAL 第1章 GDAL簡介
1.1 什么是GDAL
1.2 GDAL特點(diǎn)
1.3 GDAL支持的數(shù)據(jù)格式
1.4 GDAL源碼下載
1.5 GDAL源碼目錄
1.5.1 文件夾說明
1.5.2 文件說明
1.6 GDAL編譯
1.6.1 常規(guī)編譯
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開發(fā)幫助文檔
1.9 簡單的調(diào)用
1.9.1 C++使用GDAL
1.9.2 C#使用GDAL
1.9.3 Python使用GDAL
1.9.4 Java使用GDAL
1.9.5 調(diào)試GDAL源代碼
第2章 OGR空間參考
2.1 空間參考簡介
2.1.1 大地水準(zhǔn)面
2.1.2 地球橢球體
2.1.3 基準(zhǔn)面
2.1.4 地圖投影
2.2 OGR空間參考
2.2.1 OGR空間參考簡介
2.2.2 OGR空間參考說明
2.3 OGR空間參考坐標(biāo)轉(zhuǎn)換
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體系結(jié)構(gòu)
3.1.1 Geometry(幾何對(duì)象)
3.1.2 Spatial Reference(空間參考)
3.1.3 Feature/Feature Definition(要素/要素定義)
3.1.4 Layer(圖層)
3.1.5 Data Source(數(shù)據(jù)源)
3.1.6 Drivers(格式驅(qū)動(dòng))
3.2 OGR常用類說明
3.2.1 OGRSFDriver類說明
3.2.2 OGRSFDriverRegistrar類說明
3.2.3 OGRDataSource類說明
3.2.4 OGRLayer類說明
3.2.5 OGRGeometry相關(guān)類說明
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數(shù)據(jù)集總體概況
4.1.1 數(shù)據(jù)集(Dataset)
4.1.2 坐標(biāo)系統(tǒng)(Coordinate System)
4.1.3 元數(shù)據(jù)(Metadata)
4.1.4 子數(shù)據(jù)集域(Subdatasets Domain)
4.1.5 圖像結(jié)構(gòu)域(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元數(shù)據(jù)說明
4.4 RasterIO使用說明
4.5 圖像金字塔
4.6 顏色表說明
4.7 圖像統(tǒng)計(jì)信息說明
4.7.1 直方圖統(tǒng)計(jì)
4.7.2 極值計(jì)算
4.7.3 均值標(biāo)準(zhǔn)差計(jì)算
4.8 GDAL庫使用示例
4.8.1 C++使用
4.8.2 C#使用
4.8.3 Python使用
4.8.4 Java使用
第5章 GDAL數(shù)據(jù)格式及配置項(xiàng)說明
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對(duì)于HDF、NetCDF數(shù)據(jù)集讀取
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 編程創(chuàng)建VRT文件
5.4 網(wǎng)絡(luò)WMS數(shù)據(jù)使用說明
5.5 GDAL配置選項(xiàng)說明
5.5.1 設(shè)置配置選項(xiàng)
5.5.2 通用選項(xiàng)
5.5.3 GDAL庫選項(xiàng)
5.5.4 GeoTiff格式選項(xiàng)
5.5.5 GDAL/OGR網(wǎng)絡(luò)選項(xiàng)
5.5.6 OGR庫選項(xiàng)
第6章 GDAL格式擴(kuò)展說明
6.1 柵格格式擴(kuò)展
6.1.1 從Dataset繼承
6.1.2 從RasterBand繼承
6.1.3 柵格驅(qū)動(dòng)(Driver)
6.1.4 添加驅(qū)動(dòng)到GDAL庫
6.1.5 添加地理參考信息
6.1.6 金字塔(快視圖)
6.1.7 創(chuàng)建文件
6.1.8 RawDataset和RawRasterBand類
6.1.9 元數(shù)據(jù)和其他外部擴(kuò)展
6.2 矢量格式擴(kuò)展
6.2.1 實(shí)現(xiàn)OGRSFDriver類
6.2.2 從數(shù)據(jù)源中讀取數(shù)據(jù)
6.2.3 讀取圖層
6.3 裸數(shù)據(jù)格式擴(kuò)展
第7章 GDAL算法使用說明
7.1 GDAL算法處理基礎(chǔ)
7.1.1 GDAL大圖像處理策略
7.1.2 GDAL中進(jìn)度信息說明
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坐標(biāo)轉(zhuǎn)換
7.6.1 GDALWarp坐標(biāo)轉(zhuǎn)換相關(guān)函數(shù)說明
7.6.2 GDALWarp坐標(biāo)轉(zhuǎn)換流程
7.7 圖像重投影
7.8 圖像校正
7.8.1 幾何多項(xiàng)式校正(1~3次)
7.8.2 TPS校正
7.8.3 RPC校正
7.8.4 GeoLoc校正
7.9 圖像坐標(biāo)轉(zhuǎn)換通用接口
7.10 3*3空間卷積運(yùn)算
7.11 DEM地形分析
7.11.1 坡度坡向分析
7.11.2 地形指數(shù)
7.11.3 山體陰影
7.11.4 彩色渲染
7.11.5 立體彩色渲染
7.12 格網(wǎng)插值
7.12.1 計(jì)算數(shù)據(jù)指標(biāo)
7.12.2 離散點(diǎn)數(shù)據(jù)插值
7.12.3 離散點(diǎn)數(shù)據(jù)插值示例
7.13 小碎斑去除
7.14 矢量柵格化
7.15 柵格矢量化
7.16 生成等高線
第8章 CPL庫介紹
8.1 cpl_port.h
8.1.1 數(shù)據(jù)類型定義
8.1.2 常量和函數(shù)定義
8.1.3 LSB和MSB相互轉(zhuǎn)換
8.2 cpl_error.h
8.2.1 常用的錯(cuò)誤代碼
8.2.2 錯(cuò)誤處理函數(shù)
8.3 cpl_conv.h
8.3.1 GDAL庫配置項(xiàng)讀寫
8.3.2 內(nèi)存管理相關(guān)
8.3.3 文本文件讀取相關(guān)
8.3.4 字符串與其他數(shù)據(jù)類型相關(guān)轉(zhuǎn)換
8.3.5 應(yīng)用程序與動(dòng)態(tài)庫相關(guān)
8.3.6 文件系統(tǒng)以及路徑相關(guān)
8.3.7 度、分、秒與十進(jìn)制度轉(zhuǎn)換
8.3.8 ZIP壓縮文件讀寫
8.4 cpl_http.h
8.5 cpl_minixml.h
第9章 GDAL工具使用說明
9.1 GDAL工具通用參數(shù)說明
9.1.1 通用命令行選項(xiàng)
9.1.2 創(chuàng)建文件通用選項(xiàng)
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
附錄