add computing from osm history
This commit is contained in:
parent
da60f964ab
commit
66bbce5e85
13 changed files with 3921 additions and 0 deletions
151
counting_osm_objects/README.md
Normal file
151
counting_osm_objects/README.md
Normal file
|
@ -0,0 +1,151 @@
|
|||
# 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.
|
Loading…
Add table
Add a link
Reference in a new issue