这是 Python遥感影像处理指南系列的第二篇 - 处理卫星图像数据。在本系列的第一篇文章中,我们设置了从 Jupyter Notebook 运行 Python 代码的环境,并学习了如何通过使用 rasterio 包打开 GeoTiff 图像。今天我们将学习矩阵运算的基础知识。这将使我们能够组合矩阵来执行栅格计算并创建光谱指数。
本篇的目标是计算修改归一化水指数 (MNDWI) ,将水掩模和 RGB 图像并排显示以进行比较。
1、打开影像(多波段)
接上一篇,我们使用Landset8作为数据源,因为需要进行波段计算,所以需要读取多个波段的影像,并将每个波段存储为不同的变量,比如
b2 = rasterio.open(#image_name_here)
b3 = rasterio.open(#image_name_here)
b4 = rasterio.open(#image_name_here)
然而,为了编写更干净且可重用的代码,们将学习如何处理Python字典并使用字典理解语法。
Python字典
Python 字典dic是一种可变容器模型,且可存储任意类型对象。字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:
dic = {key1 : value1, key2 : value2 }
因此,我们的主要想法是将图像的波段声明为一个这样的对象:
img = {'B1': band1 , 'B2': band2, 'B2': band3, ...}
这里键 ‘B1’
、‘B2’
和 ‘B3’
是任意定义的,以便我们稍后可以访问我们的数据,像这样:img[‘B1’]
或 img[‘B2’]
。此外,band1、band2和band3可以是我们想要的任何对象,比如