部分GDAL工具功能簡介

主要轉自http://blog.csdn.net/liminlu0314?viewmode=contentsphp

部分GDAL工具功能簡介

gdalinfo.exe 顯示GDAL支持的各類柵格文件的信息。html

gdal_translate.exe 在不一樣的格式間進行轉換。同時,潛在的執行了一些切割、重採樣和使像素比例變化的任務。web

gdalwarp.exe 投影轉換和投影綁定。同時也能夠進行圖像鑲嵌。這個程序能夠從新投影所支持的投影,並且若是圖像("raw" with)控制信息也能夠把GCPs 和圖像存儲在一塊兒算法

gdaltindex.exe 建立柵格索引的SHP 文件。它能爲每一個柵格數據創建一個記錄:一個包含柵格名稱的屬性,以及這個柵格的外邊界所組成的多邊形。瀏覽器

gdal_contour.exe 從一個柵格DEM生成矢量的等值線。緩存

gdaltransform.exe 與PROJ類似。進行投投影轉換。dom

nearblack.exe 將柵格中接處黑\白的像元置成黑色或白色。這能夠用來修補壓縮丟失信息而形成的不許確,以便於在鑲嵌時將其視爲透明。工具

gdal_grid.exe 從分散的點生成柵格,有插值的意思。網站

ogrinfo.exe 顯示OGR支持的矢量數據的信息ui

ogr2ogr.exe 進行不一樣簡單矢量格式轉換。

gdaladdo - 在文件內創建金字塔,提升文件打開和瀏覽速度.

gdalbuildvrt - Build a VRT from a list of datasets.

gdaldem - DEM分析與可視化工具,可進行坡度、坡向和山影分析,以及高程分色渲染功能.

rgb2pct.py - 將24bit的RGB圖像轉換爲8bit顏色表圖像.

pct2rgb.py - 將8bit顏色表圖像轉換爲24bit的RGB圖像.

gdal_merge.py - Build a quick mosaic from a set of images.

gdal2tiles.py - 生成 TMS瓦片結構,可用Google Earth(KML)或通常web瀏覽器進行瀏覽.

gdal_rasterize - 將矢量數據柵格化.

gdal_retile.py - Retiles a set of tiles and/orbuild tiled pyramid levels.

gdal_proximity.py - Compute a raster proximity map.

gdal_polygonize.py - Generate polygons from raster.

gdal_sieve.py - Raster Sieve filter.

gdal_fillnodata.py - Interpolate in nodata regions.

gdal-config -Get options required to build software using GDAL.

 

 

GDAL工具通用命令

 

下面的工具主要參考的GDAL官方網站中提供的幫助文檔說明,此外還有個人一些經驗,GDAL官方具體地址爲:http://gdal.org/gdal_utilities.html。

 

在全部的GDAL工具集中都會支持下面的通用命令行參數,其形式通常是以兩個減號(--)開始,下面詳細介紹:

 

1.             –version

輸出GDAL的版本信息,即版本號。

 

2.             --formats

輸出GDAL支持的全部圖像格式說明。包括只讀和讀寫。格式支持描述以下:「ro」是隻讀驅動;「rw」是讀寫驅動(好比支持CreateCopy方法);「rw+」是讀寫和更新驅動(好比支持Create方法),支持全部的讀寫更新操做。

 

3.             --format format

輸出GDAL單個格式驅動的細節信息。格式名須要是在--formats 後列出所要輸出的格式名。好比GTiff,HFA,PCISK等。

 

4.             --optfile file

讀取指定名稱的文件並把其中的內容當成參數傳入命令行列表。若是行首以#開頭的行將被忽略。多字組成的參數(即中間有空格隔開的參數)須要用雙引號來保正其爲單一的參數。

 

5.             --config key value

設置配置,把指定鍵設置爲某個值,從而沒必要把他們設置爲環境變量。一些命令參數鍵是GDAL_CACHEMAX(用於緩存的內存有多少M)以及GDAL_DATA(gdal的數據路徑)。好比在GDAL1.8以後,常常會發現打不開中文路徑的文件,那麼能夠用這個來設置,具體爲「—configGDAL_FILENAME_IS_UTF8NO」。同時對於每一種驅動都會有各自的配置,具體參考各個驅動的說明。更多的配置選項參考該網址:http://trac.osgeo.org/gdal/wiki/ConfigOptions。

 

