python中rasterio的安裝和使用
前言
很久沒更新公眾號啦,給看客老爺們匯報下我最近都在忙啥。由于工作和自己的原因,需要搞一點科研,這一直是我的短板。所以我淺學了一下大學數學(線代、高數和概率論),準備結合Python做一些事情。后面可能會更新我學數學的一些心得,大家記得關注哦(我先學會再說)。
學習數學的同時了,還在學習遙感數據處理(感覺遙感比較好水論文),一般處理遙感數據我們會使用ENVI,但是畢竟我會Python,所以我就上網查了一些內容,就發(fā)現了rasterio這個第三方庫。
大家可能聽過GDAL庫,其實rasterio是基于GDAL庫二次封裝的,更加符合Python風格的主要用于空間柵格數據處理的Python庫。所以本文就簡單介紹下rasterio的安裝和使用。
rasterio安裝
這個第三方庫不是很好安裝,嘗試了大半天也沒安裝上。rasterio依賴很多第三方庫,所以比較麻煩,我們按下面的順序依次安裝即可。
pyproj Shapely GDAL Fiona geopandas rasterio
通過這個網址下載第三方庫https://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio
這里有兩點需要注意。
(1)一定要選擇對應Python版本最高版本的第三庫。以pyproj為例,我本地的Python為3.8版本,所以我要選擇下載如下的版本。

(2)最后還需要更新下numpy庫,不然也導入不了。
rasterio使用
其實我用Python來操作影像就兩個要求,一是能讀取到各個影像波段的數據,二是經過一些處理后,能再將數據存為影像。
這里以landsat影像為例,讀取數據后,計算NDVI值,然后保存到本地。

使用open函數就可以讀取影像數據,count屬性就是影像的波段數(landsat全色是7個波段)。
import rasterio
data = rasterio.open('yingxiang.tif')
print(data.count)
7當然還有很多其他的影像屬性。
width 寬度
height 高度
bounds 地理范圍
transform 反射變化參數
crs 坐標參考系
當然我們最關心的是如何讀取波段數據,其實很簡單,用read函數即可。

這里我們需要計算NDVI,我們只需要讀取紅波段和近紅外波段即可。
red = data.read(4).astype('float64')
nir_red = data.read(5).astype('float64')
ndvi = (nir_red-red)/(nir_red+red)
ndvi最后,寫入到新的柵格即可。
new_dataset = rasterio.open('ndvi.tif',
'w',
driver='GTiff',
height=data.height,
width=data.width,
count=1,
dtype='float64',
crs=data.crs,
transform=data.transform)
new_dataset.write(ndvi, 1)
new_dataset.close()
到此這篇關于python中rasterio的安裝和使用的文章就介紹到這了,更多相關rasterio安裝使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用python+ffmpeg合并B站視頻及格式轉換的實例代碼
這篇文章主要介紹了利用python+ffmpeg合并B站視頻及格式轉換的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11

