GIS-LAB

Географические информационные системы и дистанционное зондирование

Растровый калькулятор на C++

voltron, 20.10.2010

Расширение RasterCalc, разработанное нами, довольно широко применяется в экологическом моделировании. Поэтому Tim Sutton и Marco Hugentobler решили, что стоит включить его в состав библиотеки анализа QGIS, предварительно переписав на С++. Это позволить использовать функции расширения из других модулей а также уберет зависимости от numpy, pyparsing и других библиотек.

На прошлой неделе Marco Hugentobler анонсировал начальный патч, добавляющий калькулятор в библиотеку анализа.

По сравнению с расширением на Python отсутсвуют следующие возможности:

  • нет кнопок для выбора «шаблонов» (Difference и NDVI);
  • результирующий растр всегда имеет тип float32
  • нет возможности сохранять и загружать выражения

В то же время появились новые возможности:

  • выбор формата результирующего растра
  • возможность указать желаемые охват и разрешение результата, и выполнять операции над растрами  с разным разрешением/охватом. При этом при необходимости выполняется пересчет разрешения.

Опробовать это нововведение можно применив патч и собрав QGIS из исходных текстов.

Т.к. не у всех есть возможность или желание заниматься самостоятельной компиляцией, мы как обычно подготовили бинарные файлы с наложенным патчем. Эта версия QGIS собрана с поддержкой GRASS и Python, использует GDAL 1.7.2 (все зависимости взяты из OSGeo4W).

Вначале необходимо:

  • установить QGIS и все сопутствующие приложения при помощи установщика OSGeo4W (подробнее).
  • скачать архив с бинарными файлами (r14380)
  • распаковать скачанный архив в корневой каталог OSGeo4W (по умолчанию, C:\OSGeo4W)
  • в командной строке OSGeo выполнить команду qgis-trunk.

Калькулятор вызывается из меню «Слой – Raster calculator».

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

Комментарии (3) к статье “Растровый калькулятор на C++”

  1. SS_Rebelious says:

    Нельзя ли дать пару примеров использования этого инструмента? А лучше, оригинального плагина.

  2. kryl says:

    Плагин в 1.2 при подгруженных нескольких Landsat (7 каналов img) нескольких зон UTM корежит проекцию итогового растра(пишет неправильную зону UTM)
    При подгруженных 4 ландсатах одного пас/роу и 3 слоях вектра в DD при расчете NDVI переодически добавляет смещение около 1 км.
    проверялась на w7/32 QGIS 1.6 bild r14196
    XP/32 QGIS 1.5 на целом компьютерном классе)

  3. kryl says:

    А вот в пустом проекте с непрописанной системой координат считает тот же растр корректно

Оставьте комментарий


(Геокруг)

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter