Паншарпенинг данных Landsat 8 средствами свободного ПО

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Здесь будет описано (если будет), как можно сделать паншарпенинг данных Landsat 8 с помощью инструментов различного свободного ПО.

По мотивам этой темы на форуме.

Что такое "паншарпенинг"?

Паншарпенинг (от англ. "panchromatic sharpening" или "pan sharpening") — процесс, позволяющий получить из панхроматического и мультиспектрального каналов двух продуктов одно изображение. Панхроматический канал, как правило, имеет более высокое пространственное разрешение, мультиспектральный — более низкое. В результате слияния каналов получается цветное изображение с высоким разрешением [1].

Теория о методе, когда впервые появился, кто создатель - мне кажется, это лишнее (А.М.)


Методы паншарпенинга - лучше кратко (А.М.)


  • brovey

BandRed_out = BandRed_in / [(BandBlue_in + BandGreen_in + BandRed_in) * BandPan]

  • IHS (Intensity, Hue, Saturation)
  • PCA (Principal Component Analysis)

Кратко о Landsat 8

Landsat 8 - это американский спутник дистанционного зондирования земли, запущенный 11 февраля 2013 года. Спутник создан совместными усилиями NASA и USGS.

Тестовые данные

В качестве тестовых данных используется сцена Landsat 8 от 29.06.2013 (Entity ID: LC81710172013180LGN00). В архиве с данными 12 растров, 11 из которых несут информацию узкого диапазона электромагнитного спектра. Двенадцатый растр с суффиксом QA предназначен для оценки качества съёмки. Кроме этого данные Landsat 8 поставляются с файлом метаданных, который необходим для проведения атмосферной коррекции.

Как получить данные?

Получить снимки можно с помощью EarthExplorer. На вкладке "Search Criteria" в графе "Path/Row" вводим соответственно "170" для "Path" и "17" для "Row", в графе "Data Range" для "Search from:" и "to:" вписываем дату снимка "06/29/2013" ; затем на вкладке "Data Sets" выбираем "Landsat Archive" -> "L8 OLI/TIRS"; выбор закончен, жмём "Results>>". На странице результатов жмём на иконку с зелёной стрелкой "Download Options", в появившемся окне выбираем нижний вариант (Level 1 GeoTIFF Data Product (821.9 MB)) -> "Select Download Option" -> "Download". Внимание: загружаемый архив весит около 822 Мб, а в разархирированном виде сцена занимает на диске около 2 Гб.

Условия выполнения

Данные Landsat 8 поставляются в 16-битном растровом формате (Tiff). Модуль GRASS i.pansharpen работает пока только с 8-битными форматами данных. Поэтому для получения растров повышенного разрешения необходимо сначала преобразовать входные данные в 8-битовый формат. В GDAL ресемплинг и пересчет каналов преобразованием Бровея осуществляется с 16-битными данными. Преобразование в 8-битные происходит непосредственно перед созданием цветного композита.

Это точно? Или речь идет о каких-то конкретных алгоритмах? (Просто я постоянно работаю с 16-битными данными и никаких проблем не встречал -- КД) (Действительно не совсем так. В GDAL ресемплинг и пересчет каналов преобразованием Бровея осуществляется с 16-битными данными. Преобразование в 8-битные происходит непосредственно перед созданием цветного композита -- Strix) Моя ошибка. Модуль работает только 8-битными данными -- rhot

Паншарпенинг средствами свободного ПО

GRASS

См. http://courses.neteler.org/processing-landsat-8-data-in-grass-gis-7-rgb-composites-and-pan-sharpening/

  1. r.rescale.eq
  2. i.pansharpen
  3. r.composite

GDAL

  • допиленный gdal_calc.py + gdal_contrast_stretch (dans-gdal-scripts) Хорошо бы сюда ссылку на этот допиленный скрипт и вкраце показать, где он допилен. -- rhot Да, я обязательно это все добавлю -- Strix

Ресемплинг каналов с разрешением 30 м/пиксель до разрешения 15 м/пиксель (кроме bilinear возможные методы: ear, cubic, cubicspline, lanczos, average, mode) (-что и в каких случаях лучше? -- Strix)

gdalwarp -tr 15 15 -r bilinear r.tif r_res.tif
gdalwarp -tr 15 15 -r bilinear g.tif g_res.tif
gdalwarp -tr 15 15 -r bilinear b.tif b_res.tif

Паншарпенинг отдельных каналов преобразованием Бровея

gdal_calc.py -A r_res.tif  -B g_res.tif -C b_res.tif -D pan.tif --outfile=r_res_pan.tif --calc="(D*A)/(A+B+C)"
gdal_calc.py -A r_res.tif  -B g_res.tif -C b_res.tif -D pan.tif --outfile=g_res_pan.tif --calc="(D*B)/(A+B+C)"
gdal_calc.py -A r_res.tif  -B g_res.tif -C b_res.tif -D pan.tif --outfile=b_res_pan.tif --calc="(D*C)/(A+B+C)"

Преобразование 16-битных каналов в 8-битные с коррекцией гистограммы

gdal_contrast_stretch -histeq 100 r_res_pan.tif r_res_pan8.tif
gdal_contrast_stretch -histeq 100 g_res_pan.tif g_res_pan8.tif
gdal_contrast_stretch -histeq 100 b_res_pan.tif b_res_pan8.tif

Сборка отдельных каналов в rgb-композит

gdal_merge.py -separate r_res_pan8.tif g_res_pan8.tif b_res_pan8.tif -o rgb.tif

Orfeo Toolbox / Monteverdi

http://live.osgeo.org/ru/overview/otb_overview.html

http://www.orfeo-toolbox.org/Applications/Pansharpening.html otbcli_Pansharpening

SAGA

Imagery - Tools Намного больше опций, чем в том же GRASS. -- rhot

  • Colour Normalized Brovey Sharpening
  • Colour Normalized Spectral Sharpening
  • IHS Sharpening
  • Principle Components Based Image Sharpening

R

gamm Тут надо помощи у gamm просить. Я не знаю, как реализовать это в R. -- rhot

Результаты

Проверка результатов работы

http://www.digitalglobe.com/downloads/WorldView-2_Pan-Sharpening.pdf