The Shapes Of Things To Come - Doc Technique
English
English
  • Overview
  • Script Python
    • Script Python - Configuration et Execution
    • API AtmoSud
    • Tracking - Caméras et capteurs de positions
    • Communication OSC vers MadMapper
    • Storylines et Scénarios
  • MadMapper
    • MadMapper - Configuration
  • Pix-Lite / Advatek - Configuration
  • Modifications à faire
  • Automatic Execution
Propulsé par GitBook
Sur cette page
  • Données de qualité de l'air
  • Récupération - API ATMOSUD
  • Interprétation
  • Détail des requêtes possibles

Cet article vous a-t-il été utile ?

  1. Script Python

API AtmoSud

API de qualité de l'air de la région SUD

PrécédentScript Python - Configuration et ExecutionSuivantTracking - Caméras et capteurs de positions

Dernière mise à jour il y a 3 ans

Cet article vous a-t-il été utile ?

Données de qualité de l'air

Récupération - API ATMOSUD

Le script python récupère les données de qualité de l'air à travers l'API d'Atmosud (https://api.atmosud.org/) suivant les paramètres de localisation (code INSEE) de l'oeuvre et de la date à travers une requête http. Il est ainsi possible de modifier la commune depuis laquelle le script récupère les données de qualité de l'air afin de l'adapter à sa position actuelle, ainsi que les plages de dates correspondant aux données historiques voulues. Pour plus d'information à ce propos et pour comment obtenir la liste des villes disponibles, cf. page Script Python - Execution, tab Villes Disponibles.

Cela se fait au sein d'un bloc try-get afin d'éliminer les risques de problème de connection au serveur : dans le cas ou il ne serait pas accessible, le script utilisera des donnés de qualité de l'air démo déjà sauvegardés (ces données correspondent aux données du 8 Juin 2021 au 8 Juillet 2021, avec le premier ruban en blanc pour rappeler qu'il s'agit d'une démo)

Il obtient ainsi l'historique de qualité de l'air des 31 derniers jours liée à la qualité de l'air présente à la station de mesure Atmosud la plus proche de l'oeuvre, sous forme d'un dictionnaire contenant pour chaque journée un indice de qualité d'air allant de 1 (Bon) à 6 (Extrêmement mauvais) ainsi que les polluants majoritaire responsables de cette qualité d'air (O3, NO2, pm10, ...).

Interprétation

Le script créé ensuite 2 listes (une pour les indices et une pour les polluants majoritaires) de 31 éléments reflétant la qualité de l'air des 31 derniers jours, qu'il combine en une liste. Dans le cas où les données du jour ne seraient pas encore sorties, le script récupérera les prévisions de la veille pour aujourd'hui. Si ni les données d'aujourd'hui, de la veille ou du mois dernier sont disponible, il utilisera celle de démo.

Suivant l'indice de qualité d'air de 0 à 6 (0 est en plus comme qualificatif d'une donnée 'inconnu'), le script python envoi via OSC un état de lumière (couleur, gradient, opacité, effet, ...) différent à la surface MadMapper correspondant à ce jour du mois.

MadMapper est le logiciel permettant d'appliquer des surfaces, effets, couleurs, luminosité, ect... aux rubans LEDs, via la PixLite Advatek.

Pour plus d'infos sur l'envoi des données vers MadMapper, fonctions supplémentaires, et pour modifier les couleurs et gradients à appliquer cf. section Communication OSC vers MadMapper.

Détail des requêtes possibles

# Other possible indices :  
        # color : 
            # Path : response_dictionary[0]["bulletins"][i]["valeurs"][2]["indice"]["couleur"]
            # Type : string
            # Ex : "#F0E641"
        # image link of color
            # Path : response_dictionary[0]["bulletins"][i]["valeurs"][2]["indice"]["image"]
            # Type : string
            # Ex : "https://api.atmosud.org/static/iqa/1.svg"
        # qualifier
            # Path : response_dictionary[0]["bulletins"][i]["valeurs"][2]["indice"]["qualificatif"]
            # Type : string
            # Ex : "Dégradé"
        # value
            # Path : response_dictionary[0]["bulletins"][i]["valeurs"][2]["indice"]["valeur"]
            # Type : int
            # Ex : 1
    # Index possibilities (7):
        # {couleur, qualificatif, image, valeur}
        # {#000000", "Inconnu", "https://api.atmosud.org/static/iqa/0.svg", 0}
        # {"#50F0E6", "Bon", "https://api.atmosud.org/static/iqa/1.svg", 1}
        # {"#50CCAA", "Moyen", "https://api.atmosud.org/static/iqa/2.svg", 2}
        # {"#F0E641", "Dégradé", "https://api.atmosud.org/static/iqa/3.svg", 3}
        # {"#FF5050", "Mauvais", "https://api.atmosud.org/static/iqa/4.svg", 4}
        # {#960032", "Très mauvais", "https://api.atmosud.org/static/iqa/5.svg", 5}
        # {"#872181", "Extrémement mauvais", "https://api.atmosud.org/static/iqa/6.svg", 6]
        
    # Major source of of pollution
        # Path : response_dictionary[0]["bulletins"][i]["valeurs"][2]["majoritaire"]
        # Ex: ['no2', 'o3', 'pm10']
            
    # Estimation of air quality on -1/0/+1/+2 days
        # Path : response_dictionary[0]["bulletins"][i]["valeurs"][XXX] ==> replace XXX by int between 0 (+2 days) and 3 (-1 day)
Extrait du dictionnaire reçu - pour une journée
Example de mapping d'états de lumière : Ruban 1 = Bonne qualité (vert avec gradient cyan lent); Ruban 2 = Qualité moyenne (cyan avec gradient indigo plus rapide); Ruban 3 = Qualité dégradée (indigo avec gradient magenta encore plus rapide)