gdal提供的工具都是非常的實用,後續打算寫一系列的博文來對gdal提供的工具進行簡單的說明,並結合實際的例子進行演示,希望對資料處理的同學有用。
今天首先對gdalinfo和gdalbuildvrt這兩個工具做個說明。gdalinfo顧名思義,就是用來檢視影象資訊,這些影象資訊基本上包括影象中的所有資訊,目前除了不能檢視影象的灰度值之外(檢視影象的灰度值有另外乙個工具,後續介紹),其他的資訊都可以通過這個工具來進行檢視。
首先來檢視其中乙個zip檔案中影象的資訊(當然你也可以把zip解壓後再進行處理)。這裡不對zip檔案進行解壓是為了演示gdal中比較牛的乙個地方,可以直接訪問zip壓縮包中的資料。語法為:
從上圖可以看出,gdal輸出了zip壓縮包中影象的大小,肆角座標,資料型別,nodata值,此外還有檔案的關聯檔案。除此之外,gdalinfo還可以使用-mm命令來統計影象的最大最小值,-stats命令來統計影象的極值,均值、方差等統計資訊,-hist來統計影象的直方圖等資訊。此外還有一些選項用來控制輸出資訊是否顯示等,具體參考官方文件[1]。
接下來需要把這些所有的zip中的tif檔案根據地理座標拼接成乙個大影象,這裡使用gdal的vrt檔案格式,一種虛擬的檔案格式,使用起來非常方便。對於生成vrt檔案,可以分為兩種方式,一種是將所有的zip資料解壓後進行處理;另一種是不解壓,直接進行處理。
首先看解壓的處理方式,其實很簡單,首先將上面所有的zip解壓,得到裡面的tif檔案存放在乙個資料夾中,比如我這裡就是e:\newzealand。具體做法如下:把上面所有的tif檔案的路徑存放在乙個txt檔案中,檔案名叫vrt_input_tif.txt。如下所示:
e:/newzealand/srtm_70_21.tif
e:/newzealand/srtm_70_22.tif
e:/newzealand/srtm_70_23.tif
e:/newzealand/srtm_71_19.tif
e:/newzealand/srtm_71_20.tif
e:/newzealand/srtm_71_21.tif
e:/newzealand/srtm_71_22.tif
e:/newzealand/srtm_72_20.tif
e:/newzealand/srtm_72_21.tif
e:/newzealand/srtm_72_22.tif
對於不解壓處理,可以直接使用gdal提供的虛擬訪問機制中的zip訪問方式,直接讀取zip壓縮包中的資料。具體作法與上面類似,把上面所有的zip檔案的路徑存放在乙個txt檔案中,檔案名叫vrt_input_zip.txt。如下所示:
/vsizip/e:/newzealand/srtm_70_21.zip/srtm_70_21.tif
/vsizip/e:/newzealand/srtm_70_22.zip/srtm_70_22.tif
/vsizip/e:/newzealand/srtm_70_23.zip/srtm_70_23.tif
/vsizip/e:/newzealand/srtm_71_19.zip/srtm_71_19.tif
/vsizip/e:/newzealand/srtm_71_20.zip/srtm_71_20.tif
/vsizip/e:/newzealand/srtm_71_21.zip/srtm_71_21.tif
/vsizip/e:/newzealand/srtm_71_22.zip/srtm_71_22.tif
/vsizip/e:/newzealand/srtm_72_20.zip/srtm_72_20.tif
/vsizip/e:/newzealand/srtm_72_21.zip/srtm_72_21.tif
/vsizip/e:/newzealand/srtm_72_22.zip/srtm_72_22.tif
接下來開啟cmd,切換到gdal的工具目錄,然後輸入下面的內容就可以得到乙個nzl_zip.vrt的檔案,可以用arcmap10開啟,看到影象整個拼接成一整塊了。
我們再次使用gdalinfo工具檢視拼接好的vrt檔案資訊,可以看到影象的大小已經變大了,而且檔案相關的檔案也包含了所有的zip檔案。直接用arcmap10開啟上面的vrt檔案,發現所有的資料均已經拼接成乙個大檔案。vrt檔案的大小僅僅6kb,基本上不占用磁碟空間即可管理大資料。有點象arcmap10的鑲嵌資料集的功能。
注意:必須使用arcmap10以上版本才能開啟,10版本以下的不支援gdal的vrt資料集。或者使用qgis開啟。
[1][2]
[3][4]
GDAL中MEM格式的簡單使用示例
gdal庫中提供了一種記憶體檔案格式 mem。如何使用mem檔案格式,主要有兩種,一種是通過別的檔案使用createcopy方法來建立乙個mem 另外一種是影象資料都已經儲存在記憶體中了,然後使用記憶體資料塊來構造乙個mem。第一種方式比較簡單,這裡主要說明下第二種方式。首先看看mem的說明文件,位...
使用GDAL讀取影像
最近在學習gdal和opencv,gdal的強大功能我就不用說了,大家上網可以查到很多關於它的資料。opencv是乙個開源的計算機視覺庫,可以去opencv中文論壇具體了解它,說下我的構思吧,opencv庫里有很多關於數字影象處理的函式,但是它卻侷限於遙感影象的讀取,而gdal卻對遙感影像的讀取支援...
使用Geolocation校正GDAL不支援的資料
對於低分資料來說,常用的校正方式就是給定資料的經緯度查詢表來進行校正。在gdal中,這種校正方式叫geolocation array。常用的資料有國外的modis資料,國內的如風雲系列 fy 和海洋系列衛星 hy 都是使用這種方式來進行處理。gdal庫讀取modis資料 hdf格式 的時候,會自動讀...