Basemap checker es un mini desarrollo que hice con el objetivo principal de practicar Javascript y de paso cañaso, armar una herramienta que sirva al momento de ir actualizando los estilos de los diferentes mapas base que desarrollamos en el Instituto Geográfico Nacional.
El desarrollo es un mapa en Leaflet utilizando el plugin side by side. El funcionamiento de éste se basa en tener dos layer o arrays de layers y dividir la pantalla en dos para visualizar uno u otro. Muy simple todo.
El plugin ya lo veniamos usando, pero los mapas base los cambiabamos directamente desde el archivo js. hardcodeando.
La mejora que le hicimos fue:
Agregar botones con los mapas base del IGN ( los que están en producción)
Agregar un menú desplegable para poder usar mapas base de otras empresas o instituciones (OSM, Google, Stamen, etc)
Agregar un input para poder usar otros mapas base. Ésto puede ser útil tanto para poner mapas que ignoramos cómo también para agregar los mapas de producción.
Algunas mejoras que se quedaron en el tintero para hacer:
mejorar toda la usabilidad, el css, etc
agregar algo que te diga cual es el mapa utilizado
guardar las url customizadas
agregar bookmarks
Por último, el código está publicado acá: https://github.com/martinfernandoortiz/basemaps_checker/
Este post tiene cómo objetivo describir una parte del trabajo que venimos haciendo dentro del Instituto Geográfico Nacional en relación a los diferentes geoservicios que producimos y en particular a los mapas base.
Lo primero para mencionar es que la producción de cartografía es una tarea compleja que implica la articulación de muchos actores y poner el ojo en una cantidad inigualable de detalles. Si a esto le sumamos el soporte digital, la complejidad se multiplica por cada nivel de zoom que tiene éste. Y acá es que entra en juego lo más importante en esta experiencia: tener un equipo de profesionales que le hacen frente a las distintas dificultades que se van presentando. Sin este equipo, hoy en día no tendríamos la calidad que tenemos en los diferentes mapas bases del IGN y esto no implica que el trabajo éste terminado si no que planteamos procesos de mejoras continua.
Argenmap
Argenmap es el proyecto que engloba a los diferentes mapas base que desarrolla el Instituto Geográfico Nacional. Éstos se pueden utilizar tanto en el visor de mapas del IGN, cómo también como mapas base para software GIS o embeberlos en aplicaciones. Además, cada uno de éstos mapas son parte de la cartografía digital oficial de la Administración Publica Nacional.
Actualmente llevamos desarrollados 5 mapas base: Argenmap, Argenmap Gris, Argenmap Oscuro, Argenmap Topográfico y Argenmap Híbrido. Los dos primeros ya se encontraban en producción al inicio de mi gestión cómo coordinador en el Departamento de Aplicaciones Geoespaciales. En éstos 3 años se le fueron haciendo mejoras en cuanto al etiquetado, simbología y a los estilos en general.
Cada uno de los mapas base que desarrollamos está pensado para diferentes tipos de usos y usuarios. Siendo el «argenmap común» un mapa base generalista, de todos los mapas base éste es el que contiene mayor cantidad de capas y etiquetas. Hasta éste momento (01/02/2024) está pensando para ser utilizados en contextos en donde no se necesita agregar muchas más capas.
Tanto Argenmap Gris cómo el Oscuro fueron desarrollados pensando en proyectos que necesitan agregar capas sin que ésto implique un «empaste» en la pantalla. Ambos son monocromáticos lo cual facilita el contraste de información. Nobleza obliga, antes de entrar al Instituto uno de los mapas base que más utilizaba en mis proyectos era el Carto Dark, desarrollado por la empresa española Carto. Nuestro mapa oscuro replica mucho algunos de los lineamientos que dicho mapa tiene.
El Argenmap Topográfico nació con el objetivo de combinar tanto topografía cómo también cobertura de suelo. La base de éste se basa en modelos digital de elevación, hillshades y una paleta de colores basada en la cobertura. Inicialmente se desarrollo solo para el Territorio Nacional (excluyendo el Sector Antártico Argentino) pero en la segunda versión se pudo trabajar la topografía de dicho sector cómo también la del resto de América Latina
El último desarrollo hecho es el Argenmap Híbrido. Éste mapa base está pensado para ser utilizado arriba de imágenes satelitales. Es el que menos capas y etiquetas contiene, teniendo solamente información básica de límites y red vial.
Desafíos y Dificultades
Actualmente el stack que se utiliza para éstos desarrollos es postgreSQL (con PostGIS) y Geoserver. Cada una de las capas, se sirven en Geoserver y los estilos están creados a través de archivos SLD. El código de ésto se encuentra publicado en el repositorio oficial del IGN.
Puede parecer redundante, pero los principales desafíos en este tipo de trabajos no tienen que ver con el diseño cartográfico y el desarrollo de código sino más bien con la definición de territorio y la discusión teórica acerca de que mensaje queremos transmitir con la cartografía digital. Esto conlleva, un proceso de documentación de las diferentes discusiones en torno al porque representamos lo que representamos.
Una de las dificultades que se presentan al momento de trabajar los estilos del mapa tiene que ver con la estructura de las tablas alojadas en la base de datos que siguen lineamientos relacionados a la tradición cartográfica del Instituto. Esto implica, que muchas capas están pensadas para la producción cartográfica impresa, y las necesidades al momento de generar geoservicios y cartografía digital puede diferir. El impacto de éste es que muchos estilos SLD terminan siendo códigos de proporciones bíblicas dada la cantidad de filtros que se le aplican
Otra de las tareas de gran dificultad es el etiquetado toponímico. La generación de etiquetas para diferentes niveles de zoom en un territorio tan extenso implica la creación de múltiples reglas y filtros para considerar todas las excepciones para tener un etiquetado consistente.
Por otro lado, es importante poder reproducir los mapas base en otras tecnologías analizando que potencialidades puede tener la utilización de éstas. Ésto puede impactar en el desarrollo de mapas en 3D o en las mejoras en las texturas y efectos de iluminación en las teselas.
En el mes de junio 2023 se celebraron las jornadas de IDERA en Santa Rosa – La Pampa – Argentina. Para esta ocasión, junto al equipo de la Dirección de Información Geoespacial del Instituto Geográfico Nacional preparamos un taller de estilos aplicados a Geoserver.
A continuación quiero compartir la documentación que fuimos generando para la instalación de Geoserver. Si quieren ver el repositorio, éste es el link
¿Qué es Geoserver?
Geoserver es un servidor web de código abierto desarrollado en Java, multiplataforma, que permite a los usuarios compartir y editar datos geoespaciales. Diseñado para la interoperabilidad y publicación de datos de cualquier fuente de datos espaciales con estándares abiertos.
¿Es el único Servidor de datos geográficos open source?
No, no es el único. Existen otras alternativas cómo mapserver
Guía de instalación
Hay múltiples formas de instalar geoserver: con los instaladores, a través de docker, a través de una máquina virtual, usando OSGeo Live, etc. Los pasos acá sugeridos están pensados para hacer pruebas y no para un entorno de producción. Para esto último, no dudes en consultar a tu informático amigo 😉 . Por otro lado, también es importante señalar que el mejor camino es vía docker (estes en el Sistema Operativo que estes). Puede parecer un poco intimidante usar docker para aquellos que no venimos de las Ciencias de la Computación pero la instalación es más rápida y evita problemas de dependencia y errores.
Algunas ventajas de usar docker:
con docker ya instalado en tu PC, cuando pruebes geoserver va a andar o andar
no vas a tener que instalar nada extra para que funcione. En el caso del instalador de Windows necesitas hacer varios pasos extras y todo depende de cada compu
tanto la instalación cómo la desistalación no te va a generar ningún inconveniente de dependencias
vas a poder usar docker para probar otras herramientas. En el caso del software dedicado a la generación y procesamiento de información geoespacial es muy útil. Ejemplos: si vas a usar R o Python…
Instalación de Geoserver en Windows
Antes de instalar geoserver vas a necesitar tener instalado Java 64 bits JRE o JDK. Podes descargarlo desde acá
Si ya tenemos docker instalado, en una terminal ( pone en inicio «cmd» y abrila) escribir:
docker pull docker.osgeo.org/geoserver:2.24.x
Lo que hace este comando es descargar la imagen oficial de geoserver para Docker
Para correr el contenedor:
docker run -it -p8080:8080 docker.osgeo.org/geoserver:2.24.x
Si queremos utilizar el contenedor con una carpeta para poner data (shapes, etc) debemos correr
docker run -v C:\Users\martin\Documents\docker:/opt/geoserver_data -it -p8080:8080 docker.osgeo.org/geoserver:2.24.x
en donde C:\Users\martin\Documents\docker es la carpeta donde irán los shapes o capas a subir
Instalación en GNU-Linux vía docker
Si usas alguna distribución GNU-Linux te sugerimos que optes por la instalación vía docker; de esta forma no vas a tener problemas de dependencias ni nada de eso. Solo necesitas tener instalado docker, docker compose y permisos de administrador.
En la imagen se ve que se agregó sudo para tener los permisos de administrador
Para correr el contenedor:
docker run -it -p8080:8080 docker.osgeo.org/geoserver:2.24.x
Si queremos utilizar el contenedor con una carpeta para poner data (shapes, etc) debemos correr
docker run --mount type=bind,src=/home/martin/Documents/docker,target=/opt/geoserver_data -it -p8080:8080 docker.osgeo.org/geoserver:2.24.x
o sino
docker run -v /home/martin/Documents/docker:/opt/geoserver_data -it -p8080:8080 docker.osgeo.org/geoserver:2.24.x
en donde /home/martin/Documents/docker es la carpeta donde irán los shapes
Geoserver vía OSGeo Live
OSGeoLive es un DVD de arranque autónomo, unidad USB o máquina Virtual basada en Lubuntu, que permite probar una gran variedad de software geoespacial de código abierto sin necesidad de instalar algo particular. Se compone enteramente de software libre, lo que le permite ser libremente distribuido, duplicado y compartido. Para conocer más acerca de éste proyecto ingresa aquí: https://live.osgeo.org/es/
Dentro de todos los programas que componen a OSGeoLive se encuentra Geoserver. Podemos utilizar esta distribución tanto desde una maquina virtual como tambien desde un usb de arranque. Para cualquiera de las dos opciones vamos a descargar el archivo desde https://live.osgeo.org/es/download.html.
Para este ejemplo, necesitamos instalar una máquina virtual descarga Oracle Virtual Box desde acá y descargar el archivo de OsGeoLive en formato vm ( consulta acá )
Desde un USB de arranque
Necesitas cualquier programa para generar un usb de arranca (booteable).
Etcher Balena es un programa multiplataforma (tanto para Windows cómo para GNU Linux )
La FOSS4G es el evento de software open source y software libre geoespacial más grande del mundo. Es un encuentro organizado por la fundación OSGEO (Open Source Geospatial Foundation) y las comunidades locales de cada parte del planeta en la que participan desde programadores, investigadores, estudiantes, organismos no gubernamentales, empresas, docentes, etc. Dentro de la conferencia hay talleres, charlas, mapatones, stands y lo más importante el encuentro con personas.
Ésta vez fue la primera vez que participé y si bien no tenía mucha expectativa dado el formato virtual el nivel de la conferencia es INCREIBLE en cuanto a la calidad de las ponencias, talleres y también de la organización (desde la plataforma hasta la comunicación). En este sentido, hay que remarcar el trabajo que hicieron los Geoinquietos Argentina y la Asociación GeoLibres para poder llevar a cabo menuda conferencia poniendole el cuerpo a situaciones realmente dificiles y dolorosas.
De las cosas que más rescato de mi experiencia en la FOSS es la posibilidad de escuchar en primera persona las experiencias y trabajos de gente que uno admira. En mi caso, participe de un taller de Vector Tiles llevado a cabo por Map Tiler. Además de escuchar a los “viejos conocidos” el encuentro da la posibilidad de escuchar otras voces que son parte de la comunidad pero no son tan conocidas o activas en las redes y llevan a cabo un trabajo espectacular.
Otra de las cosas que más me gusto del encuentro – y pese a que el formato fue virtual – fue la posibilidad de poder hablar con gente. La plataforma tenía una interfaz en donde cada participante podía ser un personaje y a través de diferentes representaciones de la Ciudad uno se podía cruzar con gente y generar una video llamada. Ésto hizo que uno pueda seguir intercambiando data o conociendo gente más allá de las charlas o talleres.
Mi primer FOSS
Cómo suele pasar en la mayoría de los eventos en los que participo, primero me anoto y a partir de eso me obligo a presentar algún trabajo. En esta ocasión la charla que dí se basó en un indicador que construimos para el Ministerio de Cultura sobre accesibilidad física a espacios y actividades culturales en la Ciudad de Buenos Aires.
El trabajo se basa en calcular para cada una de las esquinas de la Ciudad la distancia peatonal a una serie de espacios culturales (Cines, Teatros, Clubes de Música, Bibliotecas, Museos, Espacios de Formación). Ésto implico, por un lado utilizar alguna herramienta de ruteo – en este caso fue OSRM – y poder programar un script que lupee las esquinas y además que disminuya el tiempo de procesamiento lo máximo posible.
Más allá del contexto del trabajo, éste fue una buena oportunidad para poner en práctica algunas cosas que vengo haciendo en R. Empece a estudiar éste lenguaje en diciembre 2019 y en estos dos años me obligue a usarlo literalmente casi todos los días ya sea para manejo de tablas, escrapeo, data wrangling, geoprocesos, desarrollo de dashboards etc.
Otro dato no menor es que la charla la hice 100% en ingles. Si bien estaba la posibilidad de hablar en castellano, la mayoría del público hablaba ingles (y las relaciones sur-sur no se van hacer solas) y eso también implicó un lindo desafio.
Para terminar el posteo, ojala que la FOSS4G2021 sea la primera de muchas otras (la próxima se hace en Florencia, Italia) . Y a modo personal, queda pendiente empezar a ver algunos videos de lo que fueron las presentaciones. Realmente hay material de estudio muy interesante para indagar.