6.             --debug value

控制調試信息的打印輸出。ON值表示容許調試信息輸出,OFF值表示不要輸出調試信息。

 

7.             --help-general

輸出各個工具的命令行參數幫助信息。不一樣的命令輸出的內容不一樣。

下面還有一些通用的命令,是用來建立文件來使用的。建立不一樣的格式須要的參數都是不相同的,尤爲是在特殊的狀況下,好比建立的Erdas的img格式需不須要使用壓縮等特殊的需求。這些參數通常使用一個減號(-)開始。下面對這些參數進行一個簡單的說明。

8.             -of format

選擇要建立新的文件的格式。這個格式被指定爲相似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。全部的支持格式列表能夠用--formats 參數列出來。可是隻有格式列表「(rw)」能夠被寫入和建立。許多工具若是沒有指定,默認是建立GeoTIFF格式的文件。文件擴展名不會自動添加,若是沒有指定文件名的後綴名,gdal通常不會添加任何擴展名。各個工具的命令行參數幫助信息。不一樣的命令輸出的內容不一樣。

 

9.             -co NAME=VALUE

建立文件選項,許多格式會有一個或者更多的建立參數來控制文件建立的細節。好比GeoTIFF或者Erdas的img格式能夠用建立參數控制壓縮,或者控制是否用分片仍是分帶來進行存儲。

 

可使用的建立參數根據格式驅動不一樣而不一樣。而一些簡單的格式根本就沒有建立參數。雖然某個格式能夠用"--format <format>"參數列出全部可用的參數列表,可是更詳細的信息能夠在格式介紹網頁中查到。對於不一樣的文件格式,請參考對應文件格式說明網頁。

 

10.      -a_srs SRS

指定輸出文件的投影信息(座標系統)。輸出各個工具的命令行參數幫助信息。不一樣的命令輸出的內容不一樣。有幾個工具(如gdal_translate、gdalwarp)能夠在命令行中經過相似-a_srs(分配輸出SRS)、-s_srs(源SRS)、-t_srs(目標SRS)來指定座標系統。這些工具容許以一系列格式定義座標系統(SRS就是空間參考系統spatialreference system)。SRS一般可使用下面幾種方式來指定:

 

NAD27/NAD83/WGS84/WGS72:這些常見的地理座標系統能夠經過名字來直接使用。

EPSG:n:座標系統(投影或者地理座標)能夠經過EPSG碼來選擇。例如EPSG 27700是英國國家網格。更多的EPSG座標系統能夠在GDAL數據文件gcs.csv和pcs.csv中找到(位於GDAL目錄中的data文件夾中)。

PROJ.4定義:一個PROJ4定義字符串能夠用做座標系統定義。例如「+proj=utm +zone=11 +datum=WGS84」。注意在命令行中要保持Proj4字符串在一塊兒做爲一個單獨的參數(通常用雙引號引發來)。

OpenGIS WKT字符串: OpenGIS標準定義了一個文本格式來描述座標系統做爲簡單要素規範的一個部分。這個格式是gdal中使用的座標系統的內部工做格式。包含wkt座標系統描述的文件的文件名能夠被用來做爲座標系統參數,或者座標系統元素自己也能夠被用來做爲命令行參數。

ESRI WKT字符串:ESRI 在他們的ArcGIS產品(ArcGIS中的.prj文件)中使用了一種通過精簡OGC WKT的格式,並且這個格式被用在一個和wkt類似的風格的文件中。可是文件名要被加以ESRI::前綴。好比"ESRI::NAD 1927 StatePlane WyomingWest FIPS 4904.prj"。

空間參考網址URLs:可使用一個空間參考的網址來指定,如:http://spatialreference.org/ref/user/north-pacific-albers-conic-equal-area/。

文件名:可使用一個包含WKT、Proj.4的字符串,或者XML/GML格式的座標系統定義的文件。

 

 

部分GDAL工具說明

1. gdalinfo 輸出文件信息

 

用法:

 

gdalinfo[--help-general] [-mm] [-stats][-hist] [-nogcp] [-nomd]

        [-noct] [-nofl] [-checksum] [-proj4][-mdd domain]*

       [-sd subdataset] datasetname

參數說明:

gdalinfo程序輸出gdal支持的柵格格式的一系列信息。

-mm

強制計算柵格每一個波段的最大最小值。

-stats

