Análisis espacial de la accesibilidad de pozos utilizando álgebra de mapas.
Sitio: | OpenCourseWare for GIS |
Curso: | Capacitación SIG (Sistema de Información Geográfica) orientado a aplicaciones hidrogeológicas. |
Libro: | Análisis espacial de la accesibilidad de pozos utilizando álgebra de mapas. |
Imprimido por: | Guest user |
Día: | jueves, 21 de noviembre de 2024, 13:34 |
Descripción
En este tutorial aplicaremos el álgebra de mapas para la determinación de la accesibilidad de pozos. Este tutorial fue elaborado en conjunto con Kurt Menke (Bird's Eye View GIS).
Tabla de contenidos
- 1. Introducción
- 2. Preparación
- 3. Condición 1: Los pozos deben encontrarse a menos de 150 metros de casas o carreteras.
- 4. Condición 2: Ninguna industria, mina o vertedero a menos de 300 metros de los pozos.
- 5. Condición3: Los pozos deben tener menos de 40 metros de profundidad
- 6. Combina las tres condiciones
- 7. Realizar un reporte de los resultados
- 8. Conclusiones
1. Introducción
Con el Álgebra de Mapas (map algebra ) es posible hacer cálculos con capas rásters, muy útil en el análisis espacial. Por ejemplo, cuando requerimos la evaluación de diferentes criterios de búsqueda de ubicaciones adecuadas y no adecuadas.
Después de esta lección serás capaz de:
- Aplicar el álgebra de mapas (map algebra) para el análisis ráster
- Distinguir entre ráster binarios (Boolean), discretos (discrete), y continuos (continuous) .
- Realizar leyendas de mapas booleanos, discretos y continuos
- Entender el uso de datos tipo Nodata
- Usar los operadores lógicos (logical operators)
- Calcular distancias desde los rasters
- Reclasificar (reclassify) rasters
- Convertir raster a una capa de puntos
- Muetrear valores ráster con una capa de puntos
Los pozos deben encontrarse a menos de 150 metros de casas o carreteras.
Condición 2:
Condición 3:
Los pozos deben tener menos de 40 metros de profundidad.
Utilizará álgebra de mapas para realizar el análisis requerido.
Las capas ráster para esta lección se pueden descargar desde la página principal de la lección.
2. Preparación
Para esta tarea, se proporcionan las siguientes capas ráster: buildg.tif
, roads.tif
, dtm.tif
, y gwlevel.tif
.
Bien, inspeccionemos los metadatos de las capas. Después configuraremos la caja de herramientas (Processing Toolbox) en QGIS.
2.1. Verificación del metadato
1. En el panel de Browser has un click derecho sobre Favorites y selecciona Add a directory.
2. Escoge una carpeta donde guardaste las capas.
Agregando la carpeta a los Favoritos (Favorites) puedes acceder rápidamente a los archivos del proyecto.
3. Da un click en el signo de + que expande el contenido de la carpeta.
4. Realiza una vista previa de los mapas y metadatos de las capas ráster con un click derecho de la capa y escoge la opción Layer Properties...
La ventana de las propiedades de la capa (Layer Properties) que muestra el metadato de la capa.
5. Revisa e interpreta el metadato.
2.2. Utilizar la caja de procesamiento (Processing Toolbox)
La caja de procesamiento (Processing Toolbox) en QGIS proporciona gran cantidad de herramientas para el geoprocesamiento de datos GIS. Además de las herramientas QGIS, también tiene herramientas de GDAL, GRASS y SAGA que son muy útiles.
1. Antes que nada, activa la caja de herramientas (Processing Toolbox) seleccionado Processing | Toolbox desde el menú principal.
Ahora el panel muestra la caja de herramienta (Processing Toolbox).
3. Condición 1: Los pozos deben encontrarse a menos de 150 metros de casas o carreteras.
Después de verificar los metadatos de las capas de entrada y configurar la caja de procesamiento (Processing Toolbox), es momento para proceder con el análisis de las tres condiciones:
- Condición 1: Los pozos deben encontrarse a menos de 150 metros de casas o carreteras.
- Condición 2: Ninguna industria, mina o vertedero a menos de 300 metros de los pozos.
- Condición 3: Los pozos deben tener menos de 40 metros de profundidad.
En la condición 1, primero buscaremos las casas y haremos lo siguiente:
- Estilizar la capa ráster buildg
- Crear una capa booleana con valores de verdadero (True) para las casas y falso (False) en el caso de otras construcciones
- Crear zonas de 150 metros alrededor de las casas
3.1. Estilizar la capa ráster
Primero identificaremos los pixeles correspondientes a las casas, las cuales son una clase de la capa buildg. Las capas Rasters normalmente sólo almacenan un valor, así que, requerimos asignar la apropiada leyenda a las capas ráster.
1. En el panel Layers da click en el icono que abre el panel Layer styling.
2. Escoge como tipo de render (render type) a Paletted/Unique values as render type. Manten la rampa de color (Color ramp) como tipo Random y clasifica los valores con el botón Classify.
3. Usa la captura de pantalla como referencia en la parte inferior y agrega las etiquetas a las clases por medio de hacer un click derecho en cada etiqueta. Cambia con un doble click derecho sobre el color como se muestra en el ejemplo.
Debido a que buildg es un ráster discreto, usamos el tipo de render como Paletted/Unique values. Esta clasificación tiene un valor entero único en la capa ráster.
3.2. Crear una capa binaria con valor verdadero (True) para casas y valores (False) para otras construcciones
En el caso de la creación de la capa ráster binaria con valores verdaderos (True -1) o falsos (False - 0) para otras clases en la capa buildg, utilizaremos la calculadora ráster (Raster Calculator).
1. Desde el menú principal selecciona Raster | Raster Calculator.
2. En la ventana de la calculadora ráster (Raster Calculator) da doble click sobre la capa buildg@1, da click al botón de = y después teclear el valor de 1.
Ahora la ecuación se lee buildg@1 = 1
, lo cual indica: si la capa buildg@1 les igual a 1 (clase houses),entonces la capa de salida tendrá un valor "True" (1), en caso contrario tendrá un valor False (0). @1
significa que se trata de la banda 1. En nuestro caso sólo utilizaremos las capas ráster (bandas múltiples son utilizadas en otras aplicaciones como en Teledetección).
3. Nombra a la capa de salida comor houses.tif
y da click en el botón OK para realizar el cálculo.
Una buena practica es la estilización de la capa binaria, para ello utilizaremos el tipo de render Paletted/Unique values.
4. Repite los pasos 1 y 2 de la lección 4.1 que estiliza la capa houses y escoge los colores intuitivamente para los valores True y False.
3.3. Crear zonas de 150 metros alrededor de las casas (houses)
Tenemos una capa con sólo valores de houses, procederemos con el cálculo de las zonas alrededor de 150 m alrededor de las casas. Crearemos una capa binaria con valores True (1) dentro de una zona de 150 m alrededor de las casas y valores False (0) en zonas mayores de 150 m de las casas.
1. Desde el menú principal selecciona Raster | Analysis | Proximity (Raster Distance).
2. En la ventana de diálogo de Proximity (Raster Distance) asegurate que la capa houses se encuentra seleccionada como capa de entrada (Input layer). En el campo Distance units elige Georeferenced coordinates. Teclea en Maximum distance to be generated el valor de 150
metros y teclea 1
para el valor Value to be applied to all pixels that are within the -maxdist of target pixels. Coloca como tipo de dato de salida (Output data type) a Byte (sólo utilizaremos el valor 0 y 1), a la capa de salida Proximity map le llamaremos houses150m.tif
. Mantén los demás parámetros de configuración como default.
3. Da click en el botón Run, entonces cierra la ventana con el botón Close cuando los calculos se realizan.
4. Estiliza el mapa binario. Los pixeles con valores verdaderos (True) en color verder y los pixeles con valores falsos (Flase) en color rojo.
3.4. Crear zonas de 150 metros alrededor de las caminos (roads)
En forma similar podemos calcular un buffer alrededor de los caminos.
1. Estiliza la capa roads. Utiliza las clases:
0: no roads
1: dirt road
2: tarmac
2. Repite los pasos utilizados en las zonas de 150 m alrededor de las casas (houses), en este caso usa la capa caminos (roads) como capa de entrada (Input layer) y nombra a la capa de salida comot roads150m.tif
.
3. Estiliza el mapa boleano. Asegurate de que los pixeles en color verde tienen un valor verdadero (1) y los pixeles en color rojo tienen un valor falso (0).
4. Condición 2: Ninguna industria, mina o vertedero a menos de 300 metros de los pozos.
En la segunda condición, se requiere la reclasificación de la capa ráster buildg , de manera que el mapa binario con valores de True (1) en el caso de la presencia de industria, minas o vertederos y False (0) para otras clases. Entonces requerimos el cálculo de la distancia a los pixeles verdaderos (True) y finalmente el cálculo de los pixeles más lejos de 300 m de la industria, minas y vertederos.
4.1. Crear una capa ráster binaria con valores (True) para valores de industria, mina y vertederos y (False) para otras construcciones.
1. Selecciona en la caja de herramienta (Processing Toolbox) con la siguiente categoría Raster analysis | Reclassify by table.
En la ventana de diálogo de (Reclassify table) . Reclasificaremos la capa ráster buildg utilizando la tabla lookup table.
2. Introduce los siguientes parámetros como se muestra en la imagen abajo.
Identificaremos los valores NoData en la capa de salida para los valores que son excluídos desde la tabla de búsqueda (lokkup table). El campo Range boundaries define si los valores son incluidos o excluidos desde los rangos en un renglón de la tabla de búsqueda (lookup table). No utilices rangos, aunque si se reclasifican los valores. Por lo tanto, seleccionamos min <= value <= max. Para el tipo de salida Output data type utilizaremos Int16 porque los valores de salida son números enteros.
3. Después ve a la tabla de búsqueda (Lookup table) y da click en el botón .
4. Llena la tabla con los valores mostrados en la figura inferior:
5. Has un click en el botón OK y después en el botón Run. Cierra la ventana de diálogo después del que termine con el botón Close.
6. Verifica el resultado: valor 1 para minas, industria y vertederos; valor 0 para las otras clases. Utiliza la herramienta de identificación y has un click sobre el mapa. En la parte inferior derecha del panel puedes observar los resultados de identificación. Se desplegara el valor del pixel de la capa seleccionada en el panel Layers. Podrías redimensionar las columnas para observar los valores de pixeles.
Ahora la capa industry es binaria, estilizaremos la capa con el render Paletted/Unique Values como hemos hecho anteriormente.
7. Estiliza la capa industry.
4.2. Crear zonas de 300 metros alrededor de industrias, minas y vertederos
Con el mapa binario con valor verdadero (True) para la industria, minas y vertederos podemos calcular la distancia a los pixeles. La herramienta Proximity (Raster Distance) no permite la asignación de valores a los pixeles mayores que un umbral, calcularemos las distancias y después utilizaremos la calculadora ráster (Raster Calculator) que calculará el mapa binario con los valores Verdadero (True) para los pixeles mayores a 300 metros de la ubicación de industrias, minas y vertederos.
1. Ejecuta la herramienta Proximity (Raster Distance) .
2. Asegurate que la capa Industry es la entrada Input layer. Mantén todas las demás configuraciones por default. Nombra a la capa de salida (Output proximity map) como inddist.tif
.
3. Verifica el resultado.
La capa inddist es un ráster continuo, con valores reales que representan las distancias.
4. Realiza una leyenda que es apropiada para este tipo de ráster utilizando el tipo de render Singleband pseudocolor . Utiliza los colores en forma intuitiva (e.g. una rampa desde el color rojo a verde).
5. Utiliza la calculadora ráster( Raster Calculator) y realiza la siguiente expresión inddist@1 >= 300
. Nombra a la capa de salida como ind300m.tif
.
Nuevamente tendremos como resultado una capa ráster binaria.
6. Style the ind300m layer.
5. Condición3: Los pozos deben tener menos de 40 metros de profundidad
Para la útlima condición, requerimos la identificación de los pozos con una profundidad menor a 40 m.
La capa gwlevel
contiene la elevación del nivel del agua subterránea en el pozo en metros sobre el nivel del mar. El orden para calcular la elevación del agua subterránea, es la diferencia de la superficie del terreno en el Modelo Dígital de elevación (DTM) y la profundidad del nivel del agua.
1. Ejecuta la calculadora ráster (Raster Calculator).
2. Resta la profundidad absoluta del Modelo Digital de Elevación (DTM) utilizando la calculadora: dtm@1 - gwlevel@1
. Nombra a la capa de salida como welldepth.tif
.
3. Estiliza la capa welldepth con el apropiado render para este tipo de ráster raster type.
4. A continuación, realizaremos en la calculadora ráster (Raster Calculator) un mapa binario con los pozos con profundidades menores a 40 metros. Nombra a la capa de salida como notdeep.tif
.
5. Estiliza la capa notdeep.
6. Combina las tres condiciones
Después del cálculo de los mapas binarios de las tres condiciones, requerimos la combinación de ellos para obtener el resultado final.
1. Usa la calculadora ráster (Raster Calculator) para combinar las tres condiciones . Debido a que los valores son verdaderos para las condiciones, utilizaremos el operador AND. Nombra a la capa de salida como accessiblewells.tif
.
2. Verifica la capa ráster y estilizala.
7. Realizar un reporte de los resultados
Hemos identificado los pozos accesibles e inaccesibles, ahora requerimos preparar los mapas de salida para el cliente.
En los siguientes pasos, realizaremos:
- Convertir las celdas ráster de los pozos a una capa de puntos, esto mejorará la visualización
- Muestrear los valores ráster para agregar atributos desde las capas de los cálculos
- Estiliza los resultados del análisis
7.1. Convertir las celdas ráster a una capa de puntos
Para la presentación de los resultados finales, requerimos estilizar la capa accessiblewells. Sin embargo, es mucho mejor mostrar a los pozos como puntos sobre el mapa, por lo tanto convertiremos los pixeles correspondientes a los pozos como puntos vectoriales.
1. En la caja de herramientas (Processing Toolbox) selecciona Vector creation | Raster pixels to points.
2. En la ventana de diálogo escoge la capa accessiblewells como entrada ráster (Raster layer). Para el campo Field name, llamalo Accessibility
. Loas valores ráster serán salvados con este nombre de campo en la tabla de atributos.
Escoge el nombre wells.shp
para la capa Vector points .
3. Da un click al botón Run, después de esto cierra cuando la conversión haya terminado.
7.2. Muestrea los valores Raster
Sin embargo, es más informativo incluir también otros datos en la tabla de atributos. Con el complemento de la herramienta de muestreo de puntos, podemos muestrear las capas ráster en este proyecto y agregar esa información a la tabla de atributos de puntos.
La capa vectorial de wells ahora contienen el campo Accessibility. Sin embargo, es más informativo incluir otros datos en la tabal de atributos. Con el complementoe Point sampling tool podemos muestrear los valores de las capas ráster y agregar esos datos a la tabla de atributos de la capa de puntos.
1. Instala el complemento (plugin) Point sampling tool .
2. En el panel Layers verifica los checkbox de las capas que requieras muestrear y deshabilita los demás checkbox. Escoge las siguientes capas: dtm, welldepth, gwdepth, notdeep, ind300m, roads150m, y houses150m.
3. Da click al botón Point sampling tool .
4. En la pestaña General de la ventana de diálogo Point Sampling Tool selecciona wells.shp como la capa layer containing sampling points, selecciona todas en Layers with fields/bands to get values from y salva la salida (Output point vector layer) como wells_final.shp.
5. Da click en la pestaña Fields.
6. Edita el nombre (name) de los atributos dandolé un nombre al campo de salida si es necesario.
7. Da click en el botón OK y Close.
8. Abre la tabla de atributos de la capa wells_final y verifica los resultados.
7.3. Estiliza los resultados del análisis
Estilizaremos las capas.
El primer paso es mostrar los resultados que serán estilizados de la capa wells_final ya sea que los pozos sean accesible o inaccesibles.
1. En e panel Layers da click en el botón para abrir el panel Layer styling. Coloca wells_final como la capa de destino.
2. Cambia el render desde Single symbol al tipo Categorized. Después coloca el valor de Column a Accessible. Da click en Classify.
3. Cuando usamos este tipo de render QGIS crearemos una categoría que captura los valores NULL. No hay pozos con valores Nulos en la columna Accessible . Selecciona la entrada donde el parámetro Value lea all other values , después da click en el botón Delete y borralo. Indica el valor de 1 a los pozos, con un símbolo verde y un tamaño de 4 mm. Indica el valor de cero al color rojo con un tamaño de 2 mm.
4. En la columna Legend renombra la entrada Value de 1 a Accessible y la entrada con el Value de cero a Inaccessible.
5. Desplazate hacia abajo en el panel Layer styling y encuentra la sección Layer Rendering . Expande y selecciona Draw effects. Activa el icono Customize effects . Da click sobre este para abrir el panel Effects properties . Es posible agregar efectos como Inner, Outer Glows, Drop Shadows, y otros. Da un click en el checkbox junto a Drop Shadow. Selecciona el efecto Drop Shadow. Reduce la distancia Offset a 1.0 mm. Da click en el botón Go back que regresa al panel de estilizado.
6. Cambia a la pestaña de de etiquetas Labels del panel de Layer styling.
7. Cambia la configuración de No labels a Single labels. Coloca la columnaLabel with a welldepth.
Utilizaremos la expresión en el etiquetado similar al utilizado en el capítulo "Preparing Data from Hardcopy Maps" donde etiquetamos "peaks". Colocaremos una expresión que luzca como: Well Depth: 76.4 m.
8. Da click en el icono de Expression que abre la ventana ed diálogo de Expression Dialog.
delante del valor de profundidad del pozo agregando 'Well Depth:' antes de la expresión existente.
9. Iniciemos, agregando la cadena Well Depth
frente del valor de profundidad con la cadena 'Well Depth: '
antes de la expresión existente.
10. Para realizar el segundo componente, utilizaremos la función format_number
. Utiliza el botón de búsqueda para format_number
. Inserta en la parte derecha antes del campo welldepth . Recuerda, esta función requiere un tipo número y los lugares decimales. La parte numérica será el campo welldepth y lugares decimales serán 2.
11. Concatenaremos las cadenas con el operador String Concatenation y el operador de nuela línea que proporcionará un formato adecuado y agregará las unidades.
12. La expresión es: 'Well Depth:'|| '\n' || format_number(welldepth,2) || ' m'
.
13. Coloca el tipo de fuente Font a sans serif con un tamaño Size de 9 puntos.
14. Cambia a la pestaña Placement e indica el parámetro Placement a Offset from point. Selecciona la parte inferior en la opción Quadrant con una configuración Offset X Y de 1.5 mm cada una.
15. Finalmente da un click en el botón Automated placement settings que abre la ventana Automated Placement Engine. Deshabilita el checkbox de la opción Allow truncated labels on edges of map. Esto evitará que las etiquetas se corten.
16. Completaremos el estilizado de la capa dtm. Esta capa destino en el panel Layer styling. Despliega la rampa de color (Color ramp) y seleccionado Create new color ramp.
17. En la ventana de Color ramp type . Selecciona el tipo Catalog:cpt-city. Da click en el botón OK.
18. La ventana Cpt-city Color Ramp se abrirá. Selecciona la categoría "Topography".
19. Escoge sd-a y da click en el botón OK.
¿Sabías que puedes guardar esta rampo a tu biblioteca de estilos? Para esto, accede al menú contextual de la rampa de color y seleccionar Save color ramp. La ventana Save New Color Ramp ite permitirá indicar un nombre y etiquetas.
20. Despliega la sección Layer Rendering y selecciona el modo de mezcla (Blending mode) a Normal.
21. Finalmente has un click derecho sobre la capa dtm y selecciona Duplicate del menú contextual.
22. Arrastra la capa dtm copy arriba de la capa dtm y activala.
23. El duplicado de la capa dtm como la capa destino (target) en el panel Layer styling . Cambia el tipo de render a Hillshade. Despliega la sección Layer Rendering y selecciona el modo de mezcla (Blending mode) a la opción Multiply.
8. Conclusiones
En esta sección hemos aprendido a:
- Aplicar el álgebra de mapas map algebra para realizar análisis ráster
- Distinguir tipos de rásters Boolean (binarios), discrete (discretos), y continuous (continuos)
- Realizar leyendas en los mapas binarios (Boolean), discretos (discrete), y continuos.
- Entender el uso de valores Nodata
- Usar operadores lógicos (logical operators)
- Calcular distancias (distances) desde las capas rásters
- Reclasificar valores en las capas rásters
- Convertir valores ráster a puntos vectoriales
- Muestrear valores ráster con valores de puntos vectoriales