下面的工具主要參考的GDAL官方網站中提供的幫助文檔說明,此外還有我的一些經驗,GDAL官方具體地址為:http://gdal.org/gdal_utilities.html。
在所有的GDAL工具集中都會支持下面的通用命令行參數,其形式一般是以兩個減號(--)開始,下面詳細介紹:
輸出GDAL的版本信息,即版本號。
輸出GDAL支持的所有圖像格式說明。包括只讀和讀寫。格式支持描述如下:“ro”是只讀驅動;“rw”是讀寫驅動(比如支持CreateCopy方法);“rw+”是讀寫和更新驅動(比如支持Create方法),支持所有的讀寫更新操作。
輸出GDAL單個格式驅動的細節信息。格式名需要是在--formats 后列出所要輸出的格式名。比如GTiff,HFA,PCISK等。
gdb where命令,讀取指定名稱的文件并把其中的內容當成參數傳入命令行列表。如果行首以#開頭的行將被忽略。多字組成的參數(即中間有空格隔開的參數)需要用雙引號來保正其為單一的參數。
設置配置,把指定鍵設置為某個值,從而不必把他們設置為環境變量。一些命令參數鍵是GDAL_CACHEMAX(用于緩存的內存有多少M)以及GDAL_DATA(gdal的數據路徑)。比如在GDAL1.8之后,經常會發現打不開中文路徑的文件,那么可以用這個來設置,具體為“—configGDAL_FILENAME_IS_UTF8 NO”。同時對于每一種驅動都會有各自的配置,具體參考各個驅動的說明。更多的配置選項參考該網址:http://trac.osgeo.org/gdal/wiki/ConfigOptions。
控制調試信息的打印輸出。ON值表示允許調試信息輸出,OFF值表示不要輸出調試信息。
輸出各個工具的命令行參數幫助信息。不同的命令輸出的內容不同。
?
下面還有一些通用的命令,是用來創建文件來使用的。創建不同的格式需要的參數都是不相同的,尤其是在特殊的情況下,比如創建的Erdas的img格式需不需要使用壓縮等特殊的需求。這些參數一般使用一個減號(-)開始。下面對這些參數進行一個簡單的說明。
命令行打開進程,選擇要創建新的文件的格式。這個格式被指定為類似GTiff(GeoTIFF格式)或者HFA(ERDAS格式)。所有的支持格式列表可以用--formats 參數列出來。但是只有格式列表“(rw)”可以被寫入和創建。許多工具如果沒有指定,默認是創建GeoTIFF格式的文件。文件擴展名不會自動添加,如果沒有指定文件名的后綴名,gdal一般不會添加任何擴展名。各個工具的命令行參數幫助信息。不同的命令輸出的內容不同。
創建文件選項,許多格式會有一個或者更多的創建參數來控制文件創建的細節。比如GeoTIFF或者Erdas的img格式可以用創建參數控制壓縮,或者控制是否用分片還是分帶來進行存儲。
可以使用的創建參數根據格式驅動不同而不同。而一些簡單的格式根本就沒有創建參數。雖然某個格式可以用"--format <format>"參數列出所有可用的參數列表,但是更詳細的信息可以在格式介紹網頁中查到。對于不同的文件格式,請參考對應文件格式說明網頁。
指定輸出文件的投影信息(坐標系統)。輸出各個工具的命令行參數幫助信息。不同的命令輸出的內容不同。有幾個工具(如gdal_translate、gdalwarp)可以在命令行中通過類似-a_srs(分配輸出SRS)、-s_srs(源SRS)、-t_srs(目標SRS)來指定坐標系統。這些工具允許以一系列格式定義坐標系統(SRS就是空間參考系統spatial reference system)。SRS通常可以使用下面幾種方式來指定:
用法:
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同時會輸出如下的信息(如果有的話):
gdb中查看調用棧信息命令、舉例:
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
用法:
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]
gdb調試進程、?????? [-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、Proj4、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 -b 2 -b 3 -mask 4 -co COMPRESS=JPEG -co PHOTOMETRIC=YCBCR--config GDAL_TIFF_INTERNAL_MASK YES
創建一個RGBA圖像從一個RGB數據中使用一個掩碼。
gdal_translatewithmask.tif rgba.tif -b 1 -b 2 -b 3 -b mask
用法:
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開始有效)。
gdb指令、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值。
netty源碼剖析、選擇一個縮放級別值如2表示略縮圖縮放程度是源圖像每個維上分辨率的1/2。如果文件在所選縮放級別上已經存在略縮圖,那么這個縮放級別上的縮略圖將被重新計算并覆蓋寫入。
一些格式根本不支持金字塔。所以許多格式在文件以外以擴展名.ovr存儲金字塔,TIFF就是如此。GeoTIFF格式直接把金字塔存儲到原有的文件中。除非使用-ro標記來指定。在TIFF中創建金字塔可以通過用COMPRESS_OVERVIEW配置參數進行壓縮。所有GeoTIFF支持的壓縮方法,可以在這里獲得(如:--config COMPRESS_OVERVIEW DEFLATE)。
大多數驅動也支持一個備用的略縮圖格式(使用的是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_OVERVIEWDEFLATE erdas.img 2 4 8 16
為給定JPEG文件創建一個Erdas Imagine 格式金字塔:
gdaladdo --config USE_RRD YES airphoto.jpg3 9 27 81
東西太多了,今天沒寫完,明天繼續補上。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态