Skip to content

Descarga información meteorologica del Servicio Meterológico Nacional Argentino

License

Notifications You must be signed in to change notification settings

igarreta/smn_data

Repository files navigation

smn_data : Programa de Python que descarga información meteorologica del Servicio Meterológico Nacional Argentino (tiempo presente y pronóstico)

Crea dos clases para acceder al tiempo presente y pronósticos

1) Instalación:

Requiere python (>= 3.7), pip y el módulo requests

Supone que el sistema responde a datetime.datetime.now(datetime.timezone.utc) con la hora UTC

pip install requests

1.A) Con git

  • 1.A.1). En el directorio del proyecto ejecutar:
git submodule add https://github.com/igarreta/smn_data.git
  • 1.A.2) Se puede usar como módulos python (usar la alternativa que corresponda):
from smn_data import SMN_Tiepre, SMN_pron
from smn_data.smn_data import SMN_Tiepre, SMN_pron

1.B). Copiar el código e instalarlo en el proyecto

2) Ejemplos:

tiepre = SMN_Tiepre()
print(tiepre.lista_ciudades())
print(tiepre.get_datos_ciudad('Buenos Aires'))

pron = SMN_Pron()
print(pron.lista_ciudades())
print(tiepre.get_datos_ciudad('BUENOS_AIRES'))
print(tiepre.get_datos_pronostico('Buenos Aires', plazo = 3))

3) Documentación:

3.A) Clase SMN_Tiepre(ciudad : str = 'Buenos Aires', frecuencia_actualizacion : int = 3)

Clase para obtener datos presentes del Servicio Meteorológico Nacional

Parámetros:

  • ciudad:str = nombre de la ciudad por defecto (Buenos Aires)
  • frecuencia_actualización:int = frecuencia con la que se deben actualizar los datos en horas. Si es igual a 0, se actualiza solo manualmente (valor por defecto 3 horas)

3.A.1) lista_ciudades(self) -> list[str]:

  • Salida: lista con las ciudades disponibles

3.A.2) get_datos_ciudad(self, ciudad: str = '') -> dict:

  • Parámetro: nombre de la ciudad. Si está vacío, busca en ciudad_defecto

  • Salida:

    • Devuelve los datos de una ciudad detereminada.
    • Si no hay datos, devuelve un diccionario vacío
  • Si es una instancia de SMN_Tiepre:
    • {'estado' : estado_tiempo : str,
    • 'visibilidad_km' : visibilidad : float,
    • 'temperatura': temperatura : float,
    • 'sensacion_termica': sensacion_termica : float,
    • 'humedad': humedad : int,
    • 'viento_dir': viento_dir : int,
    • 'viento_km' : viento_vel : int,
    • 'presion' : presion : float}

3.B) Clase SMN_Pron(ciudad : str = 'BUENOS_AIRES', frecuencia_actualizacion : int = 12))

Clase para obtener datos pronosticados del Servicio Meteorológico Nacional

  • Parámetros:
    • ciudad:str = nombre de la ciudad por defecto (BUENOS_AIRES)
    • frecuencia_actualización:int = frecuencia con la que se deben actualizar los datos en horas. Si es igual a 0, se actualiza solo manualmente (12 horas)

3.B.1) lista_ciudades(self) -> list[str]:

  • Salida: lista con las ciudades disponibles

3.B.2) get_datos_ciudad(self, ciudad: str = '') -> dict:

  • Parámetro: nombre de la ciudad. Si está vacío, busca en ciudad_defecto

Salida:

  • Devuelve los datos de una ciudad detereminada.
  • Si no hay datos, devuelve un diccionario vacío
  • Formato salida:
    • {fecha_iso: {'temperatura': temp,
    • 'viento_dir' : viento_dir,
    • 'viento_vel' : viento_vel,
    • 'precipitaciones': precip }
    • ...}

3.B.3) get_datos_pronostico(self, ciudad: str = '', ano: int = 0, mes: int = 0, dia: int = 0, hora:int = 0, * , plazo: int = 3 ) -> dict:

  • Parámetros:
    • ciudad: nombre de la ciudad. Si está vació, busca en ciudad_defecto
    • ano, dia, mes, hora: momento del que se quiere saber el pronostico
    • plazo: cantidad de horas desde ahora para las que se quiere conocer el pronostico (3 horas por defecto). Se calcula si ano, mes o dia == 0.
    • hora_dia: hora del día para la que se quiere conocer el pronóstico (si ==0, usa plazo)
    • Usa la hora oficial argentina (UTC -3)

*Salida:

  • { temperatura': temp,
  • 'viento_dir' : viento_dir,
  • 'viento_vel' : viento_vel,
  • 'precipitaciones': precip }
  • Si no tiene datos para esa ciudad o momento, devuelve diccionario vacío.

4) Fuentes

Me basé en un programa publicado por skb10x en el siguiente foro: https://foro.gustfront.com.ar/viewtopic.php?t=5252&sid=ffc62af2b565324a14703b7dc632a266&start=60

About

Descarga información meteorologica del Servicio Meterológico Nacional Argentino

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published