python批量提取浮点型高光谱平均反射率并存储到csv
时间: 2023-05-27 12:01:57 浏览: 201
文件中
假设你已经有了一张高光谱图像,其中每个像素点都对应着不同波段的反射率值。现在,要批量提取每个波段的平均反射率,并将这些数据存储到一个CSV文件中。
下面是一种可能的实现方式:
```python
import numpy as np
import pandas as pd
# 读取高光谱图像数据
image = np.load('image.npy')
# 获取图像的形状和波段数
height, width, num_bands = image.shape
# 初始化一个空的DataFrame,用于存储每个波段的平均反射率数据
df = pd.DataFrame(columns=['Band', 'Mean Reflectance'])
# 遍历每个波段
for band in range(num_bands):
# 提取该波段所有像素点的反射率值,并计算平均值
reflectances = image[:, :, band].reshape((height*width,))
mean_reflectance = np.mean(reflectances)
# 将该波段的平均反射率数据添加到DataFrame中
df.loc[band] = [band, mean_reflectance]
# 将DataFrame保存到CSV文件中
df.to_csv('mean_reflectances.csv', index=False)
```
这段代码首先从一个`.npy`文件中读取高光谱图像数据,并使用`np.shape`函数获取其形状和波段数。然后,它初始化一个空的`DataFrame`对象,用于存储每个波段的平均反射率数据。接下来,它使用一个`for`循环遍历每个波段,提取该波段所有像素点的反射率值,并计算平均值。最后,它将每个波段的平均反射率数据添加到`DataFrame`中,并将`DataFrame`保存到CSV文件中。
阅读全文