Microprojet¶

  • Utiliser les modules de la bibliothèque standard pour récupérer des données via un service web.
  • Manipuler les dictionnaires et les chaînes de caractères
  • Utiliser la bibliothèque de tracés graphiques matplotlib
  • Utiliser un IDE (Spyder)
  • Exécuter un fichier script en gérant les arguments de la ligne de commande

Exercice¶

Exploiter les données du site https://www.prevision-meteo.ch pour tracer l'évolution horaire de la température à Strasbourg aujourd'hui.

Ouverture du fichier de prévisions¶

Le site https://www.prevision-meteo.ch fournit des prévisions sous forme de fichier au format json. On veut récupérer les données relatives à Strasbourg avec la méthode urlopen() du module urllib.request.

In [1]:
%config InlineBackend.figure_format = 'retina'
%matplotlib inline
from urllib.request import urlopen

jsonfile_url = "https://www.prevision-meteo.ch/services/json/Strasbourg"
try:
    f = urlopen(jsonfile_url, timeout=10)  # open url
except Exception as e:
    print(f"Erreur: {e}")
    print("Le téléchargement a échoué : on lit une version locale.")
    f = open("exos/Strasbourg.json")

Chargement du fichier json ouvert¶

La méthode json.loads() permet de charger un fichier json comme un dictionnaire python :

In [2]:
import json
jsondict = json.loads(f.read())  # Read JSON file

Exploration des données¶

On commence naïvement par afficher le contenu du fichier :

