Как обрабатывать спутниковые снимки с помощью Sen2Cor

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Sen2Cor — программа для обработки снимков, сделанных со спутника Sentinel-2. В статье рассказывается, как установить, запустить и настроить её.

Спутниковый снимок до и после обработки с помощью Sen2Cor

В магистратуре мне понадобилось сделать атмосферную коррекцию снимков со спутника Sentinel-2. Магистратура по экологии, поэтому можно было не углубляться в физику и математику, а использовать готовый инструмент. Такой инструмент нашёлся — Sen2Cor.

Что такое Sentinel-2
Sentinel-2 — пара спутников, запущенных Европейским космическим агентством (ESA) в 2015 году. Снимают в 13 диапазонах, пролетают над одним и тем же местом примерно раз в неделю. Область съёмки — все континенты, прибрежные зоны и внутренние моря. Каждый снимок охватывает территорию 100 на 100 километров. Максимальное пространственное разрешение — 10 метров на пиксель. Снимки распространяются бесплатно — их можно скачать после регистрации через Copernicus Open Access Hub или USGS Earth Explorer.

Проблема в том, что понятной инструкции для Sen2Cor нет. Авторы учебников по геоинформатике не лезут в такие дебри, как работа с конкретными программами, а авторы научных статей, напротив, полагают, что коррекция снимков — слишком простая часть методики, поэтому не описывают её подробно. На сайтах «для чайников» (и не совсем для чайников) о Sen2Cor тоже не пишут. Официальная документация запутанная: достаточно сказать, что раздел «Установка» на 26-й странице «Руководства пользователя» сразу отсылает к 60-й странице Release Notes. Чтобы разобраться, мне потребовалось время.

Я решил написать понятное руководство по установке, запуску и настройке Sen2Cor. Руководство ориентировано на биологов, экологов, специалистов по сельскому хозяйству и всех тех, кому может понадобиться обработка спутниковых снимков, но для кого она не является основной задачей. По сути, я делюсь собственным опытом. Абсолютную правильность и полноту не гарантирую. Специалисты по геоинформатике, думаю, сами мне что-то посоветуют.

Строго говоря, Sen2Cor делает не только атмосферную коррекцию, но и поправку на угол восхождения Солнца и рельеф местности, а также тематическую классификацию (scene classification), но для меня важнее всего была атмосферная коррекция. Поэтому для простоты я иногда вместо «обработка» пишу «атмосферная коррекция», хотя это неточно.

Sen2Cor работает в трёх режимах: как отдельное консольное приложение, как плагин в составе Sentinel-2 Toolbox и как консольное приложение, используемое в PDGS (Payload Data Ground Segment). PDGS — это наземный центр обработки данных, получаемых со спутников. Находится он в Италии в исследовательском институте. Теоретически можно запустить Sen2Cor в том же режиме, в котором его запускают в центре обработки данных, но для запуска понадобятся данные, которые просто так в интернете не скачать, поэтому мы данный вариант рассматривать не будем. Sentinel-2 Tolobox тоже обойдём стороной, потому что с этой программой я не работал. Она с графическим интерфейсом, поэтому полагаю, что разобраться в её работе несложно. Итак, в данной статье описано, как использовать Sen2Cor в режиме консольной программы.

Sen2Cor работает в 64-битных Windows, MacOS и Linux. У меня Linux, поэтому команды буду показывать на примере Linux. Впрочем, разница только в установщиках и в путях к файлам.

Sen2Cor требует 4 Гб оперативной памяти. Если меньше, то он запустится, но может аварийно завершиться на середине обработки. Расход оперативной памяти зависит от разрешения производимых снимков, поэтому если памяти мало и программа из-за этого выдаёт ошибку, то можно запустить обработку с меньшим разрешением. О том, как это сделать, написано далее. Аналогичных жёстких требований к процессору нет, но чем слабее процессор, тем больше времени займёт обработка.

Установка


