23. Integracion GRASS SIG

La integración de GRASS proporciona acceso a las bases de datos y funcionalidades de GRASS GIS (ver GRASS-PROJECT en Referencias bibliográficas y web). La integración consta de dos partes: proveedor y complemento. El proveedor permite navegar, administrar y visualizar capas raster y vectoriales de GRASS. El complemento se puede utilizar para crear nuevas ubicaciones y conjuntos de mapas de GRASS, cambiar la región de GRASS, crear y editar capas vectoriales y analizar datos de GRASS 2-D y 3-D con más de 400 módulos de GRASS. En esta sección, presentaremos las funcionalidades del proveedor y el complemento y daremos algunos ejemplos de cómo administrar y trabajar con datos de GRASS.

El proveedor es compatible con GRASS versión 6 y 7, el complemento es compatible con GRASS 6 y 7 (a partir de QGIS 2.12). La distribución de QGIS puede contener un proveedor / complemento para GRASS 6 o GRASS 7 o para ambas versiones al mismo tiempo (los binarios tienen diferentes nombres de archivo). Sin embargo, solo se puede cargar una versión del proveedor/complemento en tiempo de ejecución.

23.1. Conjuntos de datos demostración

Como ejemplo, usaremos el conjunto de datos QGIS Alaska (ver sección Descargando datos de muestra). Incluye una pequeña muestra de GRASS LOCATION con tres capas vectoriales y un mapa de elevación ráster. Cree una nueva carpeta llamada grassdata, descargue el conjunto de datos de QGIS “Alaska” qgis_sample_data.zip de https://qgis.org/downloads/data/ y descomprima el archivo en grassdata.

Más muestras de GRASS LOCATIONs están disponibles en la página web GRASS en https://grass.osgeo.org/download/data/.

23.2. Cargar capas ráster y vectorial de GRASS

Si el proveedor está cargado en QGIS, el elemento de ubicación con GRASS | grass | El icono se agrega en el árbol del navegador debajo de cada elemento de carpeta que contiene la ubicación de GRASS. Vaya a la carpeta grassdata y expanda la ubicación alaska y mapset demo.

Puede cargar capas ráster y vectoriales de GRASS como cualquier otra capa desde el navegador, ya sea haciendo doble clic en el elemento de capa o arrastrando y soltando al lienzo del mapa o la leyenda.

Truco

Cargando datos GRASS

Si no ve el elemento de ubicación de GRASS, verifique en Ayuda ► Acerca de ► Proveedores si está cargado el proveedor de vectores GRASS.

23.3. Importar datos dentro de una UBICACIÓN DE GRASS mediante arrastrar y soltar

Esta sección ofrece un ejemplo de cómo importar datos ráster y vectoriales en un conjunto de mapas de GRASS.

  1. En el navegador QGIS, navegue hasta el conjunto de mapas en el que desea importar datos.

  2. En el navegador QGIS busque una capa que desee importar a GRASS, tenga en cuenta que puede abrir otra instancia del navegador (Panel del navegador (2)) si los datos de origen están demasiado lejos del conjunto de mapas en el árbol.

  3. Arrastre una capa y suéltela en el conjunto de mapas de destino. La importación puede llevar algún tiempo para capas más grandes, verá el icono animado import delante del nuevo elemento de capa hasta que finalice la importación.

Cuando los datos ráster están en diferentes SRC, pueden reproyectarse usando una transformación Aproximada (rápida) o Exacta (precisa). Si se crea un enlace al ráster de origen (utilizando r.external), los datos de origen están en el mismo CRS y el formato es conocido por GDAL, se utilizará el SRC de datos de origen. Puede configurar estas opciones en la pestaña Navegador en Opciones GRASS.

Si un ráster de origen tiene más bandas, se crea un nuevo mapa de GRASS para cada capa con el sufijo .<band number> y grupo de todos los mapas con rasterGroup Se crea el icono. Los rásteres externos tienen un icono diferente rasterLink.

23.4. Administrar datos de GRASS en el navegador QGIS

  • Copia de mapas: los mapas de GRASS se pueden copiar entre conjuntos de mapas dentro de la misma ubicación usando arrastrar y soltar.

  • Eliminación de mapas: haga clic con el botón derecho en un mapa de GRASS y seleccione Eliminar del menú contextual.

  • Cambiar el nombre de los mapas: haga clic con el botón derecho en un mapa de GRASS y seleccione Renombrar en el menú contextual.

23.5. Opciones GRASS

Las opciones de GRASS se pueden configurar en el cuadro de diálogo Opciones de GRASS, que se puede abrir haciendo clic con el botón derecho en la ubicación o el elemento del conjunto de mapas en el navegador y luego eligiendo Opciones de GRASS.

23.6. Iniciar el complemento GRASS

Para usar las funcionalidades de GRASS en QGIS, debe seleccionar y cargar el complemento de GRASS usando el Administrador de complementos. Para hacer esto, vaya al menú Complementos -> showPluginManager Administrar e instalar complementos …, seleccione checkbox GRASS y haga clic en Aceptar.

Las siguientes funciones principales se proporcionan con el menú de GRASS ( Complementos -> GRASS) cuando inicia el complemento de GRASS:

  • grassOpenMapset Abrir directorio de mapas

  • grassNewMapset Nuevo directorio de mapas

  • grassCloseMapset Cerrar directorio de mapas

  • grassTools Abrir herramientas de GRASS

  • grassRegion Mostrar región actual de GRASS

  • general Opciones de GRASS

23.7. Abrir directorio de mapas

Se debe abrir un conjunto de mapas de GRASS para obtener acceso a las herramientas de GRASS en el complemento (las herramientas están deshabilitadas si no hay ningún conjunto de mapas abierto). Puede abrir un conjunto de mapas desde el navegador: haga clic con el botón derecho en el elemento del conjunto de mapas y luego elija Open mapset del menú contextual.

23.8. LOCALIZACIÓN y DIRECTORIO DE MAPA GRASS

Los datos de GRASS se almacenan en un directorio denominado GISDBASE. Este directorio, a menudo llamado grassdata, debe crearse antes de comenzar a trabajar con el complemento GRASS en QGIS. Dentro de este directorio, los datos de GRASS GIS están organizados por proyectos almacenados en subdirectorios llamados LOCATIONs. Cada LOCATION se define por su sistema de coordenadas, proyección de mapa y límites geográficos. Cada LOCATION puede tener varios MAPSETs (subdirectorios del LOCATION) que se utilizan para subdividir el proyecto en diferentes temas o subregiones, o como espacios de trabajo para miembros individuales del equipo (ver Neteler & Mitasova 2008 en literatura_y_web). Para analizar capas vectoriales y ráster con módulos GRASS, generalmente debe importarlas a un archivo GRASS LOCATION. (Esto no es estrictamente cierto; con los módulos GRASS r.external y :file:` v.external` puede crear enlaces de solo lectura a conjuntos de datos externos compatibles con GDAL/OGR sin importarlos. Esto es no es la forma habitual para que los principiantes trabajen con GRASS, por lo que esta funcionalidad no se describirá aquí.)

../../../_images/grass_location.png

Figura 23.1 Datos GRASS en la LOCALIZACIÓN alaska

23.9. Importar datos dentro de una LOCALIZACIÓN DE GRASS

Ver sección Importar datos dentro de una UBICACIÓN DE GRASS mediante arrastrar y soltar para descubrir cómo se pueden importar fácilmente los datos arrastrando y soltando en el navegador.

Esta sección ofrece un ejemplo de cómo importar datos ráster y vectoriales en el archivo GRASS de “alaska” :file:”LOCATION” proporcionado por el conjunto de datos de QGIS “Alaska” de forma tradicional, utilizando módulos GRASS estándar. Por lo tanto, usamos el mapa ráster de cobertura terrestre landcover.img y el archivo vectorial GML :file:` lakes.gml` del conjunto de datos QGIS “Alaska” (ver Descargando datos de muestra).

  1. Inicie QGIS y asegúrese que el complemento GRASS está cargado.

  2. En la barra de herramientas de GRASS, haga clic en el icono grassOpenMapset Abrir directorio de mapas para que aparezca el asistente DIRECTORIO DE MAPA.

  3. Seleccione como base de datos GRASS la carpeta: archivo: grassdata en el conjunto de datos de QGIS Alaska, como LOCATION “alaska”, como MAPSET “demo” y haga clic en Aceptar.

  4. Ahora haga clic en el icono grassTools Abrir herramientas de GRASS. El diálogo de la caja de herramientas de GRASS (vea la sección La caja de herramientas GRASS) aparece.

  5. Para importar el mapa ráster landcover.img, haga clic en el modulo r.in.gdal en la pestaña Árbol de módulos. Este modulo GRASS le permite importar archivos ráster GDAL-admitidos en un LOCALIZACIÓN de GRASS. El diálogo del módulo para que r.in.gdal aparezca.

  6. Navegue al navegador raster en el conjunto de datos de QGIS “Alaska” y seleccione el archivo landcover.img.

  7. Como nombre de ráster saliente, define landcover_grass y click en Ejecutar. en la pestaña Salida, ve el comando GRASS que se está ejecutando actualmente r.in.gdal -o input=/path/to/landcover.img output=landcover_grass.

  8. Cuando dice finalizado satisfactoriamente, click en Ver salida. La capa ráster landcover_grass ahora se importa a GRASS y se visualizará en el lienzo de QGIS.

  9. Para importar el archivo vector GML lakes.gml, haga clic en el modulo v.in.ogr en la pestaña Árbol de módulos. Este modulo GRASS le permite importar archivos vectoriales OGR-admitidos en una LOCAZACIÓN de GRASS. El diálogo del modulo para que v.in.ogr aparezca.

  10. Busque la carpeta gml en el conjunto de datos de QGIS “Alaska” y seleccione el archivo lakes.gml como archivo OGR.

  11. Como nombre de salida del vector, defina lakes_grass y haga clic en Ejecutar. No tiene que preocuparse por las otras opciones en este ejemplo. En la pestaña Salida, verá el comando GRASS que se está ejecutando actualmente v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass.

  12. Cuando diga Finalizado satisfactoriamente, haga clic en Ver salida. La capa vectorial lakes_grass ahora se importa a GRASS y se visualizará en el lienzo de QGIS.

23.9.1. Crear una nueva LOCALIZACIÓN GRASS

Como ejemplo, aquí está el ejemplo de GRASS LOCATION alaska, que se proyecta en la proyección Albers Equal Area usando pies como unidades. Este archivo de ejemplo de GRASS LOCATION alaska se utilizará para todos los ejemplos y ejercicios de las siguientes secciones relacionadas con GRASS. Es útil descargar e instalar el conjunto de datos en su computadora (ver: ref: label_sampledata).

  1. Inicie QGIS y asegúrese que el complemento GRASS está cargado.

  2. Visualice el shapefile alaska.shp (ver sección Cargando una capa desde archivo) del conjunto de datos QGIS Alaska (ver Descargando datos de muestra).

  3. En la barra de herramientas de GRASS, haga clic en el icono grassNewMapset Nuevo mapaset para traer al wizard MAPSET.

  4. Seleccione una carpeta de base de datos GRASS (GISDBASE) existente grassdata, o crea uno para la nueva LOCATION usando un administrador de archivos en su computadora. Luego haga clic en Siguiente.

  5. Podemos usar este asistente para crear un nuevo MAPSET dentro de un LOCATION existente (ver sección Añadir un nuevo DIRECTORIO DE MAPA) o para crear un nuevo LOCATION por completo. Seleccione radioButtonOn Crear nueva ubicación (ver Figura 23.2).

  6. Introduzca un nombre para LOCATION – nosostros usamos “alaska” – y haga click en Siguiente.

  7. Defina la proyección haciendo clic en el botón de radio radioButtonOn Proyección para habilitar la lista de proyección.

  8. Estamos usando la proyección Albers Equal Area Alaska (pies). Puesto que nos ha tocado saber que está representado por el EPSG ID 2964, ingresamos en el cuadro de búsqueda. (Nota: Si desea repetir este proceso para otra LOCALIZACIÓN y proyección y no ha memorizado el EPSG ID, haga clic en el icono projectionEnabled SRC actual en la esquina inferior derecha de la barra de estado (vea sección Trabajar con Proyecciones)).

  9. En Filtrar, inserte 2964 para seleccionar la proyección.

  10. Haz clic en Siguiente.

  11. Para definir la región predeterminada, tenemos que ingresar los límites de LOCATION en dirección norte, sur, este, y oeste. Aquí, simplemente hacemos clic en el botón Establecer la extensión actual de QGIS, para aplicar la extensión de la capa cargada alaska.shp como la extensión de región predeterminada de GRASS.

  12. Haz clic en Siguiente.

  13. También necesitamos definir un MAPSET dentro de nuestro nueva LOCATION (esto es necesario al crear una nueva LOCATION). Puedes nombrarlo como quieras, usamos “demo”. GRASS crea automáticamente un especial MAPSET llamada PERMANENT, diseñado para almacenar los datos centrales del proyecto, su extensión espacial predeterminada y las definiciones del sistema de coordenadas (ver Neteler & Mitasova 2008 en Referencias bibliográficas y web).

  14. Consulte el resumen para asegurarse de que sea correcto y haga clic en Finalizar.

  15. La nueva LOCALIZACIÓN, “alaska”, y los dos DIRECTORIO DE MAPAS, “demo” y “PERMANENT”, son creados. El conjunto de trabajo abierto actualmente es “demo”, como se ha definido.

  16. Tenga en cuenta que algunas de las herramientas en la barra de herramientas de GRASS que estaban inhabilitadas ahora están habilitadas.

../../../_images/create_grass_location.png

Figura 23.2 Cree una nueva LOCALIZACIÓN GRASS o un nuevo DIRECTORIO DE MAPA en QGIS

Si eso parecía como una gran cantidad de pasos, en realidad no es tan malo y una forma muy rápida de crear una LOCALIZACIÓN. La LOCALIZACIÓN “alaska” ahora está listo para la importación de datos (vea la sección Importar datos dentro de una LOCALIZACIÓN DE GRASS). También puede utilizar los datos ya existentes vectoriales y ráster en el ejemplo LOCALIZACIÓN “alaska” de GRASS, incluido en el conjunto de datos “Alaska” de QGIS Descargando datos de muestra, ya pasar a la sección El modelo de datos vectoriales de GRASS.

23.9.2. Añadir un nuevo DIRECTORIO DE MAPA

Un usuario sólo tiene acceso de escritura a un DIRECTORIO DE MAPA GRASS que él o ella crearon. Esto significa que además de acceder a su propio DIRECTORIO DE MAPA, se pueden leer mapas de otros usuarios” DIRECTORIO DE MAPAS (y ellos pueden leer los tuyos), pero sólo puede modificar o eliminar su propio DIRECTORIO DE MAPA.

Todos los DIRECTORIO DE MAPAS incluyen un archivo WIND que almacena los valores de las coordenadas de los límites actuales y la resolución ráster actualmente seleccionado (vea Neteler & Mitasova 2008 en Referencias bibliográficas y web, y la sección La herramienta de región GRASS).

  1. Inicie QGIS y asegúrese que el complemento GRASS está cargado.

  2. En la barra de herramientas de GRASS, haga clic en el icono grassNewMapset Nuevo mapaset para traer al wizard MAPSET.

  3. Seleccione la base de datos GRASS (GISDBASE) la carpeta grassdata con la LOCALIZACIÓN “alaska”, donde queremos añadir otro DIRECTORIO DE MAPA llamado “test”.

  4. Haz clic en Siguiente.

  5. Podemos usar este asistente para crear un nuevo MAPSET dentro de una UBICACIÓN existente o para crear una nueva UBICACIÓN por completo. Haga click en el botón de opción radioButtonOn Seleccionar ubicación (ver Figura 23.2) y haga click en Siguiente.

  6. Introduzca el nombre test para el nuevo MAPSET. Abajo en el asistente, verá una lista de MAPSETs y propietarios correspondientes.

  7. Click en Siguiente, consulte el resumen para asegurarse de que esté todo correcto y haga clic en Finalizar.

23.10. El modelo de datos vectoriales de GRASS

Es importante comprender el Modelo de datos vectoriales de GRASS antes de digitalizar. En general, GRASS utiliza un modelo vectorial topológico. Esto significa que las áreas no se representan como polígonos cerrados, sino por uno o más límites. Un límite entre dos áreas adyacentes se digitaliza solo una vez y es compartido por ambas áreas. Los límites deben estar conectados y cerrados sin espacios. Un área se identifica (y etiqueta) por el centroide del área.

Además de los límites y centroides, un mapa vectorial también puede contener puntos y líneas. Todos estos elementos geométricos se pueden mezclar en una vector y serán representados en diferentes denominadas “capas” dentro de un mapa vectorial GRASS. Por lo que en GRASS, una capa no es un mapa vectorial o ráster pero un nivel dentro de una capa vectorial. Esto es importante para distinguir cuidadosamente. (aunque es imposible mezclar elementos, es inusual e incluso en GRASS, sólo se utiliza en casos especiales como análisis de redes vectoriales. Usualmente, se debe preferir almacenar diferentes elementos geométricos en diferentes capas.)

Es posible almacenar varias “capas” en un conjunto de datos vectoriales. Por ejemplo, campos, bosques y lagos se pueden almacenar en un vector. Un bosque y lago adyacente pueden compartir el mismo límite, pero tienen tablas de atributos separados. También es posible adjuntar atributos a límites. Un ejemplo podría ser el caso donde los límites entre un lago y un bosque es una carretera, por lo que puede tener una tabla de atributos diferente.

La “capa” del objeto espacial es definido por la “capa” dentro de GRASS. “Capa” es el número que define si hay más de una capa dentro del conjunto de datos (por ejemplo, si la geometría es bosque o lago). Por ahora, sólo puede ser un número. En el futuro, GRASS también implementara nombres como campos en la interfaz de usuario.

Los atributos se pueden almacenar dentro de la LOCALIZACIÓN en GRASS como dBase o SQLite3 o en tablas de base de datos externa, por ejemplo, PostgreSQL, MySQL, Oracle, etc.

Los atributos en la tabla de base de datos están enlazadas a los elementos geométricos utilizando un valor “categoría”.

“Categoría” (llave, ID) es un entero adjunto a la geometría primitiva, y se utiliza como el enlace a una columna llave en la tabla de base de datos.

Truco

Aprendizaje del modelo vectorial GRASS

La mejor manera de aprender el modelo vectorial GRASS y sus capacidades es descargar uno de los muchos tutoriales de GRASS donde se describe el modelo vectorial en más profundidad. Vea en https://grass.osgeo.org/learn/manuals/ más información, libros y tutoriales en diversos idiomas.

23.11. Crear una nueva capa vectorial GRASS

Para crear una nueva capa vectorial de GRASS, seleccione uno de los siguientes elementos del menú contextual del conjunto de mapas en el navegador:

  • Nueva Capa de Puntos

  • Nueva Capa de Líneas

  • Nueva capa de polígonos

e ingrese un nombre en el diálogo. Se creará un nuevo mapa vectorial, se agregará una capa al lienzo y se iniciará la edición. La selección del tipo de capa no restringe los tipos de geometría que se pueden digitalizar en el mapa vectorial. En GRASS, es posible organizar todo tipo de tipos de geometría (punto, línea y polígono) en un mapa vectorial. El tipo solo se usa para agregar la capa al lienzo, porque QGIS requiere que una capa tenga un tipo específico.

También es posible agregar capas a mapas vectoriales existentes seleccionando uno de los elementos descritos anteriormente del menú contextual del mapa vectorial existente.

En GRASS, es posible organizar todo tipo de tipos de geometría (punto, línea y área) en una capa, porque GRASS utiliza un modelo de vector topológico, por lo que no es necesario seleccionar el tipo de geometría al crear un nuevo vector de GRASS. Esto es diferente de la creación de shapefile con QGIS, porque los shapefiles usan el modelo vectorial de entidades simples (ver sección Creando nuevas capas vectoriales).

23.12. Digitalizar y editar una capa vectorial GRASS

Las capas vectoriales de GRASS se pueden digitalizar utilizando las herramientas de digitalización estándar de QGIS. Sin embargo, existen algunas particularidades que debe conocer debido a

  • Modelo topológico de GRASS versus entidad simple de QGIS

  • complejidad del modelo GRASS

    • múltiples capas en mapas únicos

    • múltiples tipos de geometría en un solo mapa

    • compartir geometría por múltiples entidades de múltiples capas

Las particularidades se discuten en las siguientes secciones.

Guardar, descartar cambios, deshacer, rehacer

Advertencia

Todos los cambios realizados durante la edición se escriben inmediatamente en el mapa vectorial y las tablas de atributos relacionados.

Los cambios se escriben después de cada operación, sin embargo, es posible deshacer/rehacer o descartar todos los cambios al cerrar la edición. Si se usa deshacer o descartar cambios, el estado original se reescribe en el mapa vectorial y las tablas de atributos.

Hay dos razones principales para este comportamiento:

  • Es la naturaleza de los vectores GRASS que surge de la convicción de que el usuario quiere hacer lo que está haciendo y es mejor tener los datos guardados cuando el trabajo se interrumpe repentinamente (por ejemplo, apagón)

  • La necesidad de una edición eficaz de los datos topológicos es la información visualizada sobre la corrección topológica; dicha información solo se puede adquirir del mapa vectorial de GRASS si se escriben cambios en el mapa.

Barra de herramientas

La “Barra de herramientas de digitalización” tiene algunas herramientas específicas cuando se edita una capa de GRASS:

Icono

Herramienta

Propósito

capturePoint

Nuevo punto

Digitalizar un nuevo punto

captureLine

Nueva línea

Digitalizar nueva línea

captureBoundary

Nuevo límite

Digitalizar nuevo borde

captureCentroid

Nuevo centroide

Digitalizar nuevo centroide (etiqueta de área existente)

capturePolygon

Nuevo Contorno Cerrado

Digitalizar nuevo borde cerrado

Mesa GRASS Digitalización: Herramientas de digitalización GRASS

Truco

Digitalizando polígonos en GRASS

Si desea crear un polígono en GRASS, primero debe digitalizar el límite del polígono. Luego agrega un centroide (punto de etiqueta) en el límite cerrado. La razón de esto es que un modelo vectorial topológico vincula la información de atributo de un polígono siempre al centroide y no al límite.

Categoría

La categoría, a menudo llamada gato, es una especie de identificación. El nombre proviene de tiempos en los que los vectores GRASS solo tenían un atributo «categoría». La categoría se utiliza como vínculo entre la geometría y los atributos. Una única geometría puede tener varias categorías y, por tanto, representar varias entidades en diferentes capas. Actualmente es posible asignar solo una categoría por capa usando las herramientas de edición de QGIS. Las nuevas funciones han asignado automáticamente una nueva categoría única, excepto los límites. Los límites generalmente solo forman áreas y no representan entidades lineales; sin embargo, es posible definir atributos para un límite más adelante, por ejemplo, en una capa diferente.

Las nuevas categorías siempre se crean solo en la capa que se está editando actualmente.

No es posible asignar más categorías a la geometría mediante la edición de QGIS, dichos datos se representan correctamente como múltiples entidades y las entidades individuales, incluso de diferentes capas, pueden eliminarse.

Atributos

Los atributos de la capa editada actualmente solo se pueden modificar. Si el mapa vectorial contiene más capas, las entidades de otras capas tendrán todos los atributos establecidos en “<not editable (layer #)>” para advertirle que dicho atributo no es editable. La razón es que otras capas pueden tener y generalmente tienen un conjunto de campos diferente, mientras que QGIS solo admite un conjunto fijo de campos por capa.

Si una primitiva de geometría no tiene una categoría asignada, se asigna automáticamente una nueva categoría única y se crea un nuevo registro en la tabla de atributos cuando se cambia un atributo de esa geometría.

Truco

Si desea realizar una actualización masiva de atributos en la tabla, por ejemplo, usando “Calculadora de campo” (Usando la Calculadora de Campos), y hay entidades sin categoría que no desea actualizar (generalmente límites), puede filtrar eliminarlos configurando “Filtro avanzado” en cat is not null.

Editar Estilo

La simbología topológica es esencial para la edición eficaz de datos topológicos. Cuando se inicia la edición, se establece un renderizador especializado “GRASS Edit” en la capa automáticamente y el renderizador original se restaura cuando se cierra la edición. El estilo se puede personalizar en la pestaña “Estilo” de las propiedades de capa. El estilo también se puede almacenar en un archivo de proyecto o en un archivo separado como cualquier otro estilo. Si personaliza el estilo, no cambie su nombre, ya que se utiliza para restablecer el estilo cuando se vuelve a iniciar la edición.

Truco

No guarde el archivo del proyecto cuando se edita la capa, la capa se almacenaría con “Editar estilo” que no tiene ningún significado si la capa no se edita.

El estilo se basa en información topológica que se agrega temporalmente a la tabla de atributos como campo “topo_symbol”. El campo se elimina automáticamente cuando se cierra la edición.

Truco

No elimine el campo “topo_symbol” de la tabla de atributos, eso haría invisibles las entidades porque el renderizador se basa en esa columna.

Autoensamblado

Para formar un área, los vértices de los límites conectados deben tener exactamente las mismas coordenadas. Esto se puede lograr utilizando la herramienta de ajuste solo si el lienzo y el mapa vectorial tienen el mismo SRC. De lo contrario, debido a la conversión de coordenadas de mapa a lienzo y viceversa, la coordenada puede volverse ligeramente diferente debido a errores de representación y transformaciones de SRC.

Truco

Utilice el SRC de la capa también para el lienzo al editar.

Limitaciones

No se admite la edición simultánea de varias capas dentro del mismo vector al mismo tiempo. Esto se debe principalmente a la imposibilidad de manejar múltiples pilas de deshacer para una sola fuente de datos.

nix osx En Linux y macOS, solo se puede editar una capa de GRASS a la vez. Esto se debe a un error en GRASS que no permite cerrar los controladores de la base de datos en orden aleatorio. Esto se está resolviendo con los desarrolladores de GRASS.

Truco

Editar permisos de GRASS

Debe ser el propietario del DIRECTORIO DE MAPA de GRASS que desee editar. Es imposible editar capas de datos en un DIRECTORIO DE MAPA que no sea suyo, incluso si tiene permisos de escritura.

23.13. La herramienta de región GRASS

La definición de la región (ajuste una ventana de trabajo espacial) en GRASS es importante para trabajar con capas ráster. Análisis vectorial esta por defecto no limitado a cualquier definición de región definida. Pero todas los rásters recién creados tendrán la extensión espacial y resolución de la región GRASS definida actualmente, independientemente de su extensión y resolución original. La región GRASS actual es almacenada en el archivo $LOCALIZACIÓN/$DIRECTORIO DE MAPA/WIND, y define los límites norte, sur, este y oeste, número de columnas y filas, resolución espacial horizontal y vertical.

Es posible prender y apagar la visualización de la región GRASS en el lienzo de QGIS utilizando el botón grassRegion Mostrar región actual de GRASS.

La región se puede modificar en la pestaña “Región” en el widget de muelle “GRASS Tolls”. Escriba los límites y la resolución de la nueva región y haga clic en Aplicar. Si hace clic en Seleccionar la extensión arrastrando sobre el lienzo, puede seleccionar una nueva región de forma interactiva con el ratón en el lienzo de QGIS arrastrando un rectángulo.

El modulo GRASS g.region proporciona muchos más parámetros para definir una extensión de región apropiada y resolución para su análisis ráster. Se puede utilizar estos parámetros con la caja de herramientas GRASS, descrito en la sección La caja de herramientas GRASS.

23.14. La caja de herramientas GRASS

La caja grassTools Abrir herramientas GRASS proporciona funcionalidades de modulo GRASS para trabajar con datos dentro un LOCALIZACIÓN GRASS seleccionada y DIRECTORIO DE MAPA. Para utilizar la caja de herramientas GRASS necesita abrir una LOCALIZACIÓN y DIRECTORIO DE MAPA que tiene permisos de escritura para (normalmente se concede si ha creado el DIRECTORIO DE MAPA). Esto es necesario, porque las capas ráster y vector creadas durante análisis necesitan estar escritos a la LOCALIZACIÓN y DIRECTORIO DE MAPA actualmente

../../../_images/grass_toolbox_moduletree.png

Figura 23.3 Caja de herramienta GRASS y módulo

23.14.1. Trabajando con módulos GRASS

La consola GRASS dentro de la caja de herramientas proporciona acceso a casi todo (más de 300) los módulos GRASS en una interfaz de línea de comando. Para ofrecer un entorno de trabajo más fácil de usar, cerca de 200 de los módulos de GRASS disponibles y funcionalidades también son proporcionados por diálogos gráficos dentro de la caja de herramientas del complemento GRASS.

Una lista completa de los módulos GRASS disponibles en la caja de herramientas gráfica en la versión QGIS 3.22 está disponible en la wiki de GRASS en https://grasswiki.osgeo.org/wiki/GRASS-QGIS_relevant_module_list.

También es posible personalizar el contenido de la caja de herramientas GRASS. Este procedimiento se describe en la sección Personalizar la caja de herramientas GRASS.

Como se mostró en Figura 23.3, puede buscar el módulo GRASS apropiado usando la pestaña agrupada temáticamente Árbol de módulos o la pestaña de búsqueda Lista de módulos.

Al hacer clic en un icono de modulo gráfico, una nueva pestaña se añadirá al diálogo de Caja de herramientas, proporciona tres nuevas sub-pestañas Opciones, Salida y Manual.

Opciones

La pestaña Opciones proporciona un cuadro de diálogo de módulo simplificado donde normalmente puede seleccionar una capa ráster o vectorial visualizada en el lienzo de QGIS e ingresar más parámetros específicos del módulo para ejecutar el módulo.

../../../_images/grass_module_option.png

Figura 23.4 Opciones del módulo de la caja de herramientas GRASS

Los parámetros del módulo proporcionados a menudo no están completos para que el diálogo sea sencillo. Si desea utilizar más parámetros y banderas del módulo, debe iniciar el shell de GRASS y ejecutar el módulo en la línea de comandos.

Una nueva característica desde QGIS 1.8 es la implementación de un botón Mostrar opciones avanzadas abajo del diálogo del modulo simplificado en la pestaña Opciones. Por el momento, sólo se añade al modulo v.in.ascii como ejemplo de uso, pero probablemente es parte de más o todos los módulos en la caja de herramientas GRASS en futuras versiones de QGIS. Esto le permite usar las opciones del modulo de GRASS completo sin la necesidad de cambiar la consola de GRASS.

Salida

../../../_images/grass_module_output.png

Figura 23.5 Salida del módulo de la caja de herramientas GRASS

La pestaña Salida proporciona información sobre el estado de salida del módulo. Cuando hace clic en el botón Ejecutar, el módulo cambia a la pestaña Salida y ve información sobre el proceso de análisis. Si todo funciona bien, finalmente verá un mensaje de Finalizado correctamente.

Manual

../../../_images/grass_module_manual.png

Figura 23.6 Módulo Manual de la caja de herramientas GRASS

La pestaña Manual muestra la página de ayuda HTML del modulo GRASS. Se puede utilizar para comprobar otros parámetros de los módulos y las banderas o para obtener un conocimiento más profundo acerca de la finalidad del módulo. Al final de cada página del manual del módulo, se ven otros enlaces al Índice de ayuda principal, al Índice temático y al Índice completo. Estos enlaces proporcionar información de ejemplo como el modulo g.manual.

Truco

Mostrar resultados inmediatamente

Si desea mostrar sus resultados de cálculo inmediatamente en su lienzo de mapa, se puede utilizar el botón “Ver Salida” en la parte inferior de la pestaña de módulo.

23.14.2. Ejemplos del módulo GRASS

Los siguientes ejemplos demostrarán el poder de algunos módulos GRASS.

23.14.2.1. Crear curvas de nivel

El primer ejemplo crea un mapa de curvas de nivel vectoriales de un ráster de elevación (DEM). Aquí, se asume que se tiene LOCALIZACIÓN Alaska configurado como se explica en la sección Importar datos dentro de una LOCALIZACIÓN DE GRASS.

  • Primero, abra la ubicación haciendo clic en el botón grassOpenMapset Abrir mapset y elegir la ubicación de Alaska.

  • Ahora abra la caja de herramientas con el botón grassTools Abrir herramientas de GRASS.

  • En la lista de categorías de herramientas, haga doble clic Ráster ► Administración de superficie► Generar curvas de nivel vectoriales.

  • Ahora, un solo clic en la herramienta r.contour abrirá el cuadro de diálogo de la herramienta como se explicó anteriormente (ver Trabajando con módulos GRASS).

  • En el Nombre del mapa ráster de entrada introduce gtopo30.

  • Escriba en Incremento entre niveles de contorno selectNumber el valor 100 (esto creará curvas de nivel a intervalos de 100 metros).

  • Escriba en Nombre de salida del mapa vectorial el nombre ctour_100.

  • Haga clic en Ejecutar para iniciar el proceso. Espere unos momentos hasta que aparezca el mensaje Finalizado satisfactoriamente en la ventana de salida. Luego haga clic en Ver salida y Cerrar.

Dado que esta es una región grande, tomará un tiempo para mostrarla. Después de que termine la presentación, puede abrir la ventana de propiedades de la capa para cambiar el color de línea así el contorno aparece claramente sobre el ráster de elevación, como en El Diálogo de las Propiedades del Vector.

El siguiente acercamiento a una pequeña y montañosa área en el centro de Alaska. Al acercarse, se puede observar que las curvas de nivel tienen esquinas afiladas. GRASS ofrece la herramienta v.generalize para alterar ligeramente mapas vectoriales, manteniendo su forma general. La herramienta utiliza varios algoritmos diferentes con propósitos diferentes. Algunos de los algoritmos (es decir, Douglas Peucker y Vertex Reduction) simplificar la línea mediante la eliminación de algunos de los vértices. El vector resultante se carga más rápido. Este proceso es útil cuando se tiene un vector muy detallado, pero va a crear un mapa de escala muy pequeña, por lo que el detalle es innecesario.

Truco

La herramienta de simplificar

Tenga en cuenta que QGIS tiene una Vectorial -> Herramientas de Geometría -> Simplificar Geometría que funciona como el algoritmo de GRASS v.generalize Douglas-Peuker.

Sin embargo, el proposito de este ejemplo es diferente. Las líneas de curvas de nivel creadas por r.contour tiene ángulos agudos que deben ser suavizados. Entre el algoritmo v.generalize hay Chaiken’s, lo que hace precisamente eso (también astillas de Hermite). Tenga en cuenta que estos algoritmos se pueden añadir vértices adicionales al vector, haciendo que se cargue más lentamente

  • Abra la caja de herramientas GRASS y haga doble clic en las categorías Vectorial ► Desarrollar mapa ► Generalización,

  • Compruebe que el vector “ctour_100” aparece como el Nombre del vector de entrada.

  • De la lista de algoritmos, elija Chaiken’s. Deje todas las demás opciones en sus valores predeterminados y desplácese hacia abajo hasta la última fila para ingresar en el campo Nombre del mapa vectorial de salida “ctour_100_smooth”, y haga click en Ejecutar.

  • El proceso lleva varios minutos. Una vez que aparezca Finalizado con éxito en las ventanas de salida, haga clic en Ver salida y luego Cerrar.

  • Se puede cambiar el color del vector para que se muestre claramente sobre el fondo del ráster y para contrastar con las curvas de nivel originales. Se dará cuenta de que las nuevas curvas de nivel tienen esquinas más suaves que el original durante su estancia fiel a la original de forma general.

../../../_images/grass_toolbox_vgeneralize.png

Figura 23.7 Módulo GRASS v.generalize para suavizar un mapa vectorial

Truco

Otros usos de r.contour

El proceso descrito anteriormente se puede utilizar en otras situaciones equivalentes. Si tiene un mapa ráster de datos de precipitación, por ejemplo, entonces el mismo método se utilizará para crear un mapa vectorial de líneas isoyetas (lluvia constante).

23.14.2.2. Crear un efecto sombreado de relieve 3-D

Varios métodos se utilizan para mostrar capas de elevación y da un efecto #-D a mapas. El uso de líneas de curvas de nivel, como se mostro anteriormente, es un método popular regularmente elejido para producir mapas topológicos. El efecto de sombreado se crea de un ráster (elevación) DEM calculando primero la pendiente y el aspecto de cada celda, entonces simula la posición del sol en el cielo y da un valor de reflectancia a cada celda. De este modo se obtienen pendientes frente al sol iluminadas; las pendientes orientadas lejos del sol(en la sombra) se oscurecen.

  • Comience este ejemplo cargando el ráster de elevación gtopo30. Inicie la caja de herramientas GRASS y bajo la categoría ráster, haga doble clic para abrir Análisis espacial ► Análisis del terreno.

  • A continuación haga clic en r.shaded.relief para abrir el módulo.

  • Cambie el ángulo del azimut selectNumber 270 a 315

  • Ingrese gtopo30_shade para el nuevo ráster de sombreado y haga clic en Ejecutar.

  • Cuando el proceso finalice, añada el ráster de mapa de sombras al mapa. Debe verlo desplegado en escala de grises.

  • Para ver ambos sombreados y los colores de la gtopo30` juntos, mueva el mapa de sombreado abajo del mapa gtopo30 en la tabla de contenido, a continuación abra la ventana Propiedades de gtopo30, cambie a la pestaña de Transparencia y establezca su nivel de transparencia a cerca de 25%.

Ahora debe tener la elevación gtopo30 con su mapa de color y ajuste de transparencia mostrado arriba el mapa de sombras en escala de grises. Con el fin de ver los efectos visuales en el mapa de sombras, apague el mapa gtopo30_shade, a continuación, vuelva a encenderla.

Utilizar la consola de GRASS

El complemento GRASS en QGIS está diseñado para usuarios que son nuevos en GRASS y no están familiarizados con todos los módulos y opciones. Como tal, algunos módulos en la Caja de herramientas no muestran todas las opciones disponibles y algunos módulos no aparecen en absoluto. El shell (o consola) de GRASS le da al usuario acceso a los módulos GRASS adicionales que no aparecen en el árbol de la Caja de herramientas, y también a algunas opciones adicionales a los módulos que están en la Caja de herramientas con los parámetros predeterminados más simples. Este ejemplo demuestra el uso de una opción adicional en el módulo r.shaded.relief que se mostró arriba.

../../../_images/grass_toolbox_shell.png

Figura 23.8 La consola de GRASS, módulo r.shaded.relief

El modulo r.shaded.relief puede tomar un parámetro zmult, que multiplica los valores de elevación relativas a las unidades de las coordenadas X-Y por lo que el efecto de sombreado es incluso más pronunciado.

  • Cargue el ráster de elevación gtopo30 como se muestra arriba, luego inicie la Caja de herramientas de GRASS y haga clic en el shell de GRASS. En la ventana del shell, escriba el comando r.shaded.relief map = gtopo30 shade = gtopo30_shade2 azimuth = 315 zmult = 3 y presione Enter.

  • Una vez finalizado el proceso, cambie a la pestaña Examinar y haga doble clic en el nuevo ráster gtopo30_shade2 para mostrarlo en QGIS.

  • Como se explicó anteriormente, mueva ráster del relieve sombreado a bajo del ráster gtopo30 en la tabla de contenido, entonces valide la transparecia de la capa coloreada gtopo30. Debe ver que el efecto 3-D destaca más fuertemente comparada con el primer mapa de relieve sombreado.

../../../_images/grass_toolbox_shadedrelief.png

Figura 23.9 Mostrar relieve sombreado creado con el módulo de GRASS r.shaded.relief

23.14.2.3. Estadísticas de ráster en un mapa vectorial

El siguiente ejemplo muestra como un módulo GRASS puede agregar datos ráster y añadir columnas de una estadística para cada polígono en un mapa vectorial.

  • Nuevamente usando los datos de Alaska, consulte Importar datos dentro de una LOCALIZACIÓN DE GRASS para importar el archivo shapefiles/trees.shp en GRASS.

  • Ahora un paso intermedio es necesario: los centroides se deben añadir al mapa de árboles importado para que sea una zona de GRASS completa del vector (incluyendo ambos límites y centroides).

  • De la caja de herramientas, elija Vectorial ► Desarrollar mapa -> Administrar objetos espaciales, y abra el modulo v.centroids.

  • Introduzca como el Mapa vectorial de salida “forest_areas” y ejecute el módulo.

  • Ahora cargue el vector forest_areas y muestre los tipos de bosque - caducifolio, árbol de hoja perenne, mixto - en diferentes colores: En la ventana Propiedades de la capa, la pestaña Simbología, elija de Tipo de leyenda selectString “Valor único” y establezca el Campo de clasificación a “VEGDESC”. (Consulte la explicación de la pestaña de simbología en Propiedades de simbología de la sección vectorial.)

  • A continuación vuelva a abrir la caja de herramientas de GRASS y abra Vectorial ► Actualizacion vectorial por otros mapas.

  • Haga clic en el modulo v.rast.stats. Ingrese gtopo30 y forest_areas.

  • Solo se necesita un parámetro adicional: Ingrese prefijo de columna elev y haga clic en Ejecutar. Esta es una operación computacionalmente pesada, que se ejecutará durante mucho tiempo (probablemente hasta dos horas).

  • Finalmente, abra la tabla de atributos forest_areas, y verifique que varias de las nuevas columnas se han añadido, incluyendo elev_min, elev_max, elev_mean, etc., para cada polígono de bosque.

23.14.3. Personalizar la caja de herramientas GRASS

Casi todos los módulos de GRASS se pueden añadir a la caja de herramientas de GRASS. Una interfaz XML se proporciona para analizar los archivos XML muy sencillos que configuran la apariencia y los parámetros de los módulos dentro de la caja de herramientas.

Un ejemplo del archivo XML para generar el módulo v.buffer (v.buffer.qgm) luce como esto:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">

<qgisgrassmodule label="Vector buffer" module="v.buffer">
        <option key="input" typeoption="type" layeroption="layer" />
        <option key="buffer"/>
        <option key="output" />
</qgisgrassmodule>

El analizador lee esta definición y crea una nueva pestaña dentro de la Caja de herramientas cuando selecciona el módulo. Puede encontrar una descripción más detallada para agregar nuevos módulos, cambiar el grupo de un módulo, etc. en https://qgis.org/en/site/getinvolved/development/addinggrasstools.html.