Автоматизация обработки данных Lansat 8
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Автоматизация обработки данных Lansat 8
Как выполнить пересчёт исходных материалов Landsat в сопоставимые значения, что необходимо для детального анализа, понятно. Теперь возникла проблема — как выполнить это преобразование для большого числа сцен. Например, имеется архив сцен по одному району за 30 лет и требуется оценить динамику состояния экосистемы за этот период. Число сцен при этом в идеале должно быть тоже равным 30. Однако, т.к. подобрать сцены на одну и ту же дату невозможно, то приходится брать несколько смежных по времени. Затем, так вышло, что изучаемая территория полностью или частично перекрывается несколькими смежными в пространстве сценами. Если всё это учесть, то число сцен, подлежащих обработке, оценивается в 300.
Налицо проблема необходимости автоматизации! Нашёл очень интересную функцию GRASS — i.atcorr. Посмотрев форум по GRASS, увидел, что людям она знакома. Однако, описание функции прямо отсылает к файлу метаданных, прилагаемому к сцене для того чтобы взять из него параметры QCAL, LMINλ, LMAXλ, QCALMIN, QCALMAX. А есть ли возможность автоматизировать и это действие? Ведь формат файлов метаданных формализован. Напрашивается функция (программа, скрипт), которая сама берёт необходимые параметры из текстового файла сцены и применяет их к графическим файлам каналов.
Кто-нибудь знаком с подобными функциями?
Налицо проблема необходимости автоматизации! Нашёл очень интересную функцию GRASS — i.atcorr. Посмотрев форум по GRASS, увидел, что людям она знакома. Однако, описание функции прямо отсылает к файлу метаданных, прилагаемому к сцене для того чтобы взять из него параметры QCAL, LMINλ, LMAXλ, QCALMIN, QCALMAX. А есть ли возможность автоматизировать и это действие? Ведь формат файлов метаданных формализован. Напрашивается функция (программа, скрипт), которая сама берёт необходимые параметры из текстового файла сцены и применяет их к графическим файлам каналов.
Кто-нибудь знаком с подобными функциями?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Автоматизация обработки данных Lansat 8
Я готового скрипта не встречал, но может быть потому, что и не искал. Вообще, извлечение нужных параметров из метафайла делается довольно просто, если вы знакомы с программированием. Начало метафайла --- обычный текст, содержащий оприсание параметров в виде строк. Поэтому все, что требуется от программы --- найти в тексте нужный параметр и выделить его значение. Если использовать командную строку в Linux, то скрипт займет две-три строки кода, что-то вроде такого (проверял на метафайле 7-го ландсата):Константин Силкин писал(а):...
Однако, описание функции прямо отсылает к файлу метаданных, прилагаемому к сцене для того чтобы взять из него параметры QCAL, LMINλ, LMAXλ, QCALMIN, QCALMAX. А есть ли возможность автоматизировать и это действие? Ведь формат файлов метаданных формализован. Напрашивается функция (программа, скрипт), которая сама берёт необходимые параметры из текстового файла сцены и применяет их к графическим файлам каналов.
Код: Выделить всё
eval $(cat MTL.txt | grep QCAL | tr -d " " )
echo $QCALMAX_BAND1
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
Спасибо, Дмитрий! С программированием знаком. Но делаю это главным образом в MatLab. С Python пока не сталкивался, но похоже пора приступать к освоению… Просто хотел не начинать с изобретательства велосипеда — вдруг что готовое уже имеется. Неужели все, кто рассчитывает NDVI, так вручную параметры и вынимают? Или вообще никто этими параметрами и не забивает себе голову? Однако в связи с появлением Landsat 8 эта проблема встала остро
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Автоматизация обработки данных Lansat 8
нет, конечно. Все программы, работающие с космическими снимками, позволяют пересчитать "попугаи" (DN) в reflectance/radiance ...Константин Силкин писал(а):Неужели все, кто рассчитывает NDVI, так вручную параметры и вынимают?
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
gamm, пожалуйста, поясните, что вы имели в виду. Во-первых, "все программы" — это какие, например? Во-вторых, программы, что вы имели в виду, просто выполняют пересчёт по простой формуле, введённой пользователем (вместе со всеми константами) вручную? Или самостоятельно извлекают значения нужных коэффициентов из файла с метаданными, лежащего в той же папке, что и файлы каналов?
Только что заметил, что тему переместили в форум по GRASS. Не думаю, что имеет смысл ограничиваться только этой ГИС, т.к. могут быть другие программы, с необходимыми возможностями. Поэтому, уважаемый модератор, верните тему, пожалуйста, назад или в другое более подходящее место
Только что заметил, что тему переместили в форум по GRASS. Не думаю, что имеет смысл ограничиваться только этой ГИС, т.к. могут быть другие программы, с необходимыми возможностями. Поэтому, уважаемый модератор, верните тему, пожалуйста, назад или в другое более подходящее место
-
- Активный участник
- Сообщения: 168
- Зарегистрирован: 08 апр 2009, 14:44
- Репутация: 18
- Откуда: Кострома
Re: Автоматизация обработки данных Lansat 8
Поправьте меня, если я не прав, но чтобы
Или я не прав?
Модуль поддерживает: Landsat MSS/TM/ETM+/OLI.
для Ландсата в Grass можно воспользоваться модулем: i.landsat.toar.пересчитать "попугаи" (DN) в reflectance/radiance ...
Или я не прав?
Модуль поддерживает: Landsat MSS/TM/ETM+/OLI.
-
- Гуру
- Сообщения: 4057
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Автоматизация обработки данных Lansat 8
все программы, предназначенные для работы с космоснимками. И это написано у них в инструкции, достаточно ее прочитать (пример см. постом выше) ...Константин Силкин писал(а):gamm, пожалуйста, поясните, что вы имели в виду. Во-первых, "все программы" — это какие, например?
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
xen87, спасибо! Я правильно понял, что этот модуль сам читает файлы метаданных?
gamm, "пример см. постом выше" — это GRASS?
gamm, "пример см. постом выше" — это GRASS?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Автоматизация обработки данных Lansat 8
Точно! При этом модуль может дать гораздо больше, просто пересчет DN.xen87 писал(а):чтобыдля Ландсата в Grass можно воспользоваться модулем: i.landsat.toar.пересчитать "попугаи" (DN) в reflectance/radiance ...
- gimran
- Гуру
- Сообщения: 1902
- Зарегистрирован: 07 июл 2010, 15:43
- Репутация: 242
- Откуда: Уфа
Re: Автоматизация обработки данных Lansat 8
i.landsat.toar не всегда корректно читает метафайлы (в некоторых при чтении ошибки есть в самих файлах), на практике сталкивался с этим.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
Спасибо, KolesovDmitry и gimran! Похоже функция i.landsat.toar — это то, что нужно. Однако с большим сожалением обнаружил, что SEXTANTE не предоставляет к ней доступ. Можно ли как-то добавить её в SEXTANTE, а, если нет, то как организовать её использование?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Автоматизация обработки данных Lansat 8
Ваше сообщение было скопировано сюда, т.к. речь зашла о GRASS. В исходной теме оно осталось.Константин Силкин писал(а):Не думаю, что имеет смысл ограничиваться только этой ГИС, т.к. могут быть другие программы, с необходимыми возможностями. Поэтому, уважаемый модератор, верните тему, пожалуйста, назад или в другое более подходящее место
Редактор материалов, модератор форума
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
Александр Мурый, я просто спросил совета и GRASS упомянул только ради примера. Ведь совершенно не обязательно, что автоматизация обработки материалов Landsat возможно только в этой ГИС
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Автоматизация обработки данных Lansat 8
Совершенно верно. Вот я и оставил исходное сообщение на месте, а про GRASS унёс для отдельного обсуждения. Дабы не городить кучу в одной теме.Константин Силкин писал(а):Александр Мурый, я просто спросил совета и GRASS упомянул только ради примера. Ведь совершенно не обязательно, что автоматизация обработки материалов Landsat возможно только в этой ГИС
Редактор материалов, модератор форума
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 21 мар 2012, 07:37
- Репутация: 67
- Откуда: Воронеж
Re: Автоматизация обработки данных Lansat 8
Жалко конечно, что SEXTANTE не имеет выхода на эту функцию. Странно только работает она в самой GRASS. Задал все параметры, выполнение закончилось успешно.xen87 писал(а):Поправьте меня, если я не прав, но чтобы для Ландсата в Grass можно воспользоваться модулем: i.landsat.toar.
Код: Выделить всё
(Mon Mar 24 20:52:31 2014)
i.landsat.toar --verbose input_prefix=LT51860131986211XXX03_B output_prefix=LT51860131986211XXX03_toar_B metfile=..\p186r013\LT51860131986211XXX03\LT51860131986211XXX03_MTL.txt
Metada file is MTL file: new format
RADIANCE & QUANTIZE from data of the metadata file
LANDSAT: 5 SENSOR: TM
ACQUISITION DATE 1986-07-30 [production date 2014-03-04]
earth-sun distance = 1.01524789
solar elevation angle = 40.12529841
Atmospheric correction: UNCORRECTED
-------------------
BAND 1 (code 1)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -1.520 to 169.000
at-sensor radiance = 0.67133858 * DN + -2.191
mean solar exoatmospheric irradiance (ESUN): 1957.000
at-sensor reflectance = radiance / 389.48758
-------------------
BAND 2 (code 2)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -2.840 to 333.000
at-sensor radiance = 1.32220472 * DN + -4.162
mean solar exoatmospheric irradiance (ESUN): 1826.000
at-sensor reflectance = radiance / 363.41559
-------------------
BAND 3 (code 3)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -1.170 to 264.000
at-sensor radiance = 1.04397638 * DN + -2.214
mean solar exoatmospheric irradiance (ESUN): 1554.000
at-sensor reflectance = radiance / 309.28140
-------------------
BAND 4 (code 4)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -1.510 to 221.000
at-sensor radiance = 0.87602362 * DN + -2.386
mean solar exoatmospheric irradiance (ESUN): 1036.000
at-sensor reflectance = radiance / 206.18760
-------------------
BAND 5 (code 5)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -0.370 to 30.200
at-sensor radiance = 0.12035433 * DN + -0.490
mean solar exoatmospheric irradiance (ESUN): 215.000
at-sensor reflectance = radiance / 42.78990
-------------------
BAND 6 thermal (code 6)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): 1.238 to 15.303
at-sensor radiance = 0.05537402 * DN + 1.183
at-sensor temperature = 1260.56000 / log[(607.76000 /
radiance) + 1.0]
-------------------
BAND 7 (code 7)
calibrated digital number (DN): 1.0 to 255.0
calibration constants (L): -0.150 to 16.500
at-sensor radiance = 0.06555118 * DN + -0.216
mean solar exoatmospheric irradiance (ESUN): 80.670
at-sensor reflectance = radiance / 16.05517
-------------------
Calculating...
WARNING: 'cell/LT51860131986211XXX03_B1' был найден в нескольких наборах (также найден в <PERMANENT>)
WARNING: Используется<LT51860131986211XXX03_B1@Const>
Writing reflectance of <LT51860131986211XXX03_B1> to <LT51860131986211XXX03_toar_B1>...
Writing reflectance of <LT51860131986211XXX03_B2> to <LT51860131986211XXX03_toar_B2>...
Writing reflectance of <LT51860131986211XXX03_B3> to <LT51860131986211XXX03_toar_B3>...
Writing reflectance of <LT51860131986211XXX03_B4> to <LT51860131986211XXX03_toar_B4>...
Writing reflectance of <LT51860131986211XXX03_B5> to <LT51860131986211XXX03_toar_B5>...
WARNING: Растровый слой <LT51860131986211XXX03_B6> не найден
WARNING: Растровый слой <LT51860131986211XXX03_B7> не найден
(Mon Mar 24 20:56:57 2014) Операция завершена (4 min 25 sec)
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей