import city followup from csv

This commit is contained in:
Tykayn 2025-08-08 17:45:20 +02:00 committed by tykayn
parent eee5d6349a
commit dfeaf123f4
4 changed files with 35253 additions and 1 deletions

View file

@ -0,0 +1,81 @@
# Commande d'import des mesures thématiques depuis CSV
Cette documentation décrit l'utilisation de la commande `app:import-cityfollowup-csv` qui permet d'importer des mesures thématiques depuis des fichiers CSV pour une ville donnée.
## Description
La commande `app:import-cityfollowup-csv` permet d'importer des données de suivi thématique (CityFollowUp) depuis des fichiers CSV générés par les scripts de comptage d'objets OSM. Elle compare les mesures existantes en base de données avec celles du fichier CSV et ajoute uniquement les nouvelles mesures, en excluant celles qui ont une valeur de 0.
## Prérequis
- Les fichiers CSV doivent être présents dans le répertoire `/counting_osm_objects/test_results/`
- Le format du nom de fichier doit être `commune_{code_insee}_{theme}.csv`
- La ville (entité Stats) doit exister en base de données avec le code INSEE correspondant
## Format du fichier CSV
Le fichier CSV doit contenir les colonnes suivantes :
- `date` : Date de la mesure (format YYYY-MM-DD)
- `zone` : Zone de la mesure (format commune_{code_insee})
- `theme` : Thématique de la mesure (ex: borne-de-recharge)
- `nombre_total` : Nombre total d'objets
- `nombre_avec_operator` : Nombre d'objets avec un opérateur (optionnel)
- `nombre_avec_capacity` : Nombre d'objets avec une capacité (optionnel)
- `pourcentage_completion` : Pourcentage de complétion (optionnel)
## Utilisation
```bash
php bin/console app:import-cityfollowup-csv <insee> <theme> [--dry-run]
```
### Arguments
- `insee` : Code INSEE de la ville (obligatoire)
- `theme` : Thématique à importer (ex: borne-de-recharge, defibrillator) (obligatoire)
### Options
- `--dry-run` : Simule l'import sans modifier la base de données
## Exemples
### Import des bornes de recharge pour Paris
```bash
php bin/console app:import-cityfollowup-csv 75056 borne-de-recharge
```
### Simulation d'import des défibrillateurs pour Paris
```bash
php bin/console app:import-cityfollowup-csv 75056 defibrillator --dry-run
```
## Comportement
1. La commande vérifie d'abord que la ville existe en base de données avec le code INSEE fourni.
2. Elle recherche ensuite le fichier CSV correspondant dans le répertoire des résultats.
3. Elle lit le contenu du fichier CSV et récupère les mesures existantes en base de données.
4. Pour chaque ligne du CSV :
- Les lignes avec des valeurs manquantes sont ignorées
- Les mesures avec une valeur de 0 sont ignorées
- Les mesures déjà existantes en base de données sont ignorées
- Les nouvelles mesures sont ajoutées en base de données
5. La commande affiche un résumé des opérations effectuées.
## Correspondance des thématiques
La commande effectue une conversion entre les noms de thématiques utilisés dans les fichiers CSV et ceux utilisés dans la base de données :
| Nom dans le CSV | Nom dans CityFollowUp |
|-----------------|------------------------|
| borne-de-recharge | charging_station |
| defibrillator | defibrillator |
| ... | ... |
## Notes
- Les mesures sont importées par lots de 50 pour éviter de surcharger la mémoire.
- Seules les mesures qui n'existent pas déjà en base de données sont importées.
- Les mesures avec une valeur de 0 sont ignorées conformément aux spécifications.