【问题标题】:Unable to perform Spectral Angle Mapper (SAM) for target detection on hyperspectral data in python无法在 python 中对高光谱数据执行光谱角映射器 (SAM) 进行目标检测
【发布时间】:2021-02-06 09:27:06
【问题描述】:
我正在研究高光谱卫星图像,我正在尝试在我的数据集上实现 SAM 算法。我正在尝试使用光谱 python 库中提供的spectral_angle 和 msam 函数。
我正在使用以下命令。预处理后的数据集有维度(2000,2000,20)
签名=image_cube[300,500,:]
mmn=spectral_angles(image_cube,signature.reshape(1,20))
我得到一个包含所有值 'Nan' 的 numpy 数组。
【问题讨论】:
标签:
python
spectral
spectral-python
【解决方案1】:
您的数据中显然包含 NaN 值。假设image_cube,试试这个:
image_cube[np.isnan(image_cube)] = 0
signature=image_cube[300,500,:]
mmn=spectral_angles(image_cube,signature.reshape(1,20))
根据image_cube 的数据类型,您可能需要先将其转换为浮点类型。此外,您可以将零替换为您喜欢的任何浮点值(例如,平均频谱)。