Skip to content

Grille H3 & AOI #20

Closed

Description

@Nicolas-Dmb

📋 Description

Centraliser la définition des AOI (zones d'étude) par région et générer la grille H3 de référence pour chaque AOI, afin que tous les jobs découpent exactement les mêmes zones.

Comprend : un registry AOI versionné (packages/core/aoi_registry.py, source of truth), un module core.aoi (load_aoi(aoi_id)), et un job bootstrap generate_h3_grid déterministe (export parquet versionné + UPSERT dans zones_hex). Règle de bordure figée (ex. centroid-in-polygon).

✅ Acceptance Criteria

  • Ajouter aoi_id et aoi_version à zones_hex dans la db
  • AOI registry « source of truth » (pas de string libre) => (un aoi_registry.py qui liste les aoi possibles, des geojson qui fixe les limites géographique de chaque aoi)
  • load_aoi(aoi_id) valide et charge correctement la géométrie (geom 4326, bbox, version) -> fonction python qui appelle le registry pour vérifier que l'aoi existe puis récupère les infos de l'aoi dans le geojson.
  • Job generate_h3_grid déterministe : même aoi_id + h3_res + aoi_version ⇒ mêmes zone_id => une fonction python qui sera appelé une fois par aoi et res, permettant d'en extraire tous les h3 sur la zone. Les résultats sont ensuite stockés dans :
    [ ] Export parquet versionné par AOI
    [ ] UPSERT dans zones_hex sans doublons
  • Traçabilité via job_runs (même en bootstrap) => cad, on stocke dans job_runs lorsqu'on lance generate_h3_grid
  • Rendre la fonction appelable depuis le terminal
  • Tests de déterminisme (AOI petit type IDF pour CI rapide) => idempotence de generate_h3_grid

🔗 Prerequisite Issues

⚠️ Dépendance déclarée dans la DoR : « Table zones_hex créée dans PostGIS » — fournie par :


Source : Notion « Grille H3 & AOI » (Outils commun).

Activity

  1. self-assigned this
    on Jul 1, 2026
  2. Nicolas-Dmb commented on Jul 1, 2026

    @Nicolas-Dmb
    CollaboratorAuthor

    Suppression du versionning sur l'aoi pour simplification, il suffira d'ajouter les aoi souhaités dans la liste déjà établie

  3. Nicolas-Dmb commented on Jul 1, 2026

    @Nicolas-Dmb
    CollaboratorAuthor

    Trois choses à revoir :

    • il faut débuter la tâche sur sqlAlchemy pour terminer celle-ci
    • il faut débuter la tâche sur job-runs pour terminer celle-ci
  4. linked a pull request that will close this issue20 grille h3 aoi #58on Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions