GDAL工具使用示例(一)

2021-06-14 17:58:06 字數 2846 閱讀 1000

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格式 的時候,會自動讀...