Вперше сцену Sentinel-2a я завантажив навесні 2016 р. і тоді ж задався питанням атмосферної корекції цих ДДЗ. Швидко нагуглив консольну утиліту Sen2Cor, чим надовго забезпечив себе періодичними танцями з бубном з її інсталяцією та використанням в Ubuntu.

Найперша халепа полягала у тому, що Sen2Cor працював у середовищі Anaconda -- специфічній реалізації Python, заточеної під обробку даних великого об’єму і наукових обчислень. Оскільки з Anaconda до цього часу ніколи справу не мав, з незвички встановлював її не без танців з бубном, втім через гугл на всі проблеми відповіді знаходив.

З інсталяцією Sen2Cor теж більш-менш розібрався після чого взявся за власне обробку ДДЗ Sentinel-2. Атмосферна корекція на дозвільній здатності 60 м/піксель проходила чудово. На 20 м/піксель мій ноутбук возився довгенько, втім впорався із завданням. Найдовше довелося поморочитися з атмосферною корекцією на 10 м/піксель -- що не робив, в якийсь момент процес завершувався через незрозумілу помилку. Не пам’ятаю скільки разів пробував повторювати цю операцію, але результат був незмінним. Довго шерстив гугл і врешті-решт десь на форумі, присвяченому Sen2Cor, знайшов згадку дрібнесеньким шрифтом, що під час обробки ДДЗ Sen2Cor на певному етапі має завантажити всю сцену (granule) до оперативної пам’яті. Якщо ж розмір останньої виявиться недостатнім для цього, процес вилетить. Там же зазначалося, що для обробки даних на дозвільній здатності 10 м/піксель потрібно не менше 6 Gb оперативки. На ноуті було лише 4 Gb. Додавши у комп’ютер ще 4-гігову планку оперативки, нарешті впорався і з атмосферною корекцією Sentinel-2 і на 10-м дозвільній здатності.

Але на цьому проблеми не завершилися. Як виявилося, в ході атмосферної корекції у ДДЗ начисто злітає географічна прив’язка. Це вирішувалося легко, хоча і потребувало додаткового часу на обробку -- ДДЗ після атмосферної корекції конвертував із jp2 у geotiff і за допомогою утиліт listgeo та geotifcp переносив геоприв’язку з вихідних ДДЗ у отримані після атмосферної корекції.

Втім була ще одна халепа. Встановленням Anaconda змінювалися якісь параметри Python, що часто приводило до конфліктів з іншим програмним забезпеченням. Оскільки Anaconda (рівно як Sen2Cor) встановлюється для конкретного користувача, то уникнути цієї проблеми було легко шляхом створення в Ubuntu окремого облікового запису для роботи з Sen2Cor. Саме так я і вчинив, коли на стаціонарному комп’ютері спробував встановити одну з наступних версій Sen2Cor. На окремому акаунті успішно всановив Anaconda, але вже з інсталяцією Sen2Cor 2.3.0 у мене нічого не вийшло. Та ж історія повторилася із версією 2.3.1 -- купа часу, перелопачений гугл і ... нічого. Тож на якийсь час я ці вправи закинув.

І от учора я вирішив перевірити, а що там з новими версіями Sen2Cor -- може пора спробувати здмухнути з бубна пил та потанцювати навколо чергової версї знову? Зайшов на сайт і виявив, що окрім інсталятора, що потребує Anaconda, розробники зібрали автономний інсталятор, який обходиться без неї.

У сухому залишку: на Ubuntu 16.04 з автономного інсталятора Sen2Cor став на ура. Протестував процес на одній гранулі -- все норм, навіть геоприв’язка не злітає.

І да, є також інсталятори Sen2Cor (у т.ч. і автономний) і для Windows -- як воно працює там спробувати не можу через відсутність цієї осі на моїх комп’ютерах.

Коментарі: