Zrozumienie wartości minimalnych i maksymalnych z mozaiki na nowy raster?

14

Muszę połączyć kilka rastrów DEM w jeden z tego źródła: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp , więc używam narzędzia Mosaic to New Raster.

Skonfigurowałem narzędzie:

  1. Wprowadzam rastry (wszystkie z tego samego źródła, tego samego rozmiaru i bez projekcji);
  2. Ustaw typ piksela (32-bitowy zmiennoprzecinkowy, jak w oryginalnych rastrach);
  3. Ustaw rozmiar komórki jako oryginalne rastry;
  4. Liczba pasm = 1 jako oryginalne rastry; Operator mozaiki, zrobiłem to za pomocą BLEND i MEAN (otrzymuję ten sam wynik).

Problemem jest to, że uzyskana mozaika wykazuje inny zakres wartości maksymalnych i minimalnych niż wartości maksymalne i minimalne poszczególnych rastrów, np. Raster 1 (-5123.8, 23,25), raster 2 (-5974.6, 40.09), raster 3 (-57770,2, 38), raster 4 (-2534,3, 23,55) i końcowy raster mozaiki (-5975.8, 81,1).

Wydaje mi się, że to rozwiązanie nie jest właściwe, a przynajmniej nie spodziewałem się tego. Czy ktoś ma pomysł, czy jest to w porządku, a jeśli nie, jak to rozwiązać i uzyskać odpowiedni mozaikowy raster z odpowiednimi wartościami maksymalnymi i minimalnymi?

Korzystam z ArcGIS 10.2.2 na komputery.

Tomek
źródło
Czy możesz nam powiedzieć, jak znalazłeś statystyki dla rastrów wejściowych i wyjściowych? Czasami, w celu zwiększenia wydajności, ArcGIS oszukuje i wykorzystuje tylko część danych do oszacowania statystyk. W szczególności oznacza to, że raportowanie minimów i maksimów może być dalekie.
whuber
Dzięki za zainteresowanie. Klikam prawym przyciskiem myszy warstwę (zarówno początkowe rastry, jak i mozaikę) i przeglądam Właściwości. Warto wspomnieć, że zaznaczyłem, aby przełączyć wartości każdego rastra w Symbology z wartości Streched na Unique i okazuje się, że jeśli przełączę się na wartości Streched dla wszystkich warstw, to odpowiada minimalnej wartości Streched z jednej warstwy i wartości max Streched wartość z innej, do wartości min i max, które widzę podczas tworzenia mozaiki. Czy ktoś mógłby mi wyjaśnić, czy procedura nadal jest odpowiednia, a te różnice między wartościami Streched i Uniques? Dzięki!
tom
2
Podejrzewam, że karta „Właściwości” oszukuje. Więcej informacji na ten temat można znaleźć na stronie gis.stackexchange.com/questions/8780 .
whuber
1
Dzięki. Nigdy nie myślałem o możliwości, że karta „Właściwości” oszukuje. Być może można to wyjaśnić, jeśli znamy powód, dla którego ArcGIS podaje różne wartości Streched i Unique wartości w Symbology, dla pojedynczej warstwy rastrowej. Ktoś wiedziałby dlaczego?
tom

Odpowiedzi:

10

Jak wspomniano Whuber, często statystyki znalezione we właściwościach rastra są czasami przybliżone lub nieaktualne. Są to z góry określone właściwości, które mogą wprowadzać w błąd rzeczywiste wartości rastrowe.

Oblicz swoje własne wartości min / maks na podstawie 100% rzeczywistych danych za pomocą tablic NumPy. Zobacz Praca z NumPy w ArcGIS i RasterToNumPyArray (arcpy) . Na przykład:

import arcpy

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

Jeśli brakuje Ci wartości (NODATA), potrzebna jest tablica maskowana, aby uzyskać poprawne statystyki:

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

Ponadto nie potrzebujesz ArcGIS do odczytu rastrów jako tablic NumPy; np. GDAL lub rasterio mogą zrobić podobnie .

Mike T.
źródło
6

Jak podają inne odpowiedzi, statystyki są prawdopodobnie nieaktualne. Jeśli wolisz korzystać z ArcGIS, wypróbuj narzędzie Oblicz statystyki w przyborniku Zarządzanie danymi. To powinno zaktualizować statystyki.

Jaskółka oknówka
źródło