8 votos

Cómo elegir trama método de interpolación?

Yo trabajo con un conjunto de datos de ~1.3 millones de edificios residenciales, cada una de ellas es descrita por una distribución normal de la variable que va de 0 a 100. El conjunto de datos cubre toda Suiza, así que obviamente, hay zonas con muy densa y muy escasa densidad de puntos.

La limitación impuesta por nuestro proveedor de datos es que no podemos liberar los conjuntos de datos más detallada de 5 edificios.

Yo estaba pensando acerca de la conversión de este punto de datos en una superficie ráster. Mi principal objetivo en este ejercicio, para crear la superficie que minimiza el error que surge cuando alguien intenta conseguir el punto de valor de esta trama mediante la extracción de datos en sus ubicaciones de puntos de interés (como en comparación con la extracción del original conjunto de datos de ubicaciones de puntos).

Me gustaría saber qué tipo de método debe ser el más adecuado para hacerlo. Hay bastantes para escoger en el Spatial Analyst cuadro de herramientas y, aún más, la Geoestadística uno así que me gustaría mucho agradecería un poco de ayuda en dónde empezar.

9voto

cjstehno Puntos 131

Parece que esta pregunta está relacionada con una anterior que se pregunta acerca de disfrazar los datos utilizando una red irregular. Si aceptamos que un regular de la red va a ser utilizado, a continuación, parece que

  • La mayoría de las células debe ser lo suficientemente grande como para cubrir cinco o más edificios y

  • Cuando las células no cubren cinco edificios, sus valores deben ser cambiadas impredecible (pero controlada) maneras.

Cómo medir el error determina la mejor solución. El valor que se calcula en una celda de ser y y dejar los valores de los edificios ubicados dentro de (o al menos superpuestos) que la célula sea x1, x2, ..., xk. Además, suponga que cada edificio tiene un valor no negativo "nivel de interés" (que puede ser proporcional al número de residentes en ella), para ser utilizado como un sustituto para el número esperado de veces que su trama será utilizado para la estimación de que la construcción de valor. Vamos a llamar a estos niveles w1, ..., wk , respectivamente, y vamos a w designar a sus (distinto de cero) la suma.

  1. El promedio de error absoluto es la media aritmética de los errores de los tamaños |y - xi| como yo rangos de la construcción de los índices. Este es minimizado por la elección y a ser la mediana de la xi.

  2. El error máximo es el mayor entre max(|y - xi|) como puedo rangos de la construcción de los índices. Este es minimizado por la elección y a ser los medios de (xi) (promedio de los max y min). Esto está fuertemente influenciado por un solo periféricas valor, aunque, por lo que la mediana podría ser preferible.

  3. El error esperado es el promedio ponderado de |y - xi| con las ponderaciones dadas por wi / w. Este es minimizado por tomar y a ser una mediana ponderada de la xi (pero no SIG va a hacer este cálculo para usted-usted tendrá que usar una estadística o matemática de paquete como R o Mathematica para este tipo de trabajo.)

  4. A la espera del error cuadrado es el promedio ponderado de (s - xi)^2. Es minimizado por tomar y para ser la media ponderada de las xi, igual a la suma de wi xi / w.

Usted puede ser feliz con (1) o (2) debido a su simplicidad y a la interpretación directa; I (3) y (4) para dar sentido de las opciones. Para implementar (1), se podría empezar por hacer cuadrículas de todos los datos con un tamaño de celda tan pequeña que cada edificio ocupa su propia celda. (En alrededor de 200 por 300 Km de extensión, un cellsize de, digamos, 5 m requeriría una enorme cuadrícula de 40,000 por 60.000 células, pero sólo alrededor de un millón de ellos sería ocupada, por lo que requiere de sólo alrededor de 10 MB de almacenamiento en disco en su propio Arco formato si usted toma el cuidado para almacenar los valores como enteros.) Agregado de esta cuadrícula para una mayor cellsize el uso de la Median opción. (El cellsize de los agregados de la cuadrícula es probable que estar unos 100 metros, dando un país-ancho de la cuadrícula de 2000 por 3000 células: lo suficientemente pequeño para hacer los procedimientos que se describen a continuación no sólo posible, sino más bien rápidamente.)

También debe agregar un indicador binario de la cuadrícula de los edificios, solicitando el Sum este tiempo: en el fin de contar con los números de los edificios por celda. Para los agregados de células con recuentos de menos de 5, al azar perturbar la mediana. Hacer esto con un Con de la operación. Eficaz, aunque un poco complicado, la elección para la perturbación sería agregar normalmente distribuida de ruido para el logit de el valor (en escala de 0 a 1 en lugar de 0 a 100): de esta forma se garantiza un resultado que todavía se encuentra entre 0 y 100. Usted puede también perturbar ligeramente todas las celdas de modo que nadie puede distinguir perturbado células de imperturbable de las células mediante la inspección de los dígitos menos significativos.

El flujo de trabajo para este "logística de perturbación" procedimiento, entonces, es la siguiente. Depende de dos parámetros: "sigma" es la cantidad de perturbación de las células que la necesitan y que "epsilon" es la cantidad mínima para perturbar todas las células. Ambos no son números negativos. Experimento en pequeña subgrids, comenzando con sigma=0.15 y epsilon = 0.01, y puede variar estos parámetros hasta que los resultados son satisfactorios. (Configuración de epsilon a cero para eliminar la perturbación total de tales células.)

  1. Comenzar con una cuadrícula [Z] de la mediana de los valores (todos en el rango de 0 a 100) y otro grid [N] contando los números de los edificios en cada celda, ambos producidos por Aggregate.

  2. Crear una cuadrícula para las cantidades de perturbación utilizando un Con comando como

    Con["N" < 5, sigma, epsilon]
    
  3. Generar el que Normalmente se distribuyen de la perturbación por tomar una cuadrícula de unidad normal de variables (uso CreateNormalRaster y multiplicar por la anterior cuadrícula. Llame el resultado de la "e", dicen.

  4. Calcular el perturbado logits de los valores como

    [Logit] = log("z" / (100 - "z")) + "e"
    
  5. Convertir de nuevo a los valores de 0..100 rango:

    100 / (1 + exp(-"logit"))
    

Para ilustrar, aquí hay algunos R código para crear pequeña muestra de agregado cuadrículas, perturbar ellos, y comparar el perturbado a los valores originales.

ncol <- 30; nrow <- 20
seed.random <- 17
x <- rpois(ncol * nrow, 5)
y <- floor(100 / (1 + exp(-(rnorm(ncol * nrow, mean = -2, sd = 1/sqrt(x))))))

sigma <- 0.15
epsilon <- 0.01

e <- rnorm(ncol*nrow, sd = ((x < 5)*sigma + (x >= 5)*epsilon))
logit <- log(y / (100 - y)) + e
y0 <- 100 / (1 + exp(-logit))

library(raster)
z <- matrix(y, ncol=ncol)
n <- matrix(x, ncol=ncol)
z0 <- matrix(y0, ncol=ncol)

par(mfrow=c(2,2))
n.r <- raster(n)
plot(n.r, main="Counts of residences [N]")

z.r <- raster(z)
plot(z.r, main="Median values [Z]")

z0.r <- raster(z0)
plot(z0.r, main="Perturbed median values")

plot(y, y0, type="n", xlab="Original medians", ylab="Perturbed medians",
     main="Perturbed vs. original medians")
points(y[x < 5], y0[x < 5], col="Red")
points(y[x >= 5], y0[x >= 5], pch=19)

Plots

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