¿Cómo crear un meteograma animado en Python?

El meteograma también se conoce como Meteorograma, que es una representación gráfica de una o más variables meteorológicas con respecto al tiempo, ya sea observadas o pronosticadas para una ubicación en particular.  

Estructura del meteograma

En Meteogram, el tiempo se representa a lo largo del eje X, mientras que los valores de los diferentes parámetros meteorológicos se representan a lo largo del eje Y. Los parámetros meteorológicos más comunes son la precipitación, la temperatura, la presión del aire, la nubosidad, la velocidad del viento y la dirección del viento. 

Cada marco contiene un meteograma de 5 días, cada uno con diferentes gráficos basados ​​en parámetros meteorológicos como:

  • Pictogramas de temperatura que también mostrarán el tiempo desde el amanecer hasta el atardecer,
  • Cobertura de nubes con diferentes altitudes
  • El pronóstico de la velocidad del viento mostrará en qué dirección viajan los vientos.

Crear un meteograma animado

Antes de comenzar a crear Meteogram, debe registrarse en el sitio web de Meteoblue y suscribirse al boletín sobre su Geolocalización. Para obtener algunos meteogramas de su ubicación preferida, tardará unos días en proporcionarle el meteograma. Luego, esperamos unos días para obtener meteogramas de casi 7 u 8 días de la geolocalización y descargamos los archivos adjuntos de los meteogramas una vez que los recibimos por correo electrónico. Aquí, en este caso, hemos recopilado alrededor de 9 meteogramas y hemos creado una animación de los meteogramas.

Módulos necesarios

El uso de la biblioteca imageio para crear meteogramas animados tiene varias funciones que nos permiten leer y escribir una amplia gama de datos de imágenes, incluidas imágenes animadas. La biblioteca se puede instalar usando el comando pip. 

Pathlib es un módulo en Python que proporciona una API de objetos para trabajar con archivos y directorios.

imageio
pathlib

En nuestro kernel, importa los meteogramas en la carpeta o directorio y dale el título a la carpeta de tu elección. Aquí, el título es «Meteograma». La biblioteca imageio admite todo tipo de formatos de imagen. Para leer todas las imágenes almacenadas en la carpeta/directorio, ejecute el siguiente comando usando el método imread() que se usa para crear una array NumPy para todas las imágenes con valores RGBA, luego los meteogramas se almacenan en la lista image_list. 

Animar el meteograma almacenando los archivos adjuntos del meteograma de muestra en un directorio y nombrando la carpeta como Meteogram , luego usando el paquete imageio animate o creando un GIF para los archivos adjuntos/imágenes almacenados dentro del directorio. Aquí, importamos la biblioteca imageio y el módulo pathlib y luego verificamos las rutas de las imágenes, es decir, image_path que están almacenadas en el correo electrónico. 

  • image_path.glob(‘*.png’): glob es el patrón dado en el directorio ‘source_images’ representado por esta ruta, produce todos los archivos coincidentes de cualquier tipo. * este patrón significa que es un globbing recursivo.

Sintaxis: Path.glob(patrón)

  • imageio.imread(file_name): Para leer una imagen de un URI específico, tenemos que usar el método imageio.imread(). Luego, esta imagen se agrega a image_list, que luego se usa para escribir magos para animar la imagen (Meteograma)

Sintaxis: imageio.imread(“nombre de archivo o ruta”)

Parámetro-

filename/path: ruta absoluta o relativa del archivo de imagen.

Devoluciones: array numpy que viene con un dict de metadatos en su metaatributo.

Código:

Python3

# importing path library from pathlib package
from pathlib import Path
  
# extracting meteograms by specifying
# path of the folder
image_path = Path('../input/meteogram')
  
# images from folder is stored in image_list
images = list(image_path.glob('*.png'))
image_list = []
for file_name in images:
    
  # imread() creating numpy array
  # of every image stored in image_list
    image_list.append(imageio.imread(file_name))

 

El comando image_list mostrará los datos en forma de arrays para cada meteograma. Ahora, al proceder a crear un meteograma animado, use el método mimwrite() después de esto, el meteograma animado se guardará en el directorio especificado por usted y está en formato .gif. 

imageio.mimwrite(): el uso de esta función escribirá imágenes en un archivo específico. animation_meteogram.gif tomado de image_list

Sintaxis: imageio.mimwrite(uri, ims, format=None, **kwargs)

Parámetro:

uri: un nombre de archivo u objeto de archivo. ImageIO escribirá algunas imágenes en este archivo (p. ej.: animation_from_images.gif )

ims: una lista de datos de imagen. Cada dato de imagen que puede leer con la función imageio.imread()

format: El formato de uri, puede ser .png, .gif, etc.

Código:

Python3

imageio.mimwrite('animated_meteogram.gif', image_list)

 

Después de ejecutar el código anterior, se creará la animación del meteograma y la salida se guardará en el directorio raíz con el nombre de animation_meteogram.gif , que luego animará el meteograma. 

A continuación se muestra la implementación completa de Python:

Python3

# Import imageio packages
# Generate GIF/animation of meteogram
import imageio
from pathlib import Path
  
  
image_path = Path('../input/meteogram')
images = list(image_path.glob('*.png'))
  
# create an array to
# store meteogram images
image_list = []
for file_name in images:
    image_list.append(imageio.imread(file_name))
  
# to verify all images are read
image_list
  
# using this function will write images to a
# specified file animated_meteogram.gif
imageio.mimwrite('animated_meteogram.gif', image_list)

Producción:

Ahora ejecutemos el programa Python que hemos escrito y este mostrará la animación del Meteograma que recopilamos al extraer los archivos adjuntos del correo electrónico. En el siguiente video podemos ver que se crea un archivo GIF que es el Meteograma animado como se ejecutó anteriormente.

Publicación traducida automáticamente

Artículo escrito por sindhu20 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *