> For the complete documentation index, see [llms.txt](https://hyperspecter.gitbook.io/userguide_ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hyperspecter.gitbook.io/userguide_ru/prosmotr-dannykh/lokalnyi-prosmotrshik-python.md).

# Локальный просмотрщик Python

Программа просмотра гиперспектров является примером ПО для чтения, визуализации и первичного анализа гиперспектральных данных.

Основной репозиторий программы расположен по адресу: <https://github.com/copterspace/hspviewer>

Для работы программы необходимо наличие на компьютере версии Python 3.7 и выше, а также OpenCV.

Запуск программы из командной строки осуществляется командой `python hyperspecter_viewer.py`.

Выход из программы осуществляется с помощью клавиши ESC.

### Чтение гиперкуба

Диалог чтения гиперспектральных данных открывается при запуске программы. Также возможно прочитать новый куб, нажав клавишу O (латинскую - Open).

Поддерживается чтение гиперкубов в следующих форматах:

* **.npy** - внутренний формат модуля numpy Python (по умолчанию)
* **.tiff** - многослойный GeoTIFF
* .**jpg, .jpeg, .png, .bmp** - RGB изображения, открываются как гиперкуб с 3 слоями

### Просмотр гиперкуба

После чтения гиперкуба открывается окно визуализации гиперкуба (Image) и окно настроек (Settings).

![Image - окно визуализации гиперкуба](/files/-MRxfeRBZdBGS2M32xsO)

![Settings - окно настроек программы](/files/-MRxfznvMVkvu4G0DrwH)

В окне Settings отображаются следующие настройки:

* **layer** - номер слоя гиперкуба, отображаемого в окне Image
* **red\_edge** - номер крайнего слоя видимого спектра. Следующие слои после этого слоя считается, что находятся в инфракрасном спектре, и отображаются как чёрно-белые изображения, без использования цветосинтеза
* **num\_points** - количество точек для сравнительного анализа спектра. Возможны значения от 1 до 9

Слои гиперкуба можно сохранить в виде отдельных картинок в формате .png, с помощью клавиши W. Вызывается диалог для выбора имени файла. При сохранении к имени файла добавляется номер слоя гиперкуба.

### Диаграмма спектра точек гиперкуба

Кликом левой кнопки мыши в окне Image выделяются точки, гистограмма слоёв гиперспектра для которых отображается в окне hist:

![hist - гистограмма спектров выделенных точек](/files/-MRxiqB7TnXDry3321Ox)

Кликом левой кнопки мыши на окне гистограммы можно выбрать слои, по которым осуществляется расчёт Евклидова расстояния точек гиперкуба (см ниже). По умолчанию выбраны все слои. Клик правой кнопки мыши в окне hist - инвертирует выделение.

### Сохранение спектров точек в файлы csv

Гистограммы спектров выделенных точек гиперкуба можно сохранить в файлы в формате CSV. Диалог выбора имени файла вызывается клавишей S.

### Первичный анализ гиперкуба

В качестве первичного алгоритма анализа гиперкуба используется расчёт [Евклидова расстояния](https://wiki.loginom.ru/articles/euclid-distance.html) (корень из суммы квадратов) для выбранной точки или средней для выбранной прямоугольной области куба.

Точка или область выбирается правой кнопкой мыши а окне Image.

Результат расчёта отображается в окне Distances Map:

![Distances Map - карта Евклидовых расстояний спектра ](/files/-MRxmQ-Uo-vGtncn-rhT)

Наиболее похожие на выбранную точку спектры на карте расстояний выделяются более светлым оттенком.&#x20;

Таким образом можно находить объекты с наиболее похожими спектральными характеристиками.
