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

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

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

這里我們需要計算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()
到此這篇關(guān)于python中rasterio的安裝和使用的文章就介紹到這了,更多相關(guān)rasterio安裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實例代碼
這篇文章主要介紹了利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
Python+tkinter制作經(jīng)典登錄界面和點擊事件
Tkinter是?Python?標(biāo)準(zhǔn)?GUI?庫,簡稱?“Tk”;從本質(zhì)上來說,它是對?TCL/TK?工具包的一種?Python?接口封裝。本文將利用tkinter制作一個經(jīng)典的登錄界面和點擊事件,需要的可以參考一下2022-09-09
Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例
這篇文章主要為大家介紹了Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10

