Grundlegendes zu Min- und Max-Werten mit Mosaic to New Raster?

14

Ich muss mehrere DEM-Raster aus dieser Quelle zu einem kombinieren: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp . Daher verwende ich das Werkzeug Mosaic to New Raster.

Ich habe das Tool eingerichtet:

  1. Ich gebe die Raster ein (alle von derselben Quelle, gleicher Größe und ohne Projektion);
  2. Richten Sie den Pixeltyp ein (32-Bit-Gleitkomma wie in den ursprünglichen Rastern).
  3. Richten Sie die Zellengröße als Original-Raster ein.
  4. Anzahl der Bänder = 1 als die ursprünglichen Raster; Mosaic Operator, ich habe es mit BLEND und MEAN gemacht (ich bekomme das gleiche Ergebnis).

Das Problem, das ich habe, ist, dass das resultierende Mosaik einen anderen Bereich von Maximal- und Minimalwerten als die Maximal- und Minimalwerte des einzelnen Rasters zeigt, z. B. Raster 1 (-5123,8, 23,25), Raster 2 (-5974,6, 40,09), Raster 3 (-57770,2, 38), Raster 4 (-2534,3, 23,55) und endgültiges Mosaik-Raster (-5975,8, 81,1).

Ich denke, diese Lösung ist nicht richtig, zumindest habe ich nicht damit gerechnet. Hat jemand eine Idee, ob dies in Ordnung ist, und wenn dies nicht der Fall ist, wie man es löst und ein richtiges Mosaik-Raster mit den richtigen Maximal- und Minimalwerten erhält?

Ich verwende ArcGIS 10.2.2 für Desktop.

tom
quelle
Können Sie uns mitteilen, wie Sie die Statistiken für die Eingabe- und Ausgabe-Raster ermittelt haben? Im Interesse der Effizienz schummelt ArcGIS manchmal und verwendet nur eine Teilmenge der Daten, um die Statistiken zu schätzen. Dies bedeutet insbesondere, dass es bei der Berichterstattung über Minima und Maxima zu Abweichungen kommen kann.
whuber
Danke für Ihr Interesse. Ich mache einen Rechtsklick auf die Ebene (sowohl anfängliche Raster als auch Mosaik) und schaue in Eigenschaften. Es ist erwähnenswert, dass ich geprüft habe, ob die Werte der einzelnen Raster in Symbology von "Gestreckt" auf "Eindeutig" geändert werden sollen. Wenn ich für alle Layer auf "Gestreckt" umschalte, stimmt dies mit dem min Maximaler gestreckter Wert von einem anderen zu den minimalen und maximalen Werten, die ich sehe, wenn das Mosaik erstellt wird. Kann mir jemand erklären, ob das Verfahren noch stimmt und diese Unterschiede zwischen Streched- und Uniques-Werten? Vielen Dank!
Tom
2
Ich vermute, dass die Registerkarte "Eigenschaften" betrügt. Weitere Informationen hierzu finden Sie unter gis.stackexchange.com/questions/8780 .
Whuber
1
Vielen Dank. Habe nie darüber nachgedacht, dass die Registerkarte "Eigenschaften" betrügt. Dies kann möglicherweise geklärt werden, wenn bekannt ist, warum ArcGIS für einen einzelnen Raster-Layer unterschiedliche Werte für "Gestreckt" und "Eindeutig" in Symbology angibt. Jeder würde wissen warum?
Tom

Antworten:

10

Wie bereits erwähnt, sind in den Rastereigenschaften häufig nur ungefähre oder veraltete Statistiken enthalten. Dies sind vorgegebene Eigenschaften, die zu den tatsächlichen Rasterwerten irreführend sein können.

Berechnen Sie Ihre eigenen Min / Max-Werte aus 100% der tatsächlichen Daten mithilfe von NumPy-Arrays. Siehe Arbeiten mit NumPy in ArcGIS und RasterToNumPyArray (arcpy) . Z.B:

import arcpy

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

Wenn Sie fehlende Werte (NODATA) haben, wird ein maskiertes Array benötigt, um die richtigen Statistiken zu erhalten:

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()))

Außerdem benötigen Sie ArcGIS nicht, um Raster als NumPy-Arrays zu lesen. zB GDAL oder rasterio können das ähnlich machen .

Mike T
quelle
6

Wie die anderen Antworten sagen, sind die Statistiken wahrscheinlich veraltet. Wenn Sie ArcGIS bevorzugen, verwenden Sie das Tool "Statistiken berechnen" in der Toolbox "Datenverwaltung". Dies sollte die Statistiken für Sie aktualisieren.

Martin
quelle