parking-land/README.md

148 lines
4.1 KiB
Markdown
Raw Normal View History

2025-03-16 12:54:21 +01:00
# 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.