Aller au contenu

IoT — Capteurs climatiques NOAA pas-à-pas

Parcours personas : carol (analyste) · Catalogues : postgres_postgis_iot · Durée : ~20 min · Difficulté : étoile

Cette démo utilise un dataset synthétique de capteurs style NOAA où la température décroît naturellement avec la latitude. Carol demande à ADEN de tracer le gradient par bande de latitude ; la couche BI rend une série temporelle ; Carol exporte un CSV pour un partenaire.

Ce que la démo prouve

  • Une question time-series se résout en un prompt ADEN sur une source PostGIS fédérée.
  • La couche BI rend un graphe multi-lignes par bande sans config manuelle.
  • La logique de banding géographique est générée, pas codée en dur.

Pré-requis

  • URL démo : https://demo.akko-ai.com
  • Catalogue postgres_postgis_iot déjà fédéré.
  • 1 persona provisionnée : carol.

Étape 1 — Carol se connecte et inspecte le catalogue IoT

Se connecter en carol. Aller dans Gouvernance → Explorateur de catalogue → postgres_postgis_iot.

Tables attendues :

iot.stations          (1 240 lignes, geometry POINT)
iot.measurements      (45 600 000 lignes)
iot.calibration_runs  (180 lignes)

Cliquer measurements et confirmer les colonnes :

  • measurement_id — bigint
  • station_id — texte
  • measured_ts — timestamp
  • metrictemperature_c, humidity_pct, wind_kmh
  • value — double

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/01-catalog-tables.png

Étape 2 — Carol ouvre ADEN

Cliquer IA → ADEN. Régler :

  • Catalogue : postgres_postgis_iot
  • Modèle : qwen2.5-coder:7b

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/02-aden-scope.png

Étape 3 — Carol pose la question time-series

Prompt :

trace la température moyenne mensuelle pour 2024 groupée par bande de latitude de 10 degrés,
inclus le nombre de stations par bande

Cliquer Ask. SQL attendu :

WITH station_band AS (
    SELECT
        s.station_id,
        floor(ST_Y(s.geom) / 10) * 10 AS lat_band
    FROM postgres_postgis_iot.iot.stations s
), tagged AS (
    SELECT
        m.measured_ts,
        m.value,
        sb.lat_band
    FROM postgres_postgis_iot.iot.measurements m
    JOIN station_band sb USING (station_id)
    WHERE m.metric = 'temperature_c'
      AND m.measured_ts BETWEEN TIMESTAMP '2024-01-01' AND TIMESTAMP '2024-12-31'
)
SELECT
    date_trunc('month', measured_ts) AS month,
    lat_band,
    avg(value)                       AS avg_temp_c,
    count(DISTINCT station_id) OVER (PARTITION BY lat_band) AS n_stations
FROM tagged
GROUP BY 1, 2
ORDER BY 2, 1;

Extrait du résultat attendu :

| month       | lat_band | avg_temp_c | n_stations |
| 2024-07-01  | -30      | 12,4       | 78         |
| 2024-07-01  |   0      | 26,8       | 142        |
| 2024-07-01  |  30      | 24,1       | 312        |
| 2024-07-01  |  60      |  8,7       | 96         |

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/03-aden-result.png

Étape 4 — Carol promeut le dashboard

Cliquer Promote to dashboard. ADEN propose un dashboard 3 tuiles :

  1. Line — Température moyenne par mois, une ligne par bande de latitude
  2. Bar — Nombre de stations par bande
  3. Table — Moyennes mensuelles brutes
+-------------------- AKKO IoT — Température par latitude 2024 --------+
| 12 bandes de latitude | 1 240 stations                               |
+----------------------------------------------------------------------+
| [ Multi-line : temp / mois / bande ]  [ Bar : stations / bande ]     |
+----------------------------------------------------------------------+

Le line chart montre le motif attendu de température décroissante à mesure que la latitude s'éloigne de l'équateur.

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/04-line-dashboard.png

Étape 5 — Carol filtre par saison

Dans le dashboard, ajouter un filtre month entre Jul et Sep.

Résultat attendu : le line chart se redessine pour ne montrer que l'été ; la bande 0 plafonne à ~29 deg C, la bande 60 à ~10 deg C.

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/05-summer-filter.png

Étape 6 — Carol exporte le CSV pour un partenaire

Cliquer Export → CSV.

Résultat attendu : un fichier de 144 lignes (12 mois × 12 bandes). Colonnes : month, lat_band, avg_temp_c, n_stations.

Capture : tests/e2e/playwright/artefacts/demos/iot-sensors/06-csv-export.png

Nettoyage

  • Se déconnecter.

Ce que la démo prouve

  • Les questions time-series convergent en un seul prompt ADEN sur une source fédérée.
  • Le banding de latitude est généré à la volée via PostGIS ST_Y, pas codé en dur.
  • La couche BI produit un multi-line chart sans config manuelle.

Fichiers dans le repo

Fichier Rôle
scripts/seed-iot.sh Seed 1 240 stations et 45M mesures
dbt/models/marts/iot/temp_by_lat_band.sql Vue matérialisée curatée

Voir aussi