Files
ecoles/match_dpe.php
T
Arnaud 5633969d98 Version initiale — carte des établissements scolaires
Carte Leaflet (annuaire Éducation nationale) + API PHP/MySQL :
fiche établissement (effectifs, IPS, population INSEE, DPE ADEME),
GED documents/photos, commentaires par groupe, gestion utilisateurs
et politique de mots de passe. Imports opendata (effectifs, IPS,
population, DPE, IRIS).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 21:35:41 +02:00

42 lines
1.4 KiB
PHP

<?php
/**
* Rattachement école ↔ DPE par proximité géographique.
*
* Le dataset ADEME n'a pas d'UAI : on relie chaque établissement aux DPE
* situés dans LA MÊME COMMUNE (code_insee = comc) et à moins de R mètres
* (distance sphérique). Plusieurs DPE peuvent être rattachés à une école
* (campus multi-bâtiments) ; la distance est conservée pour mesurer la
* fiabilité du rattachement.
*
* Pré-requis :
* - php import_dpe.php (table « dpe » remplie)
* - php import_comc.php (colonne « comc » des établissements remplie)
*
* Usage :
* php match_dpe.php # rayon par défaut : 5 m (même bâtiment / adresse)
* php match_dpe.php --radius=80 # rayon élargi
*
* La logique est partagée avec l'endpoint web (api/dpe_lib.php).
*/
declare(strict_types=1);
require __DIR__ . '/api/dpe_lib.php';
function say(string $m): void { echo $m . "\n"; flush(); }
try {
$radius = 5;
foreach ($argv ?? [] as $a) {
if (preg_match('/^--radius=(\d+)$/', $a, $m)) {
$radius = max(1, (int) $m[1]);
}
}
$stats = dpe_match(db(), $radius, static fn(string $m) => say('… ' . $m));
say("✔ etab_dpe : {$stats['pairs']} rattachements pour {$stats['ecoles']} établissements (≤ {$radius} m).");
say('🎉 Terminé.');
} catch (Throwable $e) {
http_response_code(500);
say('!! ERREUR : ' . $e->getMessage());
exit(1);
}