讀取和現實圖像統計信息,若是指定該參數,將強制計算圖像的統計信息,如各個波段的最大值、最小值、均值、標準差等。

-hist

輸出全部波段的直方圖信息。

-nogcp

禁止地面控制點(GCP)列表打印。這可能對大量的GCP的數據集來講是十分有用的。好比L1B AVHRR或者hdf4MODIS數據,這些數據包含了成千上萬的地面控制點。

-nomd

禁止元數據打印,一些數據集可能包含極多的元數據字符串。

-noct

禁止輸出顏色表。

-checksum

 

強制計算數據集中全部波段的checksum。

-mdd domain

輸出指定區域的元數據信息。

-nofl

僅顯示文件列表中的第一個文件信息。GDAL1.9.0開始支持該參數。

-sd subdataset

若是輸入的數據集包含幾個子數據集,那麼將使用指定的數字來替代(從1開始)完整的子數據集名稱。GDAL1.9.0開始支持該參數。

-proj4

輸出文件的座標系統按照PROJ.4類型的字符串輸出。GDAL1.9.0開始支持該參數。

gdalinfo同時會輸出以下的信息(若是有的話):

當前文件的格式驅動信息

柵格數據大小(行列數)

文件的座標系統(OGC WKT形式)

圖像關聯到地理的轉換參數(當前不包含旋轉系數)

地理上的邊界座標,若是可能的話還有基於經緯度的完整的地理轉換參數(若是是GCPs就沒有)

地面控制點(GCPs)

全部的(包括子柵格的元數據)文件元數據

波段數據類型

波段顏色信息(RGB,Gray等)

波段顏色表信息

波段瓦片大小(文件塊大小)

波段描述

波段最大最小值(已經通過計算的)

波段CheckSum值(已經通過計算的)

波段無心義值(NODATA值)

波段可得到的略縮圖分辨率

波段單位類型(如:波段的高程是米制仍是英制)

波段的假顏色列表

舉例:

gdalinfoF:/Work/Data/utm.tif

Driver:GTiff/GeoTIFF

Sizeis 512, 512

CoordinateSystem is:

PROJCS["NAD27/ UTM zone 11N",

   GEOGCS["NAD27",

      DATUM["North_American_Datum_1927",

           SPHEROID["Clarke1866",6378206.4,294.978698213901]],

       PRIMEM["Greenwich",0],

      UNIT["degree",0.0174532925199433]],

  PROJECTION["Transverse_Mercator"],

  PARAMETER["latitude_of_origin",0],

  PARAMETER["central_meridian",-117],

   PARAMETER["scale_factor",0.9996],

  PARAMETER["false_easting",500000],

    PARAMETER["false_northing",0],

   UNIT["metre",1]]

Origin= (440720.000000,3751320.000000)

PixelSize = (60.000000,-60.000000)

CornerCoordinates:

UpperLeft ( 440720.000, 3751320.000) (117d38'28.21"W, 33d54'8.47"N)

LowerLeft ( 440720.000, 3720600.000) (117d38'20.79"W, 33d37'31.04"N)

UpperRight (  471440.000, 3751320.000)(117d18'32.07"W,33d54'13.08"N)

LowerRight (  471440.000, 3720600.000)(117d18'28.50"W,33d37'35.61"N)

Center     ( 456080.000, 3735960.000) (117d28'27.39"W, 33d45'52.46"N)

Band1 Block=512x16 Type=Byte,ColorInterp=Gray

2. gdal_translate 格式轉換

用法:

gdal_translate[--help-general]

      [-ot{Byte/Int16/UInt16/UInt32/Int32/Float32/Float64/

            CInt16/CInt32/CFloat32/CFloat64}][-strict]

      [-of format] [-b band] [-mask band][-expand {gray|rgb|rgba}]

      [-outsize xsize[%] ysize[%]]

 

      [-unscale] [-scale [src_min src_max[dst_min dst_max]]]

      [-srcwin xoff yoff xsize ysize][-projwin ulx uly lrx lry]

      [-a_srs srs_def] [-a_ullr ulx uly lrxlry] [-a_nodata value]

      [-gcp pixel line easting northing[elevation]]*

      [-mo "META-TAG=VALUE"]* [-q][-sds]

      [-co "NAME=VALUE"]* [-stats]

      src_dataset dst_dataset

參數說明:

gdal_translate工具能夠用來在不一樣格式間轉換柵格數據。同時還能夠作一些諸如提取子柵格、重採樣和數據類型轉換等操做。

-ot: type

指定輸出波段的數據類型。

-strict:

對於這轉換過程當中出現丟失數據等錯誤直接報錯,不進行忽略處理。以前的參數叫-not_strict,表示對其進行寬大處理,不報錯。

-of format:

選擇輸出格式。默認是GeoTiff(GTiff)。注意,指定的時候用格式簡稱。

-b band:

選擇一個波段來輸出。波段號從1開始編號。多個 -b 參數能夠用於選擇輸出某幾個波段或者從新對波段進行排序。從GDAL1.8.0開始,波段能夠設置爲「mask,1」(或者直接mask)來說輸入數據集的第一個波段做爲一個mask波段來使用。

 

-mask band:

(從GDAL1.8.0開始)(GDAL >= 1.8.0)選擇一個輸入波段來做爲建立輸出數據的掩碼波段。波段數是從1開始,band能夠設置爲none,用來避免複製整個輸入數據集做爲掩碼,不然在默認狀況下(「auto」),除非掩碼是一個alpha通道,或者使用參數-b mask來進行輸出,參數band也能夠設置爲「mask,1」(或者直接mask)來說輸入數據集的第一個波段做爲一個mask波段來使用。

-expand gray|rgb|rgba:

(從GDAL1.6.0開始)將帶有顏色表信息的單波段文件展開爲RGB三波段文件或者RGBA四波段文件。對於輸出格式爲JPEG,JPEG2000,MrSID,ECW等不支持顏色表的數據來講頗有用。灰度值(從GDAL1.7.0開始)也可使用顏色表展開爲一個數據集,但輸出文件中僅僅包含灰度級別的一個索引。

-outsize xsize[%] ysize[%]:

設置輸出文件的大小。大小以象元爲單位,除非用「%」來標記,這時,表示的是輸出爲輸入圖層大小的百分比。

-scale [src_min src_max [dst_mindst_max]]:

從新組織輸入象元的值。將它們從src_min~src_max範圍內縮放到dst_min ~ dst_max範圍內。若是省略,輸出範圍將爲0~255。輸入範圍將由源數據自動計算。

-unscale:

大概意思是,不對波段中的數據進行縮放轉換,在使用-ot設置輸出文件類型時這個參數每每是頗有用的。(這個參數的英文有點繞口,很差翻譯,有知道的同窗麻煩告訴我一下)。

-srcwin xoff yoff xsize ysize:

 

選擇一個取值窗口,經過該窗口在原圖像中的行列位置來拷貝數值。

-projwin ulx uly lrx lry:

選擇一個取值窗口,經過該窗口在原圖像中地理座標範圍來拷貝數據(相似srcwin)。參數中的四個值,使用的投影座標。

-a_srs srs_def:

給輸出文件投影強制指定座標系。srs_def能夠是任何經常使用的GDAL/OGR格式的投影信息,如:WKT、Proj四、EPSG:n 或者一個包含着wkt的文件的文件名。

-a_ullr ulx uly lrx lry:

強制指定輸出文件的空間轉換邊界範圍(圖像的四至範圍)。而將原圖像的四至範圍忽略掉。

-a_nodata value:

指定一個無心義值到輸出波段。從GDAl1.8.0開始,能夠設置爲none來使用原文件中的nodata值做爲輸出文件的nodata值。

-mo "META-TAG=VALUE":

若是能夠,給輸出數據設置一個元數據的鍵和其對應的值。

-co "NAME=VALUE":

經過一個建立參數來指定輸出格式特殊建立要求。多個-co參數能夠組合起來使用。建立參數能夠參考各個數據格式自己說明。

-gcp pixel line easting northingelevation:

添加指定地面控制點到輸出數據集。這個選項能夠被屢次使用,以提供一系列的地面控制點GCPs 。GCP格式爲:列號 行號 橫座標 縱座標 高程值。

-q:

安靜模式,不輸出進度信息以及其餘非錯誤信息。

 

-sds:

拷貝文件中全部子數據集到各自的輸出文件中。一般這個參數用在HDF或者OGDI這樣有子數據集的格式中。

-stats:

強制計算(從新計算)數據的統計信息。自GDAL1.8.0開始支持該參數。

src_dataset:

輸入數據集名稱,能夠是文件名,或者是一個多數據集文件中的一個子數據集的URL地址(好比HDF數據集中的一個子數據集)。

dst_dataset:

輸出文件名。

舉例:

將utm.tif轉換爲一個以分塊存儲的GeoTiff文件。

gdal_translate -of GTiff-co"TILED=YES" utm.tif utm_tiled.tif

建立一個JPEG壓縮的Tiff圖像,同時使用內部掩碼從一個RGBA數據集中。

gdal_translate rgba.tifwithmask.tif -b 1 -b2 -b 3 -mask 4 -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR--configGDAL_TIFF_INTERNAL_MASK YES

建立一個RGBA圖像從一個RGB數據中使用一個掩碼。

gdal_translatewithmask.tif rgba.tif -b 1 -b2 -b 3 -b mask

3. gdaladdo 創建金字塔

用法:

 

gdaladdo[-r{nearest,average,gauss,cubic,average_mp,average_magphase,mode}]

        [-ro] [-clean] [--help-general]filename levels

參數說明:

gdaladdo工具能夠用於爲大多數支持的格式創建或者重建金字塔。可使用下面幾種重採樣算法中的一種來進行縮小重採樣操做。

-r{nearest(default),average,gauss,cubic,average_mp,average_magphase,mode}:

指定重採樣方法,分別是最鄰近(默認),均值,高斯,立方卷積等。

-ro:

(從GDAL1.6.0開始有效),以只讀的方式打開數據,來建立外部金字塔(特別對於GeoTIFF來講)。

-clean:

刪除全部的金字塔。(從GDAL1.7.0開始有效)。

filename:

要創建金字塔的文件名。

levels:

要創建略縮圖的層號的列表。 若是使用-clean選項是將被忽略。

模式,(從GDAL1.6.0開始有效)選擇最經常使用的重採樣方式。average_mp 是不適合使用的, Average_magphase用於複數數據空間的圖像。Nearest 和 average 用於普通的圖像。Nearest 使用最鄰近採樣(簡單採樣),它計算全部的有效值的均值來進行計算。Cubic 採樣(從GDAL1.7.0開始有效)使用一個4x4的近似立方卷積內核。 Gauss 採樣(從GDAL1.6.0開始有效)使用高斯內核計算。這種對於高對比度和圖案邊界比較明顯的圖像效果比較好。通常建議的採樣比值是2,4,8,…,使用3x3重採樣做爲高斯採樣的計算窗口。

gdaladdo將遵照正確NODATA_VALUES元組(特殊的數據集元數據),所以,只有一個給定的的RGB三元組(在一個RGB圖像的狀況下)做爲NODATA值,而不是每一個波段有獨立的NODATA值。

選擇一個縮放級別值如2表示略縮圖縮放程度是源圖像每一個維上分辨率的1/2。若是文件在所選縮放級別上已經存在略縮圖,那麼這個縮放級別上的縮略圖將被從新計算並覆蓋寫入。

一些格式根本不支持金字塔。因此許多格式在文件之外以擴展名.ovr存儲金字塔,TIFF就是如此。GeoTIFF格式直接把金字塔存儲到原有的文件中。除非使用-ro標記來指定。在TIFF中建立金字塔能夠經過用COMPRESS_OVERVIEW配置參數進行壓縮。全部GeoTIFF支持的壓縮方法,能夠在這裏得到(如:--config COMPRESS_OVERVIEWDEFLATE)。

大多數驅動也支持一個備用的略縮圖格式(使用的是Erdas圖像格式)。要使用這個備用格式使用USE_RRD=YES 來設置參數。這樣作會把GDAL程序建立的金字塔放到一個輔助的.aux文件中使得能夠該金字塔能夠直接在Erdas中使用或者也能夠在ArcGIS中使用。關於如何使用GDAL建立Erdas格式的金字塔,請參考個人博文:http://blog.csdn.net/liminlu0314/article/details/6127755。

舉例:

在所指定的TIFF文件內部建立金字塔:

gdaladdo -r average abc.tif 2 4 8 16

從一個ERDAS.IMG文件中建立一個外部的壓縮的金字塔文件:

gdaladdo --config COMPRESS_OVERVIEWDEFLATEerdas.img 2 4 8 16

爲給定JPEG文件建立一個Erdas Imagine 格式金字塔:

 

gdaladdo --config USE_RRD YES airphoto.jpg39 27 81

相關文章
相關標籤/搜索