mirror of
https://forge.chapril.org/tykayn/parking-land
synced 2025-06-20 01:44:42 +02:00
148 lines
No EOL
4.1 KiB
Markdown
148 lines
No EOL
4.1 KiB
Markdown
# Analyse Urbaine - Générateur de Rapports et Cartes
|
|
|
|
Ce projet permet de générer des rapports HTML et des cartes visuelles présentant les résultats d'analyse urbaine pour une ville donnée, à partir de données JSON et OpenStreetMap.
|
|
|
|
## Fonctionnalités
|
|
|
|
- Génération de rapports HTML à partir de données JSON
|
|
- Visualisation des statistiques urbaines (routes, pistes cyclables, parkings, bâtiments, etc.)
|
|
- Génération de cartes visuelles des villes à partir de leur ID OpenStreetMap
|
|
- Calcul automatique de ratios et d'indicateurs
|
|
- Templates personnalisables
|
|
- Interface responsive adaptée aux mobiles et ordinateurs
|
|
|
|
## Prérequis
|
|
|
|
- Python 3.6 ou supérieur
|
|
- Jinja2 (`pip install jinja2`)
|
|
- Pour les cartes : OSMnx ou Folium (voir requirements.txt)
|
|
|
|
## Installation
|
|
|
|
1. Clonez ce dépôt :
|
|
```
|
|
git clone https://github.com/votre-utilisateur/analyse-urbaine.git
|
|
cd analyse-urbaine
|
|
```
|
|
|
|
2. Installez les dépendances :
|
|
```
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. Pour la conversion HTML vers JPG, installez l'un des outils suivants :
|
|
- wkhtmltopdf/wkhtmltoimage : https://wkhtmltopdf.org/downloads.html
|
|
- CutyCapt (pour Linux) : `sudo apt-get install cutycapt`
|
|
|
|
## Utilisation
|
|
|
|
### Génération d'un rapport HTML
|
|
|
|
```bash
|
|
python present.py <fichier_json> [fichier_html_sortie] [fichier_template]
|
|
```
|
|
|
|
Arguments :
|
|
- `<fichier_json>` : Chemin vers le fichier JSON contenant les données (obligatoire)
|
|
- `[fichier_html_sortie]` : Chemin où sauvegarder le fichier HTML (par défaut: resultat.html)
|
|
- `[fichier_template]` : Nom du fichier template à utiliser (par défaut: template.html)
|
|
|
|
### Exemple
|
|
|
|
```bash
|
|
python present.py summary_results.json rapport_ville.html template_ameliore.html
|
|
```
|
|
|
|
### Génération d'une carte de ville
|
|
|
|
```bash
|
|
python generate_city_map.py <osm_id> [options]
|
|
```
|
|
|
|
Arguments :
|
|
- `<osm_id>` : ID OpenStreetMap de la ville (obligatoire)
|
|
- `-o, --output` : Chemin où sauvegarder l'image
|
|
- `--folium` : Utiliser Folium au lieu d'OSMnx (plus léger mais moins détaillé)
|
|
- `-v, --verbose` : Afficher les messages de débogage
|
|
|
|
### Exemple
|
|
|
|
```bash
|
|
python generate_city_map.py 123456 -o carte_ville.jpg
|
|
```
|
|
|
|
### Utilisation avancée
|
|
|
|
Pour plus de contrôle, vous pouvez utiliser les scripts individuels :
|
|
|
|
1. Génération de carte avec OSMnx (haute qualité) :
|
|
```bash
|
|
python map.py <osm_id> [-o output.jpg]
|
|
```
|
|
|
|
2. Génération de carte avec Folium (plus léger) :
|
|
```bash
|
|
python map_simple.py <osm_id> [-o output.html]
|
|
```
|
|
|
|
3. Conversion d'une carte HTML en JPG :
|
|
```bash
|
|
python html_to_jpg.py <fichier_html> [-o output.jpg] [-m méthode]
|
|
```
|
|
|
|
### Test de la solution
|
|
|
|
Pour tester la solution avec des données fictives :
|
|
|
|
```bash
|
|
python test_present.py
|
|
```
|
|
|
|
## Structure des données JSON
|
|
|
|
Le fichier JSON doit contenir les clés suivantes :
|
|
|
|
```json
|
|
{
|
|
"city_name": "Nom de la ville",
|
|
"longueur_route_km": 228.33,
|
|
"road_cycleway_km": 12.5,
|
|
"compte_highways": 3530,
|
|
"surface_route_km2": 1.59,
|
|
"building_count": 2516,
|
|
"building_area": 2.65,
|
|
"building_sizes": [0, 10, 50, 100, 200, 500, "Infinity"],
|
|
"building_size_counts": [120, 450, 780, 650, 400, 116],
|
|
"compte_piste_cyclable": 42,
|
|
"car_parking_capacity_provided": 491,
|
|
"roundabout_count": 12,
|
|
"mini_roundabout_count": 5,
|
|
"surface_parking_km2": 0.35,
|
|
"surface_bicycle_parking_km2": 0.042,
|
|
"charging_stations": 14,
|
|
"charging_stations_with_capacity_count": 12,
|
|
"charging_stations_capacity_provided": 28,
|
|
"charging_points": 32
|
|
}
|
|
```
|
|
|
|
## Templates disponibles
|
|
|
|
- `template.html` : Template de base avec tableau simple
|
|
- `template_ameliore.html` : Template amélioré avec design moderne, cartes et visualisations
|
|
|
|
## Personnalisation
|
|
|
|
Vous pouvez créer vos propres templates en vous basant sur les templates existants. Utilisez la syntaxe Jinja2 pour accéder aux données.
|
|
|
|
## Trouver l'ID OpenStreetMap d'une ville
|
|
|
|
1. Allez sur [OpenStreetMap](https://www.openstreetmap.org/)
|
|
2. Recherchez la ville souhaitée
|
|
3. Cliquez sur la ville dans les résultats
|
|
4. L'URL contiendra l'ID de la relation, par exemple : `https://www.openstreetmap.org/relation/123456`
|
|
5. L'ID est le nombre après "relation/" (ici, 123456)
|
|
|
|
## Licence
|
|
|
|
Ce projet est sous licence MIT. |