Нужно скачать установщик и запустить его. Sen2Cor написан на Python, однако, интерпретатор и все необходимые пакеты находятся в установщике, поэтому самому устанавливать Python и настраивать окружение не нужно.

Предположим, что у нас есть пользователь user с домашним каталогом /home/user. Создадим в домашнем каталоге папку spaceshots, в которой будем работать со снимками. Полный путь к папке будет /home/user/spaceshots.

Далее загрузим и запустим установщик. Открываем страницу Sen2Cor на сайте инструментов Европейского космического агентства. Есть две версии программы: 2.5.5 и 2.8. Лучше устанавливать 2.8: она расходует меньше оперативной памяти и содержит меньше ошибок. Версия 2.5.5 может понадобиться, если нужно обработать снимки, сделанные по старым спецификациям. Нажмем на «Sen2Cor v2.8». В конце страницы в пункте «Standalone Installers» находятся ссылки для скачивания установщиков. Загружаем тот, который подходит для нашей операционной системы. В данном случае это «Linux installer: Sen2Cor-02.08.00-Linux64.run». Сохраняем файл в /home/user/spaceshots.

Далее открываем консоль, перемещаемся в каталог spaceshots и запускаем установщик.

$ cd ~/spaceshots
$ ./Sen2Cor-02.08.00-Linux64.run

По умолчанию программа устанавливается в текущий каталог. В нём создаётся папка Sen2Cor-02.08.00-Linux64, куда извлекаются все файлы программы. По большому счёту установка сводится к распаковке архива. Кроме того, в домашнем каталоге создаётся папка для конфигурационных файлов и логов: /home/user/sen2cor/2.8.

Если ошибок нет, то в консоли должна появиться надпись «Congratulations, Installation successful...» и предложение протестировать установку. Сделаем тестовый запуск:

$ /home/user/spaceshots/Sen2Cor-02.08.00-Linux64/bin/L2A_Process -h 

В этой команде /home/user/spaceshots/Sen2Cor-02.08.00-Linux64 — каталог, куда установился Sen2Cor. В папке bin находятся основные запускаемые файлы программы, в том числе главный файл L2A_Process. Опция -h говорит, что нужно показать справочную страницу. В результате выполнения команды в консоли должно появиться примерно следующее:

usage: L2A_Process.py [-h] [--mode MODE] [--resolution {10,20,60}]
                      [--datastrip DATASTRIP] [--tile TILE]
                      [--output_dir OUTPUT_DIR] [--work_dir WORK_DIR]
                      [--img_database_dir IMG_DATABASE_DIR]
                      [--res_database_dir RES_DATABASE_DIR]
                      [--processing_centre PROCESSING_CENTRE]
                      [--archiving_centre ARCHIVING_CENTRE]
                      [--processing_baseline PROCESSING_BASELINE] [--raw]
                      [--tif] [--sc_only] [--cr_only] [--debug]
                      [--GIP_L2A GIP_L2A] [--GIP_L2A_SC GIP_L2A_SC]
                      [--GIP_L2A_AC GIP_L2A_AC] [--GIP_L2A_PB GIP_L2A_PB]
                      input_dir

Sentinel-2 Level 2A Processor (Sen2Cor). Version: 2.8.0, created: 2019.02.20,
supporting Level-1C product version 14.2 - 14.5.

…

Если появилось, то установка прошла нормально и программа готова к использованию. Единственное, что ещё не помешает сделать — упростить запуск программы. Пока что нужно указывать полный путь к основному файлу: /home/user/spaceshots/Sen2Cor-02.08.00-Linux64/bin/L2A_Process. Это неудобно. Гораздо проще писать просто L2A_Process. Однако если сделать так прямо сейчас, то появится ошибка:

$ L2A_Process
bash: L2A_Process: команда не найдена

Чтобы исправить ошибку и запускать Sen2Cor по команде L2A_Process, нужно добавить одну команду в файл .bashrc, который находится в домашнем каталоге (в нашем случае — по адресу /home/user/.bashrc). Это скрытый файл, поэтому перед тем как открыть его, нужно включить в файловом менеджере показ скрытых файлов.

