本頁面的內(nèi)容不再更新。
通過訪問前面介紹的GDAL的一些函數(shù),可以概括地知道影像的 獲取時(shí)間、處理時(shí)間、空間分辨率、 影像大小等一些信息。但是為了對遙感影像進(jìn)行處理,需要進(jìn)一步能夠訪問遙感影像 中的數(shù)據(jù), 即影像中像元的灰度值。
GDAL提供了下面兩個函數(shù)來訪問是影像的數(shù)值。
-
ReadRaster()
讀取圖像數(shù)據(jù)(以二進(jìn)制的形式)微信號:MeetyXiao
添加微信好友, 獲取更多信息
復(fù)制微信號 -
ReadAsArray()
讀取圖像數(shù)據(jù)(以數(shù)組的形式)
下面看一下具體的用法。
>>> help(dataset.ReadRaster) ReadRaster(self, xoff, yoff, xsize, ysize, buf_xsize=None, buf_ysize=None, buf_type=None, band_list=None) >>> help(dataset.ReadAsArray) ReadAsArray(self, xoff=0, yoff=0, xsize=None, ysize=None)
這是兩個非常重要的函數(shù),它們直接讀取圖像的數(shù)據(jù), 從而可 以對柵格數(shù)據(jù)進(jìn)行分析。 可以看到兩個函數(shù)的幫助中有許多的 參數(shù)。 解釋一下:
-
xoff,yoff
:指定想要讀取的部分原點(diǎn)位置在整張圖像中距 離全圖原點(diǎn)的位置(以像元為單位)。 -
xsize,ysize
: 指定要讀取部分圖像的矩形的長和寬(以像 元為單位)。 -
buf_xsize,buf_ysize
:可以在讀取出一部分圖像后進(jìn)行縮放。 那么就用這兩個參數(shù)來定義縮放后圖像最終的寬和高,gdal將幫 你縮放到這個大小。 -
buf_type
:可以對讀出的數(shù)據(jù)的類型進(jìn)行轉(zhuǎn)換(比如原圖數(shù)據(jù) 類型是short,你要把它們縮小成byte)。 -
band_list
:適應(yīng)多波段的情況。可以指定要讀取的哪幾個波段。
這里簡單看一下如何獲取GeoTIFF文件中的數(shù)據(jù)。
>>> dataset2 = gdal.Open("/bk/gdata/img_landsat_subset.tif") >>> dataset2.ReadAsArray(50,50,3,3) array([[[ 45, 40, 43], [ 51, 45, 45], [ 54, 50, 44]], [[148, 151, 168], [157, 153, 160], [170, 163, 156]], [[121, 119, 132], [130, 127, 127], [143, 135, 127]]], dtype=uint8) >>> dataset2.ReadRaster(50,50,3,3) '-(+3--62,\x94\x97\xa8\x9d\x99\xa0\xaa\xa3\x9cyw\x84\x82\x7f\x7f\x8f\x87\x7f'
我們就把圖像左上角位于(3340, 3780),寬高都為10個像元的 數(shù)據(jù)讀取出來了。這兩個函數(shù)返回的結(jié)果不一樣,其中 ReadAsArray()
讀出的是numpy的數(shù)組,類型為int16;而ReadData()
讀出二進(jìn)制型。
返回目錄:Python與開源GIS
來源:開源地理空間基金會中文分會
來源鏈接:https://www.osgeo.cn/post/7230g
本站聲明:網(wǎng)站內(nèi)容來源于 *** ,如有侵權(quán),請聯(lián)系我們,我們將及時(shí)處理。