geografías, sistemas y más

Año: 2023

Word Cloud con Python

Algunas pruebas realizadas para hacer una nube de texto. Para éstos ejemplos utilicé la última circular del Congreso Nacional de Geografía de Universidades Públicas. El principal objetivo de ésto fue practicar un poco de DataViz con Python tratando de ver cuales eran las palabras más frecuentes en los títulos de las ponencias .

Cómo todo trabajo con Datos, la parte más dura es la de limpieza. En este caso, se intentó quitar de la circular la mayor cantidad de texto que meta ruido. Luego de ésto, se realizó un listado de stopwords que se fue depurando a medida que se realizaban las imágenes.

El repositorio se encuentra acá para utilizar tanto el texto cómo el notebook.

Algunas de las imágenes generadas:

wordcloud = WordCloud(width=800, height=400, relative_scaling=0.5,
                     background_color="black",
              max_font_size = 42, min_font_size = 6,
              colormap = "tab20c",
              #max_words = 3,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total).generate(text)

# Muestra la WordCloud con matplotlib
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')

plt.title("Nube Dark", fontsize=16, color="#ff7f0e")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/wordDark.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()


mask = np.array(Image.open("/content/drive/MyDrive/datasets_colab/argentina.jpg"))

wc = WordCloud(height=300, width=300, background_color="black", repeat=True,
              mask=mask,
              max_font_size=42, min_font_size=6,
              colormap="tab20c",
              stopwords=stopwords_total)
wc.generate(text)

plt.figure(figsize=(20, 10))
plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube Argentina Dark", fontsize=16, color="#ff7f0e")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/wordArgDark1.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()
#Forma Imagen
mask = np.array(Image.open("/content/drive/MyDrive/datasets_colab/argentina.jpg"))

wc = WordCloud(height = 300, width = 300, background_color="white", repeat=True,
              mask=mask,
              max_font_size = 42, min_font_size = 6,
              #colormap = "magma",
              #max_words = 3,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total)
wc.generate(text)


plt.figure(figsize=(20, 10))


plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube Argentina", fontsize=16, color="#440154")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/argentina.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()
#Forma de Circulo
x, y = np.ogrid[:300, :300]
mask = (x - 150) ** 2 + (y - 150) ** 2 > 130 ** 2
mask = 255 * mask.astype(int)


wc = WordCloud(height = 300, width = 300, background_color="white", repeat=True,
              mask=mask,
              max_font_size = 42, min_font_size = 6,
              #colormap = "magma",
              max_words = 20,
              #contour_width = .1, contour_color = "grey",
              stopwords = stopwords_total)
wc.generate(text)


plt.figure(figsize=(6, 6))
plt.axis("off")
plt.imshow(wc, interpolation="bilinear")

plt.title("Nube con stopwords - 20 palabras", fontsize=12, color="#440154")

# Guarda la figura antes de mostrarla
plt.savefig('/content/drive/MyDrive/datasets_colab/imagenes/circulo20.jpg', bbox_inches='tight', dpi=75)

# Muestra la figura después de guardarla
plt.show()

¿cómo restaurar un USB con una imagen booteable de gnu-linux?

Al instalar un sistema GNU-Linux desde un pendrive notamos que luego de tener la instalación terminada; cuando queremos volver a utilizar nuestro USB para almacenamiento de archivos notamos que éste no tiene espacio. En general lo que va a suceder es que el pendrive va a detectar dos particiones: una con los archivos del sistema y otra partición con muy poco espacio.

Lo que sucede con esto, es que al momento de quemar la imagen y hacerla booteable le cambiamos el formato al pendrive. Los pasos a seguir para restaurarlo desde GNU Linux son muy sencillos:

  1. Desde la terminal, vamos a acceder con permisos root:
sudo su
Con esto vamos a trabajar cómo usuario root. Te va a pedir la contraseña
  1. Vamos a listar las diferentes particiones que tiene la PC (tanto en los discos ŕigidos cómo también en los dispositivos enchufados). En este ejemplo, vemos que el dispositivo con almacenamiento de 7.46 gb es el pendrive que está en /dev/sda
fdisk -l

OJO! Si no estás seguro de cual es podes desconectar el pendrive y volver a poner el comando fdisk -l . De ésta forma chequeas si efectivamente las particiones que aparecian eran las del pendrive o no.

  1. Vamos a seleccionar la partición que reformatearemos. En nuestro caso es la partición /dev/sda
fdisk /dev/sda

Luego de escribir esto, sale una advertencia bastante intimidante:

Achtung!!!!, la podes cagar! tene cuidado lo que tocas acá!

  1. Luego de esto vamos a eliminar partición por partición del pendrive. En este caso eran 4 pero probablemente en tu pendrive sean 2. Usamos el comando d, tocamos enter y luego el número de la partición
d
1

  1. Vamos a crear una nueva partición. Va a ser la partición 1 y le vamos a asignar un espacio de inicio y otro de fin. Si nuestro pendrive solo va a tener una partición, cuando pregunte «First Sector» tocamos enter y luego cuando pregunte «Last Sector» hacemos lo mismo. Con el comando w escribimos los cambios
p 
1


w
  1. Desmontamos la partición y a partir de ésto le damos el formato. Primero escribimos
umount /dev/sda1

mkfs.vfat -F 32 -n USB /dev/sda1 -I

Esto fue todo amigues!

Sintetizando (cada línea es un enter). Tene cuidado de ver si el pendrive en cuestión es sda o sdb, sdc, etc….

sudo su
fdisk -l
fdisk /dev/sda
d
1
d
2
d
3
d
4
p 
1


w
umount /dev/sda1
mkfs.vfat -F 32 -n USB /dev/sda1 -I

Instalación de Geoserver

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á
  • Luego tenes que descargar Geoserver desde acá

Instalación en Windows vía docker

La documentación oficial está aquí

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.

La documentación oficial está aquí

En una terminal (ctrl+ alt + t) escribir:

docker pull docker.osgeo.org/geoserver:2.24.x

alt_text

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.

Podes consultar la documentación oficial


Desde una máquina virtual

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 )

  1. Seleccionas el archivo .*iso descargado de https://live.osgeo.org/es/
  2. Seleccionas el Pendrive
  3. Tocas flash
  4. Reinicias y tenes que seleccionar desde el BIOS que bootee primero el USB

Si en algún momento necesitas volver a restaurar tu usb, seguí éstos pasos : https://www.pendrivelinux.com/restoring-your-usb-key-partition/#DiskPart_Has_Encountered_an_Error

¿Cómo arrancar Geoserver?

Si éstos métodos no te sirven podes guiarte por la documentación oficial en este link

Probando Kubuntu y Debian 12 en Lenovo 2 en 1

Mucha agua pasó por el puente desde la primera vez que instalé Debian 11.  Si bien la experiencia fue muy buena, cuando tenes las particiones de disco ordenadas, la tentación de ir probando nuevos distros y sabores es grande. Sumado a que tuve la suerte de comprarme una nueva notebook;  eso abrió el debate de que distro usar para una Lenovo 2 en 1 (pantalla táctil y esas cosas) con Windows

Ubuntu + GNOME

La primera prueba que hice fue instalar un Ubuntu con GNOME. La elección tenía más que ver con que estaba corto de tiempo y entendía que podía ser la distro que le tenga que poner menos mano. La experiencia fue muy buena: anduvo todo de 10 desde el primer momento: pantalla táctil, rotación, lapiz, teclado en pantalla. El único elemento que no anduvo fue el lector de huella lo cual según algunos foros de internet tiene que ver con la encriptación que tiene ese driver sumado a la cuestión de seguridad (que se yo…). El tema con GNOME es que no me resulta práctico así cómo viene. Si bien se puede configurar con GNOME Tweaks no me convence. Lo principal es el tema de cómo manejar las diferentes cosas que uno va abriendo en el sistema (navegadores, editores, GIS, fotos, etc). Suelo tener mil cosas funcionando al mismo tiempo y lo que necesito de la interfaz es algo bien conservador: abajo/arriba en donde pueda ir viendo todas las cosas que están abiertas (no depender de Alt + Tab) y algún cosa extra cómo el menú de inicio, la hora, etc. Que no se mal entienda. Me parece muy bueno el trabajo de diseño que lleva adelante GNOME pero en ésto tengo el chip «windows». De todos modos, no faltó oportunidad de probar configuraciones que fueron compartiendo otros usuarios, simular un estilo tipo MAC, etc.

Ubuntu Mate + Kubuntu

Después de ésto decidí instalar Mate en el mismo sistema ya que en general me gusta la estética simplona que tiene, la gestión de ventanas, etc. El punto fue que el GNOME Tweaks tenía mucha mano encima y había algunas cosas que me parecia que no estaban andando bien.  A su vez, había un poco de quilombo en la Sources List, entonces decidí que era tiempo de empezar de 0. El sistema elegido fue Kubuntu (un Ubuntu + KDE que ya viene de fábrica). Éste sistema lo tuve varios meses. No le instalé GNOME porque la realidad es que la funcionalidades de tablet y rotación de pantalla automática no las uso (para la próxima compra de notebook evitar ésto que para el uso que le doy es al pedo)

¿Que pasó con Kubuntu? La verdad no recuerdo bien, Lo que más me gusta de Kubuntu son los chiches (widgets) que trae para poner en el escritorio. Por otro lado, hay una boludes que no me gusta del gestor de ventanas que es cómo buscar un archivo o escribir un path. En ese entonces, estaba haciendo pruebas de procesamientos pesados y estaba bastante pelado el sistema. Es decir, no estaba usando ningún tipo de widget. Sumado a esto, sale la nueva versión de Debian. Debian 12 Bookworm

Debian 12 Bookworm

Elegí instalar Debian 12 con Cinnamon. Nunca había usado este sabor porque lo veía muy parecido a Mate y en líneas generales poco atractivo. Sin embargo, le dimos una oportunidad. La instalación de Debian no tuvo ninguna dificultad. El instalador es un instalador normal sin ninguna historia (creo que es calamares pero no estoy seguro – esto paso hace unos meses).

En cuanto a la estética y lo que ofrece Cinammon todo simple pero muy funcional

Algunos detalles que me gustaron de está versión:

  • atajos en la consola: no es que las otras Distros no lo tengan pero si me ha pasado en algún Debian que tenía que configurar aparte para que se genere el autocompletado con TAB
  • atajos de teclado: lo mismo que antes. Los atajos que más uso ya vienen configurados. En Kubuntu ésto lo tuve que hacer aparte
  • atajos en los bordes de pantalla: es un chiche pero para cambiar de espacio de trabajo o minimizar todo me sirve
  • panel de inicio: tiene todo lo que necesito, organización temática, buscador con teclado
  • buscador al escribir cualquier letra en el gestor de ventanas

En cuanto al funcionamiento, nada malo para decir. Todo lo que esperaba de Debian, velocidad y estabilidad. Al menos en los programas que uso.

Una de las cosas que fui aprendiendo con el tiempo, además de tener ordenadas las particiones para poder empezar de cero sin perder información, es a sistematizar la instalación de los programas que uso. La realidad es que los programas que tengo que instalar no son muchos y son siempre los mismos: QGIS, R (R Studio y toda la bola), algún idle de Python, Grass, Saga, GDAL, Docker VS Codium,  Chromium, Blender, Inkscape, y algún que otro programa. Si bien no tengo un archivo bash al 100% casi que ya está sistematizada la instalación de las cosas que voy usando, las dependencias, etc. Si quieren chusmear, pueden acceder desde acá . La idea es en algún momento ir documentando mejor y armar bien el bash para que éste 100% automatizado. Por lo pronto, así cómo está me sirve para no olvidarme de nada aunque lo vaya haciendo manualmente.

Por último, también tengo instalada una versión de GNOME en éste Debian 12. La verdad que no la uso nunca, pero la instalé porque quería probar cómo andaba con el tema del modo Tablet, Lapiz, Rotación etc. El funcionamiento es óptimo nada para decir. Solo que el 99% del tiempo uso Cinammon.

A modo de cierre, uno no sabe cuando va a cambiar de Distro y Sabor pero tanto Kubuntu cómo Debian 12 Cinammon están muy bien para probar y para darle uso todos los días.