python中rasterio的安装和使用

 更新时间:2025年04月10日 11:06:15   作者:罗罗攀  
本文主要介绍了python中rasterio的安装和使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

很久没更新公众号啦,给看客老爷们汇报下我最近都在忙啥。由于工作和自己的原因,需要搞一点科研,这一直是我的短板。所以我浅学了一下大学数学(线代、高数和概率论),准备结合Python做一些事情。后面可能会更新我学数学的一些心得,大家记得关注哦(我先学会再说)。

学习数学的同时了,还在学习遥感数据处理(感觉遥感比较好水论文),一般处理遥感数据我们会使用ENVI,但是毕竟我会Python,所以我就上网查了一些内容,就发现了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版本,所以我要选择下载如下的版本。

e2186ac5b265da140889d2cc45c5ea8b.png

(2)最后还需要更新下numpy库,不然也导入不了。

rasterio使用

其实我用Python来操作影像就两个要求,一是能读取到各个影像波段的数据,二是经过一些处理后,能再将数据存为影像。

这里以landsat影像为例,读取数据后,计算NDVI值,然后保存到本地。

de284572a50b4f54c344bb1ebd24d486.png

使用open函数就可以读取影像数据,count属性就是影像的波段数(landsat全色是7个波段)。

import rasterio

data = rasterio.open('yingxiang.tif')
print(data.count)

7

当然还有很多其他的影像属性。

width 宽度
height 高度
bounds 地理范围
transform 反射变化参数
crs 坐标参考系

当然我们最关心的是如何读取波段数据,其实很简单,用read函数即可。

a6d8392b37cb7f58b63504b1d7dd0133.png

这里我们需要计算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()

5c7886c2b64ae85b64612e70738537a6.png

到此这篇关于python中rasterio的安装和使用的文章就介绍到这了,更多相关rasterio安装使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 利用python+ffmpeg合并B站视频及格式转换的实例代码

    利用python+ffmpeg合并B站视频及格式转换的实例代码

    这篇文章主要介绍了利用python+ffmpeg合并B站视频及格式转换的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Python学习之自定义异常详解

    Python学习之自定义异常详解

    这篇文章主要为大家介绍了Python中如何自定义异常,以及自定义抛出异常的关键字—raise的用法,文中示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-03-03
  • 解决python线程卡死的问题

    解决python线程卡死的问题

    今天小编就为大家分享一篇解决python线程卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python在游戏中的热更新实现

    Python在游戏中的热更新实现

    本文主要介绍了Python在游戏中的热更新实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • ansible作为python模块库使用的方法实例

    ansible作为python模块库使用的方法实例

    ansible是一个python package,是个完全的unpack and play软件,对客户端唯一的要求是有ssh有python,并且装了python-simplejson包,部署上简单到发指。下面这篇文章就给大家主要介绍了ansible作为python模块库使用的方法实例,需要的朋友可以参考借鉴。
    2017-01-01
  • 探究Python中isalnum()方法的使用

    探究Python中isalnum()方法的使用

    这篇文章主要介绍了探究Python中isalnum()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python+tkinter制作经典登录界面和点击事件

    Python+tkinter制作经典登录界面和点击事件

    Tkinter是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包的一种 Python 接口封装。本文将利用tkinter制作一个经典的登录界面和点击事件,需要的可以参考一下
    2022-09-09
  • python pickle 和 shelve模块的用法

    python pickle 和 shelve模块的用法

    pickle和shelve模块都可以把python对象存储到文件中,下面来看看它们的用法吧
    2013-09-09
  • 利用Opencv实现图片的油画特效实例

    利用Opencv实现图片的油画特效实例

    这篇文章主要给大家介绍了关于利用Opencv实现图片的油画特效的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python实现葵花8号卫星数据自动下载实例

    Python实现葵花8号卫星数据自动下载实例

    这篇文章主要为大家介绍了Python实现葵花8号卫星数据自动下载实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论