Для импорта кривых спектральной отражательной способности объектов в ENVI необходимы значения длины волны и коэффициентов отражения. Эту информацию можно посмотреть в колонке График – Скачать и сохранить в текстовый файл.
1. Отображение кривых
Скачaнные текстовые файлы можно отобразить в окне ENVI Plot Window.
В главном меню ENVI выбираем Window -> Start New Plot Window.
В окне ENVI Plot Window выбираем File -> Input Data ASCII…. и открываем нужные кривые по одной.
Оформление графиков и самого окна можно поменять (в окне ENVI Plot Window Edit -> Data Parameters, Edit -> Plot Parameters). Графики из окна Plot можно сохранить как рисунок (в окне ENVI Plot Window File -> Save Plot As… -> Image File). Сохранить графики в файл спектральной библиотеки не получится, так как они имеют разный диапазон и количество значений.
2. Создание спектральной библиотеки
Предположим нам необходимо создать спектральную библиотеку для лесов Московской области.
Выбираем спектральные кривые по категориям Растительность – Деревья.
Просматриваем список и копируем в текстовый файл названия, в которых указана Московская область (вместе с номерами).
73 Береза (Betula pendula),крона, Московская обл.
74 Осина (Populus tremula), 25 июня, крона, Московская обл.
75 Сосна, крона, Московская обл.
76 Ель, крона, 6 августа, Московская обл.
168 Береза, крона, Московская обл.,17 мая
169 Береза, крона, Московская обл., 31 мая
170 Береза, крона, Московская обл., 8 июня
171 Береза, крона, Московская обл., 26 июня
172 Береза, крона, Московская обл., 14 июля
173 Береза, крона, Московская обл., 6 августа
174 Береза, крона, Московская обл.,1 сентября
175 Береза, крона, Московская обл.,10 сентября
176 Береза, крона, Московская обл., 1 октября
177 Осина, крона, Московская обл., 17 мая
178 Осина, крона, Московская обл., 25 июня
179 Осина, крона, Московская обл., 10 июля
180 Осина, крона, Московская обл., 3 июля
181 Осина, крона, Московская обл., 23 июля
182 Осина, крона, Московская обл., 6 августа
183 Осина, крона, Московская обл., 1 сентября
184 Осина, крона, Московская обл., 10 сентября
185 Дуб, крона, Московская обл., 26 июня
186 Дуб, крона, Московская обл., 4 июля
187 Дуб, крона, Московская обл., 2 сентября
199 Дуб, крона. Московская обл., 17 сентября
200 Ель, крона. Московская обл., 2 июня
201 Ель, крона. Московская обл.,11 июня
202 Ель, крона Московская обл., 10 июля
203 Ель, крона Московская обл., 29 июля
204 Ель, крона. Московская обл., 6 августа
205 Ель, крона. Московская обл., 23 августа
206 Сосна, крона. Московская обл., 20 мая (молодые побеги). Моск. обл.
207 Сосна, крона. . Московская обл., 17 мая (цветы сосны). Моск. обл.
208 Сосна, крона. Московская обл., 4 июня. Моск. обл.
209 Сосна, крона. Московская обл., 24 июня (молодые побеги). Моск. обл.
210 Сосна, крона. . Московская обл., 10 июля
211 Сосна, крона. Московская обл., 6 августа
212 Сосна, крона. Московская обл., 23 августа
Теперь необходимо определиться со спектральным диапазоном нашей библиотеки. Мы не знаем для каких длин волн у нас есть значения в текстовых файлах. Например: cпектральная кривая с номером 73 имеет диапазон 405-765 нанометров, 173 − 400-755 нанометров, 207 − 405-775 нанометров.
Необходимо создать шаблон для будущей библиотеки, сделать его можно в Excel и сохранить в текстовый файл. В шаблоне указываются значения длины волны.
400
405
410
415
420
…
890
895
900
В главном меню ENVI выбираем Spectral -> Spectral Libraries -> Spectral Library Builder. Откроется диалоговое окно Spectral Library Builder, выбираем диапазон для новой библиотеки из нашего шаблона - Input Spectral Wavelenght From -> ASCII File. Единицы измерения – нанометры.
Теперь можно импортировать имеющиеся спектральные кривые в Spectral Library Builder.
Import -> from ASCII file… Выбираем все кривые и нажимаем Ok. Ось X – первая колонка, ось Y – вторая колонка, единицы измерения можно не указывать.
Импортированные спектральные кривые добавятся в Spectral Library Builder. В колонке Wavelength указан диапазон значений спектральных кривых. Диапазон нашей спектральной библиотеки 400-900 нанометров с шагом в 5 нанометров. Диапазон спектральных кривых 405-750 нанометров, 405-765 нанометров, шаг такой же как у библиотеки – 5 нанометров.
При импорте кривых в ENVI автоматически производится интерполяция данных внутри диапазона кривой (если имеются пропуски) и выполняется экстраполяция данных до значений диапазона спектральной библиотеки.
Для просмотра графика спектральной кривой нужно выбрать кривую и нажать кнопку Plot.
Проблему искажений кривых можно решить двумя способами:
1. Изменить диапазон библиотеки с 400-900 нанометров до 400-755 нанометров. Создать новый шаблон и импортировать спектры. Интерполяция и экстраполяция в этом случае так же будет выполняться, но искажения будут не столь сильные;
2. Добавить ограничитель -NaN или два 0 в конце данных кривой.
Удаляем все спектры из Spectral Library Builder. Select All -> Delete. Редактируем содержание наших текстовых файлов, добавляем –NaN в конце и импортируем кривую в Spectral Library Builder. Ограничители infinity или –NaN в начале кривой не воспринимаются при импорте, поэтому указывать их нет смысла. Если нужно исправить значения на этих участках, то это можно сделать вручную в окне Plot Edit -> Data Value. После импорта будет теряться одно значение перед –NaN. Кривые с – NaN будут правильно отображаться в окне Plot, но будут приводить к ошибкам при попытке калибровки библиотеки под конкретную съемочную систему. При использовании 0 таких ошибок не возникает, но график будет не столь красивый. Поскольку при экстраполяции 0 обрабатывается как число, а не как ограничитель, нужно ставить два значения 0 в конце кривой, и если нужно то и в начале. Например, если кривая имеет диапазон 420 - 750 нанометров, а созданная библиотека 400 – 900 нанометров, тогда в файл необходимо добавить значения 410,0 415,0 755,0 760,0.
Значения коэффициентов отражения спектральной кривой номер 174
Кривая с –NaN и кривая с 0
Теперь нужно определиться со структурой библиотеки порядком и названием спектральных кривых. Редактирует текстовый файл с названиями кривых, упрощаем их названия и расставляем в нужном порядке. Проще это сделать в Excel.
Колонку B сохраняем в отдельный текстовый файл, этот файл мы используем для автоматического проставления названий кривых. Импортируем исправленные спектральные кривые в Spectral Library Builder в нужном порядке. Проставляем названия кривых Options -> Import spectrum names from ASCII…
Спектральную библиотеку можно сохранить прямо из окна Spectral Library Builder File -> Save Spectra As -> Spectral Library file… Если необходимо отредактировать значения или изменить диапазон библиотеки сохраняем библиотеку в ASCII файл File -> Save Spectra As -> ASCII file… Редактируем файл в любом текстовом редакторе и открываем в новом окне Plot (Window -> Start New Plot Window, в окне ENVI Plot Window выбираем File -> Input Data ASCII…)
Сохраняем спектральную библиотеку из окна Plot. File -> Save Plot As -> Spectral Library… Выбираем все кривые и нажимаем Ok.
Можно поменять название осей X и Y, перевести значения оси Х из нанометров в микрометры (X Scale factor = 0.001) вводим имя файла и нажимаем Ok.
Готовый файл спектральной библиотеки будет добавлен в окно Available Band List. Для просмотра библиотеки нужно навестись на имя файл и выбрать в контекстном меню Spectral Library Viewer.
3. Работа со спектральными библиотеками
Открытие и просмотр
В главном меню ENVI выберите Spectral -> Spectral Libraries -> Spectral Library Viewer. Откроется диалоговое окно Spectral Library Input File. Нажмите на кнопку открыть файл (Open) и выберите в списке Спектральная библиотека (Spectral library…).
Перейдите в папку со спектральными библиотеками ENVI для растительности envidata\spec_lib\veg_lib, выберите любой файл с расширением *.sli и нажмите Открыть (Open). Если спектральная библиотека уже была открыта раньше, выберите ее в списке диалогового окна Spectral Library Input File и нажмите OK. Появиться диалог Spectral Library Viewer.
Для отображения спектральной кривой один раз нажмите на ее имя в окне Spectral Library Viewer. Появиться окно Spectral Library Plots с выбранной спектральной кривой. Для открытия нескольких спектральных кривых поочередно нажимаем на имена спектров. Каждая новая спектральная кривая будет отображаться в окне Plot новым цветом.
Для того чтобы показать имена спектральных кривых нажмите на правую кнопку мыши в окне Spectral Library Plots и выбрать в контекстном меню Plot Key. Для удаления кривой из окна Plot нужно навестись на ее имя и выбрать в контекстном меню Remove. Нажав левую кнопку мыши над именем кривой и удерживая ее можно перетащить кривую из одного окна Plot в другое окно Plot. Можно поменять оформление графиков и самого окна (в окне ENVI Plot Window Edit -> Data Parameters, Edit -> Plot Parameters). Графики из окна Plot можно сохранить как рисунок (в окне ENVI Plot Window File -> Save Plot As… -> Image File).
Калибровка спектральной библиотеки под конкретную съемочную систему (Resampling)
Для сравнения и сопоставления кривых спектральной отражательной способности полученных со снимка с кривыми из спектральной библиотеки, последние необходимо пересчитать, используя функции пропускания энергия для каждого спектрального канала съемочной системы. Для некоторых съемочных систем функции пропускания энергии (так называемые Filter Function Files) есть в ENVI папке filt_func.
Выполним калибровку созданной библиотеки для работы со снимками Landsat7/ETM+. Откроем файл с функциями пропускания энергии для каналов Landsat7/ETM+ - IDL**\products\envi**\filt_func\tm.sli . Filter Function File - обычный файл спектральной библиотеки, открывается через Spectral Library Viewer.
Выбираем нужные каналы Landsat7/ETM+, например 1,2,3,4,5,7.
В главном меню ENVI выберите Spectral -> Spectral Libraries -> Spectral Library Viewer. Нажмите на кнопку открыть файл (Open) и выберите в списке Спектральная библиотека (Spectral library…).
Открываем созданную спектральную библиотеку для лесов Московской области с нулевыми значениями.
Диапазон нашей библиотеки подходит только для работы с 1,2,3 каналами Landsat7/ETM+. Удаляем кривые для 4,5,7 каналов из окна Plot и сохраняем оставшиеся кривые в файл landsat_etm_123.sli.
Выбираем Spectral -> Spectral Libraries -> Spectral Library Resampling. Spectral Resampling Input File – наша спектральная библиотека. Указываем Resample Wavelengh to -> User Defined Filter Function, Set bad Valuees to = 0. Пишем имя новой спектральной библиотеки и нажимаем Ok.
Input Filter Function Spectral Library выбираем файл landsat_etm_123.sli. Готовый файл пересчитанной спектральной библиотеки будет добавлен в окно Available Band List.
Центры спектральных каналов, рассчитанные по filter function file – 0.4791, 0.5607, 0.6611.
Спектральные кривые, пересчитанные под конкретную съемочную систему могут быть использованы для решения различных задач:
1. калибровка съемочной аппаратуры
2. коррекция влияния атмосферы
3. выделение искомых объектов на снимке (классификации например методом SAM)
4. оценка возможности выполнения субпиксельного анализа изображения
5. субпиксельный анализ изображения
Главным условием корректного решения всех этих задач будет сопоставимость наших данных: дата и время года получения спектральной кривой и съемки; условия освещенности и состояние атмосферы на момент получения спектральной кривой и съемки; и многое другое.
См. также: Каталог Программного обеспечения: - ENVI Каталог Организаций: - GIS-Lab Каталог Оборудования: - Landsat-7