¿Cuando podremos compaginar tecnología y naturaleza?

Proceso de instalación

La idea aquí es ayudar en un proceso de instalación que difiere algo de lo que mucha gente está acostumbrada, doble click, siguiente, siguiente, siguiente... En este caso, consiste más en copiar y pegar cosas, dado que los programas son simples scripts dependiente de librerías propias, manteniendo la programación lo más estándar posible. Aquí encontraras las diferentes opciones para instalar y también en sub-secciones las cosas que debes tener en cuenta y cómo ejecutar el SEAE, que en buena medida, supongo que es lo que quieres conseguir.

Donde está el programa y sus módulos

Lo primero trataré de explicarte donde está el programa, sus módulos y cómo descargarlos, sin olvidar que también tienes otras herramientas de apoyo que puedes utilizar de forma combinada. El programa ha recibido una modificación importante en 2022, al pasar de scripts independientes a un solo ejecutable y múltiples módulos. Esta nueva versión se encuentra en mi cuenta de GitHub, conjuntamente con otras aplicaciones que también tengo allí. El repositorio se llama igual que este sitio web, Territorio y Riesgos. Desde ahí podrás descargar las aplicaciones de análisis espacial descritas anteriormente, incluido algunos ejemplos para que pruebes que todo funciona correctamente. Para facilitar un poco las cosas he creado una estructura de directorios que puedes utilizar de base y he adaptado los archivos de configuración a ella, así también será más fácil disponer ya de una estructura organizada.

Nota importante: Un aspecto que debes tener en cuenta es que yo no soy programador de base, soy geógrafo que aprendió algo de programación estructurada gracias a mi director de tesis Ramón Ortiz, aspecto que me ha permitido desarrollar muchas cosas. Esto quiere decir que el programa y sus módulos tienen un amplio margen de mejora, especialmente si se conciben desde un punto de vista multiplataforma y modo servidor, en vez de PC autónomo en Linux, tal como están en la actualidad. También, que mi forma de programar puede ser entendida como básica, escribo más de lo necesario, pero es la forma que tengo también para recordar que quería hacer una vez que han pasado meses sin ver el código (la memoria, ya sabes). Es también el motivo por el que inserto muchos comentarios de ayuda y por lo que te animo a que abras el código fuente sin miedo y lo leas para ver como funcionan las cosas: hoy en día la mayoría de editores de textos ya te muestran el código en colores, por lo que no hace falta necesariamente utilizar un programa especializado para el desarrollo de código (IDE). Pero si te animas con uno básico, podrías instalar el Geany. Recuerda que la manera correcta de leer cualquiera de mis programas es a partir de la función main, que está al final de todo. Esta es la que controla la secuencia en la que van pasando las cosas y desde ella se van llamando a las distintas funciones que están en la parte superior. La estructura seguida por el SEAE sería: lectura de archivos de configuración, lectura de datos (entrada), procesado y escritura de datos (salida), las cuales pueden hacerse en bucle si tenemos muchas capas.

Aspectos del proceso de instalación

Los scripts o programas no requieren instalación al estilo Windows, es un archivo que se descarga y se almacena en el sistema. Si el script está escrito en C, habrá que compilarlo antes de ejecutarlo, si está escrito en otro lenguaje (Python o Bash) solo necesitará permisos de ejecución. Sin embargo, dependiendo del sistema operativo en el que estés puede ser necesario más o menos operaciones. A día de hoy, el SEAE y los programas auxiliares no son multiplataforma, lo que implica que no pueden funcionar tal cual, por ejemplo, en Windows, sino que requerirían ciertas modificaciones y un conocimiento básico en programación para poder llevarlas a cabo. Quizás más adelante me anime a ello.

Que puedo hacer el Linux

En Linux, independientemente de la distribución que manejes, no debería haber ningún problema para que los programas funcionen. Es donde han sido desarrollado y donde, además, animo a introducirse, especialmente para aquellas personas que trabajan con datos espaciales. La potencia, herramientas y demás instrumentos disponibles en este ambiente hace que puedas descubrir alternativas igualmente válidas a las propietarias que seguro ya usas. En cualquier caso, los programas que están desarrollados en lenguaje C y Bash no requieren nada adicional, el compilador del primero y el interprete del segundo vienen por defecto ya instalados en el sistema. Python 3 también está por defecto en el sistema, pero adicionalmente necesita la instalación de las siguientes librerías (todos para Python 3.X):

Pip: Es una librería o paquete encargado de la instalación de otros paquetes en Python.

Numpy: Es una librería para la gestión de arrays. Para instalarla, si no está ya en el sistema usaríamos pip3 install numpy.

Pandas, Geopandas: Librerías diseñadas para trabajar con datos estructurados. Para instalarlas usaríamos pip3 install pandas o geopandas.

Fiona, shapely, geojson, json, folium, branca y leaflet: En nuestro caso las utilizamos para automatizar los procesos de creación de mapas. Para instalarlas podemos usar pip3 o bien directamente desde apt (sudo apt install ...).

Configparser: Librería para leer archivos de configuración con una estructura similar a los INI de Microsoft Windows. Para instalarla usaríamos pip3 install configparser.

En nuestro caso, todas las pruebas fueron llevadas a cabo con UBUNTU 18.04 y 20.04. Decir que entre una versión y otra se realizaron alguna modificaciones en el compilador de C, lo que motivó ciertos arreglos en el software, pero estas no deberían ser problemáticas para versiones algo más antiguas dado que estaban orientada a reducir los típicos errores de fuga de memoria. La última actualización del SEAE fue llevada a cabo en UNBUNTU 22.04.

Que puedo hacer en Microsoft Windows

En Windows se plantean tres grandes escenarios: 1) adaptar el software para que opere íntegramente en el sistema; 2) si tienes un pc con suficiente memoria RAM y no es Windows 10/11, virtualizar un GNU/Linux y trabajar desde él; 3) solo para Windows 10/11, instalar directamente el GNU/Linux desde la app store de Microsoft y acceder a la terminal de GNU/Linux como si fuera un programa más. Yo, como te habrás dado cuenta, solo lo he probado en GNU/Linux, así que solo puedo proporcionar una guía general, te tocará a ti decir cual y cómo te quieres pelear con el sistema (¡suerte!). 

Escenario 1

La más valiente, modificar el software para que sea capaz de trabajar en el ambiente Windows. Por lo que tengo entendido, buena parte del trabajo esta relacionado con las rutas de los archivos, que en Windows utilizan "\" y modificar la primera línea de los archivos Python (#!/usr/bin/env python3) para especificar la ruta de instalación del paquete. Los archivos Bash habría que rehacerlos para que operen con la terminal de Windows, dado que son scripts sencillos no debería ser complicado.

En este escenario primero tendrás que instalar el compilador GCC para los programas hechos en C. Existen varias alternativas para ello, en esta página o bien esta otra de la Universidad de Aucland (Nueva Zelanda) las explican y dan detalles al respecto. Luego tendrías que instalar el Python 3, aquí puedes ver el proceso guiado. Recuerda que, una vez instalado, tendrías que añadir las librerías comentadas en el apartado de GNU/Linux. 

Con esto tendrías ambos elementos de base ya en el sistema, solo asegúrate que ambos están adaptados a la versión de Microsoft Windows instalada en tu PC. Personalmente creo que este sería el proceso más complicado para un usuario no experimentado, pero adelante con él si lo ves factible. 

Escenario 2

Otra opción es virtualizar una versión de GNU/Linux dentro del entorno Windows anterior a la versión 10. Aquí la clave será la memoria RAM disponible de tu PC. El consumo de memoria de los programas desarrollados aquí dependen del tamaño de los datos que tienen que leer, lo máximo pueden ser 2Gb, considerando que hemos estado trabajando en detalle en el Distrito Metropolitano de Quito que tiene 372,4 km² y más de 3 millones de habitantes.

