Паншарпенинг в QGIS с использованием Orfeo ToolBox: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 11 промежуточных версий 1 участника)
Строка 1: Строка 1:
{{Статья|Черновик}}
{{Статья|Опубликована|qgis-pansharp-otb}}
{{Аннотация|В данной статье рассказывается о том как произвести паншарпенинг в QGIS посредством инструментария Orfeo ToolBox. }}
{{Аннотация|В данной статье рассказывается о том как произвести паншарпенинг в QGIS посредством инструментария Orfeo ToolBox.  
 
[via [http://ssrebelious.blogspot.ru/2015/01/pansharpening-in-qgis-using-qtb.html Misanthrope's Thoughts]]}}


==Введение==
==Введение==
Строка 23: Строка 25:
где pan_image, xs_image и output_image соответсвенно - пути к панхроматическому, мультиспектральному и результирующему растрам. О дополнительных опциях читайте в документации.
где pan_image, xs_image и output_image соответсвенно - пути к панхроматическому, мультиспектральному и результирующему растрам. О дополнительных опциях читайте в документации.
===Запуск паншарпенинга из QGIS===
===Запуск паншарпенинга из QGIS===
В QGIS инструменты OTB подключаются через модуль Processing. После установки OTB на компьютер зайдите в QGIS в настройки модуля Processing (''Processing -> Options -> Providers'') и активируйте интеграцию с OTB:
В QGIS инструменты OTB подключаются через модуль Processing. После установки OTB на компьютер зайдите в QGIS в настройки модуля Processing (''Processing -> Options -> Providers'') и активируйте интеграцию с OTB ([http://docs.qgis.org/2.6/ru/docs/user_manual/processing/3rdParty.html#orfeo-toolbox инструкция] на английском):


[[Файл:Enable OTB.png|center]]
[[Файл:Enable OTB.png|center]]
Строка 35: Строка 37:
* '''Spacing of the deformation field''' - интервал расстояния поля деформации (coarser deformation field).
* '''Spacing of the deformation field''' - интервал расстояния поля деформации (coarser deformation field).
* '''Interpolation''' - тип интерполяции.
* '''Interpolation''' - тип интерполяции.
* '''Available RAM''' - ограничение использования оперативной памяти.
* '''Available RAM''' - ограничение использования оперативной памяти. (Если изменение дефолтного значения [http://gis-lab.info/forum/viewtopic.php?f=3&t=18913&p=127347#p127344 приводит к вылету модуля] - обновите Processing.)
* '''Output image''' - результирующий растр.
* '''Output image''' - результирующий растр.
[[Файл:Superimpose sensor.png|thumb|center|x500px|Интерфейс модуля Superimpose sensor]]
[[Файл:Superimpose sensor.png|thumb|center|x500px|Интерфейс модуля Superimpose sensor]]
Строка 43: Строка 45:
* '''Input XS image''' - мультиспектральное изображение, приведённое к параметрам панхроматического.
* '''Input XS image''' - мультиспектральное изображение, приведённое к параметрам панхроматического.
* '''Algorithm''' - алгоритм для паншарпенинга (не изменяется, для использования других алгоритмов (LMVM и Bayesian) используйте соответсвующие модули ''Pansharpening(bayes) и Pansharpening(lvmv)'')
* '''Algorithm''' - алгоритм для паншарпенинга (не изменяется, для использования других алгоритмов (LMVM и Bayesian) используйте соответсвующие модули ''Pansharpening(bayes) и Pansharpening(lvmv)'')
* '''Available RAM''' - ограничение использования оперативной памяти.
* '''Available RAM''' - ограничение использования оперативной памяти. (Если изменение дефолтного значения [http://gis-lab.info/forum/viewtopic.php?f=3&t=18913&p=127347#p127344 приводит к вылету модуля] - обновите Processing.)
* '''Output image''' - результирующий растр.
* '''Output image''' - результирующий растр.
[[Файл:Pansharp dialogue.png|thumb|center|x500px|Интерфейс модуля ''Pansharpening(rsc)'']]
[[Файл:Pansharp dialogue.png|thumb|center|x500px|Интерфейс модуля ''Pansharpening(rsc)'']]
Строка 51: Строка 53:
[[Файл:Initial panchrome.png|thumb|center|x700px|Пахроматический растр с пространственным разрешением 0,5 м]]
[[Файл:Initial panchrome.png|thumb|center|x700px|Пахроматический растр с пространственным разрешением 0,5 м]]
[[Файл:Initial multi.png|thumb|center|x700px|Мультиспектральный растр с пространственным разрешением 2,0 м]]
[[Файл:Initial multi.png|thumb|center|x700px|Мультиспектральный растр с пространственным разрешением 2,0 м]]
[[Файл:OTB pansharp result.png|center|x700px|Мультиспектральный растр после паншарпенинга при помощи OTB]]
[[Файл:OTB pansharp result.png|thumb|center|x700px|Мультиспектральный растр после паншарпенинга при помощи OTB]]


Результат выглядит довольно неплохо, и что немаловажно, был получен очень бытро - ''OTB'' использует многопоточную обработку и задействует все ядра вашего процессора.
Результат выглядит довольно неплохо, и что немаловажно, был получен очень бытро - ''OTB'' использует многопоточную обработку и задействует все ядра вашего процессора.
Строка 63: Строка 65:
* '''pansharpened OTB''' - результирующий растр.
* '''pansharpened OTB''' - результирующий растр.
[[Файл:Pansharp model dialogue.png|thumb|center|x500px|Интерфейс модели паншарпенига]]
[[Файл:Pansharp model dialogue.png|thumb|center|x500px|Интерфейс модели паншарпенига]]
====Код модели====
====Файл модели====
Ниже вы найдёте код, описывающий модель, приведённую выше. Вы можете сохранить его в виде текстового файла с расширением .model (например, ''Pansharp_OTB.model'') и сохранить в папку ".../.qgis2/processing/models/". После этого она появится у вас в списке моделей Processing toolbox (необходим рестарт QGIS).
Вы можете скачать модель в виде текстового файла [http://wiki.gis-lab.info/images/5/56/Pansharpening_OTBl.zip отсюда]. Архив необходимо распаковать в папку ".../.qgis2/processing/models/". После этого она появится у вас в списке моделей Processing toolbox (необходим рестарт QGIS).
  {
    "values": {
        "inputs": {
            "RASTERLAYER_HIGHRESOLUTIONPANCHROMATICRASTER": {
                "values": {
                    "pos": {
                        "values": {
                            "y": 55.0,
                            "x": 121.0
                        },
                        "class": "point"
                    },
                    "param": {
                        "values": {
                            "isAdvanced": false,
                            "name": "RASTERLAYER_HIGHRESOLUTIONPANCHROMATICRASTER",
                            "showSublayersDialog": true,
                            "value": null,
                            "exported": null,
                            "hidden": false,
                            "optional": false,
                            "description": "High_resolution_panchromatic_raster"
                        },
                        "class": "processing.core.parameters.ParameterRaster"
                    }
                },
                "class": "processing.modeler.ModelerAlgorithm.ModelerParameter"
            },
            "RASTERLAYER_LOWRESOLUTIONMULTISPECTRALRASTER": {
                "values": {
                    "pos": {
                        "values": {
                            "y": 55.0,
                            "x": 342.0
                        },
                        "class": "point"
                    },
                    "param": {
                        "values": {
                            "isAdvanced": false,
                            "name": "RASTERLAYER_LOWRESOLUTIONMULTISPECTRALRASTER",
                            "showSublayersDialog": true,
                            "value": null,
                            "exported": null,
                            "hidden": false,
                            "optional": false,
                            "description": "Low_resolution_multispectral_raster"
                        },
                        "class": "processing.core.parameters.ParameterRaster"
                    }
                },
                "class": "processing.modeler.ModelerAlgorithm.ModelerParameter"
            }
        },
        "helpContent": {},
        "group": "Raster processing",
        "name": "OTB Pan-sharpening",
        "algs": {
            "OTBPANSHARPENINGRCS_1": {
                "values": {
                    "name": "OTBPANSHARPENINGRCS_1",
                    "paramsFolded": true,
                    "outputs": {
                        "-out": {
                            "values": {
                                "description": "Panshrpened_OTB",
                                "pos": {
                                    "values": {
                                        "y": 311.0,
                                        "x": 556.0
                                    },
                                    "class": "point"
                                }
                            },
                            "class": "processing.modeler.ModelerAlgorithm.ModelerOutput"
                        }
                    },
                    "pos": {
                        "values": {
                            "y": 266.0,
                            "x": 356.0
                        },
                        "class": "point"
                    },
                    "outputsFolded": true,
                    "dependencies": [],
                    "params": {
                        "-inp": {
                            "values": {
                                "name": "RASTERLAYER_HIGHRESOLUTIONPANCHROMATICRASTER"
                            },
                            "class": "processing.modeler.ModelerAlgorithm.ValueFromInput"
                        },
                        "-inxs": {
                            "values": {
                                "alg": "OTBSUPERIMPOSESENSOR_1",
                                "output": "-out"
                            },
                            "class": "processing.modeler.ModelerAlgorithm.ValueFromOutput"
                        },
                        "-ram": 2048.0,
                        "-method": 0
                    },
                    "active": true,
                    "consoleName": "otb:pansharpeningrcs",
                    "description": "Pansharpening (rcs)"
                },
                "class": "processing.modeler.ModelerAlgorithm.Algorithm"
            },
            "OTBSUPERIMPOSESENSOR_1": {
                "values": {
                    "name": "OTBSUPERIMPOSESENSOR_1",
                    "paramsFolded": true,
                    "outputs": {},
                    "pos": {
                        "values": {
                            "y": 182.0,
                            "x": 133.0
                        },
                        "class": "point"
                    },
                    "outputsFolded": true,
                    "dependencies": [],
                    "params": {
                        "-interpolator": 0,
                        "-inm": {
                            "values": {
                                "name": "RASTERLAYER_LOWRESOLUTIONMULTISPECTRALRASTER"
                            },
                            "class": "processing.modeler.ModelerAlgorithm.ValueFromInput"
                        },
                        "-ram": 2048.0,
                        "-interpolator.bco.radius": 2.0,
                        "-lms": 4.0,
                        "-inr": {
                            "values": {
                                "name": "RASTERLAYER_HIGHRESOLUTIONPANCHROMATICRASTER"
                            },
                            "class": "processing.modeler.ModelerAlgorithm.ValueFromInput"
                        },
                        "-elev.default": 0.0
                    },
                    "active": true,
                    "consoleName": "otb:superimposesensor",
                    "description": "Superimpose sensor"
                },
                "class": "processing.modeler.ModelerAlgorithm.Algorithm"
            }
        }
    },
    "class": "processing.modeler.ModelerAlgorithm.ModelerAlgorithm"
  }


==Заключение==
В данной статье был рассмотрен процесс паншарпенинга изображений при помощи инструментов OTB, запускаемых при помощи модуля Processing в QGIS. OTB позволяет получить качественный и быстрый (благодаря многопоточной обработке) результат. Для паншарпенинга в QGIS удобнее всего создать соответствующую модель при помощи Model Builder, чтобы избежать проволочек, связанных с промежуточными файлами.
==Ссылки по теме==
==Ссылки по теме==
[http://wiki.gis-lab.info/w/%D0%9F%D0%B0%D0%BD%D1%88%D0%B0%D1%80%D0%BF%D0%B5%D0%BD%D0%B8%D0%BD%D0%B3_%D0%BF%D1%80%D0%B8_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8_R Паншарпенинг при помощи R]
[http://gis-lab.info/qa/pan-sharpening-erdas.html Паншарпенинг в ERDAS]
[http://gis-lab.info/qa/pan-sharpening-erdas.html Паншарпенинг в ERDAS]


[http://gis-lab.info/qa/grass7-landsat8-processing.html Обработка и интерпретация данных Landsat 8 (OLI) средствами GRASS GIS 7]
[http://gis-lab.info/qa/grass7-landsat8-processing.html#.D0.9F.D0.B0.D0.BD.D1.88.D0.B0.D1.80.D0.BF.D0.B5.D0.BD.D0.B8.D0.BD.D0.B3 Обработка и интерпретация данных Landsat 8 (OLI) средствами GRASS GIS 7 [раздел Паншарпенинг в GRASS]]


[http://gis-lab.info/qa/sextante-qgis.html Геопроцессинг с SEXTANTE для QGIS]
[http://gis-lab.info/qa/sextante-qgis.html Геопроцессинг с SEXTANTE для QGIS]

Текущая версия от 07:13, 3 июня 2015

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/qgis-pansharp-otb.html


В данной статье рассказывается о том как произвести паншарпенинг в QGIS посредством инструментария Orfeo ToolBox. [via Misanthrope's Thoughts]

Введение

При работе с данными дистанционного зондирования Земли зачастую приходится решать задачу улучшения снимков с низким разрешением за счёт снимков с высоким. В QGIS нет встроенного инструмента паншарпенинга, но есть возможность подключения инструментов Orfeo ToolBox (OTB), где они есть.

Немного теории

На удивление сложно найти определение для слова "паншарпенинг". Попробуем сформулировать его своими словами, взяв за основу описание из книги Шовергердт Р.А. Дистанционное зондирование. Модели и методы обработки изображений - М.: Техносфера, 2010. (с. 416):

Паншарпенинг (от анг. Panchromatic sharpening) - это процесс объединения изображений в пространственной области основная задача которого заключается в передаче высокочастотного содержания изображения с высоким разрешением (обычно панхроматического) изображению с низким разрешением (обычно мультиспектральному).

Одним из наиболее простых алгоритмов паншарпенинга является модуляция высоких частот. В этом алгоритме для получения улучшенного изображения в канале PXS панхроматический снимок PAN попиксельно умножается на изображение с низким разрешением XS, после чего полученный результат нормируется на низкочастотную компоненту панхроматического снимка PANsmooth (панхроматический снимок, обработанный сглаживающим фильтром с окном, соответствующим размеру пикселя изображения с низким разрешением):

Formula OTB pansharpening.png

где i и j - индексы пикселей.

Паншарпенинг в OTB и QGIS

С программной точки зрения процесс паншарпенинга делится на две стадии: 1) подготовительную, во время которой разрешение и экстент мультиспектрального растра приводится в соответствие с экстентом и разрешением панхроматического растра (это необходимо для проведения операций растровой алгебры, вовлекающих оба растра); 2) непосредственно паншарпенинг.

Использование утилиты OTB

OTB по своей сути является набором консольных утилит и приложений. За паншарпенинг отвечает приложение otbcli_BundleToPerfectSensor. Оно совмещает в себе обе стадии, описанные выше, и запускается следующей консольной командой:

 otbcli_BundleToPerfectSensor -inp pan_image -inxs xs_image -out output_image

где pan_image, xs_image и output_image соответсвенно - пути к панхроматическому, мультиспектральному и результирующему растрам. О дополнительных опциях читайте в документации.

Запуск паншарпенинга из QGIS

В QGIS инструменты OTB подключаются через модуль Processing. После установки OTB на компьютер зайдите в QGIS в настройки модуля Processing (Processing -> Options -> Providers) и активируйте интеграцию с OTB (инструкция на английском):

Enable OTB.png

Теперь в Processing Toolbox у вас появится набор инструментов Orfeo Toolbox. К сожалению, в инструментарий входят только консольные утилиты, но не приложения (то есть модуль otbcli_BundleToPerfectSensor не доступен из QGIS). Поэтому не спешите сразу запускать утилиты паншарпенинга (Orfeo Toolbox -> Geomentry -> Pansharpening), так как здесь требуется, чтобы все входные растры имели идентичный экстент и разрешение, то есть выполняется только вторая стадия. Чтобы выполнить первую - необходимо воспользоваться модулем Superimpose sensor (Orfeo Toolbox -> Geometry -> Superimpose sensor).

Модуль Superimpose sensor имеет следующие параметры:

  • Reference input - базовое изображение, к параметрам которого будет приведено обрабатываемое изображение (здесь выбираем панхроматическое).
  • The image to reproject - изображение, чьи параметры будут приведены к параметрам базового изображения (здесь выбираем мультиспектральное).
  • Default elevation - средняя высота изображения над эллипсоидом.
  • Spacing of the deformation field - интервал расстояния поля деформации (coarser deformation field).
  • Interpolation - тип интерполяции.
  • Available RAM - ограничение использования оперативной памяти. (Если изменение дефолтного значения приводит к вылету модуля - обновите Processing.)
  • Output image - результирующий растр.
Интерфейс модуля Superimpose sensor

После трансформации мультиспектрального растра можно переходить непосредственно к паншарпенингу. Модуль Pansharpening(rsc) имеет следующие параметры:

  • Input PAN image - панхроматическое изображение высокого разрешения.
  • Input XS image - мультиспектральное изображение, приведённое к параметрам панхроматического.
  • Algorithm - алгоритм для паншарпенинга (не изменяется, для использования других алгоритмов (LMVM и Bayesian) используйте соответсвующие модули Pansharpening(bayes) и Pansharpening(lvmv))
  • Available RAM - ограничение использования оперативной памяти. (Если изменение дефолтного значения приводит к вылету модуля - обновите Processing.)
  • Output image - результирующий растр.
Интерфейс модуля Pansharpening(rsc)

Давайте посмотрим на результат паншарпенинга при помощи указанных модулей.

Пахроматический растр с пространственным разрешением 0,5 м
Мультиспектральный растр с пространственным разрешением 2,0 м
Мультиспектральный растр после паншарпенинга при помощи OTB

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

Создание модели

Согласитесь, гораздо удобнее было бы обойтись без промежуточных операций и растров. Этого можно добиться путём создания соответствующей модели для Processing Toolbox. В качестве входных параметров модели следует использовать панхроматический и мультиспектральный растры. Последний сначала подготавливается при помощи Superimpose sensor, а затем обрабатывается при помощи Pansharpening(rsc).

Модель паншарпенига

Интерфейс модели будет выглядеть следующим образом:

  • High resolution panchrome raster - панхроматическое изображение высокого разрешения.
  • Low resolution raster - мультиспектральное изображение низкого разрешения.
  • pansharpened OTB - результирующий растр.
Интерфейс модели паншарпенига

Файл модели

Вы можете скачать модель в виде текстового файла отсюда. Архив необходимо распаковать в папку ".../.qgis2/processing/models/". После этого она появится у вас в списке моделей Processing toolbox (необходим рестарт QGIS).

Заключение

В данной статье был рассмотрен процесс паншарпенинга изображений при помощи инструментов OTB, запускаемых при помощи модуля Processing в QGIS. OTB позволяет получить качественный и быстрый (благодаря многопоточной обработке) результат. Для паншарпенинга в QGIS удобнее всего создать соответствующую модель при помощи Model Builder, чтобы избежать проволочек, связанных с промежуточными файлами.

Ссылки по теме

Паншарпенинг при помощи R

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

Обработка и интерпретация данных Landsat 8 (OLI) средствами GRASS GIS 7 [раздел Паншарпенинг в GRASS]

Геопроцессинг с SEXTANTE для QGIS