Guide instructeur

Tout ce que l’instructeur doit préparer avant la session.


1. Checklist pré-cours

  • Docker stack : docker compose up -d → les 2 conteneurs sont healthy
  • Gold Dumps : générés pour les 10 EPCIs (python scripts/admin_generate_gold_dumps.py --all)
  • Slides Marp : buildées (npx @marp-team/marp-cli slides/theorie_bdd_nosql.md -o slides/output.html)
  • Neo4j heap : adapté aux laptops étudiants (512M si < 8 Go RAM)
  • Données Parquet : accessibles sur le partage CIFS ou en local
  • .env : distribué aux étudiants (copie de .env.example)

2. Assignation groupes × EPCI

Groupe EPCI Profil tactique
1 Brest Métropole Port militaire Atlantique
2 Le Havre Seine Métropole Port pétrolier estuaire
3 CU de Dunkerque Frontière + nucléaire (Gravelines)
4 CA du Cotentin Péninsule + nucléaire (Flamanville)
5 Grenoble-Alpes-Métropole Cuvette montagneuse
6 Eurométropole de Strasbourg Frontière Allemagne
7 Métropole Européenne de Lille Frontière Belgique
8 CA du Pays Basque Frontière Espagne + montagne
9 Métropole Rouen Normandie Vallée Seine
10 Bordeaux Métropole Estuaire Gironde

Chaque groupe de 4 étudiants : 1 Attaque, 1 Défense, 1 Ravitaillement, 1 Énergie.

3. Timing suggéré (2.5 jours)

Moment Durée Activité
J1 matin 3h Cours magistral (slides) + installation
J1 après-midi 3h Phase 1 : Reconnaissance (solo)
J2 matin 3h Phase 2 : Cartographie (groupe)
J2 après-midi 3h Phase 3 : Simulation + benchmark
J3 matin 2h Présentations orales + debriefing

4. Points de blocage fréquents

Problème Solution
Mémoire Neo4j Réduire heap à 512M dans docker-compose.yml
SRID mix BDTOPO = 2154. Rappeler ST_Transform pour les coords GPS
importance VARCHAR Toujours CAST(importance AS INTEGER) pour les filtres
Cypher lent Créer les index avant migration : CREATE INDEX FOR (p:POI) ON (p.role)
EPCI trop grand Grand Paris = timeout pgRouting. Sweet spot : 30k-140k routes
Centrales nucléaires Injectées par 00_setup.py → table mission_custom_pois
r2gg non installé Utiliser les Gold Dumps pré-générés

5. Centrales nucléaires (custom POIs)

Injectées automatiquement par 00_setup.py pour les EPCIs proches :

Centrale Coords approx. EPCI concerné
Gravelines (2.14, 51.0) CU de Dunkerque
Flamanville (-1.85, 49.55) CA du Cotentin
Cattenom (6.25, 49.42) CC de Cattenom et Environs
Chooz (4.82, 50.08) Ardenne Métropole
Civaux (0.65, 46.45) CU du Grand Poitiers

Table : mission_custom_pois (id, nom, type, puissance_mw, geometrie).

6. Corrigés

Les scripts 01_explore_postgis.py à 04_benchmark_comparison.py contiennent les corrigés complets.

Pour distribuer aux étudiants :

  • Fournir les briefings dans mission/ (déjà présents)
  • Les scripts sont des exemples — les étudiants écrivent leurs propres requêtes dans un notebook ou en CLI

7. Évaluation

Voir la grille d’évaluation :

  • Requêtes SQL : 25%
  • Requêtes Cypher : 20%
  • Routage pgRouting : 20%
  • Benchmark : 15%
  • Carte + rapport : 15%
  • Présentation : 5%

8. Dépannage avancé

Réinitialiser complètement

docker compose down -v   # supprime les volumes
docker compose up -d     # recréé les conteneurs
python scripts/00_setup.py --epci "<EPCI>"  # recharge les données

Vérifier les données chargées

-- Tables BDTOPO chargées
SELECT tablename FROM pg_tables WHERE schemaname = 'public' ORDER BY tablename;

-- Comptages par table
SELECT 'mission_pois' AS t, count(*) FROM mission_pois
UNION ALL SELECT 'ways', count(*) FROM ways
UNION ALL SELECT 'bdtopo_ontology', count(*) FROM bdtopo_ontology;

Neo4j : vérifier la migration

// Compter les nœuds par label
MATCH (n) RETURN labels(n)[0] AS label, count(*) ORDER BY count DESC;

// Vérifier les relations
MATCH ()-[r]->() RETURN type(r) AS rel, count(*) ORDER BY count DESC;

This site uses Just the Docs, a documentation theme for Jekyll.