domingo, 1 de diciembre de 2019

Introducción a Cartopy


Cartopy es una librería de Python que permite mostrar mapas de todas las partes del mundo con distintos niveles de detalle y en diferentes sistemas de coordenadas. En este post presentaremos muy por encima esta herramienta y mostraremos resultados sencillos que se pueden obtener con unas pocas líneas de código.

Preparativos

Para usar esta librería os recomiendo hacer lo siguiente:
  • Crear un nuevo entorno virtual en Anaconda para instalar los paquetes que se requieren (opcional).
  • Instalar Cartopy con el comando: conda install -c conda-forge cartopy
  • Instalar nb_conda con el comando: conda install nb_conda para usar Jupyter Notebook.

Importación de librerías

Para mostrar los mapas, vamos a necesitar Matplotlib y Cartopy:


¡Descubriendo América!

Vamos a visualizar el mapa de EEUU con características muy concretas. Queremos:
  • Que se muestre el suelo.
  • Que se muestre el océano alrededor.
  • Que se resalte la línea de costa.
  • Que añada un borde punteado entre los países.
  • Que se muestren los lagos.
El código que hace esto es:



El método add_feature es lo que nos permite incluir los detalles de nuestro mapa. Os dejo el siguiente enlace donde podréis encontrar otras características que se pueden añadir de esta forma: link. El resultado que se obtiene es:



En cartopy.feature tenemos algunas características que podemos añadir simplemente con llamar a una constante como hemos hecho antes pero, estas características son muy limitadas y simples. Podemos personalizar los mapas entrando más a fondo en cartopy.feature y llamando a alguno de sus métodos de diseño. Por ejemplo, vamos a mostrar las divisiones entre estados de EEUU. Al código anterior le tenemos que añadir:



Hemos decidido separar los estados con líneas punteadas ('dotted') de color negro. Los resultados que hemos obtenido son:



Podemos también centrarnos en una región en concreto para estudiarla, es decir, hacer un zoom en el mapa. Vamos a hacerlo pero debemos tener en cuenta que nuestro mapa tiene muy poco detalle, así que, lo que veremos será la separación entre los estados. Lo que debemos hacer es usar el método set_extent con una ventana más pequeña manteniendo el tamaño del figure. Por ejemplo:




Hemos incluido una malla que va a extenderse por todo nuestro mapa. El resultado que se obtiene es:



Estos mapas que estamos mostrando no dejan de ser gráficos sobre ventanas tipo figure de la librería Matplotlib, así que, podemos pintar sobre ellos lo que queramos: puntos, líneas, áreas... Para ilustrar esto, vamos a pintar un punto encima. Lo único que tenemos que añadir es:


Los parámetros que se usan son:
  • Los valores de longitud y latitud del punto.
  • El sistema de coordenadas.
  • La forma que debe tener el punto ('marker'). En este caso una estrella '*'.
  • El tamaño del punto ('s' de 'size'). En este caso 400.
  • El color del punto ('c' de 'color'). En este caso 'y' de 'yellow'.
El resultado que se obtiene es:



Como se puede ver, Cartopy es una librería que permite dibujar mapas muy rápidamente y que puede ser muy útil para estudios geográficos, meteorológicos, climáticos... Si queréis tener más información sobre la librería, os recomiendo visitar la documentación oficial en el siguiente link: click aquí.

Un saludo!

No hay comentarios:

Publicar un comentario

Teoría de Redes Complejas (Parte 1). Conceptos básicos

Para continuar con nuestro proyecto vamos a hacer un estudio aplicando teoría de grafos y de redes complejas con el objetivo de demostrar...