В конец файла .bashrc добавим следующие строки:

# Sen2Cor processor (v. 2.8.0)
source /home/user/spaceshots/Sen2Cor-02.08.00-Linux64/L2A_Bashrc

Первая строка — комментарий, чтобы помнить, зачем нужна вторая. Вторая строка при каждом запуске системы выполняет скрипт, содержащийся в файле L2A_Bashrc. Этот скрипт меняет некоторые переменные окружения так, что команда L2A_Process становится доступна отовсюду, и указывать полный путь к ней не нужно.

Чтобы изменения в .bashrc вступили в силу, нужно вернуться в консоль и выполнить команду

$ source ~/.bashrc

Ещё можно изменить место, куда будет установлена программа. Для этого нужно при запуске установщика указать опцию --target. Например, команда

# ./Sen2Cor-02.08.00-Linux64.run --target /usr/share/sen2cor

установит Sen2Cor в /usr/share/sen2cor. Мы запускаем команду от суперпользователя, потому что обычный пользователь, как правило, не может записывать файлы в /usr. Правда, в таком случае придётся потом запускать Sen2Cor с правами суперпользователя или менять права доступа к /usr/share/sen2cor.

Как установить в MacOS и Windows
В MacOS программа устанавливается так же, как в Linux.

В Windows установщик — это zip-архив, который нужно распаковать. При запуске вместо L2A_Process указывается L2A_Process.bat, и он находится не в папке bin, а сразу в той папке, в которую установлена программа:

C:\Users\user\spaceshots\Sen2Cor-02.08.00-Linux64/L2A_Process.bat -h

Папка с конфигурацией и логами в Windows тоже будет находиться в домашнем каталоге пользователя: С:\Users\user\sen2cor\2.8. Она создаётся при первом запуске программы.

Чтобы не указывать полный путь к запускаемому файлу, а писать просто L2A_Process.bat, в Windows нужно добавить путь к файлу L2A_Bashrc.bat в PATH.

Обработка снимка


Итак, мы установили Sen2Cor и сделали так, что он запускается по команде L2A_Process. Теперь сделаем атмосферную коррекцию. Предположим, что спутниковый снимок мы уже скачали и распаковали в /home/user/spaceshots. Я взял снимок местности к западу от Екатеринбурга, сделанный 27 июля 2018 года. Файл со снимком называется L1C_T40VFJ_A016162_20180727T071939.zip. После распаковки появилась папка S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE. Тогда для атмосферной коррекции нужно выполнить такую команду:

$ L2A_Process S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE/

После нажатия на Enter можно отдохнуть, потому что обработка занимает довольно много времени (на Яндекс.Облаке с Intel Cascade Lake и гарантированной долей 5% CPU — около часа). Sen2Cor выводит в консоль информацию о ходе работы, так что вы будете примерно понимать, что в данный момент делает программа.

Начало лога в консоли
Sentinel-2 Level 2A Processor (Sen2Cor). Version: 2.8.0, created: 2019.02.20, supporting Level-1C product version 14.2 - 14.5 started ...
Product version: 14.5
Operation mode: TOOLBOX
Processing baseline: 99.99
Progress[%]:  0.00 : Generating datastrip metadata
L1C datastrip found, L2A datastrip successfully generated
Selected resolution: 60 m
Progress[%]: 1.13 : PID-4202, L2A_ProcessTile: processing with resolution 60 m, elapsed time[s]: 2.299, total: 0:00:10.789933
Progress[%]: 1.13 : PID-4202, L2A_ProcessTile: start of pre processing, elapsed time[s]: 0.000, total: 0:00:10.790432
Progress[%]: 1.27 : PID-4202, L2A_Tables: start import, elapsed time[s]: 0.278, total: 0:00:11.068694
Progress[%]: 1.69 : PID-4202, L2A_Tables: band B01 imported, elapsed time[s]: 0.851, total: 0:00:11.919562
Progress[%]: 9.39 : PID-4202, L2A_Tables: band B02 imported, elapsed time[s]: 15.618, total: 0:00:27.537532
Progress[%]: 17.16 : PID-4202, L2A_Tables: band B03 imported, elapsed time[s]: 15.743, total: 0:00:43.280800
…


