¿Por qué GRASS ofrece potentes capacidades SIG?

Curso de ArcGIS Pro | Curso de QGIS | Curso de ArcGIS 10

La herramienta Geographic Resources Analysis Support System (GRASS) lleva desarrollándose desde 1982 como iniciativa de una agencia federal estadounidense que posteriormente fue desarrollada por académicos y un consorcio de usuarios fieles. No sólo es una de las herramientas SIG más antiguas que se utilizan de forma continuada, sino que sigue proporcionando capacidades innovadoras. En un reciente podcast de MapScaping con Markus Neteler, presidente del Comité Directivo del Proyecto SIG de GRASS, queda claro que GRASS seguirá siendo un potente esfuerzo de código abierto en materia de SIG durante los próximos años[1].

En su nivel básico, GRASS es un motor de procesamiento vectorial y geoespacial. Lo que hace a GRASS tan poderoso es que puede trabajar a diferentes niveles para los usuarios, siendo flexible para los usuarios que quieran usarlo directamente o como parte de otras herramientas.

Puede, por ejemplo, integrarse con QGIS, trabajando como una herramienta analítica de back-end. Las funciones que despliegan operaciones raster y vectoriales con GRASS pueden ser llamadas desde scripts dentro de otro software. Efectivamente, los usuarios son libres de desplegar SIG raster y vectorial directamente o aplicar GRASS como parte de otro software.

Captura de pantalla de GRASS mostrando parte de la interfaz de usuario. Fuente: grass.osgeo.org

Para aquellos que decidan utilizar GRASS directamente para el análisis SIG, la herramienta crea lo que se llama Locations, un nombre heredado, que se refiere a determinadas regiones geográficas definidas por el usuario y crea el espacio donde se almacenan los datos geoespaciales. Esto ayuda a mantener limpios los proyectos y los datos georreferenciados separando los esfuerzos, pero a partir de GRASS 8.0 se dispondrá de una configuración de menús comparable a la de herramientas como QGIS y ArcGIS.

GRASS tiene sus propios formatos vectoriales y ráster, pero funciona con la mayoría de los demás. Contiene un modelo topológico vectorial que ayuda a los datos vectoriales a compartir bordes comunes y les permite relacionarse y conocer datos compartidos, como un borde común en los datos vectoriales, a diferencia de los modelos vectoriales típicos. El modelo vectorial de GRASS también puede almacenar datos 3D. Uno puede contener múltiples tablas de atributos y vectorizar datos rasterizados sobre la marcha utilizando este modelo, facilitando que también contenga múltiples niveles de información que conozcan los otros niveles. La aplicación utiliza GDAL/OGR para traducir y exportar modelos de datos vectoriales y rasterizados para uso externo. Uno puede, por ejemplo, traducir entre un modelo vectorial de GRASS y shapefiles comunes[2].

Editor Python de Hexagons en GRASS. Captura de pantalla de grass.osgeo.org

En el lado raster, GRASS aplica funciones multicapas dentro de los datos raster que permiten asociar información más compleja con determinadas capas raster. Por ejemplo, se pueden adjuntar tablas de colores e imágenes aéreas o satelitales multibanda, o incluso datos de series temporales, que se pueden vincular a través de las capas aplicadas para que puedan asociarse en los análisis. Esto tiene la ventaja de vincular datos similares y ayudar con medidas como el promedio entre capas, medidas volumétricas y otras funciones geospaitales multicapa.

GRASS tiene una biblioteca bien desarrollada de funciones raster que pueden calcular rápidamente el área, el volumen, la afluencia de energía y las métricas geoestadísticas comunes que incluso incluyen la normalización de los datos, como para ajustar la cobertura de nubes en sus datos. Otras funcionalidades incluyen la incorporación de cálculos de características en el modelo raster 2.5D que utiliza GRASS, estableciendo reglas para que las características de la superficie sean incluidas, o no, en los modelos de elevación de la superficie. Incluso tiene funciones de modelado incorporadas, como un modelo de aguas subterráneas que puede vincularse directamente en el análisis.

Uno de los problemas de las herramientas SIG tradicionales es la importación de demasiados datos, sobre todo ráster, lo que no sólo puede ralentizar considerablemente el sistema, sino también hacer que se bloquee. Para evitar este problema, GRASS permite a los usuarios registrar datos ráster y utilizarlos según sea necesario, minimizando las penalizaciones de rendimiento. Sensible a las demandas de datos, GRASS puede importar, por ejemplo, los datos de elevación de la Shuttle Radar Topography Mission (SRTM) para toda la Tierra en una sola vista, pero los datos se condensan utilizando una herramienta de reducción de datos que permite la visualización de 250 gigabytes de datos en un escritorio normal sin tener ni de lejos los requisitos de memoria requeridos.

DEM del altiplano de la Guayana, a caballo entre las fronteras de Venezuela, Guyana y Brasil, a partir de SRTM30. Imagen: NASA/JPL/NIMA

GRASS también está configurado para comunicarse con servidores remotos de datos rasterizados y vectoriales, incluyendo los servidores Web Map Service (WMS) y Web Feature Service (WFS). Adicionalmente, la herramienta utiliza OGR entre el motor topológico de GRASS y otros motores no topológicos y se conecta a herramientas de bases de datos como PostGIS. Para mostrar los datos de las características, GRASS permite la visualización de la información, utilizando herramientas como los monitores de GRASS. Otras poderosas herramientas de visualización, como Matplotlib, Octave, R, y otras herramientas pueden ser incorporadas exportando la información para ayudar con la visualización de los datos si se requiere.

Aproximadamente un tercio de GRASS está escrito en Python; sin embargo, la herramienta puede integrar y aplicar otros lenguajes y scripts para los usuarios, incluyendo scripts de Shell, C, C++, Octave y PHP. GRASS aplica un analizador sintáctico que permite no sólo analizar las banderas de los comandos, sino que es flexible a la forma en que se dan los comandos, no requiriendo un orden determinado. El parser puede generar una salida e incluso una descripción para los scripts proporcionados. Otra característica permite a GRASS integrar Actina, que permite convertir scripts de Shell o Python en paquetes JSON. Esto permite a GRASS proporcionar a los usuarios diferentes scripts en varios lenguajes que pueden ser exportados.

En el futuro, GRASS continúa mejorando su interfaz gráfica para que los usuarios puedan utilizar la herramienta como una función independiente y al mismo tiempo tener acceso a sus poderosas capacidades de back-end. Aunque GRASS ha tenido un seguimiento fiel en el mundo académico, también es una herramienta importante en el mundo empresarial. Su continuo soporte e integración en otras herramientas, al mismo tiempo que tiene capacidades raster y vectoriales independientes, probablemente significa que seguiremos viendo a GRASS mantener su lugar como una importante herramienta SIG en los próximos años.

Referencias

[1]    For more on the GRASS initiative and its benefits from a recent MapScaping podcast, see: https://mapscaping.com/blogs/the-mapscaping-podcast/grass-gis-probably-doesn-t-get-the-attention-it-deserves.

[2]    GRASS has a recently updated website that discusses the tool’s powerful capabilities: https://grass.osgeo.org/

Traducido desde: gislounge