Понимание минимальных и максимальных значений с Mosaic to New Raster?

14

Мне нужно объединить несколько растров DEM в один из этого источника: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp , поэтому я использую инструмент Mosaic to New Raster.

Я установил инструмент:

  1. Я ввожу растры (все из одного источника, одного размера и без проекции);
  2. Установите тип пикселя (32-битная с плавающей точкой, как в исходных растрах);
  3. Установите размер ячейки как оригинальные растры;
  4. Количество полос = 1 в качестве исходных растров; Оператор мозаики, я сделал это с BLEND и MEAN (я получаю тот же результат).

У меня проблема в том, что результирующая мозаика показывает другой диапазон максимальных и минимальных значений, чем максимальные и минимальные значения отдельного растра, например, растр 1 (-5123.8, 23.25), растр 2 (-5974.6, 40.09), растр 3 (-57770,2, 38), растр 4 (-2534,3, 23,55) и окончательный растр мозаики (-5975,8, 81,1).

Я думаю, что это решение не правильно, по крайней мере, я не ожидал получить это. У кого-нибудь есть идея, если это нормально, и если это не так, как ее решить и получить правильный мозаичный растр с правильными максимальными и минимальными значениями?

Я использую ArcGIS 10.2.2 для рабочего стола.

Том
источник
Не могли бы вы рассказать нам, как вы нашли статистику для входных и выходных растров? Иногда в интересах эффективности ArcGIS использует читы и использует только подмножество данных для оценки статистики. В частности, это означает, что в отчете о минимумах и максимумах это может быть далеко.
whuber
Спасибо за интерес. Я делаю щелчок правой кнопкой мыши на слое (как на начальных растрах, так и на мозаике) и просматриваю Свойства. Стоит упомянуть, что я проверил переключение значений каждого растра в символике с Streched на уникальные значения, и оказалось, что если я переключусь на значения Streched для всех слоев, то это будет соответствовать значению min Streched от одного слоя и Максимальное растянутое значение от другого до минимального и максимального значений, которые я вижу при создании мозаики. Кто-нибудь может объяснить мне, если процедура все еще права, и эти различия между значениями Streched и Unique? Благодарность!
Том
2
Я подозреваю, что вкладка "Свойства" обманывает. Подробнее об этом см. Gis.stackexchange.com/questions/8780 .
whuber
1
Благодарю. Никогда не задумывался о том, что вкладка «Свойства» обманывает. Возможно, это можно уточнить, если мы знаем причину, по которой ArcGIS предоставляет разные значения для растянутых и уникальных значений в символике для одного растрового слоя. Кто-нибудь знает, почему?
Том

Ответы:

10

Как уже упоминалось, часто статистика, обнаруженная в свойствах растра, иногда является приблизительной или устаревшей. Это предопределенные свойства, которые могут вводить в заблуждение фактические растровые значения.

Вычислите ваши собственные минимальные / максимальные значения из 100% фактических данных, используя массивы NumPy. См. Работа с NumPy в ArcGIS и RasterToNumPyArray (arcpy) . Например:

import arcpy

inrast = r'C:\data\inRaster.tif'
my_array = arcpy.RasterToNumPyArray(inrast)
print((my_array.min(), my_array.max()))

Если у вас есть пропущенные значения (NODATA), то для получения правильной статистики необходим маскированный массив:

import numpy as np
my_array = arcpy.RasterToNumPyArray(inrast)
my_masked_array = np.ma.masked_equal(my_array, arcpy.Raster(inrast).noDataValue)
print((my_masked_array.min(), my_masked_array.max()))

Кроме того, вам не нужен ArcGIS для чтения растров в виде массивов NumPy; например, GDAL или растерио могут делать подобное .

Майк Т
источник
6

Как говорят другие ответы, статистика, скорее всего, устарела. Если вы предпочитаете использовать ArcGIS, попробуйте инструмент «Рассчитать статистику» на панели инструментов «Управление данными». Это должно обновить статистику для вас.

Мартин
источник