Тайлы из Landsat 8: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
(IM)
Строка 30: Строка 30:
Наконец, параметры <code>-lum</code> корректируют наложение цвета на панхроматический канал. [https://github.com/gina-alaska/dans-gdal-scripts/wiki/Gdal_landsat_pansharp Описание алгоритма] слишком сложное, мы взяли коэффициенты из [https://gist.github.com/dwtkns/d18828165160384d0fe1 этих функций] Дерека Уоткинса.
Наконец, параметры <code>-lum</code> корректируют наложение цвета на панхроматический канал. [https://github.com/gina-alaska/dans-gdal-scripts/wiki/Gdal_landsat_pansharp Описание алгоритма] слишком сложное, мы взяли коэффициенты из [https://gist.github.com/dwtkns/d18828165160384d0fe1 этих функций] Дерека Уоткинса.


== Загрузка в QGIS ==
== Коррекция цвета ==
 
Белую дымку удалить непросто. В GDAL нет команды для обработки цвета, подобной вкладке в QGIS, но тот же аляскинском наборе содержит скрипт, выдающий приемлемый результат:
 
gdal_contrast_stretch -ndv 0 -percentile-range 0.05 0.95 result.tif result2.tif
 
Доли отбрасываемых цветов можно покрутить на ±0.03: чем ближе к 0-100, тем темнее получается картинка, но тем больше деталей сохраняется.
 
== Тайлы ==
 
В комплекте GDAL есть программа для создания тайлов из геопривязанного растра:


Ленивый картограф дальше запускает QGIS и добавляет растровый слой из собранного файла tiff. Палитра изображения удивит: какая-то размытая и непривычная. Чтобы поправить цвета, в свойствах слоя, во вкладке «Стиль» нужно выбрать «Среднее ± отклонение × 2», нажать кнопку «Загрузить» — и «OK».
gdal2tiles.py -r lanczos -z 6-13 -a 0 result.tif tiles


Отсюда же легко сделать тайлы с помощью модуля [http://gis-lab.info/qa/qtiles.html QTiles]. Если его не видно в списке модулей, включите в настройках «также показывать экспериментальные модули». Если нет вкладки настроек — установите пакет ''qgis-python'' или подобный.
Она работает медленно, неправильно вычисляет границы растра, тайлы сохраняет только в PNG и выдаёт странные ошибки во время работы. Но результат выдаёт.


Тайлы рекомендуем делать в формате jpeg, до 13 масштаба. Демонстрационную html-страницу придётся поправить, заменив расширение тайлов на jpg. Чтобы подключить слой в JOSM, скопируйте строку для него из демонстрационной страницы, либо напишите сами:
Чтобы подключить слой в JOSM, скопируйте строку для него из демонстрационной страницы, либо напишите сами:


  tms[13]:file:///home/user/путь/к/тайлам/{z}/{x}/{y}.jpg
  tms[13]:file:///home/user/путь/к/тайлам/{z}/{x}/{y}.png


Для Windows путь записывается чуть по-другому:
Для Windows путь записывается чуть по-другому:


  tms[13]:file:///C:/путь/к/тайлам/{z}/{x}/{y}.jpg
  tms[13]:file:///C:/путь/к/тайлам/{z}/{x}/{y}.png


== Коррекция цвета ==
== Загрузка в QGIS ==
 
Собранный растр можно обработать в QGIS, а не запускать дополнительные скрипты. Если не правили контраст скриптом, в свойствах растрового слоя, во вкладке «Стиль» нужно выбрать «Среднее ± отклонение × 2», нажать кнопку «Загрузить» — и «OK».


Белую дымку удалить непросто. В GDAL нет команды для обработки цвета, подобной вкладке в QGIS, но тот же аляскинском наборе содержит скрипт, выдающий приемлемый результат:
Отсюда же легко сделать тайлы с помощью модуля [http://gis-lab.info/qa/qtiles.html QTiles]. Если его не видно в списке модулей, включите в настройках «также показывать экспериментальные модули». Если нет вкладки настроек — установите пакет ''qgis-python'' или подобный.


gdal_contrast_stretch -ndv 0 -percentile-range 0.05 0.95 result.tif result2.tif
Тайлы рекомендуем делать в формате jpeg, до 13 масштаба. Демонстрационную html-страницу придётся поправить, заменив расширение тайлов на jpg. В JOSM тайлы подключаются так же, как и раньше, только поправьте расширение.


Доли отбрасываемых цветов можно покрутить на ±0.03: чем ближе к 0-100, тем темнее получается картинка, но тем больше деталей сохраняется.
== Изображение ==


== Тайлы ==
Если снимок нужен для иллюстрирования, а не для обрисовки, можно просто взять файл tif: этот формат читается всеми. Как вариант, с помощью ImageMagick можно из него сделать более удобный jpeg:


* gdal2tiles
convert result.tif -quality 85 result.jpg
* подключение в JOSM


== См. также ==
== См. также ==

Версия от 17:28, 1 февраля 2015

Эта страница является черновиком статьи.


Главное свойство ДЗЗ Landsat 8 — свободная лицензия, которая позволяет обрисовывать снимки для, в частности, OpenStreetMap. Эта статья не вдаётся в теорию, но содержит шаги для поиска и обработки снимков Landsat 8 и их превращения в тайлы для публикации или обрисовки в JOSM.

Получение снимка

Раньше нужно было шоркаться по EarthExplorer, вводить параметры поиска, что-то выбирать. Спасибо DevelopmentSeed, много лет работающей с Landsat, теперь выбрать нужный снимок проще. Заходите, приближайте свою область, кликайте в точку, фильтруйте и скачивайте:

http://libra.developmentseed.org

Напоминаем, что каждый снимок весит 500-800 мегабайт в архиве (2 гигабайта вне его), и для обработки потребуются ещё гигабайта четыре.

В архиве вы получите 11 каналов и слой QA, на котором отмечены точки без информации о земной поверхности (например, облака). Мы будем работать с каналами 2, 3, 4 (синий, зелёный, красный) и 8 (ч/б с 15-метровым разрешением).

Паншарпенинг

У нас есть 3 канала с разрешением 15 м/пк и один — 30 м/пк. Паншерпенинг — это объединение их всех в один цветной снимок максимального разрешения. Раньше это делали длинным цепочками команд GDAL или ImageMagick, но нам повезло. Умные люди из GINA (университет Аляски) написали скрипт, и теперь достаточно одной команды. Набор аляскинских скриптов есть в большинстве дистрибутивов, поищите пакет dans-gdal-scripts. Команда такая:

gdal_landsat_pansharp  -pan B8.TIF -ndv 0 -o result.tif \
-rgb B4.TIF -rgb B3.TIF -rgb B2.TIF -lum B3.TIF 0.5 -lum B4.TIF 0.5

Я опустил длинные идентификаторы снимков, вида «LC81850172014281LGN00». С ними будет длиннее и менее понятно:

gdal_landsat_pansharp -pan LC81850172014281LGN00_B8.TIF -ndv 0 -o result.tif \
-rgb LC81850172014281LGN00_B4.TIF -rgb LC81850172014281LGN00_B3.TIF -rgb LC81850172014281LGN00_B2.TIF \
-lum LC81850172014281LGN00_B3.TIF 0.5 -lum LC81850172014281LGN00_B4.TIF 0.5

Что тут происходит? Первые три параметра передают панхроматический канал (восьмой), значение «нет данных» и имя выходного файла. Следующая тройка с -ref — каналы для красного, зелёного и синего цветов. В Landsat 8 им соответствуют 4, 3 и 2, но можно выбрать другие, из невидимых областей спектра.

Наконец, параметры -lum корректируют наложение цвета на панхроматический канал. Описание алгоритма слишком сложное, мы взяли коэффициенты из этих функций Дерека Уоткинса.

Коррекция цвета

Белую дымку удалить непросто. В GDAL нет команды для обработки цвета, подобной вкладке в QGIS, но тот же аляскинском наборе содержит скрипт, выдающий приемлемый результат:

gdal_contrast_stretch -ndv 0 -percentile-range 0.05 0.95 result.tif result2.tif

Доли отбрасываемых цветов можно покрутить на ±0.03: чем ближе к 0-100, тем темнее получается картинка, но тем больше деталей сохраняется.

Тайлы

В комплекте GDAL есть программа для создания тайлов из геопривязанного растра:

gdal2tiles.py -r lanczos -z 6-13 -a 0 result.tif tiles

Она работает медленно, неправильно вычисляет границы растра, тайлы сохраняет только в PNG и выдаёт странные ошибки во время работы. Но результат выдаёт.

Чтобы подключить слой в JOSM, скопируйте строку для него из демонстрационной страницы, либо напишите сами:

tms[13]:file:///home/user/путь/к/тайлам/{z}/{x}/{y}.png

Для Windows путь записывается чуть по-другому:

tms[13]:file:///C:/путь/к/тайлам/{z}/{x}/{y}.png

Загрузка в QGIS

Собранный растр можно обработать в QGIS, а не запускать дополнительные скрипты. Если не правили контраст скриптом, в свойствах растрового слоя, во вкладке «Стиль» нужно выбрать «Среднее ± отклонение × 2», нажать кнопку «Загрузить» — и «OK».

Отсюда же легко сделать тайлы с помощью модуля QTiles. Если его не видно в списке модулей, включите в настройках «также показывать экспериментальные модули». Если нет вкладки настроек — установите пакет qgis-python или подобный.

Тайлы рекомендуем делать в формате jpeg, до 13 масштаба. Демонстрационную html-страницу придётся поправить, заменив расширение тайлов на jpg. В JOSM тайлы подключаются так же, как и раньше, только поправьте расширение.

Изображение

Если снимок нужен для иллюстрирования, а не для обрисовки, можно просто взять файл tif: этот формат читается всеми. Как вариант, с помощью ImageMagick можно из него сделать более удобный jpeg:

convert result.tif -quality 85 result.jpg

См. также