14 votos

La comprensión de valores min y max con Mosaico a la Nueva Trama?

Tengo que combinar varios DEM rásteres en uno de esta fuente: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp, así que el uso de Mosaico a la Nueva Trama de la herramienta.

Puedo configurar la herramienta:

  1. Yo de entrada de los rásteres (todos de la misma fuente, del mismo tamaño y sin proyección);
  2. Configurar el Tipo de Pixel (de 32 bits de punto flotante como en el original rásteres);
  3. Configurar el tamaño de la Celda como el original rásteres;
  4. Número de Bandas = 1 como la original rásteres; Mosaico Operador, lo he hecho con la MEZCLA y de la MEDIA (me sale el mismo resultado).

El problema que tengo es que la resultante de mosaico muestra un rango de valores máximo y mínimo de los valores máximo y mínimo de la persona ráster por ejemplo, la trama 1 (-5123.8, 23.25), trama 2 (-5974.6, 40.09), de trama 3 (-57770.2, 38), de trama 4 (-2534.3, 23.55), y la final de mosaico raster (-5975.8, 81.1).

Supongo que esta solución no es correcta, al menos no me lo esperaba para conseguir que. Alguien tiene una idea de si esto está bien, y si no es este, ¿cómo resolver y obtener una adecuada mosaico raster con la derecha los valores máximo y mínimo?

Estoy utilizando ArcGIS 10.2.2 para Escritorio.

10voto

hernan43 Puntos 566

Como whuber mencionado, a menudo estadísticas que figuran en las propiedades del raster a veces se aproximan o son de fuera de fecha. Ellos están predeterminados de las propiedades que pueden inducir a error a la real ráster de valores.

Calcula tus propios valores min / max de 100% de los datos reales utilizando arrays de NumPy. Consulte Trabajar con NumPy en ArcGIS, y RasterToNumPyArray (arcpy). E. g.:

import arcpy

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

Si te falta alguno de valores (NODATA) luego de una máscara de la matriz es necesario para obtener la correcta estadísticas:

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

También, usted no necesita de ArcGIS para leer los rásteres como NumPy matrices; por ejemplo, GDAL o rasterio puede hacer similar.

6voto

bignose Puntos 861

Como las otras respuestas que dicen las estadísticas son probable que fuera de fecha. Si usted prefiere el uso de ArcGIS intentar el cálculo de Estadísticas de la herramienta en la Gestión de Datos del cuadro de herramientas. Esto debe actualizar las estadísticas para usted.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X