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:
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.
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.
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).
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.