7 votos

Cómo excluir los valores extremos de ráster utilizando ArcGIS for Desktop?

He calculado el terreno de la curvatura de un DEM. El DEM que yo uso es interpolada a partir de puntos de datos de elevación. En general, los DEM parece ser buena, pero algunos artefactos de interpolación de existir. Los artefactos causa de los valores extremos para la curvatura. Alrededor del 90% de los valores de curvatura son entre -25 y 25, pero el otro 10% son entre -500 y 500.

Puedo usar el histograma de ecualizar correctamente visualizar la curvatura de la trama. Para un mayor análisis, sin embargo me gustaría reemplazar este de los valores extremos.

Así que mi pregunta es: ¿Cómo puedo excluir los valores extremos de la trama? Me imagino que algo como esto iba a funcionar (pseudo-código):

m = median("curvature")
IF("curvature.value") > m * 10 THEN ("curvature.value") = m * 10
IF("curvature.value") < m * 10 THEN ("curvature.value") = m * 10

¿Qué herramienta puedo utilizar para esto? Traté de Raster Calculator, pero no pude conseguir la sintaxis correcta.

Software: ArcGIS 10 con espacial y 3D analyst

30voto

Jim Puntos 4057

Examinar el uso de la Con la declaración de permite realizar declaraciones condicionales basados en sus criterios.

9voto

cjstehno Puntos 131

Yo no sujete los valores, como se sugiere por el pseudocódigo, debido a la curvatura de artefactos no se corresponden necesariamente con alta curvatura de las áreas. Mejor cura para el problema que se incluyen:

  1. Considere la posibilidad de suavizar los DEM antes de calcular la curvatura. Esto podría reducir ligeramente la mayoría de las curvaturas pero podría dar razonables valores de curvatura en todos los lugares. El suavizado de la DEM se puede hacer con locales en los camellones o en los medios.

  2. Encontrar un camino sólido para la estimación de la curvatura. (Usted no encontrará esto en cualquier Arco* el software, pero con la disponibilidad de propósito general herramientas como R, esta es una posible recomendación.) En general, la curvatura es estimado mediante el ajuste de una ecuación cuadrática (o algunos especializados de baja polinomiales de orden) en cada barrio. El habitual método de ajuste es el de mínimos cuadrados, que puede ser sensible a pequeñas variaciones locales. Ampliando el barrio y el uso de un método de ajuste que downweights periféricas de los residuos (como IWLS), usted puede ser capaz de obtener representante y precisa de la curvatura de las estimaciones de todas partes.

  3. Reemplazar la curvatura extrema valores NoData. Esta es todavía una draconiana medida, pero sería apropiado si los valores extremos son realmente los artefactos de la interpolación (y no, por lo tanto, reflejan realmente de alta curvaturas).

  4. Seleccione un método de interpolación que produce superficies más suaves!

El 'mapa de álgebra' sintaxis para reemplazar los valores con NoData utiliza el SetNull comando, como en

SetNull(Abs([Curvature grid]) > 10*Abs(m), [Curvature grid])

Por cierto, m debe no ser la mediana de curvatura: la mediana de la frecuencia será cercano a cero y no reflejan los típicos grandes curvaturas (positivo o negativo) de Una gran múltiplo de la mediana absoluta curvatura podría ser una opción razonable. Mejor aún, examinar el histograma de curvaturas para encontrar de dónde cortar los valores.

Si el SetNull enfoque asoma demasiados NoData agujeros en la red, piensa si la curvatura de la cuadrícula debe ser que varían suavemente. Si es así, y si los agujeros tienden a ser aislados (o en estrechas rayas-lo que sería un fuerte indicador de que un pobre interpolador), se pueden rellenar mediante el cálculo de un centro de media y pegar la media de los valores sobre los agujeros. El pegado se realiza con el condicional operador, como en

Con(IsNull([Modified curvature grid]), [Focal mean grid], [Modified curvature grid])

Nota el uso de IsNull para detectar el NoData células.

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