5633969d98
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>
42 lines
1.4 KiB
PHP
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);
|
|
}
|