返回笔记列表
01 · NOTES / Python

rasterio

2026 年 4 月 28 日

rasterio

分类:Python

最后修改时间:2026-04-28 14:42:35.168


打开栅格数据

查看名字、打开模式

查看元数据

width和height表示的是列、行数 count表示多少波段 transform变换矩阵,把每个像素映射到投影上 a,e对应空间分辨率,b,d代表旋转,c,f表示图像左上角,c,f很重要 指定了图的左上角在哪里,确定的栅格图像在投影下的位置,否则只是一张图像

查看边界

可视化

选择可视化的波段

rasterio中的索引是从1开始的,不是0

自定义颜色映射表

导入矢量

使用geopandas导入矢量边界 注意坐标系的一致,可以使用gdf.to_crs(src.crs)直接统一坐标系

添加图例、标题

如果用plt.imshow()就会丢失坐标信息 只有用rasterio.plot.show()画图,才会在坐标轴上显示坐标

多光谱数据

导入、查看

波段命名

可视化

显示多个波段

flatten展开

axes = axes.flatten()表示把画布展开,比如两行三列是 fig,axes=plt.subplots(2,3)索引时间要用axes[0][1]或者axes[1,2] 展开后只需要用axes[0]或axes[1]或axes[2]….或axes[5]

波段合成

用np.dstack((band1,band2,band3))进行合成 .clip(0,1)是为了去除异常值

波段计算

NDVI

.clip()去除异常值

NDWI

数据导出

导出单波段

在经过波段运算后的数据,比如nvdi,ndwi,都变成了数组,没有地理信息,所以要用 rasterio.open()打开栅格元数据profile,里面有driver:gtiff,count:7,crs等波段、坐标信息 再用**profile.update(...)修改元数据profile的属性以适应新生成的数据,比如 count=1指ndvi一个波段,compress=‘lzw’,LZW是一种压缩算法 最后以rasterio.open(output_raster_path,’w’)以写入的方式打开栅格(因为没有output,所以相当于创建)** 再用 .write()写入 **profile 将 profile 字典中的所有键值对展开为函数的参数。 **profile就相当于是width=2485,height=2563,count=1,dtype=’float32’,csr=’’所以信息 所以每次保存都应该线打开原始栅格,然后更新,并且导出时要用原始栅格的信息

导出多波段

导出3个波段的rgb影像

栅格裁剪

按范围裁剪

按矢量边界裁剪

TAGSpython