Yo he utilizado durante mucho tiempo para hacer a la inversa Virtualbox, pero también tienes otras alternativas. En este caso primero instalarías el software de virtualización como cualquier otro (doble click, siguiente...). Una vez instalado, entonces crearás una máquina virtual, un PC dentro de otro PC pero virtual, en el que instalarás, por ejemplo, UBUNTU XX.04 LTS o bien alguna distro más ligera . Instrucciones al respecto también puedes encontrar muchas en Internet, algunas muy visuales como por ejemplo esta. Luego compartirías las carpetas entre un sistema y otro, probablemente las de software tengan que estar en la máquina virtual, pero las de datos pueden estar en una carpeta compartida por ambos.

Aquí también tendrías que instalar las librerías de Python indicadas en la sección de Linux.

Escenario 3

Este escenario está pensado cuando tienes una versión de Windows 10/11, importante lo actualizada que esté, porque la implementación de GNU/Linux en Windows ha sido progresiva y las primeras versiones no lo hacen igual que las más recientes. Este caso es parecido al de la virtualización, pero aprovechando las herramientas que ya provee directamente el sistema. Como puedes ver en esta página el procedimiento es muy sencillo, solo debes tener en cuenta que estás instalando una versión sin interfaz gráfica del sistema, que para operar con nuestro software es suficiente, aunque los últimos desarrollos apuntan ya al soporte casi total. Igualmente deberás instalar las librerías Python. Es, con mucho, el procedimiento más sencillo de llevar a cabo de todos los propuestos, pero yo no lo he probado todavía. La implementación del GNU/Linux dentro del propio Windows está en constante desarrollo y mejora, por lo que cada vez resulta más fácil.

Otras alternativas

Utilizar una máquina algo más antigua e instalar GNU/Linux directamente, así podrías testear y probar el sistema de forma independiente (de momento es lo que les estoy haciendo a mis compañeros de trabajo, básicamente decirles que hay mundo mas allá de...). También puedes instalar el Linux al lado de Windows, a modo de arranque dual (eliges uno u otro), como por ejemplo explican aquí, aunque a mi me parece algo más incomodo.

Que puedo hacer en Mac

Al igual que en Windows se plantean dos escenarios posibles: 1) en el que operamos directamente en el sistema, que al ser el MAC un sistema tipo UNIX, puede trabajar casi igual que en GNU/Linux; 2) virtualizar también un GNU/Linux.

Escenario 1

En este caso necesitas instalas XCODE, las librerías para desarrolladores que incluyen los compiladores. Trabajar en la terminal de Mac es muy similar a hacerlo en GNU/Linux, aunque no se promocione tanto. Lo que si pueden cambiar algo son las rutas. Yo no los he probado todavía pero cualquier feedback será bien recibido. El proceso de instalación no es complejo, si bien se necesitará bastante espacio en el disco duro. Navegando puedes encontrar muchas páginas que te guían, como por ejemplo un tutorial en vídeo o bien webs con el proceso guiado. Eso sí, asegúrate que coincide con la versión del sistema operativo de Appel que estés utilizando.

Luego tendrás que instalar Python 3 y las librerías señaladas, aquí por ejemplo tienes una guía al respecto. En mi opinión no lo ponen muy fácil, así que la gente tiene que buscarse alternativas que no siguen el patrón habitual del mundo Mac. 

Escenario 2

Puede virtualizarse un Linux utilizando Parallels, si bien debido al cambio reciente de procesadores es un proceso que está también en mejora. En este caso solo tendrías que instalar el GNU/Linux y acceder a el como si fuera una aplicación dentro del sistema. En ella instalarías las librerías y ejecutarías el código. 

Como puedes ver, existen múltiples alternativas y estrategias posibles para ejecutar los programas desarrollados, si bien en la mayoría se requiere que el usuario adquiera nuevos conocimientos, justo nuestro propósito. Sigue, por tanto, la que creas más conveniente, investiga, prueba y testea. Para dudas que se vayan produciendo iremos ampliando instrucciones.