«Таймлапс (интервальная) анимация исчезновения водохранилищ Ченнаи потрясает воображение», – недавно написал в своем Twitter ведущий репортер веб-ресурса Earther Брайан Кан. Недавно он опубликовал статью «Почему Ченнаи, шестой по величине город Индии, может остаться без воды», которая была проиллюстрирована несколькими GIF-изображениями уменьшающихся водохранилищ города.
Когда его спросили, как он создавал свои GIF-файлы, Кан рассказал нам о разработанном Европейским космическим агентством ресурсе Sentinel Hub, который дает возможность использовать спутниковые снимки. Функция Sentinel Hub Playground особенно удобна, поскольку предоставляет возможность быстрого доступа и визуализации изображений Sentinel-2, Landsat 8, DEM и MODIS.
Мы расскажем, как можно сделать такое GIF-изображение с помощью Sentinel Hub и RStudio, пошагово воссоздавая эту анимацию исчезновения Ченнайского водохранилища. Примененная нами технология и приведенный ниже код могут быть использованы для множества других анимаций, иллюстрирующих, например, разрушение плотин, вырубку лесов, лесные пожары и многое другое.
Кстати, если вам почему-то не по душе R, вы можете воспользоваться разработанным Sentinel Hub браузером ЕО для создания GIF-изображений при помощи их интерфейса для пользователей. Далее по тексту этот момент будет объяснен подробнее.
Примечание: познакомиться с R и RStudio поближе помогут эти пособия.
Загрузка спутниковых изображений
После перехода на Sentinel Hub Playground, введите “Chennai, India” в строку поиска и перетащите окно к интересующему водохранилищу. Убедитесь, что вы выбрали «Sentinel-2» в разделе “Datasets” («Наборы данных») в верхнем правом углу и “Natural color” («Естественный цвет») на вкладке “Rendering” («Рендеринг») в крайнем левом углу.
Выберите иконку календаря («calendar icon») на верхней панели навигации и начните просматривать доступные изображения Ченнаи.
После того, как вы нашли изображение, которое вам подходит – в идеале без чрезмерного облачного покрова – нажмите кнопку “Generate” («Создать») в левом нижнем углу, и во всплывающем окне появится кнопка “Download Image” («Загрузить изображение»). Нажмите на нее.
В итоге, после просмотра и изучения изображений за несколько месяцев и отбора наименее облачных дней, я скачал 15 JPG-картинок с 15 июня 2018 г. по 15 июня 2019 г. Я сохранил структуру имен файлов Playground, которая выглядит как “Sentinel-2 image on 2018-06-15.jpg” («Изображение Sentinel-2 на 2018-06-15.jpg»), и сохранил их в папке, которая доступна в RStudio.
Анимация изображений формата JPG в R с помощью “Magick”
Благодаря крутому пособию эколога Райана Пика я знал, что могу импортировать файлы в RStudio и создать GIF-изображения, используя R-пакеты «dplyr» и «purrr» для обработки данных и «magick» для обработки изображений.
Процесс проходил очень просто: вы сообщаете RStudio, где находятся файлы, просматриваете их, соединяете, потом присваиваете GIF-файлу название “Lake Puzhal, Chennai: June 2018 – June 2019,” («Озеро Пужал, Ченнаи: июнь 2018 – июнь 2019»), а затем анимируете GIF-изображение с частотой 4 кадра в секунду.
Наконец, заходим в рабочую директорию и получаем необходимый chennai.gif. И дело в шляпе.
Подробные описание и пособия по невероятному пакету «magick» есть здесь.
Экспорт квадратного GIF-изображения в соцсети
С помощью функции image_crop(), вы можете обрезать и передвигать свое GIF-изображение, применяя два параметра «+». Подробнее об этом здесь.
chennai_square <- list.files(path = "chennai/", pattern = "*.jpg", full.names = T) %>%
map(image_read) %>%
image_join() %>%
image_crop("500x500+450+125") %>%
image_annotate("Lake Puzhal, Chennai: June 2018 - June 2019", location = "+10+10", size = 16, color = "white") %>%
image_animate(fps=4) %>%
image_write("chennai-box.gif")
Использование браузера EO от Sentinel Hub для создания GIF-изображений без кода
Правозащитная группа Bellingcat создала отличное пособие по применению EO Browser от Sentinel Hub. По сути, вы получаете бесплатный логин, переходите к интересующим вас данным и нажимаете на находящуюся справа на экране иконку “Create timelapse animation” («Создать интервальную анимацию»).
Затем вы выбираете интересующие вас даты и уровень облачного покрова — я выбрал 27% для приведенного ниже GIF-изображения — и скачиваете файл, нажимая “Download” («Скачать»). Ничего сверхсложного.
Окончательная GIF-ка выглядит так:
Другие базы спутниковых изображений
- Hazard Mapping System и Emergency Response Imagery Национального Управления океанических и атмосферных исследований (NOAA)
- Система GOES System [ЛІНК НЕЖИВИЙ] НАСА и NOAA (используется в графике Washington Post и New York Times)
- Earth Engine Google
- Сервис Worldview НАСА
- Сервисы НАСА MODIS и VIIRS images
- Open Data Program Digital Globe
- 125 million building footprints Microsoft
- Global Forest Watch
Другие ресурсы для “геожурналистики»
- Лекция 2018 года Дэвида Янофски для Национального Института Журналистики Данных (NICAR) о применении спутниковых снимков.
- Объемный список ресурсов, лекций, документов и наборов данных GIJN об использовании спутниковых снимков (на русском).
Нужно больше советов для ваших расследований? Загляните в ресурсный центр GIJN на русском.
Эта публикация впервые появилась на веб-сайте Storybench и перепечатывается с разрешения.
Алежу Байяк является редактором Storybench, научным журналистом и бывшим научным сотрудником Knight Science Journalism в Массачусетском технологическом институте (MIT). Кроме того, он работал в Science Friday, основал ресурс LatinAmericanScience.org и считает своей главной задачей преодоление когнитивного разрыва между журналистами, разработчиками и дизайнерами.