In [3]:
print(type(jsondict))
print(jsondict)
<class 'dict'>
{'city_info': {'name': 'Strasbourg', 'country': 'France', 'latitude': '48.5844421', 'longitude': '7.7558331', 'elevation': '144', 'sunrise': '08:05', 'sunset': '16:35'}, 'forecast_info': {'latitude': None, 'longitude': None, 'elevation': '136.9'}, 'current_condition': {'date': '08.12.2023', 'hour': '18:00', 'tmp': 7, 'wnd_spd': 8, 'wnd_gust': 0, 'wnd_dir': 'SO', 'pressure': 1010.1, 'humidity': 96, 'condition': 'Nuit claire', 'condition_key': 'nuit-claire', 'icon': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/nuit-claire-big.png'}, 'fcst_day_0': {'date': '08.12.2023', 'day_short': 'Ven.', 'day_long': 'Vendredi', 'tmin': 1, 'tmax': 8, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 1.3, 'DPT2m': -273.2, 'WNDCHILL2m': -0.1, 'HUMIDEX': None, 'RH2m': 70, 'PRMSL': 1009.3, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 176, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '91.50', 'HGT0C': 1900, 'KINDEX': 17, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 1.8, 'DPT2m': -273.2, 'WNDCHILL2m': -0.9, 'HUMIDEX': None, 'RH2m': 70, 'PRMSL': 1008.9, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '33.30', 'HGT0C': 1900, 'KINDEX': 13, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 2.5, 'DPT2m': -273.2, 'WNDCHILL2m': -0.8, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1008.6, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 171, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '99.90', 'LCDC': '99.90', 'HGT0C': 2200, 'KINDEX': 20, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1008.3, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 184, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '98.60', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 24, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 3.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1008.3, 'APCPsfc': 0.9, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 183, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '96.20', 'LCDC': '99.60', 'HGT0C': 1800, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 3.7, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1007.2, 'APCPsfc': 0.8, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 172, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '76.20', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1005.7, 'APCPsfc': 0.2, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 185, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '5.90', 'LCDC': '37.30', 'HGT0C': 1600, 'KINDEX': 22, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1005.7, 'APCPsfc': 1.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.50', 'LCDC': '3.80', 'HGT0C': 1600, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 4.4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006, 'APCPsfc': 1, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '75.00', 'MCDC': '0.00', 'LCDC': '70.90', 'HGT0C': 1700, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 4.8, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006, 'APCPsfc': 1.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 199, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '85.10', 'MCDC': '0.00', 'LCDC': '8.70', 'HGT0C': 1700, 'KINDEX': 30, 'CAPE180_0': '13.008', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 5.3, 'DPT2m': -273.2, 'WNDCHILL2m': 2.1, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006, 'APCPsfc': 1, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '42.80', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1700, 'KINDEX': 32, 'CAPE180_0': '2.000', 'CIN180_0': -3}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 5.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.2, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006.6, 'APCPsfc': 0.4, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '17.00', 'MCDC': '0.00', 'LCDC': '10.90', 'HGT0C': 1600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 6.5, 'DPT2m': -273.2, 'WNDCHILL2m': 4.5, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1006.7, 'APCPsfc': 0.1, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 209, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '20.60', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1600, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1006.5, 'APCPsfc': 0.1, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 234, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.60', 'MCDC': '0.00', 'LCDC': '5.20', 'HGT0C': 1400, 'KINDEX': 35, 'CAPE180_0': '19.008', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 7.1, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1007.3, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 261, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '15.60', 'HGT0C': 1600, 'KINDEX': 37, 'CAPE180_0': '6.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faibles-passages-nuageux.png', 'CONDITION': 'Faibles passages nuageux', 'CONDITION_KEY': 'faibles-passages-nuageux', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 6.9, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1007.9, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 275, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.30', 'HGT0C': 1700, 'KINDEX': 41, 'CAPE180_0': '5.008', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 7.8, 'DPT2m': -273.2, 'WNDCHILL2m': 6.9, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 225, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.00', 'HGT0C': 1600, 'KINDEX': 44, 'CAPE180_0': '4.000', 'CIN180_0': -4}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 6, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1008.8, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 217, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 46, 'CAPE180_0': '5.008', 'CIN180_0': -2}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.8, 'DPT2m': -273.2, 'WNDCHILL2m': 5.2, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1010.1, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 230, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.80', 'HGT0C': 1500, 'KINDEX': 44, 'CAPE180_0': '4.000', 'CIN180_0': -1}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 6.3, 'DPT2m': -273.2, 'WNDCHILL2m': 4.2, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1010.6, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 209, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '11.10', 'HGT0C': 1400, 'KINDEX': 42, 'CAPE180_0': '14.000', 'CIN180_0': -2}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.3, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1011.4, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '3.00', 'HGT0C': 1300, 'KINDEX': 40, 'CAPE180_0': '20.000', 'CIN180_0': -1}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.1, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1012.2, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 204, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '6.80', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1300, 'KINDEX': 38, 'CAPE180_0': '22.000', 'CIN180_0': -1}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 5.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.7, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 210, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '4.80', 'HGT0C': 1200, 'KINDEX': 37, 'CAPE180_0': '10.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 4.9, 'DPT2m': -273.2, 'WNDCHILL2m': 2.8, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1013.1, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 228, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '3.30', 'LCDC': '52.20', 'HGT0C': 1300, 'KINDEX': 37, 'CAPE180_0': '0.000', 'CIN180_0': -1}}}, 'fcst_day_1': {'date': '09.12.2023', 'day_short': 'Sam.', 'day_long': 'Samedi', 'tmin': 3, 'tmax': 9, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 2.5, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1013.8, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 223, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '31.90', 'HGT0C': 1200, 'KINDEX': 38, 'CAPE180_0': '9.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 3, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1014, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 212, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.30', 'HGT0C': 1200, 'KINDEX': 39, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 3.9, 'DPT2m': -273.2, 'WNDCHILL2m': 1.3, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1014.1, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1200, 'KINDEX': 40, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 3.6, 'DPT2m': -273.2, 'WNDCHILL2m': 0.2, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1100, 'KINDEX': 41, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.5, 'DPT2m': -273.2, 'WNDCHILL2m': 0.4, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1014.8, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '67.00', 'MCDC': '61.50', 'LCDC': '7.50', 'HGT0C': 1000, 'KINDEX': 40, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.1, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1015.1, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 195, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '2.50', 'MCDC': '56.50', 'LCDC': '24.60', 'HGT0C': 1000, 'KINDEX': 40, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.7, 'DPT2m': -273.2, 'WNDCHILL2m': 0.7, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1015, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 197, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '69.50', 'MCDC': '85.10', 'LCDC': '82.10', 'HGT0C': 1100, 'KINDEX': 39, 'CAPE180_0': '8.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1014.4, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 191, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '93.50', 'HGT0C': 1000, 'KINDEX': 37, 'CAPE180_0': '6.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.2, 'DPT2m': -273.2, 'WNDCHILL2m': -0.5, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1014, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 196, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '100.00', 'HGT0C': 1000, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 3, 'DPT2m': -273.2, 'WNDCHILL2m': 0, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1013.7, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 204, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.40', 'MCDC': '100.00', 'LCDC': '99.80', 'HGT0C': 1200, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 4.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1012.8, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 199, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '1.30', 'MCDC': '100.00', 'LCDC': '99.70', 'HGT0C': 1300, 'KINDEX': 31, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 6.2, 'DPT2m': -273.2, 'WNDCHILL2m': 3, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1012, 'APCPsfc': 0, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '0.00', 'HGT0C': 1400, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 4.1, 'HUMIDEX': None, 'RH2m': 78, 'PRMSL': 1010.3, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 193, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '99.90', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 7.6, 'DPT2m': -273.2, 'WNDCHILL2m': 4.5, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1008.8, 'APCPsfc': 0, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 192, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '99.00', 'HGT0C': 1500, 'KINDEX': 19, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 7.6, 'DPT2m': -273.2, 'WNDCHILL2m': 4.7, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1008, 'APCPsfc': 0, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 191, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '99.20', 'HGT0C': 1400, 'KINDEX': 18, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 6.8, 'DPT2m': -273.2, 'WNDCHILL2m': 3.5, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1005.8, 'APCPsfc': 1, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 183, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '11.80', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 22, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 6.4, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1004.2, 'APCPsfc': 1.3, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 179, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '36.00', 'LCDC': '99.90', 'HGT0C': 2100, 'KINDEX': 22, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-forte.png', 'CONDITION': 'Pluie forte', 'CONDITION_KEY': 'pluie-forte', 'TMP2m': 6.1, 'DPT2m': -273.2, 'WNDCHILL2m': 2.2, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1002.5, 'APCPsfc': 4.8, 'WNDSPD10m': 22, 'WNDGUST10m': 0, 'WNDDIR10m': 182, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '6.50', 'LCDC': '99.00', 'HGT0C': 2300, 'KINDEX': 22, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 6.4, 'DPT2m': -273.2, 'WNDCHILL2m': 2.6, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1001.6, 'APCPsfc': 0.7, 'WNDSPD10m': 22, 'WNDGUST10m': 0, 'WNDDIR10m': 198, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2400, 'KINDEX': 27, 'CAPE180_0': '7.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 6.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.5, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1000.9, 'APCPsfc': 0.9, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 198, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2400, 'KINDEX': 30, 'CAPE180_0': '35.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 7.8, 'DPT2m': -273.2, 'WNDCHILL2m': 4.7, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1000.8, 'APCPsfc': 1.2, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 213, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '8.90', 'HGT0C': 2200, 'KINDEX': 33, 'CAPE180_0': '12.000', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 8.5, 'DPT2m': -273.2, 'WNDCHILL2m': 5.5, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1001.9, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 227, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '11.40', 'HGT0C': 2000, 'KINDEX': 37, 'CAPE180_0': '5.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 8.8, 'DPT2m': -273.2, 'WNDCHILL2m': 5.6, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1002.6, 'APCPsfc': 0, 'WNDSPD10m': 23, 'WNDGUST10m': 0, 'WNDDIR10m': 234, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1800, 'KINDEX': 42, 'CAPE180_0': '18.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 9.2, 'DPT2m': -273.2, 'WNDCHILL2m': 5.5, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1004.1, 'APCPsfc': 0, 'WNDSPD10m': 30, 'WNDGUST10m': 0, 'WNDDIR10m': 253, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1400, 'KINDEX': 43, 'CAPE180_0': '29.008', 'CIN180_0': -3}}}, 'fcst_day_2': {'date': '10.12.2023', 'day_short': 'Dim.', 'day_long': 'Dimanche', 'tmin': 6, 'tmax': 9, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 8.7, 'DPT2m': -273.2, 'WNDCHILL2m': 4.8, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1005, 'APCPsfc': 0, 'WNDSPD10m': 31, 'WNDGUST10m': 0, 'WNDDIR10m': 275, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.40', 'HGT0C': 1600, 'KINDEX': 45, 'CAPE180_0': '13.000', 'CIN180_0': -2}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 3.7, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1005.5, 'APCPsfc': 0, 'WNDSPD10m': 35, 'WNDGUST10m': 0, 'WNDDIR10m': 272, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1400, 'KINDEX': 47, 'CAPE180_0': '8.000', 'CIN180_0': -1}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 7.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.7, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1006.7, 'APCPsfc': 0, 'WNDSPD10m': 32, 'WNDGUST10m': 0, 'WNDDIR10m': 267, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '2.00', 'HGT0C': 1100, 'KINDEX': 47, 'CAPE180_0': '20.000', 'CIN180_0': -25}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 7.9, 'DPT2m': -273.2, 'WNDCHILL2m': 4, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1007.6, 'APCPsfc': 0, 'WNDSPD10m': 28, 'WNDGUST10m': 0, 'WNDDIR10m': 262, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '9.30', 'HGT0C': 1100, 'KINDEX': 46, 'CAPE180_0': '79.000', 'CIN180_0': -2}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 7.5, 'DPT2m': -273.2, 'WNDCHILL2m': 3.6, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1007.9, 'APCPsfc': 0, 'WNDSPD10m': 27, 'WNDGUST10m': 0, 'WNDDIR10m': 262, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '2.20', 'HGT0C': 1200, 'KINDEX': 45, 'CAPE180_0': '23.000', 'CIN180_0': -7}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 7.5, 'DPT2m': -273.2, 'WNDCHILL2m': 3.6, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1008.2, 'APCPsfc': 0, 'WNDSPD10m': 27, 'WNDGUST10m': 0, 'WNDDIR10m': 259, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '1.90', 'LCDC': '1.60', 'HGT0C': 1200, 'KINDEX': 45, 'CAPE180_0': '5.000', 'CIN180_0': -2}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 3.2, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1008.2, 'APCPsfc': 0, 'WNDSPD10m': 30, 'WNDGUST10m': 0, 'WNDDIR10m': 259, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '4.80', 'HGT0C': 1300, 'KINDEX': 47, 'CAPE180_0': '2.000', 'CIN180_0': -1}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 2.9, 'HUMIDEX': None, 'RH2m': 79, 'PRMSL': 1008.6, 'APCPsfc': 0, 'WNDSPD10m': 34, 'WNDGUST10m': 0, 'WNDDIR10m': 263, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '8.00', 'HGT0C': 1400, 'KINDEX': 46, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 7.3, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1009.2, 'APCPsfc': 0, 'WNDSPD10m': 29, 'WNDGUST10m': 0, 'WNDDIR10m': 258, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '16.00', 'HGT0C': 1200, 'KINDEX': 42, 'CAPE180_0': '4.000', 'CIN180_0': -1}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 7.6, 'DPT2m': -273.2, 'WNDCHILL2m': 3.4, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1010, 'APCPsfc': 0, 'WNDSPD10m': 30, 'WNDGUST10m': 0, 'WNDDIR10m': 257, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '5.30', 'HGT0C': 1100, 'KINDEX': 36, 'CAPE180_0': '15.000', 'CIN180_0': -1}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.4, 'DPT2m': -273.2, 'WNDCHILL2m': 4.6, 'HUMIDEX': None, 'RH2m': 76, 'PRMSL': 1010.5, 'APCPsfc': 0, 'WNDSPD10m': 29, 'WNDGUST10m': 0, 'WNDDIR10m': 256, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.10', 'LCDC': '0.00', 'HGT0C': 1100, 'KINDEX': 34, 'CAPE180_0': '30.000', 'CIN180_0': -1}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.8, 'DPT2m': -273.2, 'WNDCHILL2m': 5.2, 'HUMIDEX': None, 'RH2m': 73, 'PRMSL': 1010.9, 'APCPsfc': 0, 'WNDSPD10m': 27, 'WNDGUST10m': 0, 'WNDDIR10m': 256, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '16.60', 'LCDC': '0.00', 'HGT0C': 1100, 'KINDEX': 36, 'CAPE180_0': '38.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9, 'DPT2m': -273.2, 'WNDCHILL2m': 5.7, 'HUMIDEX': None, 'RH2m': 72, 'PRMSL': 1011.8, 'APCPsfc': 0, 'WNDSPD10m': 24, 'WNDGUST10m': 0, 'WNDDIR10m': 247, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1100, 'KINDEX': 39, 'CAPE180_0': '52.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9.3, 'DPT2m': -273.2, 'WNDCHILL2m': 6.4, 'HUMIDEX': None, 'RH2m': 72, 'PRMSL': 1012.7, 'APCPsfc': 0, 'WNDSPD10m': 21, 'WNDGUST10m': 0, 'WNDDIR10m': 237, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1200, 'KINDEX': 46, 'CAPE180_0': '59.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9.4, 'DPT2m': -273.2, 'WNDCHILL2m': 6.7, 'HUMIDEX': None, 'RH2m': 71, 'PRMSL': 1012.8, 'APCPsfc': 0, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 235, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '17.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1200, 'KINDEX': 42, 'CAPE180_0': '59.000', 'CIN180_0': -1}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9.2, 'DPT2m': -273.2, 'WNDCHILL2m': 6.6, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 223, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '69.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1200, 'KINDEX': 35, 'CAPE180_0': '46.000', 'CIN180_0': -1}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.8, 'DPT2m': -273.2, 'WNDCHILL2m': 5.9, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1012.2, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 210, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '83.60', 'MCDC': '71.00', 'LCDC': '11.70', 'HGT0C': 1300, 'KINDEX': 36, 'CAPE180_0': '37.000', 'CIN180_0': -3}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 8.5, 'DPT2m': -273.2, 'WNDCHILL2m': 5.2, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1011.9, 'APCPsfc': 0, 'WNDSPD10m': 23, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '37.40', 'MCDC': '100.00', 'LCDC': '93.80', 'HGT0C': 1300, 'KINDEX': 34, 'CAPE180_0': '25.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 4.5, 'HUMIDEX': None, 'RH2m': 83, 'PRMSL': 1011.7, 'APCPsfc': 0, 'WNDSPD10m': 27, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '47.10', 'MCDC': '35.80', 'LCDC': '99.70', 'HGT0C': 1300, 'KINDEX': 29, 'CAPE180_0': '9.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 7.1, 'DPT2m': -273.2, 'WNDCHILL2m': 3.8, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1011.2, 'APCPsfc': 0, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 206, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '93.90', 'MCDC': '80.90', 'LCDC': '39.60', 'HGT0C': 1900, 'KINDEX': 20, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 6.4, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1009.9, 'APCPsfc': 0, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '57.60', 'LCDC': '80.00', 'HGT0C': 1900, 'KINDEX': 20, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 6.7, 'DPT2m': -273.2, 'WNDCHILL2m': 3.2, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1008.2, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 193, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '76.10', 'MCDC': '100.00', 'LCDC': '99.80', 'HGT0C': 2200, 'KINDEX': 23, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 7.5, 'DPT2m': -273.2, 'WNDCHILL2m': 4.2, 'HUMIDEX': None, 'RH2m': 67, 'PRMSL': 1006.4, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 197, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '89.30', 'MCDC': '100.00', 'LCDC': '32.40', 'HGT0C': 2500, 'KINDEX': 30, 'CAPE180_0': '25.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8, 'DPT2m': -273.2, 'WNDCHILL2m': 4.3, 'HUMIDEX': None, 'RH2m': 61, 'PRMSL': 1005.2, 'APCPsfc': 0, 'WNDSPD10m': 26, 'WNDGUST10m': 0, 'WNDDIR10m': 202, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '33.00', 'HGT0C': 2300, 'KINDEX': 35, 'CAPE180_0': '21.000', 'CIN180_0': 0}}}, 'fcst_day_3': {'date': '11.12.2023', 'day_short': 'Lun.', 'day_long': 'Lundi', 'tmin': 8, 'tmax': 12, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 4.6, 'HUMIDEX': None, 'RH2m': 69, 'PRMSL': 1004.5, 'APCPsfc': 0.1, 'WNDSPD10m': 24, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '82.80', 'MCDC': '100.00', 'LCDC': '36.40', 'HGT0C': 2300, 'KINDEX': 35, 'CAPE180_0': '35.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 5.2, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1004, 'APCPsfc': 0.5, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 217, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '28.70', 'LCDC': '68.20', 'HGT0C': 2300, 'KINDEX': 34, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 8.8, 'DPT2m': -273.2, 'WNDCHILL2m': 6, 'HUMIDEX': None, 'RH2m': 88, 'PRMSL': 1003.5, 'APCPsfc': 0.1, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 212, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '82.40', 'MCDC': '0.00', 'LCDC': '2.70', 'HGT0C': 2300, 'KINDEX': 33, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9.3, 'DPT2m': -273.2, 'WNDCHILL2m': 6.5, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1003, 'APCPsfc': 0, 'WNDSPD10m': 20, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '59.70', 'MCDC': '35.20', 'LCDC': '44.40', 'HGT0C': 2200, 'KINDEX': 34, 'CAPE180_0': '8.000', 'CIN180_0': -2}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9.7, 'DPT2m': -273.2, 'WNDCHILL2m': 7.2, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1002.9, 'APCPsfc': 0, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 211, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '68.50', 'MCDC': '11.40', 'LCDC': '99.70', 'HGT0C': 2000, 'KINDEX': 35, 'CAPE180_0': '50.000', 'CIN180_0': -1}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 9.8, 'DPT2m': -273.2, 'WNDCHILL2m': 7.5, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1003, 'APCPsfc': 0, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '7.30', 'LCDC': '65.40', 'HGT0C': 2100, 'KINDEX': 36, 'CAPE180_0': '57.000', 'CIN180_0': -2}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 10.4, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1003, 'APCPsfc': 0.3, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 226, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '7.70', 'LCDC': '50.50', 'HGT0C': 2100, 'KINDEX': 38, 'CAPE180_0': '184.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 10.4, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1003.4, 'APCPsfc': 0.2, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 252, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '98.30', 'MCDC': '10.00', 'LCDC': '72.90', 'HGT0C': 2000, 'KINDEX': 38, 'CAPE180_0': '169.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 10, 'DPT2m': -273.2, 'WNDCHILL2m': 8.5, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1004.1, 'APCPsfc': 0.1, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 285, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '94.90', 'MCDC': '2.20', 'LCDC': '30.10', 'HGT0C': 1900, 'KINDEX': 35, 'CAPE180_0': '86.000', 'CIN180_0': -4}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 10.2, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1005.6, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 294, 'WNDDIRCARD10': 'NO', 'ISSNOW': 0, 'HCDC': '89.70', 'MCDC': '4.30', 'LCDC': '45.00', 'HGT0C': 1900, 'KINDEX': 39, 'CAPE180_0': '68.000', 'CIN180_0': -1}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 11, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1007.2, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '61.50', 'MCDC': '4.20', 'LCDC': '20.70', 'HGT0C': 1700, 'KINDEX': 41, 'CAPE180_0': '132.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 11.6, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1008.1, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 274, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '54.30', 'MCDC': '0.00', 'LCDC': '11.10', 'HGT0C': 1600, 'KINDEX': 38, 'CAPE180_0': '158.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 11.9, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 71, 'PRMSL': 1008.8, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 264, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '52.50', 'MCDC': '0.00', 'LCDC': '14.60', 'HGT0C': 1600, 'KINDEX': 40, 'CAPE180_0': '140.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 11.5, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1008.9, 'APCPsfc': 0.1, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 266, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '49.70', 'MCDC': '0.00', 'LCDC': '12.20', 'HGT0C': 1700, 'KINDEX': 42, 'CAPE180_0': '130.000', 'CIN180_0': -1}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 11.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 83, 'PRMSL': 1009.3, 'APCPsfc': 0.6, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 232, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '59.10', 'MCDC': '0.00', 'LCDC': '17.70', 'HGT0C': 1600, 'KINDEX': 42, 'CAPE180_0': '283.000', 'CIN180_0': -1}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 11.5, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1009.6, 'APCPsfc': 0.5, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 253, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '77.50', 'MCDC': '0.00', 'LCDC': '15.30', 'HGT0C': 1600, 'KINDEX': 41, 'CAPE180_0': '298.000', 'CIN180_0': -1}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 11.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 79, 'PRMSL': 1010, 'APCPsfc': 0.1, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 252, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '80.00', 'MCDC': '0.00', 'LCDC': '5.10', 'HGT0C': 1700, 'KINDEX': 39, 'CAPE180_0': '152.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-legerement-voilee.png', 'CONDITION': 'Nuit légèrement voilée', 'CONDITION_KEY': 'nuit-legerement-voilee', 'TMP2m': 10, 'DPT2m': -273.2, 'WNDCHILL2m': 8.5, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1010.3, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 247, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '43.50', 'MCDC': '0.00', 'LCDC': '9.30', 'HGT0C': 1600, 'KINDEX': 38, 'CAPE180_0': '116.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9.5, 'DPT2m': -273.2, 'WNDCHILL2m': 7.6, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1010.7, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 224, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '84.10', 'MCDC': '2.70', 'LCDC': '6.50', 'HGT0C': 1600, 'KINDEX': 36, 'CAPE180_0': '41.000', 'CIN180_0': -2}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 8.9, 'DPT2m': -273.2, 'WNDCHILL2m': 7, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1011.4, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 233, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '93.50', 'MCDC': '49.60', 'LCDC': '35.60', 'HGT0C': 1600, 'KINDEX': 35, 'CAPE180_0': '42.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8.8, 'DPT2m': -273.2, 'WNDCHILL2m': 7, 'HUMIDEX': None, 'RH2m': 88, 'PRMSL': 1012, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 229, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '90.90', 'MCDC': '92.60', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 36, 'CAPE180_0': '66.000', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9, 'DPT2m': -273.2, 'WNDCHILL2m': 7, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1012.5, 'APCPsfc': 0.1, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 223, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '96.10', 'LCDC': '1.20', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '44.000', 'CIN180_0': -1}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8.6, 'DPT2m': -273.2, 'WNDCHILL2m': 6.5, 'HUMIDEX': None, 'RH2m': 88, 'PRMSL': 1012.8, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 223, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '97.30', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '13.000', 'CIN180_0': -1}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 7.9, 'DPT2m': -273.2, 'WNDCHILL2m': 5.8, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1013.1, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 221, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '98.60', 'LCDC': '4.00', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}, 'fcst_day_4': {'date': '12.12.2023', 'day_short': 'Mar.', 'day_long': 'Mardi', 'tmin': 8, 'tmax': 10, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8, 'DPT2m': -273.2, 'WNDCHILL2m': 6.4, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1012.8, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 223, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '99.90', 'MCDC': '96.80', 'LCDC': '13.70', 'HGT0C': 1600, 'KINDEX': 36, 'CAPE180_0': '11.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8, 'DPT2m': -273.2, 'WNDCHILL2m': 6.7, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1012.7, 'APCPsfc': 0.1, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 203, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '87.00', 'LCDC': '95.80', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '19.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 6.4, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1012.7, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 211, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '99.90', 'LCDC': '99.80', 'HGT0C': 1600, 'KINDEX': 35, 'CAPE180_0': '17.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 6.6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1012.5, 'APCPsfc': 0.1, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 206, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '97.30', 'MCDC': '98.50', 'LCDC': '99.70', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '17.000', 'CIN180_0': 0}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 5.8, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1012.3, 'APCPsfc': 0.1, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 215, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '20.10', 'HGT0C': 1700, 'KINDEX': 35, 'CAPE180_0': '11.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 7.5, 'DPT2m': -273.2, 'WNDCHILL2m': 5, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 222, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '91.10', 'MCDC': '100.00', 'LCDC': '70.10', 'HGT0C': 1700, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 7.6, 'DPT2m': -273.2, 'WNDCHILL2m': 5.8, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 217, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '59.10', 'HGT0C': 1600, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 9.3, 'DPT2m': -273.2, 'WNDCHILL2m': 8.2, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1012.5, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 1600, 'KINDEX': 34, 'CAPE180_0': '13.008', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9.2, 'DPT2m': -273.2, 'WNDCHILL2m': 8.6, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 1500, 'KINDEX': 34, 'CAPE180_0': '12.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 9.4, 'DPT2m': -273.2, 'WNDCHILL2m': 8.5, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 186, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 1900, 'KINDEX': 34, 'CAPE180_0': '11.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 10.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1012.2, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 1900, 'KINDEX': 34, 'CAPE180_0': '9.008', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 10.7, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1012.3, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 198, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 1900, 'KINDEX': 33, 'CAPE180_0': '12.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 11.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1012, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 187, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 32, 'CAPE180_0': '11.008', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 11.3, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 88, 'PRMSL': 1011.4, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 184, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 31, 'CAPE180_0': '5.008', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 11.3, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1010.3, 'APCPsfc': 0.1, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 167, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 31, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 11.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1009.4, 'APCPsfc': 0.2, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 128, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2000, 'KINDEX': 30, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 10.7, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1009, 'APCPsfc': 0.1, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 109, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2000, 'KINDEX': 30, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 10.2, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1008.8, 'APCPsfc': 0.4, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 97, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2000, 'KINDEX': 30, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 9.9, 'DPT2m': -273.2, 'WNDCHILL2m': 8.9, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1008.5, 'APCPsfc': 2.7, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 106, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 29, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 9.8, 'DPT2m': -273.2, 'WNDCHILL2m': 8.4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1007.4, 'APCPsfc': 1.2, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 96, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 30, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 9.9, 'DPT2m': -273.2, 'WNDCHILL2m': 8.7, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006.6, 'APCPsfc': 0.4, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 121, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 100, 'KINDEX': 31, 'CAPE180_0': '7.008', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 9.9, 'DPT2m': -273.2, 'WNDCHILL2m': 8.7, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1005.9, 'APCPsfc': 1.3, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 104, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1200, 'KINDEX': 32, 'CAPE180_0': '1.008', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 9.9, 'DPT2m': -273.2, 'WNDCHILL2m': 9.1, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1005.4, 'APCPsfc': 4, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 70, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1700, 'KINDEX': 33, 'CAPE180_0': '1.008', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 10, 'DPT2m': -273.2, 'WNDCHILL2m': 9, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1004.9, 'APCPsfc': 3.5, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 53, 'WNDDIRCARD10': 'NE', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1800, 'KINDEX': 34, 'CAPE180_0': '1.008', 'CIN180_0': 0}}}}

On essaie de faire mieux en affichant uniquement les clés du dictionnaire :

In [4]:
for k in jsondict:
    print(repr(k))
'city_info'
'forecast_info'
'current_condition'
'fcst_day_0'
'fcst_day_1'
'fcst_day_2'
'fcst_day_3'
'fcst_day_4'

On est intéressé par le temps d'aujourd'hui :

In [5]:
day = jsondict['fcst_day_0']
print(day)
{'date': '08.12.2023', 'day_short': 'Ven.', 'day_long': 'Vendredi', 'tmin': 1, 'tmax': 8, 'condition': 'Eclaircies', 'condition_key': 'eclaircies', 'icon': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/eclaircies-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 1.3, 'DPT2m': -273.2, 'WNDCHILL2m': -0.1, 'HUMIDEX': None, 'RH2m': 70, 'PRMSL': 1009.3, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 176, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '91.50', 'HGT0C': 1900, 'KINDEX': 17, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 1.8, 'DPT2m': -273.2, 'WNDCHILL2m': -0.9, 'HUMIDEX': None, 'RH2m': 70, 'PRMSL': 1008.9, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '33.30', 'HGT0C': 1900, 'KINDEX': 13, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 2.5, 'DPT2m': -273.2, 'WNDCHILL2m': -0.8, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1008.6, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 171, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '99.90', 'LCDC': '99.90', 'HGT0C': 2200, 'KINDEX': 20, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1008.3, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 184, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '98.60', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 24, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 3.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1008.3, 'APCPsfc': 0.9, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 183, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '96.20', 'LCDC': '99.60', 'HGT0C': 1800, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 3.7, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1007.2, 'APCPsfc': 0.8, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 172, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '76.20', 'LCDC': '0.00', 'HGT0C': 1900, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1005.7, 'APCPsfc': 0.2, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 185, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '5.90', 'LCDC': '37.30', 'HGT0C': 1600, 'KINDEX': 22, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1005.7, 'APCPsfc': 1.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.50', 'LCDC': '3.80', 'HGT0C': 1600, 'KINDEX': 23, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 4.4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006, 'APCPsfc': 1, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '75.00', 'MCDC': '0.00', 'LCDC': '70.90', 'HGT0C': 1700, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 4.8, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006, 'APCPsfc': 1.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 199, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '85.10', 'MCDC': '0.00', 'LCDC': '8.70', 'HGT0C': 1700, 'KINDEX': 30, 'CAPE180_0': '13.008', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 5.3, 'DPT2m': -273.2, 'WNDCHILL2m': 2.1, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006, 'APCPsfc': 1, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '42.80', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1700, 'KINDEX': 32, 'CAPE180_0': '2.000', 'CIN180_0': -3}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 5.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.2, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006.6, 'APCPsfc': 0.4, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '17.00', 'MCDC': '0.00', 'LCDC': '10.90', 'HGT0C': 1600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 6.5, 'DPT2m': -273.2, 'WNDCHILL2m': 4.5, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1006.7, 'APCPsfc': 0.1, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 209, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '20.60', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1600, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/averses-de-pluie-faible.png', 'CONDITION': 'Averses de pluie faible', 'CONDITION_KEY': 'averses-de-pluie-faible', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1006.5, 'APCPsfc': 0.1, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 234, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.60', 'MCDC': '0.00', 'LCDC': '5.20', 'HGT0C': 1400, 'KINDEX': 35, 'CAPE180_0': '19.008', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 7.1, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1007.3, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 261, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '15.60', 'HGT0C': 1600, 'KINDEX': 37, 'CAPE180_0': '6.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faibles-passages-nuageux.png', 'CONDITION': 'Faibles passages nuageux', 'CONDITION_KEY': 'faibles-passages-nuageux', 'TMP2m': 8.2, 'DPT2m': -273.2, 'WNDCHILL2m': 6.9, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1007.9, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 275, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.30', 'HGT0C': 1700, 'KINDEX': 41, 'CAPE180_0': '5.008', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 7.8, 'DPT2m': -273.2, 'WNDCHILL2m': 6.9, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 225, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.00', 'HGT0C': 1600, 'KINDEX': 44, 'CAPE180_0': '4.000', 'CIN180_0': -4}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 7.4, 'DPT2m': -273.2, 'WNDCHILL2m': 6, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1008.8, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 217, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 46, 'CAPE180_0': '5.008', 'CIN180_0': -2}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.8, 'DPT2m': -273.2, 'WNDCHILL2m': 5.2, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1010.1, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 230, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.80', 'HGT0C': 1500, 'KINDEX': 44, 'CAPE180_0': '4.000', 'CIN180_0': -1}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 6.3, 'DPT2m': -273.2, 'WNDCHILL2m': 4.2, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1010.6, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 209, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '11.10', 'HGT0C': 1400, 'KINDEX': 42, 'CAPE180_0': '14.000', 'CIN180_0': -2}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.3, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1011.4, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '3.00', 'HGT0C': 1300, 'KINDEX': 40, 'CAPE180_0': '20.000', 'CIN180_0': -1}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 6.1, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1012.2, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 204, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '6.80', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1300, 'KINDEX': 38, 'CAPE180_0': '22.000', 'CIN180_0': -1}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 5.9, 'DPT2m': -273.2, 'WNDCHILL2m': 3.7, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 210, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '4.80', 'HGT0C': 1200, 'KINDEX': 37, 'CAPE180_0': '10.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 4.9, 'DPT2m': -273.2, 'WNDCHILL2m': 2.8, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1013.1, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 228, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '3.30', 'LCDC': '52.20', 'HGT0C': 1300, 'KINDEX': 37, 'CAPE180_0': '0.000', 'CIN180_0': -1}}}

Là aussi, on cherche les clés :

In [6]:
for k in day:
    print(repr(k))
'date'
'day_short'
'day_long'
'tmin'
'tmax'
'condition'
'condition_key'
'icon'
'icon_big'
'hourly_data'

Vérifions qu'il s'agit d'aujourd'hui :

In [7]:
print(day['day_long'], day['date'])
Vendredi 08.12.2023

C'est bon ! Maintenant, une entrée particulière nous intéresse :

In [8]:
day_hd = day['hourly_data']
for k in day_hd:
    print(repr(k))
'0H00'
'1H00'
'2H00'
'3H00'
'4H00'
'5H00'
'6H00'
'7H00'
'8H00'
'9H00'
'10H00'
'11H00'
'12H00'
'13H00'
'14H00'
'15H00'
'16H00'
'17H00'
'18H00'
'19H00'
'20H00'
'21H00'
'22H00'
'23H00'

Regardons ce que contient une hourly_data :

In [9]:
for k in day_hd['8H00']:
    print(repr(k))
'ICON'
'CONDITION'
'CONDITION_KEY'
'TMP2m'
'DPT2m'
'WNDCHILL2m'
'HUMIDEX'
'RH2m'
'PRMSL'
'APCPsfc'
'WNDSPD10m'
'WNDGUST10m'
'WNDDIR10m'
'WNDDIRCARD10'
'ISSNOW'
'HCDC'
'MCDC'
'LCDC'
'HGT0C'
'KINDEX'
'CAPE180_0'
'CIN180_0'

La clé qui nous intéresse est la chaîne 'TMP2m' qui correspond à la température à 2m du sol.

In [10]:
hour = '12H00'
print(f"Aujourd'hui à {hour}, il fera : {day_hd[hour]['TMP2m']} deg. C.")
Aujourd'hui à 12H00, il fera : 6.5 deg. C.

Sauver ces lignes de commandes dans le fichier today_stras.py en allant de l'exécution 1 au compteur d'exécution courant indiqué dans la cellule de code ci-dessus In [XX]. Dans le cas présent :

In [11]:
# Décommenter la ligne ci-dessous
#%save today_stras.py 1-10

Tracé de la température¶

  1. Ouvrir le fichier today_stras.py dans Spyder et nettoyer les print inutiles.
  2. Exécutez le code dans Spyder et utilisez la fenêtre "Variable explorer" en haut à droite pour parcourir les données de votre dictionnaire.
  3. Extraire la liste des couples (hour, temperature) où :
    • hour est un entier
    • temperature est un flottant
  4. ordonner la liste selon les heures croissantes
  5. convertir la liste en un numpy array t avec la méthode numpy.array()
  6. Transposer t pour obtenir le tableau [[array of hours], [array of temperatures]]
  7. réaliser un tracé matplotlib en suivant ce tutoriel ou en intégrant les lignes de code suivantes :
In [12]:
import matplotlib.pyplot as plt  # To be placed at the top of python file

# [Your previous code...]

# Plot T = T(hour)
# Décommentez les lignes ci-dessous
#
# fig = plt.figure()  # initialise figure
# title = f"{day_of_the_week} {date_of_today}"
# fig.suptitle(title, fontsize=14, fontweight='bold')
# 
# ax = fig.add_subplot(111)  # initialise a plot area
# fig.subplots_adjust(top=0.85)
# ax.set_title('Day temperature')
# ax.set_xlabel('Time [h]')
# ax.set_ylabel('Temperature [deg. C]')
# 
# ax.plot(t[0], t[1])  # plot t[1] (tempe) as a function of t[0] (hour)

Option : intégrer l'icone de la météo du jour en utilisant le module matplotlib.image.

Exercice sur les fonctions¶

À partir de exos/correction/meteo_json.py, écrivez le programme meteo_json_func.py qui contient une fonction plot_day_tempe() admettant deux arguments :

  • day_key : un entier représentant le jour visé (0: aujourd'hui, 1: demain, 2: après-demain...)
  • city_name: une chaîne de caractère de la ville recherchée
In [13]:
# Pour tester votre script dans cette cellule, décommenter les lignes suivantes 
# et redémarrer le noyau avant chaque modification:

#from meteo_json_func import plot_day_tempe
#plot_day_tempe(2, city_name='Marseille')
In [14]:
from exos.correction.meteo_json_func import plot_day_tempe
plot_day_tempe(2, city_name='Marseille')
No description has been provided for this image

Exécution avec les widgets ipython¶

Jupyter ipywidgets permet de créer très facilement des menus interactifs pour faciliter l'exécution de code dans les notebooks.

Un exemple avec notre courbe de température :

In [15]:
import exos.correction.meteo_json_func as meteo
from ipywidgets import interact

interact(meteo.plot_day_tempe,
         day_key=list(range(5)),
         city_name=["Marseille", "Paris", "Toulouse", "Strasbourg"]
         );
interactive(children=(Dropdown(description='day_key', options=(0, 1, 2, 3, 4), value=0), Dropdown(description=…

Exécution en script¶

Utilisation de if __name__ == '__main__':¶

Dans un fichier python test_module.py, on souhaite généralement différencier :

  • le code exécuté lors de l'import du fichier comme un module depuis un autre programme python ou depuis un notebook Jupyter avec :
import test_module

Dans ce cas, la variable interne __name__ vaut le nom du module (ici test_module).

  • le code éxécuté lorsque le fichier est appelé directement comme un script depuis le terminal système :
python test_module.py

Dans ce cas, la variable interne __name__ vaut la chaîne de caractère __main__.

Prenons comme exemple la cellule suivante que l'on sauvegarde dans le fichier test_module.py.

In [16]:
%%writefile test_module.py
def main():
    print(f'je suis dans {__name__}')

if __name__ == '__main__':
    print("Je suis appelé comme programme principal")
    main()
else:
    # En mode module importé, on ne fait rien de plus
    pass
Writing test_module.py

Appelons le fichier test_module.py comme un script python directement depuis le système :

In [17]:
%run test_module.py
Je suis appelé comme programme principal
je suis dans __main__
<Figure size 640x480 with 0 Axes>

La variable __name__ vaut __main__.

Importons maintenant le fichier comme un module.

In [18]:
import test_module

Le bloc qui appelle la fonction main() n'est pas exécuté. En revanche cette fonction est accessible à la demande :

In [19]:
test_module.main()
je suis dans test_module

Cette fois-ci, la variable __name__ vaut test_module, c'est-à-dire le nom du module importé.

Plus d'information sur __name__ dans la doc officielle.

Gestion des arguments de la ligne de commande¶

Afin de positionner les paramètres d'un script à exécuter (noms de fichier, taille du problème, etc.), on a le choix entre :

  • éditer le script là où les variables sont définies : si c'est envisageable pour des tests ou dans le contexte d'un notebook, ça ne l'est pas pour un programme destiné à être exécuté plusieur fois avec des paramètres variables
  • positionner des variables d'environnement qui peuvent être lues avec la fonction os.getenv() : le risque est de dissocier la définition des paramètres de l'exécution du programme.
  • lire un fichier d'entrée, par exemple avec configparser. C'est particulièrement utile lorsque les paramètres sont nombreux et variés et que l'on souhaite faciliter la reproductibilité des exécutions mais ça demande d'éditer le fichier d'entrée à chaque changement de paramètre.
  • interpréter les arguments de la ligne de commande : c'est la façon la plus souple d'exécuter un script avec des paramètres variables.

Une façon très simple et très rapide créer une interface de ligne de commande (CLI en anglais) est d'utiliser la bibliothèque fire développée par Google.

C'est une biblithèque externe : commençons par l'installer avec pip.

In [20]:
%pip install fire
Requirement already satisfied: fire in /home/jovyan/.local/lib/python3.11/site-packages (0.5.0)
Requirement already satisfied: six in /opt/conda/lib/python3.11/site-packages (from fire) (1.16.0)
Requirement already satisfied: termcolor in /home/jovyan/.local/lib/python3.11/site-packages (from fire) (2.4.0)
Note: you may need to restart the kernel to use updated packages.

À titre d'exemple, le fichier exos/correction/meteo_json_func.py appelle fire dans son bloc final :

if __name__ == '__main__':
    import fire
    fire.Fire(plot_day_tempe)

fire utilise la signature et la docstring de la fonction plot_day_tempe() :

In [21]:
from exos.correction.meteo_json_func import plot_day_tempe
help(plot_day_tempe)
Help on function plot_day_tempe in module exos.correction.meteo_json_func:

plot_day_tempe(day_key=0, city_name='strasbourg')
    Plot the time evolution of predicted temperature

pour créer la CLI suivante :

In [22]:
%run exos/correction/meteo_json_func.py -h
INFO: Showing help with the command 'meteo_json_func.py -- --help'.

NAME
    meteo_json_func.py - Plot the time evolution of predicted temperature

SYNOPSIS
    meteo_json_func.py <flags>

DESCRIPTION
    Plot the time evolution of predicted temperature

FLAGS
    -d, --day_key=DAY_KEY
        Default: 0
    -c, --city_name=CITY_NAME
        Default: 'strasbourg'

De sorte qu'on peut tracer la température à Marseille dans 3 jours en tapant :

In [23]:
%run exos/correction/meteo_json_func.py --day_key=3 --city_name=Marseille
No description has been provided for this image
<Figure size 640x480 with 0 Axes>

Ou avec les valeurs par défaut :

In [24]:
%run exos/correction/meteo_json_func.py
No description has been provided for this image
<Figure size 640x480 with 0 Axes>

Si on se limite ici à la présentation de fire, il faut mentionner l'existence du module argparse qui fait partie de la bibliothèque standard. Moins immédiate mais aussi plus souple, l'utilisation d'argparse est décrite dans ce tutoriel.

Utilisation avancée de Spyder¶