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
  • Gérer les arguments de la ligne de commande

Exercice¶

Exploiter les données du site http://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:
    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:03', 'sunset': '16:36'}, 'forecast_info': {'latitude': None, 'longitude': None, 'elevation': '136.9'}, 'current_condition': {'date': '06.12.2023', 'hour': '09:00', 'tmp': 3, 'wnd_spd': 13, 'wnd_gust': 0, 'wnd_dir': 'O', 'pressure': 1012.4, 'humidity': 87, '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'}, 'fcst_day_0': {'date': '06.12.2023', 'day_short': 'Mer.', 'day_long': 'Mercredi', 'tmin': 2, 'tmax': 5, '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': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1008.3, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '23.90', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1008.4, 'APCPsfc': 0.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 208, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '1.50', 'LCDC': '99.60', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008.6, 'APCPsfc': 0.3, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 213, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1000, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008.6, 'APCPsfc': 0.2, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 218, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '89.90', 'HGT0C': 900, 'KINDEX': 34, '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': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.9, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1009.3, 'APCPsfc': 0.2, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '69.80', 'HGT0C': 100, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.7, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1009.5, 'APCPsfc': 0.3, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 222, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 100, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1010.3, 'APCPsfc': 0.1, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 253, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 700, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3.9, 'DPT2m': -273.2, 'WNDCHILL2m': 2.1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1010.9, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 267, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 800, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3.6, 'DPT2m': -273.2, 'WNDCHILL2m': 0.2, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1011.7, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 284, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 700, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 2.9, 'DPT2m': -273.2, 'WNDCHILL2m': -0.5, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 286, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 800, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 3.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.1, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 2, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 3.9, 'DPT2m': -273.2, 'WNDCHILL2m': 0.9, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1012.9, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 280, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 500, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1013.3, 'APCPsfc': 0, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 288, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1013.6, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 291, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1013.6, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 284, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 5, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 76, 'PRMSL': 1014, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '32.40', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1015.1, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '27.70', 'MCDC': '0.00', 'LCDC': '4.50', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.3, 'DPT2m': -273.2, 'WNDCHILL2m': 1.6, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1015.7, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 272, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '3.40', 'MCDC': '0.00', 'LCDC': '4.20', 'HGT0C': 500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.6, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1016.3, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 264, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '35.30', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2400, 'KINDEX': 39, 'CAPE180_0': '31.000', 'CIN180_0': -1}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1016.9, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 270, 'WNDDIRCARD10': 'O', 'ISSNOW': 2, 'HCDC': '21.60', 'MCDC': '0.00', 'LCDC': '66.60', 'HGT0C': 400, 'KINDEX': 42, 'CAPE180_0': '14.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2.7, 'DPT2m': -273.2, 'WNDCHILL2m': 0.4, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1017.5, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 242, 'WNDDIRCARD10': 'SO', 'ISSNOW': 1, 'HCDC': '42.80', 'MCDC': '0.00', 'LCDC': '66.60', 'HGT0C': 200, 'KINDEX': 46, 'CAPE180_0': '16.000', 'CIN180_0': -1}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2, 'DPT2m': -273.2, 'WNDCHILL2m': -0.1, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1017.8, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 221, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '50.90', 'MCDC': '0.90', 'LCDC': '100.00', 'HGT0C': 1900, 'KINDEX': 49, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1017.9, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 236, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '9.30', 'MCDC': '15.90', 'LCDC': '100.00', 'HGT0C': 600, 'KINDEX': 53, 'CAPE180_0': '0.000', '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': 2.3, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1018.4, 'APCPsfc': 0.1, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 212, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '1.00', 'LCDC': '23.50', 'HGT0C': 1900, 'KINDEX': 55, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}, 'fcst_day_1': {'date': '07.12.2023', 'day_short': 'Jeu.', 'day_long': 'Jeudi', 'tmin': -1, 'tmax': 4, 'condition': 'Ensoleillé', 'condition_key': 'ensoleille', 'icon': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/ensoleille-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 1.6, 'DPT2m': -273.2, 'WNDCHILL2m': -0.5, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1018.4, 'APCPsfc': 0.7, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 189, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '33.30', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1700, 'KINDEX': 55, 'CAPE180_0': '4.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 1.2, 'DPT2m': -273.2, 'WNDCHILL2m': -1.3, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1018.4, 'APCPsfc': 0.5, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 197, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '50.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 700, 'KINDEX': 55, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 1.4, 'DPT2m': -273.2, 'WNDCHILL2m': -0.8, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1019.3, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 213, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '31.50', 'MCDC': '32.60', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 54, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 1.4, 'DPT2m': -273.2, 'WNDCHILL2m': -1.1, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1019, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 187, 'WNDDIRCARD10': 'S', 'ISSNOW': 1, 'HCDC': '19.90', 'MCDC': '8.30', 'LCDC': '1.30', 'HGT0C': 200, 'KINDEX': 54, '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': 1.3, 'DPT2m': -273.2, 'WNDCHILL2m': -1.8, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1019, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 2, 'HCDC': '29.20', 'MCDC': '4.80', 'LCDC': '0.00', 'HGT0C': 400, 'KINDEX': 53, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 1.1, 'DPT2m': -273.2, 'WNDCHILL2m': -1.4, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1019.8, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2300, 'KINDEX': 52, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 0.7, 'DPT2m': -273.2, 'WNDCHILL2m': -1.2, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1020.2, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 225, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2800, 'KINDEX': 50, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 0, 'DPT2m': -273.2, 'WNDCHILL2m': 0, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1020, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '46.80', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1600, 'KINDEX': 46, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': -0.5, 'DPT2m': -273.2, 'WNDCHILL2m': -2.6, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1019.8, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 173, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1600, 'KINDEX': 39, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': -0.4, 'DPT2m': -273.2, 'WNDCHILL2m': -2.5, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1020, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 207, 'WNDDIRCARD10': 'SO', 'ISSNOW': 1, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 200, 'KINDEX': 36, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 0.4, 'DPT2m': -273.2, 'WNDCHILL2m': -1.1, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1020.1, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 222, 'WNDDIRCARD10': 'SO', 'ISSNOW': 1, 'HCDC': '35.00', 'MCDC': '56.30', 'LCDC': '0.00', 'HGT0C': 300, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 1.5, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1019.6, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '15.10', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 3000, 'KINDEX': 32, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 2.6, 'DPT2m': -273.2, 'WNDCHILL2m': 1.4, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1018.6, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 150, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '51.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 3100, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 3.4, 'DPT2m': -273.2, 'WNDCHILL2m': 2.3, 'HUMIDEX': None, 'RH2m': 71, 'PRMSL': 1017.5, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 135, 'WNDDIRCARD10': 'SE', 'ISSNOW': 2, 'HCDC': '51.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 500, 'KINDEX': 21, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 4.1, 'HUMIDEX': None, 'RH2m': 67, 'PRMSL': 1016.4, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 127, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '91.20', 'MCDC': '30.50', 'LCDC': '0.00', 'HGT0C': 200, 'KINDEX': 16, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 4.2, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1016.1, 'APCPsfc': 0, 'WNDSPD10m': 2, 'WNDGUST10m': 0, 'WNDDIR10m': 171, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '96.30', 'LCDC': '0.00', 'HGT0C': 2500, 'KINDEX': 14, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 3.8, 'DPT2m': -273.2, 'WNDCHILL2m': 3.8, 'HUMIDEX': None, 'RH2m': 71, 'PRMSL': 1015.6, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 96, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '0.00', 'HGT0C': 2800, 'KINDEX': 11, 'CAPE180_0': '0.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': 2.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.1, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1014.7, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 82, 'WNDDIRCARD10': 'E', 'ISSNOW': 1, 'HCDC': '100.00', 'MCDC': '99.20', 'LCDC': '0.00', 'HGT0C': 100, 'KINDEX': 8, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'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': 1.2, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1014.6, 'APCPsfc': 0, 'WNDSPD10m': 1, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 1, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '0.00', 'HGT0C': 0, 'KINDEX': 6, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '19H00': {'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': 0, 'DPT2m': -273.2, 'WNDCHILL2m': 0, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1014, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 110, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '0.00', 'HGT0C': 2600, 'KINDEX': 8, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '20H00': {'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': -0.8, 'DPT2m': -273.2, 'WNDCHILL2m': -0.8, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1013.5, 'APCPsfc': 0, 'WNDSPD10m': 3, 'WNDGUST10m': 0, 'WNDDIR10m': 139, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '76.80', 'HGT0C': 1700, 'KINDEX': 9, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '21H00': {'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': -1.1, 'DPT2m': -273.2, 'WNDCHILL2m': -1.1, 'HUMIDEX': None, 'RH2m': 78, 'PRMSL': 1013.1, 'APCPsfc': 0, 'WNDSPD10m': 3, 'WNDGUST10m': 0, 'WNDDIR10m': 159, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 1700, 'KINDEX': 13, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '22H00': {'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': -0.9, 'DPT2m': -273.2, 'WNDCHILL2m': -0.9, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1012.1, 'APCPsfc': 0, 'WNDSPD10m': 3, 'WNDGUST10m': 0, 'WNDDIR10m': 167, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 2300, 'KINDEX': 16, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '23H00': {'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': -0.5, 'DPT2m': -273.2, 'WNDCHILL2m': -0.5, 'HUMIDEX': None, 'RH2m': 72, 'PRMSL': 1011.1, 'APCPsfc': 0, 'WNDSPD10m': 4, 'WNDGUST10m': 0, 'WNDDIR10m': 202, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 1500, 'KINDEX': 16, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}, 'fcst_day_2': {'date': '08.12.2023', 'day_short': 'Ven.', 'day_long': 'Vendredi', 'tmin': 0, 'tmax': 6, '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': 0, 'DPT2m': -273.2, 'WNDCHILL2m': -1.6, 'HUMIDEX': None, 'RH2m': 71, 'PRMSL': 1010.4, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 152, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 2200, 'KINDEX': 16, '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': 0.8, 'DPT2m': -273.2, 'WNDCHILL2m': -1.5, 'HUMIDEX': None, 'RH2m': 68, 'PRMSL': 1009.8, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 148, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 1500, 'KINDEX': 18, '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': 1.4, 'DPT2m': -273.2, 'WNDCHILL2m': -0.8, 'HUMIDEX': None, 'RH2m': 66, 'PRMSL': 1008.8, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 144, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '96.00', 'LCDC': '98.30', 'HGT0C': 1900, 'KINDEX': 24, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 1.9, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 67, 'PRMSL': 1008.3, 'APCPsfc': 0, 'WNDSPD10m': 3, 'WNDGUST10m': 0, 'WNDDIR10m': 124, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '1.50', 'LCDC': '99.80', 'HGT0C': 1700, 'KINDEX': 25, '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': 2.2, 'DPT2m': -273.2, 'WNDCHILL2m': 2.2, 'HUMIDEX': None, 'RH2m': 67, 'PRMSL': 1007.9, 'APCPsfc': 0, 'WNDSPD10m': 2, 'WNDGUST10m': 0, 'WNDDIR10m': 112, 'WNDDIRCARD10': 'E', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1700, 'KINDEX': 24, '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': 2.6, 'DPT2m': -273.2, 'WNDCHILL2m': 2.6, 'HUMIDEX': None, 'RH2m': 72, 'PRMSL': 1007.6, 'APCPsfc': 0.1, 'WNDSPD10m': 3, 'WNDGUST10m': 0, 'WNDDIR10m': 146, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '99.30', 'HGT0C': 1500, 'KINDEX': 25, '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': 2.9, 'DPT2m': -273.2, 'WNDCHILL2m': 0.7, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1006.3, 'APCPsfc': 0.4, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 137, 'WNDDIRCARD10': 'SE', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 26, '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': 2.9, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1006.1, 'APCPsfc': 0.7, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 210, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '76.70', 'MCDC': '0.00', 'LCDC': '10.80', 'HGT0C': 2000, 'KINDEX': 25, 'CAPE180_0': '0.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': 2.9, 'DPT2m': -273.2, 'WNDCHILL2m': 0.4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006.3, 'APCPsfc': 1.4, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 203, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '80.40', 'HGT0C': 1600, 'KINDEX': 25, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 3.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.1, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1006.1, 'APCPsfc': 1.5, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '28.70', 'MCDC': '0.00', 'LCDC': '2.30', 'HGT0C': 1700, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1005.9, 'APCPsfc': 2.1, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 202, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '20.70', 'MCDC': '0.00', 'LCDC': '1.60', 'HGT0C': 1600, 'KINDEX': 26, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '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': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 1.1, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1006.4, 'APCPsfc': 1.7, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 208, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '75.30', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 400, 'KINDEX': 28, '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': 5, 'DPT2m': -273.2, 'WNDCHILL2m': 1.7, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1006, 'APCPsfc': 1, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 208, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '36.00', 'MCDC': '0.00', 'LCDC': '99.40', 'HGT0C': 1600, 'KINDEX': 30, 'CAPE180_0': '12.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': 5.2, 'DPT2m': -273.2, 'WNDCHILL2m': 2.3, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1005.5, 'APCPsfc': 0.1, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 216, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '16.70', 'HGT0C': 1500, 'KINDEX': 34, 'CAPE180_0': '7.008', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 5.4, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1006.1, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 231, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '17.90', 'HGT0C': 1500, 'KINDEX': 39, 'CAPE180_0': '2.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 5.6, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1006.8, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 270, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '3.40', 'HGT0C': 1500, 'KINDEX': 40, 'CAPE180_0': '7.008', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 5.6, 'DPT2m': -273.2, 'WNDCHILL2m': 4.1, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1007.5, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 276, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.70', 'HGT0C': 1300, 'KINDEX': 40, 'CAPE180_0': '9.008', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 5.4, 'DPT2m': -273.2, 'WNDCHILL2m': 4.5, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1008.4, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 270, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 1300, 'KINDEX': 39, 'CAPE180_0': '10.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 5.3, 'DPT2m': -273.2, 'WNDCHILL2m': 4.4, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1009.3, 'APCPsfc': 0, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 241, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '1.60', 'MCDC': '0.00', 'LCDC': '3.00', 'HGT0C': 1200, 'KINDEX': 38, 'CAPE180_0': '19.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 5.2, 'DPT2m': -273.2, 'WNDCHILL2m': 4, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1009.8, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 204, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '50.00', 'MCDC': '75.60', 'LCDC': '4.40', 'HGT0C': 1300, 'KINDEX': 37, 'CAPE180_0': '25.008', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 3.8, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1010.6, 'APCPsfc': 0.1, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 214, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '45.20', 'MCDC': '84.30', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 37, 'CAPE180_0': '18.000', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 5, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1011.1, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 230, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '2.10', 'MCDC': '1.20', 'LCDC': '0.00', 'HGT0C': 1500, 'KINDEX': 37, 'CAPE180_0': '6.000', 'CIN180_0': -3}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.5, 'DPT2m': -273.2, 'WNDCHILL2m': 2.5, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1011.4, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 234, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '3.10', 'HGT0C': 1400, 'KINDEX': 38, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 3.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1011.9, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 204, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '4.70', 'HGT0C': 1300, 'KINDEX': 39, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}, 'fcst_day_3': {'date': '09.12.2023', 'day_short': 'Sam.', 'day_long': 'Samedi', 'tmin': 3, '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/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 3.6, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 100, 'PRMSL': 1012.3, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.90', 'HGT0C': 1500, 'KINDEX': 40, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-bien-degagee.png', 'CONDITION': 'Nuit bien dégagée', 'CONDITION_KEY': 'nuit-bien-degagee', 'TMP2m': 3.8, 'DPT2m': -273.2, 'WNDCHILL2m': 1.7, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 198, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '8.40', 'HGT0C': 1500, 'KINDEX': 41, 'CAPE180_0': '13.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1013.1, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '1.60', 'HGT0C': 1900, 'KINDEX': 42, '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.9, 'DPT2m': -273.2, 'WNDCHILL2m': 1.3, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1013.9, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 202, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '4.90', 'HGT0C': 2300, 'KINDEX': 42, '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': 1.1, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 198, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 2300, 'KINDEX': 42, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.7, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1014.7, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 201, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2500, 'KINDEX': 41, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1014.8, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 187, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2100, 'KINDEX': 40, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 3.8, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1014.9, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 191, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '1.20', 'MCDC': '0.00', 'LCDC': '1.30', 'HGT0C': 2200, 'KINDEX': 40, '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': 3.1, 'DPT2m': -273.2, 'WNDCHILL2m': -0.2, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1015.3, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '12.90', 'MCDC': '0.00', 'LCDC': '42.70', 'HGT0C': 2400, 'KINDEX': 39, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 3.5, 'DPT2m': -273.2, 'WNDCHILL2m': 0.1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1015.5, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 192, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '99.20', 'LCDC': '17.70', 'HGT0C': 900, 'KINDEX': 39, 'CAPE180_0': '7.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 4.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1015.3, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '15.00', 'MCDC': '58.00', 'LCDC': '2.90', 'HGT0C': 1000, 'KINDEX': 38, '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, 'DPT2m': -273.2, 'WNDCHILL2m': 3.3, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1015.5, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '80.50', 'MCDC': '87.30', 'LCDC': '1.50', 'HGT0C': 1000, 'KINDEX': 34, '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.2, 'DPT2m': -273.2, 'WNDCHILL2m': 4.8, 'HUMIDEX': None, 'RH2m': 80, 'PRMSL': 1015.1, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 189, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '99.80', 'LCDC': '21.50', 'HGT0C': 1100, 'KINDEX': 32, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 5.6, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1014.8, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '68.40', 'MCDC': '100.00', 'LCDC': '5.20', 'HGT0C': 1100, 'KINDEX': 30, 'CAPE180_0': '7.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 8.3, 'DPT2m': -273.2, 'WNDCHILL2m': 5.8, 'HUMIDEX': None, 'RH2m': 72, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 191, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '89.80', 'HGT0C': 1100, 'KINDEX': 30, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 8.1, 'DPT2m': -273.2, 'WNDCHILL2m': 5.4, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 194, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '98.50', 'HGT0C': 1300, 'KINDEX': 30, 'CAPE180_0': '4.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 7.2, 'DPT2m': -273.2, 'WNDCHILL2m': 4.8, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 196, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '99.90', 'LCDC': '99.90', 'HGT0C': 1200, 'KINDEX': 31, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 5.7, 'DPT2m': -273.2, 'WNDCHILL2m': 3.1, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 184, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '99.90', 'LCDC': '99.90', 'HGT0C': 1300, 'KINDEX': 32, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'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': 91, 'PRMSL': 1014.1, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 173, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '99.90', 'HGT0C': 500, 'KINDEX': 28, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/faiblement-nuageux.png', 'CONDITION': 'Faiblement nuageux', 'CONDITION_KEY': 'faiblement-nuageux', 'TMP2m': 3.5, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1014.1, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 182, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '100.00', 'LCDC': '86.40', 'HGT0C': 2900, 'KINDEX': 22, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '20H00': {'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, 'HUMIDEX': None, 'RH2m': 89, 'PRMSL': 1013.8, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 184, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '3.20', 'LCDC': '99.90', 'HGT0C': 2500, 'KINDEX': 19, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2.8, 'DPT2m': -273.2, 'WNDCHILL2m': -0.6, 'HUMIDEX': None, 'RH2m': 88, 'PRMSL': 1013, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 182, 'WNDDIRCARD10': 'S', 'ISSNOW': 2, 'HCDC': '7.40', 'MCDC': '99.90', 'LCDC': '98.70', 'HGT0C': 400, 'KINDEX': 18, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 2.7, 'DPT2m': -273.2, 'WNDCHILL2m': -0.7, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 196, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '34.20', 'LCDC': '99.90', 'HGT0C': 2400, 'KINDEX': 20, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '23H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 3.4, 'DPT2m': -273.2, 'WNDCHILL2m': -0.2, 'HUMIDEX': None, 'RH2m': 83, 'PRMSL': 1011.7, 'APCPsfc': 0.1, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 191, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '21.40', 'HGT0C': 2800, 'KINDEX': 25, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}, 'fcst_day_4': {'date': '10.12.2023', 'day_short': 'Dim.', 'day_long': 'Dimanche', 'tmin': 5, 'tmax': 11, 'condition': 'Ensoleillé', 'condition_key': 'ensoleille', 'icon': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'icon_big': 'https://prevision-meteo.ch/style/images/icon/ensoleille-big.png', 'hourly_data': {'0H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 3.7, 'DPT2m': -273.2, 'WNDCHILL2m': -0.3, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1010.8, 'APCPsfc': 1.8, 'WNDSPD10m': 18, 'WNDGUST10m': 0, 'WNDDIR10m': 183, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 200, 'KINDEX': 29, 'CAPE180_0': '1.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-moderee.png', 'CONDITION': 'Pluie modérée', 'CONDITION_KEY': 'pluie-moderee', 'TMP2m': 4.3, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 90, 'PRMSL': 1010, 'APCPsfc': 1.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 193, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '77.70', 'HGT0C': 1900, 'KINDEX': 30, 'CAPE180_0': '65.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': 4.9, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1009.6, 'APCPsfc': 1.8, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 196, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '11.10', 'LCDC': '13.00', 'HGT0C': 2300, 'KINDEX': 32, 'CAPE180_0': '20.000', 'CIN180_0': -76}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-avec-averses.png', 'CONDITION': 'Nuit avec averses', 'CONDITION_KEY': 'nuit-avec-averses', 'TMP2m': 5.7, 'DPT2m': -273.2, 'WNDCHILL2m': 2.6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1009.9, 'APCPsfc': 0.5, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 200, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2400, 'KINDEX': 35, 'CAPE180_0': '60.000', 'CIN180_0': -2}, '4H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 6.4, 'DPT2m': -273.2, 'WNDCHILL2m': 4.1, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1010.5, 'APCPsfc': 0.3, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 211, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2600, 'KINDEX': 38, 'CAPE180_0': '91.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 7.3, 'DPT2m': -273.2, 'WNDCHILL2m': 5.4, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1011.8, 'APCPsfc': 0.1, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 240, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2200, 'KINDEX': 37, 'CAPE180_0': '61.000', 'CIN180_0': -3}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 7.7, 'DPT2m': -273.2, 'WNDCHILL2m': 6.6, 'HUMIDEX': None, 'RH2m': 96, 'PRMSL': 1013, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 255, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2600, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 9.4, 'DPT2m': -273.2, 'WNDCHILL2m': 7.4, 'HUMIDEX': None, 'RH2m': 99, 'PRMSL': 1014.3, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 265, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 2600, 'KINDEX': 31, 'CAPE180_0': '15.008', 'CIN180_0': 0}, '8H00': {'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': 7.3, 'HUMIDEX': None, 'RH2m': 98, 'PRMSL': 1015.5, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 261, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '27.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 3000, 'KINDEX': 31, 'CAPE180_0': '17.008', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9.4, 'DPT2m': -273.2, 'WNDCHILL2m': 7.7, 'HUMIDEX': None, 'RH2m': 97, 'PRMSL': 1016.5, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 253, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '34.60', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 500, 'KINDEX': 32, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 9.9, 'DPT2m': -273.2, 'WNDCHILL2m': 8.2, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1017.2, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 249, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '24.40', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 700, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 10.4, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1017.8, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 255, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '20.30', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 200, 'KINDEX': 36, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 10.7, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 84, 'PRMSL': 1018.2, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 251, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '14.50', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 39, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 11.1, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1018.4, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 243, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 400, 'KINDEX': 41, 'CAPE180_0': '7.008', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 11.5, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 82, 'PRMSL': 1018.8, 'APCPsfc': 0, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 244, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 100, 'KINDEX': 40, 'CAPE180_0': '7.008', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 11.5, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 83, 'PRMSL': 1019, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 242, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '45.20', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2900, 'KINDEX': 40, 'CAPE180_0': '4.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 11, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1019.2, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 237, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 3000, 'KINDEX': 41, 'CAPE180_0': '3.008', '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.2, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1019.7, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 226, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '3.30', 'HGT0C': 2200, 'KINDEX': 42, 'CAPE180_0': '2.000', 'CIN180_0': 0}, '18H00': {'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.2, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1019.7, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 210, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 100, 'KINDEX': 43, 'CAPE180_0': '4.000', 'CIN180_0': 0}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 10.2, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1019.3, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 189, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '12.00', 'LCDC': '0.00', 'HGT0C': 2900, 'KINDEX': 43, 'CAPE180_0': '6.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 10.4, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1018.9, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 186, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '83.70', 'MCDC': '78.60', 'LCDC': '0.00', 'HGT0C': 2300, 'KINDEX': 43, 'CAPE180_0': '7.000', 'CIN180_0': -1}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 10.5, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1018.1, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 185, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '60.70', 'MCDC': '100.00', 'LCDC': '0.00', 'HGT0C': 1000, 'KINDEX': 41, 'CAPE180_0': '4.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 10.3, 'DPT2m': -273.2, 'WNDCHILL2m': None, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1016.9, 'APCPsfc': 0, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 180, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '20.00', 'MCDC': '65.40', 'LCDC': '4.70', 'HGT0C': 2800, 'KINDEX': 40, 'CAPE180_0': '1.000', 'CIN180_0': -1}, '23H00': {'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.2, 'HUMIDEX': None, 'RH2m': 95, 'PRMSL': 1016.7, 'APCPsfc': 0, 'WNDSPD10m': 19, 'WNDGUST10m': 0, 'WNDDIR10m': 183, 'WNDDIRCARD10': 'S', 'ISSNOW': 0, 'HCDC': '18.20', 'MCDC': '10.90', 'LCDC': '100.00', 'HGT0C': 2900, 'KINDEX': 38, 'CAPE180_0': '23.000', 'CIN180_0': -2}}}}

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(type(day))
print(day)
<class 'dict'>
{'date': '06.12.2023', 'day_short': 'Mer.', 'day_long': 'Mercredi', 'tmin': 2, 'tmax': 5, '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': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1008.3, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 205, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '23.90', 'LCDC': '99.90', 'HGT0C': 1600, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '1H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.3, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1008.4, 'APCPsfc': 0.1, 'WNDSPD10m': 17, 'WNDGUST10m': 0, 'WNDDIR10m': 208, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '1.50', 'LCDC': '99.60', 'HGT0C': 1500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '2H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008.6, 'APCPsfc': 0.3, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 213, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '99.90', 'HGT0C': 1000, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '3H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.6, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1008.6, 'APCPsfc': 0.2, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 218, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '89.90', 'HGT0C': 900, 'KINDEX': 34, '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': 4.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.9, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1009.3, 'APCPsfc': 0.2, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 219, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '69.80', 'HGT0C': 100, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '5H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 0.7, 'HUMIDEX': None, 'RH2m': 94, 'PRMSL': 1009.5, 'APCPsfc': 0.3, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 222, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 100, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '6H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/pluie-faible.png', 'CONDITION': 'Pluie faible', 'CONDITION_KEY': 'pluie-faible', 'TMP2m': 4, 'DPT2m': -273.2, 'WNDCHILL2m': 1.5, 'HUMIDEX': None, 'RH2m': 93, 'PRMSL': 1010.3, 'APCPsfc': 0.1, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 253, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 700, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '7H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3.9, 'DPT2m': -273.2, 'WNDCHILL2m': 2.1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1010.9, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 267, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 800, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '8H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 3.6, 'DPT2m': -273.2, 'WNDCHILL2m': 0.2, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1011.7, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 284, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 700, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '9H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 2.9, 'DPT2m': -273.2, 'WNDCHILL2m': -0.5, 'HUMIDEX': None, 'RH2m': 87, 'PRMSL': 1012.4, 'APCPsfc': 0, 'WNDSPD10m': 13, 'WNDGUST10m': 0, 'WNDDIR10m': 286, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 800, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '10H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 3.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.1, 'HUMIDEX': None, 'RH2m': 85, 'PRMSL': 1012.6, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 2, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '100.00', 'HGT0C': 500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '11H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 3.9, 'DPT2m': -273.2, 'WNDCHILL2m': 0.9, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1012.9, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 280, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 500, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '12H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/fortement-nuageux.png', 'CONDITION': 'Fortement nuageux', 'CONDITION_KEY': 'fortement-nuageux', 'TMP2m': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 1.2, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1013.3, 'APCPsfc': 0, 'WNDSPD10m': 16, 'WNDGUST10m': 0, 'WNDDIR10m': 288, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '7.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '13H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/eclaircies.png', 'CONDITION': 'Eclaircies', 'CONDITION_KEY': 'eclaircies', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1013.6, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 291, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '14H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ciel-voile.png', 'CONDITION': 'Ciel voilé', 'CONDITION_KEY': 'ciel-voile', 'TMP2m': 5.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1013.6, 'APCPsfc': 0, 'WNDSPD10m': 15, 'WNDGUST10m': 0, 'WNDDIR10m': 284, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '100.00', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '15H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 5, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 76, 'PRMSL': 1014, 'APCPsfc': 0, 'WNDSPD10m': 14, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '32.40', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 600, 'KINDEX': 34, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '16H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/ensoleille.png', 'CONDITION': 'Ensoleillé', 'CONDITION_KEY': 'ensoleille', 'TMP2m': 4.7, 'DPT2m': -273.2, 'WNDCHILL2m': 1.9, 'HUMIDEX': None, 'RH2m': 74, 'PRMSL': 1015.1, 'APCPsfc': 0, 'WNDSPD10m': 12, 'WNDGUST10m': 0, 'WNDDIR10m': 287, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '27.70', 'MCDC': '0.00', 'LCDC': '4.50', 'HGT0C': 600, 'KINDEX': 33, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '17H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.3, 'DPT2m': -273.2, 'WNDCHILL2m': 1.6, 'HUMIDEX': None, 'RH2m': 75, 'PRMSL': 1015.7, 'APCPsfc': 0, 'WNDSPD10m': 11, 'WNDGUST10m': 0, 'WNDDIR10m': 272, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '3.40', 'MCDC': '0.00', 'LCDC': '4.20', 'HGT0C': 500, 'KINDEX': 35, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '18H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-claire.png', 'CONDITION': 'Nuit claire', 'CONDITION_KEY': 'nuit-claire', 'TMP2m': 4.1, 'DPT2m': -273.2, 'WNDCHILL2m': 1.6, 'HUMIDEX': None, 'RH2m': 77, 'PRMSL': 1016.3, 'APCPsfc': 0, 'WNDSPD10m': 10, 'WNDGUST10m': 0, 'WNDDIR10m': 264, 'WNDDIRCARD10': 'O', 'ISSNOW': 0, 'HCDC': '35.30', 'MCDC': '0.00', 'LCDC': '0.00', 'HGT0C': 2400, 'KINDEX': 39, 'CAPE180_0': '31.000', 'CIN180_0': -1}, '19H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 3.4, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 81, 'PRMSL': 1016.9, 'APCPsfc': 0, 'WNDSPD10m': 9, 'WNDGUST10m': 0, 'WNDDIR10m': 270, 'WNDDIRCARD10': 'O', 'ISSNOW': 2, 'HCDC': '21.60', 'MCDC': '0.00', 'LCDC': '66.60', 'HGT0C': 400, 'KINDEX': 42, 'CAPE180_0': '14.000', 'CIN180_0': 0}, '20H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2.7, 'DPT2m': -273.2, 'WNDCHILL2m': 0.4, 'HUMIDEX': None, 'RH2m': 86, 'PRMSL': 1017.5, 'APCPsfc': 0, 'WNDSPD10m': 8, 'WNDGUST10m': 0, 'WNDDIR10m': 242, 'WNDDIRCARD10': 'SO', 'ISSNOW': 1, 'HCDC': '42.80', 'MCDC': '0.00', 'LCDC': '66.60', 'HGT0C': 200, 'KINDEX': 46, 'CAPE180_0': '16.000', 'CIN180_0': -1}, '21H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2, 'DPT2m': -273.2, 'WNDCHILL2m': -0.1, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1017.8, 'APCPsfc': 0, 'WNDSPD10m': 7, 'WNDGUST10m': 0, 'WNDDIR10m': 221, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '50.90', 'MCDC': '0.90', 'LCDC': '100.00', 'HGT0C': 1900, 'KINDEX': 49, 'CAPE180_0': '0.000', 'CIN180_0': 0}, '22H00': {'ICON': 'https://prevision-meteo.ch/style/images/icon/nuit-nuageuse.png', 'CONDITION': 'Nuit nuageuse', 'CONDITION_KEY': 'nuit-nuageuse', 'TMP2m': 2.2, 'DPT2m': -273.2, 'WNDCHILL2m': 0.5, 'HUMIDEX': None, 'RH2m': 91, 'PRMSL': 1017.9, 'APCPsfc': 0, 'WNDSPD10m': 6, 'WNDGUST10m': 0, 'WNDDIR10m': 236, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '9.30', 'MCDC': '15.90', 'LCDC': '100.00', 'HGT0C': 600, 'KINDEX': 53, 'CAPE180_0': '0.000', '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': 2.3, 'DPT2m': -273.2, 'WNDCHILL2m': 1, 'HUMIDEX': None, 'RH2m': 92, 'PRMSL': 1018.4, 'APCPsfc': 0.1, 'WNDSPD10m': 5, 'WNDGUST10m': 0, 'WNDDIR10m': 212, 'WNDDIRCARD10': 'SO', 'ISSNOW': 0, 'HCDC': '0.00', 'MCDC': '1.00', 'LCDC': '23.50', 'HGT0C': 1900, 'KINDEX': 55, 'CAPE180_0': '0.000', 'CIN180_0': 0}}}

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'])
Mercredi 06.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 : 4.7 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-12

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.

Pas si vite ! Êtes-vous sûr ? Vraiment ?
Alors rendez-vous dans exos/meteo_json.py

Exercice sur les fonctions¶

Modifiez le programme météo en créant une fonction qui admet un des jours disponibles comme argument (aujourd'hui, demain, après-demain...)

Pas si vite ! Êtes-vous sûr ? Vraiment ?
Alors allez voir une proposition de solution dans exos/meteo_json_func.py

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 [13]:
from exos import meteo_json_func as mjf
from ipywidgets import interact

def plot_city(city_name, iday):
    city_json = mjf.get_json_from_name(city_name)
    mjf.plot_day_tempe(city_json, f'fcst_day_{iday}')
    
interact(plot_city,
         city_name=["Marseille", "Paris", "Toulouse", "Strasbourg"],
         iday=list(range(5)));
interactive(children=(Dropdown(description='city_name', options=('Marseille', 'Paris', 'Toulouse', 'Strasbourg…

Exécution en script¶

Pour pouvoir exécuter ce fichier en mode script

  • Ajouter en première ligne du fichier: #! python3
  • Rendez le fichier exécutable: chmod a+x today_stras.py
In [14]:
# pour permettre le tracé de la figure dans le notebook :
%matplotlib inline

# équivalent à exécuter la commande :
#    python3 exos/meteo_json.py
# depuis le terminal système, décommentez et exécutez :
#%run exos/meteo_json.py

Utilisation de if __name__ == '__main__':¶

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

  • le code exécuté lors d'un import du fichier comme un module dans un autre programme avec import mon_module
  • le code éxécuté lorsque le fichier est appelé directement comme un script depuis le système : python mon_module.py

Pour ce faire, on utilise la variable __name__ de la façon suivante :

In [15]:
#! python3

def une_fonction_utile():
    return 'je suis utile'

def main():
    print('je suis dans {}'.format(__name__))

if __name__ == '__main__':
    main()
else:
    # En mode module importé, on ne fait rien de plus
    pass
je suis dans __main__

Gestion des arguments¶

Pour pouvoir passer des arguments en ligne de commande, on peut utiliser le module argparse.

Un tutoriel est disponible ici.

In [16]:
import argparse

parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')
print(type(parser))
<class 'argparse.ArgumentParser'>
In [17]:
# Sans "--sum"
args = parser.parse_args(['2', '5'])
print(args.accumulate(args.integers))
5
In [18]:
# Avec "--sum"
args = parser.parse_args(['--sum', '2', '5'])
print(args.accumulate(args.integers))
7
In [19]:
# Certains arguments existent déjà
try:
    parser.parse_args(['--help'])
except SystemExit:
    # Pour éviter une erreur dans jupyter-notebook
    pass
usage: ipykernel_launcher.py [-h] [--sum] N [N ...]

Process some integers.

positional arguments:
  N           an integer for the accumulator

options:
  -h, --help  show this help message and exit
  --sum       sum the integers (default: find the max)

Exercice¶

Modifiez le programme météo pour qu'il prenne le(s) nom(s) de ville en argument(s) en utilisant le module argparse.

In [20]:
# Décommentez la ligne ci-dessous
#%run exos/meteo_json_func_args.py Marseille -d 3

Pas si vite ! Êtes-vous sûr ? Vraiment ?
Alors allez voir une proposition de solution dans exos/meteo_json_func_args.py

Suite de l'exercice¶

  • Laissez libre cours à vos idées et envies, par exemple :

    • en cherchant à tracer l'évolution horaire de la température dans les 5 prochains jours
    • etc.
  • Dans Spyder :

    • testez le système de debugging
    • testez le profiler

À vous de faire la pluie et le beau temps !