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
pip install requests
- 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
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))
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)
- Salida: lista con las ciudades disponibles
-
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}
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)
- Salida: lista con las ciudades disponibles
- 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.
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