python中rasterio的安裝和使用
前言
很久沒更新公眾號啦,給看客老爺們匯報下我最近都在忙啥。由于工作和自己的原因,需要搞一點科研,這一直是我的短板。所以我淺學了一下大學數(shù)學(線代、高數(shù)和概率論),準備結合Python做一些事情。后面可能會更新我學數(shù)學的一些心得,大家記得關注哦(我先學會再說)。
學習數(shù)學的同時了,還在學習遙感數(shù)據(jù)處理(感覺遙感比較好水論文),一般處理遙感數(shù)據(jù)我們會使用ENVI,但是畢竟我會Python,所以我就上網(wǎng)查了一些內容,就發(fā)現(xiàn)了rasterio這個第三方庫。
大家可能聽過GDAL庫,其實rasterio是基于GDAL庫二次封裝的,更加符合Python風格的主要用于空間柵格數(shù)據(jù)處理的Python庫。所以本文就簡單介紹下rasterio的安裝和使用。
rasterio安裝
這個第三方庫不是很好安裝,嘗試了大半天也沒安裝上。rasterio依賴很多第三方庫,所以比較麻煩,我們按下面的順序依次安裝即可。
pyproj Shapely GDAL Fiona geopandas rasterio
通過這個網(wǎng)址下載第三方庫https://www.lfd.uci.edu/~gohlke/pythonlibs/#rasterio
這里有兩點需要注意。
(1)一定要選擇對應Python版本最高版本的第三庫。以pyproj為例,我本地的Python為3.8版本,所以我要選擇下載如下的版本。
(2)最后還需要更新下numpy庫,不然也導入不了。
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
當然還有很多其他的影像屬性。
width 寬度
height 高度
bounds 地理范圍
transform 反射變化參數(shù)
crs 坐標參考系
當然我們最關心的是如何讀取波段數(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()
到此這篇關于python中rasterio的安裝和使用的文章就介紹到這了,更多相關rasterio安裝使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
利用python+ffmpeg合并B站視頻及格式轉換的實例代碼
這篇文章主要介紹了利用python+ffmpeg合并B站視頻及格式轉換的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Python+tkinter制作經(jīng)典登錄界面和點擊事件
Tkinter是?Python?標準?GUI?庫,簡稱?“Tk”;從本質上來說,它是對?TCL/TK?工具包的一種?Python?接口封裝。本文將利用tkinter制作一個經(jīng)典的登錄界面和點擊事件,需要的可以參考一下2022-09-09Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例
這篇文章主要為大家介紹了Python實現(xiàn)葵花8號衛(wèi)星數(shù)據(jù)自動下載實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10