最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python空間數(shù)據(jù)處理之GDAL讀寫遙感圖像

 更新時間:2019年08月01日 11:42:52   作者:vonuo  
這篇文章主要介紹了Python空間數(shù)據(jù)處理之GDAL讀寫遙感圖像,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

GDAL是空間數(shù)據(jù)處理的開源包,支持多種數(shù)據(jù)格式的讀寫。遙感圖像是一種帶大地坐標的柵格數(shù)據(jù),遙感圖像的柵格模型包含以下兩部分的內(nèi)容:

柵格矩陣:由正方形或者矩形柵格點組成,每個柵格點所對應的數(shù)值為該點的像元值,在遙感圖像中用于表示地物屬性值;遙感圖像有單波段與多波段,波段表示地物屬性的種類,每個波段表示地物一種屬性。

大地坐標:空間數(shù)據(jù)參考表示地圖的投影信息;仿射矩陣能將行列坐標映射到面坐標上。

GDAL讀寫遙感數(shù)據(jù)的代碼:

from osgeo import gdal
import os

class GRID:

  #讀圖像文件
  def read_img(self,filename):
    dataset=gdal.Open(filename)    #打開文件

    im_width = dataset.RasterXSize  #柵格矩陣的列數(shù)
    im_height = dataset.RasterYSize  #柵格矩陣的行數(shù)

    im_geotrans = dataset.GetGeoTransform() #仿射矩陣
    im_proj = dataset.GetProjection() #地圖投影信息
    im_data = dataset.ReadAsArray(0,0,im_width,im_height) #將數(shù)據(jù)寫成數(shù)組,對應柵格矩陣

    del dataset 
    return im_proj,im_geotrans,im_data

  #寫文件,以寫成tif為例
  def write_img(self,filename,im_proj,im_geotrans,im_data):
    #gdal數(shù)據(jù)類型包括
    #gdal.GDT_Byte, 
    #gdal .GDT_UInt16, gdal.GDT_Int16, gdal.GDT_UInt32, gdal.GDT_Int32,
    #gdal.GDT_Float32, gdal.GDT_Float64

    #判斷柵格數(shù)據(jù)的數(shù)據(jù)類型
    if 'int8' in im_data.dtype.name:
      datatype = gdal.GDT_Byte
    elif 'int16' in im_data.dtype.name:
      datatype = gdal.GDT_UInt16
    else:
      datatype = gdal.GDT_Float32

    #判讀數(shù)組維數(shù)
    if len(im_data.shape) == 3:
      im_bands, im_height, im_width = im_data.shape
    else:
      im_bands, (im_height, im_width) = 1,im_data.shape 

    #創(chuàng)建文件
    driver = gdal.GetDriverByName("GTiff")      #數(shù)據(jù)類型必須有,因為要計算需要多大內(nèi)存空間
    dataset = driver.Create(filename, im_width, im_height, im_bands, datatype)

    dataset.SetGeoTransform(im_geotrans)       #寫入仿射變換參數(shù)
    dataset.SetProjection(im_proj)          #寫入投影

    if im_bands == 1:
      dataset.GetRasterBand(1).WriteArray(im_data) #寫入數(shù)組數(shù)據(jù)
    else:
      for i in range(im_bands):
        dataset.GetRasterBand(i+1).WriteArray(im_data[i])

    del dataset

if __name__ == "__main__":
  os.chdir(r'D:\Python_Practice')            #切換路徑到待處理圖像所在文件夾
  run = GRID()
  proj,geotrans,data = run.read_img('LC81230402013164LGN00.tif')    #讀數(shù)據(jù)
  print proj
  print geotrans
  print data
  print data.shape
  run.write_img('LC81230402013164LGN00_Rewrite.tif',proj,geotrans,data) #寫數(shù)據(jù)

在GDAL遙感影像讀寫的基礎上,我們可以進行遙感圖像的各種公式計算和統(tǒng)計分析。

例如我們所熟知的計算NDVI(歸一化植被指數(shù)),只要在以上代碼倒數(shù)第二行中插入代碼:

import numpy as np
data = data.astype(np.float)
ndvi = (data[3]-data[2])/(data[3]+data[2])             #3為近紅外波段;2為紅波段
run.write_img('LC81230402013164LGN00_ndvi.tif',proj,geotrans,ndvi) #寫為ndvi圖像

當然,這是理想的NDVI,實際處理NDVI還會遇到一些其他要處理的問題。例如NDVI值應該在區(qū)間[-1,1]內(nèi),但實際中會出現(xiàn)大于1或小于-1的情況,或者某些像點是壞點,出現(xiàn)空值nan,需要進一步的配套處理。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • python3使用GUI統(tǒng)計代碼量

    python3使用GUI統(tǒng)計代碼量

    這篇文章主要為大家詳細介紹了python3使用GUI統(tǒng)計代碼量,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 淺析pandas 數(shù)據(jù)結(jié)構(gòu)中的DataFrame

    淺析pandas 數(shù)據(jù)結(jié)構(gòu)中的DataFrame

    DataFrame 類型類似于數(shù)據(jù)庫表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了pandas 數(shù)據(jù)結(jié)構(gòu)之DataFrame,需要的朋友可以參考下
    2019-10-10
  • es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼

    es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼

    本文主要介紹了es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • pytorch之scatter_的用法及說明

    pytorch之scatter_的用法及說明

    這篇文章主要介紹了pytorch之scatter_的用法及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python opencv 二值化 計算白色像素點的實例

    python opencv 二值化 計算白色像素點的實例

    今天小編就為大家分享一篇python opencv 二值化 計算白色像素點的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python CleverCSV輕松處理CSV文件指南

    Python CleverCSV輕松處理CSV文件指南

    這篇文章主要為大家介紹了Python CleverCSV輕松處理CSV文件全面指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • 詳解python中的 is 操作符

    詳解python中的 is 操作符

    is 操作符是Python語言的一個內(nèi)建的操作符。它的作用在于比較兩個變量是否指向了同一個對象。下面通過本文給大家詳細介紹python中的 is 操作符,需要的朋友參考下吧
    2017-12-12
  • python實現(xiàn)數(shù)據(jù)寫入excel表格

    python實現(xiàn)數(shù)據(jù)寫入excel表格

    這篇文章主要為大家詳細介紹了python實現(xiàn)數(shù)據(jù)寫入excel表格,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 探索Python?random模塊隨機性神奇世界

    探索Python?random模塊隨機性神奇世界

    Python中的random模塊提供了豐富的工具和函數(shù),幫助我們生成隨機數(shù)、操作隨機序列,以及模擬隨機性事件,在本文中,我們將分享random模塊,了解它的基本用法、功能和應用領域,并提供示例代碼來幫助你更好地理解隨機性的神奇世界
    2023-11-11
  • python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法

    python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法

    今天小編就為大家分享一篇python 利用瀏覽器 Cookie 模擬登錄的用戶訪問知乎的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

杭锦旗| 长葛市| 惠东县| 沙湾县| 清水河县| 宽甸| 清丰县| 保山市| 屏山县| 东乡| 昭通市| 扶沟县| 铜鼓县| 台安县| 沭阳县| 巴马| 县级市| 镇江市| 宁陕县| 巫山县| 普兰店市| 神池县| 灵山县| 汽车| 古丈县| 扎赉特旗| 锦屏县| 扶余县| 德阳市| 昌图县| 垦利县| 同德县| 原阳县| 潮安县| 金阳县| 阜城县| 彭泽县| 崇左市| 饶平县| 甘泉县| 子洲县|