python中rasterio的安裝和使用
前言
很久沒(méi)更新公眾號(hào)啦,給看客老爺們匯報(bào)下我最近都在忙啥。由于工作和自己的原因,需要搞一點(diǎn)科研,這一直是我的短板。所以我淺學(xué)了一下大學(xué)數(shù)學(xué)(線(xiàn)代、高數(shù)和概率論),準(zhǔn)備結(jié)合Python做一些事情。后面可能會(huì)更新我學(xué)數(shù)學(xué)的一些心得,大家記得關(guān)注哦(我先學(xué)會(huì)再說(shuō))。
學(xué)習(xí)數(shù)學(xué)的同時(shí)了,還在學(xué)習(xí)遙感數(shù)據(jù)處理(感覺(jué)遙感比較好水論文),一般處理遙感數(shù)據(jù)我們會(huì)使用ENVI,但是畢竟我會(huì)Python,所以我就上網(wǎng)查了一些內(nèi)容,就發(fā)現(xiàn)了rasterio這個(gè)第三方庫(kù)。
大家可能聽(tīng)過(guò)GDAL庫(kù),其實(shí)rasterio是基于GDAL庫(kù)二次封裝的,更加符合Python風(fēng)格的主要用于空間柵格數(shù)據(jù)處理的Python庫(kù)。所以本文就簡(jiǎn)單介紹下rasterio的安裝和使用。
rasterio安裝
這個(gè)第三方庫(kù)不是很好安裝,嘗試了大半天也沒(méi)安裝上。rasterio依賴(lài)很多第三方庫(kù),所以比較麻煩,我們按下面的順序依次安裝即可。
pyproj Shapely GDAL Fiona geopandas rasterio
通過(guò)這個(gè)網(wǎng)址下載第三方庫(kù)https://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio
這里有兩點(diǎn)需要注意。
(1)一定要選擇對(duì)應(yīng)Python版本最高版本的第三庫(kù)。以pyproj為例,我本地的Python為3.8版本,所以我要選擇下載如下的版本。
(2)最后還需要更新下numpy庫(kù),不然也導(dǎo)入不了。
rasterio使用
其實(shí)我用Python來(lái)操作影像就兩個(gè)要求,一是能讀取到各個(gè)影像波段的數(shù)據(jù),二是經(jīng)過(guò)一些處理后,能再將數(shù)據(jù)存為影像。
這里以landsat影像為例,讀取數(shù)據(jù)后,計(jì)算NDVI值,然后保存到本地。
使用open函數(shù)就可以讀取影像數(shù)據(jù),count屬性就是影像的波段數(shù)(landsat全色是7個(gè)波段)。
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ù),其實(shí)很簡(jiǎn)單,用read函數(shù)即可。
這里我們需要計(jì)算NDVI,我們只需要讀取紅波段和近紅外波段即可。
red = data.read(4).astype('float64') nir_red = data.read(5).astype('float64') ndvi = (nir_red-red)/(nir_red+red) ndvi
最后,寫(xiě)入到新的柵格即可。
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼
這篇文章主要介紹了利用python+ffmpeg合并B站視頻及格式轉(zhuǎn)換的實(shí)例代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11ansible作為python模塊庫(kù)使用的方法實(shí)例
ansible是一個(gè)python package,是個(gè)完全的unpack and play軟件,對(duì)客戶(hù)端唯一的要求是有ssh有python,并且裝了python-simplejson包,部署上簡(jiǎn)單到發(fā)指。下面這篇文章就給大家主要介紹了ansible作為python模塊庫(kù)使用的方法實(shí)例,需要的朋友可以參考借鑒。2017-01-01Python+tkinter制作經(jīng)典登錄界面和點(diǎn)擊事件
Tkinter是?Python?標(biāo)準(zhǔn)?GUI?庫(kù),簡(jiǎn)稱(chēng)?“Tk”;從本質(zhì)上來(lái)說(shuō),它是對(duì)?TCL/TK?工具包的一種?Python?接口封裝。本文將利用tkinter制作一個(gè)經(jīng)典的登錄界面和點(diǎn)擊事件,需要的可以參考一下2022-09-09利用Opencv實(shí)現(xiàn)圖片的油畫(huà)特效實(shí)例
這篇文章主要給大家介紹了關(guān)于利用Opencv實(shí)現(xiàn)圖片的油畫(huà)特效的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Python實(shí)現(xiàn)葵花8號(hào)衛(wèi)星數(shù)據(jù)自動(dòng)下載實(shí)例
這篇文章主要為大家介紹了Python實(shí)現(xiàn)葵花8號(hào)衛(wèi)星數(shù)據(jù)自動(dòng)下載實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10