Как работает зональная статистика?

10

Меня немного смущает, как работают инструменты зональной статистики в QGIS (либо инструмент «Зональная статистика» в инструментах Raster из набора инструментов геоалгоритмов QGIS, либо инструмент «Растровая статистика из полигонов» в инструментах SAGA Vector <-> Raster). ).

В основном у меня есть слой растровой карты и несколько маленьких полигонов в отдельном слое. Я хочу назначить каждому полигону значение растра ниже. Если многоугольник перекрывает несколько растровых ячеек, я просто хочу получить максимум.

Тем не менее, вывод не имеет никакого смысла, и я не могу обойтись без обоснования этих результатов (которые, очевидно, не являются максимальными для лежащей в основе растровой ячейки):

введите описание изображения здесь

Есть идеи, что я делаю неправильно или что еще не учел? Результаты с Python API в qgis.analysis.QgsZonalStatistics()( согласно этому вопросу здесь ) намного лучше, но он только предлагает count, meanи sum... но по какой-то причине нет maxили min.

GeoEki
источник
1
Только что попробовал это в ArcMap, преобразовав мой Растр в Точки, и похоже, что инструмент QGIS Zonal Stats делает то же самое внутри и использует только те случаи, когда точка пересекает многоугольник. Однако в QGIS, похоже, нет подходящей опции сопоставления (что-то сопоставимое с теми, которые предлагаются в инструменте пространственного соединения ArcMap, например, INTERSECT, WITHIN_A_DISTANCE, CLOSEST, ...).
GeoEki
Чтобы понять это, я вычислил «количество» для грубого растрового слоя (примерно один пиксель в многоугольнике) с помощью Zonal Statistics QGIS и получил значение 0,45, что на удивление не целое число. Это говорит о том, что QGIS может каким-то образом взвешивать значения пикселей. Это может быть причиной того, что max / min не соответствуют вашим ожиданиям - возможно, плохая реализация этого веса при вычислении max / min.
Джон
См. Gis.stackexchange.com/a/281753/18189 для описания работы алгоритма зональной статистики QGIS.
dbaston

Ответы:

4

Обновление от апреля 2018 года и QGIS 2.18

Текущая версия плагина Zonal Statistics может обеспечить:

Count: to count the number of pixels
Sum: to sum the pixel values
Mean: to get the mean of pixel values
Median: to get the median of pixel values
StDev: to get the standard deviation of pixel values
Min: to get the minimum of pixel values
Max: to get the maximum of pixel values
Range: to get the range (max - min) of pixel values
Minority: to get the less represented pixel value
Majority: to get the most represented pixel value
Variety: to count the number of distinct pixel values

Оригинальный ответ

Короче говоря, этот подход с QGIS, насколько я знаю, не позволяет просматривать максимум растровых пикселей в результате. Только счет, среднее и сумма. Я предоставил некоторые ресурсы, которые покрывают это.

Вот страница документа для плагина Плагин Zonal Statistics

С помощью плагина icon_zonal_statistics Zonal statistics вы можете анализировать результаты тематической классификации. Это позволяет рассчитать несколько значений пикселей растрового слоя с помощью многоугольного векторного слоя (см. Figure_zonal_statistics). Вы можете рассчитать сумму, среднее значение и общее количество пикселей, находящихся в пределах многоугольника. Плагин генерирует выходные столбцы в векторном слое с заданным пользователем префиксом.

Кроме того, в этом учебном руководстве по QGIS для выборки растровых данных с использованием точек или полигонов представлены примеры данных для получения зональной статистики. Я включил скриншот, который они предоставляют в качестве примера своего рабочего процесса и результатов.

Включите плагины зональной статистики. Это основной плагин, поэтому он уже установлен. См. Использование плагинов, чтобы узнать, как включить основной плагин.

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

После завершения обработки выберите слой округов. Используйте инструмент «Идентификация» и нажмите на любой полигон округа. Вы увидите три новых атрибута, добавленных к слою: ZS_count, ZS_mean и ZS_sum. Эти атрибуты содержат количество растровых пикселей, среднее значение растровых пикселей и сумму растровых пикселей соответственно. Так как нас интересует средняя температура, поле ZS_mean будет использоваться.

введите описание изображения здесь

whyzar
источник
2

Начиная с QGIS 3.0 (возможно, раньше, я не уверен), доступна следующая статистика:

  • подсчитывать
  • сумма
  • Жадный
  • медиана
  • Среднеквадратичное отклонение
  • минимальный
  • максимальная
  • Спектр
  • меньшинство
  • Большинство (режим)
  • разнообразие
  • отклонение
dbaston
источник