Когда программа завершит работу, в /home/user/spaceshots рядом с S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE/ должна появиться ещё одна папка с очень похожим названием — S2A_MSIL2A_20180727T071621_N9999_R006_T40VFJ_20200507T083341.SAFE

Теперь разберёмся, что делает программа и что за папку мы получили. Для этого нужно рассмотреть структуру снимков Sentinel-2.

Снимок со спутника Sentinel-2 — это zip-архив размером в несколько сотен мегабайт. В нашем случае архив называется L1C_T40VFJ_A016162_20180727T071939.zip. В названии закодирована информация: уровень обработки (L1C), код, обозначающий территорию (T40VFJ), номер орбиты (A016162), дата и время съёмки. Внутри этого архива есть папка с длинным названием, которое заканчивается на .SAFE. В папке *.SAFE есть папка GRANULE, в ней — ещё одна папка с длинным названием, внутри которой находится папка IMG_DATA, а в ней — 14 изображений в формате jp2. Среди них есть 13 пронумерованных — их названия заканчиваются на B01-B12 (плюс ещё одно с номером B8A). Это тайлы — снимки земной поверхности, сделанные на определённых длинах волн. Например, B04 — это снимок в красном диапазоне, а B08 — в ближнем инфракрасном, и вместе эти два снимка можно использовать для расчёта такого известного индекса, как NDVI. Название 14-го изображения заканчивается на TCI, что означает True Color Image — это полноцветный снимок, то есть примерно такой, какой получился бы на обычный фотоаппарат.

Sen2Cor получает в качестве исходных данных папку *.SAFE — именно она указывается в качестве единственного обязательного параметра при запуске программы. Если вместо папки *.SAFE указать что-то другое, например, исходный архив со снимком или конкретный тайл, то программа не запустится.

$ L2A_Process T40VFJ_20180727T071621_B04.jp2 
Product metadata file cannot be read.

Дело в том, что для атмосферной коррекции используются не только сами тайлы, но и метаданные, а они находятся в файлах внутри папки *.SAFE, а не в тайлах.

Результатом работы программы также является папка *.SAFE с похожей структурой: внутри есть папка GRANULE, внутри неё — ещё одна папка, в которой находится папка IMG_DATA, а в ней скорректированные тайлы. Тайлы сгруппированы по пространственному разрешению: в папке R10m находятся те, у которых пространственное разрешение составляет 10 метров, в R20m — те, где разрешение 20 метров, в R60m — 60 метров. При определённых настройках какие-то разрешения не обрабатываются и соответствующие им папки не создаются — об этом чуть ниже.

Название папки *.SAFE, получающейся в результате, отличается от названия исходной только одним: в начале вместо _MSIL1C_ указано _MSIL2A_. L1C и L2A — это коды уровня обработки. Уровень L1C означает, что снимок обработан до уровня Top-of-Atmosphere reflectance, то есть значения пикселей на снимке соответствуют отражению, зафиксированному у верхней границы атмосферы — там, где летает спутник. Уровень L2A — это обработка до уровня Bottom-of-Atmoshpere reflectance, то есть до значений отражения у поверхности Земли — так, как будто атмосфера абсолютно прозрачна. В реальности это, конечно, не так, и атмосферная коррекция позволяет убрать только часть искажений, возникающих при прохождении света через атмосферу, но в целом значения Bottom-of-Atmosphere reflectance больше соответствуют реальному отражению от земной поверхности, чем значения Top-of-Atmosphere reflectance.

Помимо скорректированных тайлов, Sen2Cor производит ещё несколько изображений: полноцветное (TCI), карты аэрозольной оптической плотности атмосферы (AOT — Aerosol Optical Thickness) и содержания водяного пара (WV — Water Vapour), карту тематической классификации типов поверхности (SC — Scene Classification). Они также находятся в папке IMG_DATA в каталогах для соответствующего пространственного разрешения.

Если нужно, чтобы папка с результатом работы программы называлась не *.SAFE, а по-другому, то можно самостоятельно указать название с помощью опции --output_dir. Предположим, что мы запускаем Sen2Cor три раза с разными настройками и хотим сохранить результаты в папки test1, test2 и test3. Тогда указываем --output_dir при запуске:


$ L2A_Process --output_dir /home/user/spaceshots/test1 S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE

— и скорректированный снимок окажется в каталоге /home/user/spaceshots/test1. При втором и третьем запуске указываем соответственно --output_dir /home/user/spaceshots/test2 и --output_dir /home/user/spaceshots/test3.

Ещё одна полезная опция — это --resolution. Она позволяет установить пространственное разрешение тайлов, которые будут получены в результате работы программы. Sen2Cor может создавать изображения с разным пространственным разрешением — 10, 20 или 60 метров на пиксель. По умолчанию делаются 10 и 20 метров. Предположим, что нам для разведочного анализа достаточно тайлов с разрешением 60 метров на пиксель. Тогда можно указать целевое разрешение с помощью опции --resolution:

$ L2A_Process --resolution 60 S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE

При запуске с такими параметрами Sen2Cor обработает снимок и создаст скорректированные тайлы с разрешением 60 метров. В отличие от стандартного запуска, обработка занимает намного меньше времени — чуть больше четырёх минут. Расход памяти тоже меньше, поэтому если запуск со стандартным разрешением закончился ошибкой из-за нехватки памяти, то можно указать разрешение 60 метров. В папке IMG_DATA будет находиться только папка R60m, а внутри неё — тайлы с разрешением 60 метров и некоторые другие изображения: полноцветное, тематическая карта и карта содержания водяного пара.

Конфигурационный файл


Мы обработали спутниковый снимок с помощью Sen2Cor, используя настройки по умолчанию. Разрешение и папку для сохранения результатов работы можно поменять с помощью опций --resolution и --output_dir. Есть ещё несколько опций командной строки, однако, с их помощью можно настроить не всё. Есть множество других параметров, важных при обработке, например: учитывать ли рельеф, удалять ли облака, как оценивать состояние атмосферы. В Sen2Cor они настраиваются с помощью конфигурационного файла.

Если запустить Sen2Cor и не указать путь к конфигурационному файлу, как мы делали раньше, то будет использоваться стандартный конфигурационный файл. Стандартным конфигурационный файл находится в домашнем каталоге — в нашем случае в папке /home/user/sen2cor/2.8/cfg. Файл называется L2A_GIPP.xml. L2A означает уровень обработки, GIPP расшифровывается как Ground Image Processing Parameters — параметры наземной обработки изображения. Это обычный xml-файл, внутри которого есть несколько секций, а в секциях — элементы для разных настроек. Для каждой настройки прямо в файле написано пояснение. Кроме того, подробное описание настроек содержится в документации — правда, разобраться в ней непросто.

Можно отредактировать напрямую стандартный конфигурационный файл, но лучше скопировать его и явно указать при запуске программы, что нужно использовать другой конфигурационный файл. Скопируем L2A_GIPP.xml в /home/user/spaceshots, переименуем в custom.xml и запустим программу с этим конфигурационным файлом:

$ L2A_Process --GIP_L2A /home/user/spaceshots/custom.xml --resolution 60 S2A_MSIL1C_20180727T071621_N0206_R006_T40VFJ_20180727T092607.SAFE

Обратите внимание, что опция для конфигурационного файла называется --GIP_L2A — с одной буквой «P». Поскольку мы не редактировали конфигурационный файл, то процесс и результат работы программы ничем не отличаются от запуска с конфигурацией по умолчанию.

