No description
Find a file
2025-03-16 12:54:21 +01:00
__pycache__ generate map with folium 2025-03-16 12:54:21 +01:00
Briis sous forges_surface_comparison_bar_chart.jpg init parking land 2025-03-16 12:20:05 +01:00
carte_ville.html generate map with folium 2025-03-16 12:54:21 +01:00
carte_ville.jpg generate map with folium 2025-03-16 12:54:21 +01:00
compute.py init parking land 2025-03-16 12:20:05 +01:00
fetch.py init parking land 2025-03-16 12:20:05 +01:00
generate_city_map.py generate map with folium 2025-03-16 12:54:21 +01:00
highway_results.json init parking land 2025-03-16 12:20:05 +01:00
html2jpg.py generate map with folium 2025-03-16 12:54:21 +01:00
html_to_jpg.py generate map with folium 2025-03-16 12:54:21 +01:00
Limours_city_map.jpg init parking land 2025-03-16 12:20:05 +01:00
Limours_city_map_comparison.jpg init parking land 2025-03-16 12:20:05 +01:00
Limours_surface_comparison_bar_chart.jpg init parking land 2025-03-16 12:20:05 +01:00
map.py generate map with folium 2025-03-16 12:54:21 +01:00
map_simple.py generate map with folium 2025-03-16 12:54:21 +01:00
overpass_data.json generate map with folium 2025-03-16 12:54:21 +01:00
parkings_results.json init parking land 2025-03-16 12:20:05 +01:00
present.py generate map with folium 2025-03-16 12:54:21 +01:00
README.md generate map with folium 2025-03-16 12:54:21 +01:00
requirements.txt generate map with folium 2025-03-16 12:54:21 +01:00
resultat_template.html generate map with folium 2025-03-16 12:54:21 +01:00
resultat_template_ameliore.html.html generate map with folium 2025-03-16 12:54:21 +01:00
simple_map.py generate map with folium 2025-03-16 12:54:21 +01:00
summary_results.html init parking land 2025-03-16 12:20:05 +01:00
summary_results.json generate map with folium 2025-03-16 12:54:21 +01:00
template.html.j2 generate map with folium 2025-03-16 12:54:21 +01:00
template_ameliore.html.j2 generate map with folium 2025-03-16 12:54:21 +01:00
test_data.json generate map with folium 2025-03-16 12:54:21 +01:00
test_present.py generate map with folium 2025-03-16 12:54:21 +01:00
ville.json init parking land 2025-03-16 12:20:05 +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 :

Utilisation

Génération d'un rapport HTML

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

python present.py summary_results.json rapport_ville.html template_ameliore.html

Génération d'une carte de ville

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

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é) :

    python map.py <osm_id> [-o output.jpg]
    
  2. Génération de carte avec Folium (plus léger) :

    python map_simple.py <osm_id> [-o output.html]
    
  3. Conversion d'une carte HTML en JPG :

    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 :

python test_present.py

Structure des données JSON

Le fichier JSON doit contenir les clés suivantes :

{
  "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
  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.