Vuelva a muestrear el ráster binario para dar * proporción * dentro de una nueva ventana de celda

9

Me gustaría pasar de un ráster binario de bosque / no bosque a una resolución de 30 m a un ráster a una resolución de 240 m con el valor de cada celda como la proporción de esa celda arbolada, es decir, los valores de datos para las celdas de 240 m irían de 0 (donde todas las celdas en el ráster de 30 m eran cero / no bosque) a través de 0.5 (donde la mitad de las celdas de 30 m eran bosque, la mitad no era bosque) a 1 (donde todas las celdas en el ráster de 30 m estaban cubiertas de bosques).

Aunque se ha sugerido no utilizar la interpolación bilineal en datos discretos, hasta donde puedo decir, el resultado con datos binarios 0/1 sería dar un valor promedio (es decir, una proporción entre 1 y 0). ¿Es esta una forma sensata de hacerlo o hay un método mejor?

Puedo usar Arc, QGIS e Idrisi.

pegadoGIS
fuente

Respuestas:

13

Usar estadísticas de bloque .

Esto funciona como estadísticas focales al calcular un resumen estadístico (como la media que desea) dentro de un vecindario específico de celdas (como un cuadrado de 8 por 8, donde 8 = 240 m / 30 m), excepto que realiza esto solo para un subdivisión regular de la cuadrícula, en lugar de con un conjunto de vecindarios superpuestos, uno en cada celda.

También puede hacer uso de las estadísticas focales si realmente desea: después de calcular la media focal de más de 8 por 8 cuadrados, volver a muestrear en una cuadrícula de 240 m utilizando el remuestreo vecino más cercano . Cuando las cuadrículas se registran entre sí ( es decir , tienen el mismo origen), esto debería dar el mismo resultado que block statistics. (No voy a garantizar eso: se deben tomar algunas decisiones arbitrarias cuando los nuevos centros celulares coinciden con las esquinas viejas de las celdas, como lo harán aquí, y, si diferentes comités codificaron los dos procedimientos, pueden haber tomado diferentes decisiones: poco en ArcGIS es realmente consistente, me temo).

Otro enfoque es crear una cuadrícula de zonas, una zona por cuadrado donde se desea un promedio, y realizar un resumen zonal como una cuadrícula. Las zonas se pueden calcular matemáticamente a partir de cuadrículas de coordenadas de fila y columna (por medio de la función flooro int, por reclasificación o uniendo una tabla adecuada a la tabla de atributos).

Terminaré comentando que la interpolación bilineal, aunque en realidad arrojará valores en el rango 0..1, no es lo que desea: funciona al encontrar a lo sumo cuatro celdas de cuadrícula originales (30 m) que rodean el centro de una nueva ( 240 m) celda e interpolando solo sus valores. Como tal, pasará por alto las otras 8 * 8 - 4 = 60 celdas originales que caen dentro de cada nuevo bloque. Ilustra la interpolación bilineal en http://www.quantdec.com/SYSEN597/GTKAV/section9/map_algebra.htm : la discusión comienza cerca del medio de la página.

whuber
fuente
Gracias whuber, esto es lo que hice: usé Block Statistics en Arc para producir la suma del grupo 8x8, luego usé la Calculadora ráster en QGIS para dividir por 64 y alinear el origen, la extensión y el tamaño de celda con el resto de mis datos.
stuckGIS
stuckGIS, puede omitir el segundo paso utilizando estadísticas de bloque para calcular la media de cada bloque de 8 x 8. Alinear la nueva cuadrícula es una cuestión de especificar el entorno de análisis de ráster adecuadamente, lo que, si se hace antes de comenzar los cálculos, se producirá automáticamente. Eso reduce su flujo de trabajo a un solo paso: realice la media de bloqueo.
whuber
4

En ArcGIS, cuando se vuelven a muestrear datos utilizando el remuestreo bilineal, solo se observan los valores de las cuatro celdas centrales ( documentación de remuestreo ). Como tal, utilizando este método, aún perderá datos si no compensa la pérdida de datos.

Dado que sabemos que para las celdas muestreadas, usted está buscando una proporción de las celdas boscosas, podemos pensar en ella como la suma de las celdas de 30 m divididas por 64 (hay 64 celdas de 30 m en el bloque de 240 m).

Esto significa que si podemos crear un nuevo ráster con los valores centrales como la suma de los valores circundantes a una resolución de 30 m, la reducción de la resolución mediante remuestreo con el vecino más cercano o la interpolación bilineal nos dará 240 m de células, que son la suma de las células de 30 m que cubrir. Podemos hacer esto con la herramienta de suma focal sobre el ráster de 30 m.

Por último, una vez que tengamos un ráster de suma focal de 240 m, divídalo por 64 para obtener su respuesta proporcional.

En Idrisi no estoy seguro de los algoritmos de muestreo de imágenes, del mismo modo en QGIS, pero imagino que hay algo similar. Ciertamente, en QGIS puede procesar el ráster en Python usando scipy ndimage o similar.

om_henners
fuente