В конфигурационном файле много разных параметров. Рассмотрим некоторые из них.

Логи


Log_Level — параметр, который определяет, насколько подробным будет журнал работы программы. Лог отображается в консоли во время работы и дополнительно сохраняется в папке для логов (в нашем случае — /home/user/sen2cor/2.8/log). Значение по умолчанию — INFO. Обычно нет необходимости менять эту настройку, если вы не столкнулись с ошибками в работе программы.

Учёт рельефа и угла восхождения Солнца


DEM_Directory — папка, в которой находится цифровая карта рельефа (DEM — Digital Elevetion Model). Результаты обработки с использованием цифровой карты рельефа обычно получаются более точными. По умолчанию — NONE, то есть рельеф не учитывается. Если у вас есть своя цифровая карта рельефа, то указываете путь к ней. Папка для DEM должна находиться там же, где и папки cfg и log, то есть в нашем случае — в каталоге /home/user/sen2cor/2.8. Следовательно, если у вас есть цифровая карта рельефа, то нужно поместить её в /home/user/sen2cor/2.8/dem и в DEM_Directory указать dem. Если её нет, но все равно хочется использовать, то можно указать любой путь (например, тоже написать dem) и настроить следующий параметр.

DEM_Reference — URL, с которого нужно скачать цифровую модель рельефа, если её нет в папке, указанной в предыдущем пункте. Разработчики Sen2Cor предлагают использовать
http://data_public:GDdci@data.cgiar-csi.org/srtm/tiles/GeoTIFF/
— это ссылка на STRM DEM, свободно распространяемую цифровую карту рельефа с 90-метровым пространственным разрешением. Учитывая, что масштаб ненамного мельче, чем у самих спутниковых снимков, эта модель должна давать хороший результат.

Если Sen2Cor увидит, что в DEM_Directory указано какое-то значение, помимо NONE, то он попытается открыть файлы с картой рельефа из указанного каталога. Если открыть файлы не получится, то он попытается скачать их по URL, указанному в DEM_Reference. Если не получится скачать, то в логе появится сообщение об ошибке и обработка продолжится без учёта рельефа. Файлы, скачанные с URL, сохраняются в DEM_Directory и не удаляются после завершения работы программы. Следовательно, если вы захотите ещё раз обработать тот же снимок с той же картой рельефа (например, изменив другие настройки коррекции), то Sen2Cor не будет повторно скачивать цифровую карту рельефа, а воспользуется её офлайн-копией.

Опция Generate_DEM_Output позволяет получить в результате работы программы отдельный тайл с цифровой картой рельефа. По умолчанию FALSE.

Опция DEM_Terrain_Correction частично отключает использование цифровой карты рельефа: рельеф по-прежнему будет учитываться при тематической классификации (SC) и построении карты AOT, но не при корректировке значений отражения от поверхности.

Если DEM не используется, то следует указать параметр Altitude — это средняя высота над уровнем моря в районе, запечатлённом на снимке. Высота указывается в километрах.

Ещё два параметра, имеющие отношение к учёту рельефа — это BRDF_Correction и BRDF_Lower_Bound. BRDF расшифровывается как bidirectional reflectance distribution function и означает уравнение, моделирующее отражение света от непрозрачной поверхности. Разные значения BRDF_Correction соответствует разным значениям одного из коэффициентов в этом уравнении. В официальной документации рекомендуют в большинстве случаев использовать 21. BRDF_Lower_Bound отвечает за ещё один коэффициент в уравнении, и его можно оставить по умолчанию, за исключением случаев, когда вы точно знаете, почему и зачем его нужно поменять.

Красивая картинка


Параметр Generate_TCI_Output включает и выключает создание полноцветного изображения. По умолчанию TRUE, но если красивая картинка не нужна, то можно выбрать FALSE.

Учёт состояния атмосферы


Параметры Aerosol_Type, Mid_Latitude, Ozone_Content указывают на состояние атмосферы в момент съёмки. Aerosol_Type можно установить по территории: если континент, то RURAL, если океан, то MARINE. Mid_Latitude аналогично определяется по времени года: если летом, то SUMMER, если зимой, то WINTER.

Параметр Ozone_Content указывает на содержание озона. Содержание озона можно поискать в онлайн-архиве Всемирного центра данных по озону и ультрафиолетовому излучению. На карте можно найти станцию, наиболее близкую к району съёмки, далее скачать набор с данными за нужное время и посмотреть результаты измерений в день съёмки. Однако установить реальный результат измерений в конфигурационном файле нельзя — нужно выбрать одно значение из списка для соответствующего времени года. Следовательно, нужно сначала узнать реально измеренное значение, а потом подобрать наиболее близкое из доступных. Например, по данным станции в Екатеринбурге, 27 июня 2018 года (время съёмки) содержание озона составляло 316 DU. В пояснении в конфигурационном файле указано: для лета в средних широтах доступные варианты — 250, 290, 331 (по умолчанию), 370, 410, 450. Наиболее близкое к 316 — это 331. Оно идёт по умолчанию, поэтому в данном случае можно ничего не менять. Если бы снимок был сделан несколькими днями раньше, когда содержание озона уменьшалось до 302 DU, следовало бы установить Ozone_Content в 290.

В принципе все три параметра — Aerosol_Type, Mid_Latitude, Ozone_Content — в большинстве случаев можно выставлять по умолчанию — AUTO для Aerosol_Type и Mid_Latitude и 0 для Ozone_Content. В таком случае Sen2Cor сам определит наиболее подходящие значения по метаданным снимка.

Удаление облачности


Параметр Cirrus_Correction говорит, удалять или нет перистые облака со снимка. Работает в паре с WV_Threshold_Cirrus — это порог содержания водяного пара, ниже которого удаление облаков автоматически отключается, даже если Cirrus_Correction установлено в TRUE. Следовательно, если есть основания полагать, что содержание водяного пара в атмосфере в момент съёмки было низкое, но небольшие облака всё же есть, и их нужно удалить, то лучше уменьшить значение WV_Threshold_Cirrus. WV_Threshold_Cirrus может быть от 0.1 до 1.

Заключение


Таким образом, в данной статье мы рассмотрели следующие вопросы: как установить Sen2Cor, как запустить его с настройками по умолчанию, как изменить некоторые параметры работы программы с помощью опций командной строки и конфигурационного файла. Для более глубокого изучения Sen2Cor можно обратиться к официальной документации, которая размещена на той же странице, что и установщики. Официальная документация включает четыре документа: более простые и понятные Release Note и Software User Manual и довольно сложные технические Product Definition и Input Output Data Definition. Последний файл также включает «The full reference of GIPP» в качестве вложенного pdf-файла. Полагаю, что технические специалисты найдут в этих документах ещё много полезного.
Источник: https://habr.com/ru/post/501188/


Интересные статьи

Интересные статьи

Бинауральные ритмы, вполне возможно, могут влиять на мозговые волны. И магии в этом на самом деле меньше, чем может показаться. Что, если я скажу вам, что есть способ улучшить концентрацию и...
Детектирование аномалий — интересная задача машинного обучения. Не существует какого-то определенного способа ее решения, так как каждый набор данных имеет свои особенности. Но в то же время есть...
Научно-исследовательская работа, пожалуй, самая интересная часть нашего обучения. Идея в том, чтобы ещё в университете попробовать себя в выбранном направлении. Например, студенты с направлений S...
Предисловие История начинается с того, что пол года назад я купил усилитель Yamaha A-S501. В комплекте с ним шёл пульт дистанционного управления, который мог управлять и усилителем, и ямаховс...
Тема статьи навеяна результатами наблюдений за методикой создания шаблонов различными разработчиками, чьи проекты попадали мне на поддержку. Порой разобраться в, казалось бы, такой простой сущности ка...