使用Rasterio读取栅格数据
使用Rasterio读取栅格数据
作者:阿振 邮箱:tanzhenyugis@163.com
博客:https://blog.csdn.net/theonegis/article/details/80089375
修改时间:2018-06-06
声明:本文为博主原创文章,转载请注明原文出处
Rasterio简介
有没有觉得用GDAL的Python绑定书写的代码很不Pythonic,强迫症的你可能有些忍受不了。不过,没关系,MapBox旗下的开源库Rasterio帮我们解决了这个痛点。
Rasterio是基于GDAL库二次封装的更加符合Python风格的主要用于空间栅格数据处理的Python库。
Rasterio中栅格数据模型基本和GDAL类似,需要注意的是:
在Rasterio 1.0以后,对于GeoTransform的表示弃用了GDAL风格的放射变换,而使用了Python放射变换的第三方库affine库的风格。
对于放射变换
affine.Affine(a, b, c,
d, e, f)GDAL中对应的参数顺序是:(c, a, b, f, d, e)
采用新的放射变换模型的好处是,如果你需要计算某个行列号的地理坐标,直接使用行列号跟给放射变换对象相乘即可,完全符合数学上矩阵乘法的操作,更加直观和方便。
栅格数据读取代码示例
下面的示例程序中演示了如何读取一个GeoTIFF文件并获取相关信息,需要注意的是:
rasterio使用
rasterio.open()函数打开一个栅格文件rasterio使用
read()函数可以将数据集转为numpy.ndarray,该函数如果不带参数,将把数据的所有波段做转换(第一维是波段数),如果指定波段,则只取得指定波段对应的数据(波段索引从1开始)数据的很多元信息都是以数据集的属性进行表示的
输出如下:
Last updated