Понимание минимальных и максимальных значений с 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, попробуйте инструмент «Рассчитать статистику» на панели инструментов «Управление данными». Это должно обновить статистику для вас.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.