Невозможно выполнить Spectral Angle Mapper (SAM) для обнаружения целей на гиперспектральных данных в python

Я работаю над гиперспектральными спутниковыми снимками и пытаюсь реализовать алгоритм SAM в своем наборе данных. Я пытаюсь использовать функции speckral_angle и msam, которые доступны в спектральной библиотеке python. Я использую следующие команды. Набор данных после предварительной обработки имеет размеры (2000,2000,20)

подпись=куб_изображения[300,500,:] ммп=спектральные_углы(куб_изображения,подпись.изменить(1,20))

Я получаю массив numpy, содержащий все значения «Nan».


person KHIZER    schedule 23.10.2020    source источник


Ответы (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 вам, возможно, придется сначала преобразовать его в тип с плавающей запятой. Кроме того, вы можете заменить ноль любым значением с плавающей запятой (например, средним спектром).

person bogatron    schedule 27.10.2020