mirror of
https://forge.chapril.org/tykayn/osm-commerces
synced 2025-10-04 17:04:53 +02:00
151 lines
No EOL
4.6 KiB
Markdown
151 lines
No EOL
4.6 KiB
Markdown
# Counting OSM Objects
|
|
|
|
Ce répertoire contient des scripts pour compter et analyser les objets OpenStreetMap dans différentes zones
|
|
administratives françaises.
|
|
|
|
Pour fonctionner vous aurez besoin du fichier historisé de la france, pour cela connectez vous à geofabrik avec votre
|
|
compte osm (oui c'est relou).
|
|
|
|
## Scripts disponibles
|
|
|
|
activez le venv python et les dépendances
|
|
|
|
```shell
|
|
python -m venv bin/venv activate
|
|
source bin/venv/bin/activate
|
|
pip install plotly pandas
|
|
```
|
|
|
|
```shell
|
|
# extraire un historique pour une ville à partir de l'historique de france et du polygone de la ville
|
|
# ici pour paris on peut utiliser l'historique de l'ile de france
|
|
wget https://osm-commerces.cipherbliss.com/admin/export_csv
|
|
|
|
py get_all_polys.py # ce qui utilise l'export csv des villes de osm mon commerce
|
|
osmium extract -p polygons/commune_75056.poly -H osm_data/ile-de-france-internal.osh.pbf -s complete_ways -O -o commune_75056.osh.pbf
|
|
```
|
|
|
|
```shell
|
|
# générer les historiques de la commune 76216 pour tous ses thèmes et tous ses graphes
|
|
py loop_thematics_history_in_zone_to_counts.py --input osm_data/commune_76216.osh.pbf --output-dir test_results --temp-dir test_temp --max-dates 100 --poly polygons/commune_76216.poly
|
|
```
|
|
|
|
```shell
|
|
# générer un graphe pour un thème dans une ville
|
|
py generate_graph.py --insee 91111 test_results/commune_75056_building.csv
|
|
Graphique sauvegardé: test_results/commune_75056_building_monthly_graph.png
|
|
Graphique de complétion sauvegardé: test_results/commune_75056_building_monthly_graph_completion.png
|
|
Graphiques générés avec succès!
|
|
|
|
```
|
|
|
|
### historize_zone.py
|
|
|
|
Ce script principal permet de lancer l'analyse historique d'une ville dans OpenStreetMap. Il:
|
|
|
|
1. Demande à l'utilisateur quelle ville il souhaite traiter
|
|
2. Trouve le code INSEE de la ville demandée
|
|
3. Vérifie si le polygone de la ville existe, sinon le récupère
|
|
4. Traite les données historiques OSM pour cette ville en utilisant loop_thematics_history_in_zone_to_counts.py
|
|
|
|
#### Utilisation
|
|
|
|
```bash
|
|
python historize_zone.py [--input fichier_historique.osh.pbf]
|
|
```
|
|
|
|
Si le fichier d'historique n'est pas spécifié, le script utilisera par défaut le fichier
|
|
`osm_data/france-internal.osh.pbf`.
|
|
|
|
#### Exemples
|
|
|
|
Lancer l'analyse avec le fichier d'historique par défaut:
|
|
|
|
```bash
|
|
python historize_zone.py
|
|
```
|
|
|
|
Lancer l'analyse avec un fichier d'historique spécifique:
|
|
|
|
```bash
|
|
python historize_zone.py --input osm_data/ile-de-france-internal.osh.pbf
|
|
```
|
|
|
|
### loop_thematics_history_in_zone_to_counts.py
|
|
|
|
Ce script compte les objets OSM par thématique sur une zone donnée à différentes dates. Il:
|
|
|
|
1. Filtre les données historiques OSM à différentes dates (mensuelles sur les 10 dernières années)
|
|
2. Compte les objets correspondant à chaque thématique à chaque date
|
|
3. Calcule le pourcentage de complétion des attributs importants pour chaque thème
|
|
4. Sauvegarde les résultats dans des fichiers CSV
|
|
5. Génère des graphiques montrant l'évolution dans le temps
|
|
|
|
#### Utilisation
|
|
|
|
```bash
|
|
python loop_thematics_history_in_zone_to_counts.py --input fichier.osh.pbf --poly polygons/commune_XXXXX.poly
|
|
```
|
|
|
|
Ce script est généralement appelé par historize_zone.py et ne nécessite pas d'être exécuté directement.
|
|
|
|
### get_poly.py
|
|
|
|
Ce script permet de récupérer le polygone d'une commune française à partir de son code INSEE. Il interroge l'API
|
|
Overpass Turbo pour obtenir les limites administratives de la commune et sauvegarde le polygone dans un fichier au
|
|
format .poly (compatible avec Osmosis).
|
|
|
|
#### Utilisation
|
|
|
|
```bash
|
|
python get_poly.py [code_insee]
|
|
```
|
|
|
|
Si le code INSEE n'est pas fourni en argument, le script le demandera interactivement.
|
|
|
|
#### Exemples
|
|
|
|
Récupérer le polygone de la commune d'Étampes (code INSEE 91111) :
|
|
|
|
```bash
|
|
python get_poly.py 91111
|
|
```
|
|
|
|
Le polygone sera sauvegardé dans le fichier `polygons/commune_91111.poly`.
|
|
|
|
#### Format de sortie
|
|
|
|
Le fichier de sortie est au format .poly, qui est utilisé par Osmosis et d'autres outils OpenStreetMap. Il contient :
|
|
|
|
- Le nom de la commune
|
|
- Un numéro de section
|
|
- Les coordonnées des points du polygone (longitude, latitude)
|
|
- Des marqueurs "END" pour fermer le polygone et le fichier
|
|
|
|
Exemple de contenu :
|
|
|
|
```
|
|
commune_91111
|
|
1
|
|
2.1326337 48.6556426
|
|
2.1323684 48.6554398
|
|
...
|
|
2.1326337 48.6556426
|
|
END
|
|
END
|
|
```
|
|
|
|
## Dépendances
|
|
|
|
- Python 3.6+
|
|
- Modules Python : argparse, urllib, json
|
|
- Pour compare_osm_objects.sh : PostgreSQL, curl, jq
|
|
|
|
## Installation
|
|
|
|
Aucune installation spécifique n'est nécessaire pour ces scripts. Assurez-vous simplement que les dépendances sont
|
|
installées.
|
|
|
|
## Licence
|
|
|
|
Ces scripts sont distribués sous la même licence que le projet Osmose-Backend. |