This commit is contained in:
Tykayn 2025-01-15 22:20:14 +01:00 committed by tykayn
commit 996524bc6d
107 changed files with 1295536 additions and 0 deletions

8
docs/Extracteurs.md Normal file
View file

@ -0,0 +1,8 @@
# Les extracteurs
Ces scripts permettent de récupérer des données sous licence ODBL depuis openstreetmap.
ils se trouvent dans mappings/extractors.
On peut les exécuter tous à la suite avec le script `run_all_extractors.sh`
```shell
bash update_scripts/run_all_extractors.sh
```

View file

@ -0,0 +1,43 @@
# Ajout d'un jeu de données
Pour ajouter un jeu de données et sa conversion vous devrez faire un mapper et mettre le jeu de données dans le convertisseur.
Checklist:
- [] avoir un jeu de données de Points en Geojson à convertir, dans `etalab_data`, dans un dossier thématique (arbres, parking vélo, IRVE...).
- [] un convertisseur (Mapper) qui étend le type `MappingConfigType`
- [] une page de documentation markdown liée à ce jeu de données mentionnant une commande ts-node à lancer dans `docs`.
- [] noter l'url du jeu de données source dans `get_datasets.sh`
- [] ajouter l'import de ce Mapper dans `convert_to_osm_tags.ts`
- [] tester le rendu de la conversion en plaçant la sortie output dans JOSM.
## Récupérer un jeu de données
## Créer un Mapper
Créer un fichier ts dans mappings/converters qui expose un objet étendant `MappingConfigType`. Ici on fait un Mappeur qui ne changera qu'une seule clé en gardant toutes ses valeur, nom_amenageur sera converti en name.
```ts
export const mappingName: MappingConfigType = {
config_name: 'testing config mappingName',
config_author: 'tykayn <contact+geojson2osm@cipherbliss.com>',
default_properties_of_point: {},
tags: {
nom_amenageur : 'name'
},
add_not_mapped_tags_too: true,
source: {
geojson_path: '',
url: ''
},
filters: {},
}
```
Le détail complet des configurations de MappingConfigType est à voir dans la page [configuration_de_conversion.md]
## Ajouter le Mapper dans le point d'entrée de conversion
Choisir le jeu de données en changeant la configuration dans `convert_to_osm_tags.ts`.
Importer son Mapper dans `convert_to_osm_tags.ts` et le faire charger dans l'[Engine](engine.md) dans la partie qui réalise le chargement d'un Mapper.
Ajouter le nom du mapper dans le tableau `allowed_configs`, puis remplir une condition pour que l'Engine prenne le bon modèle de mapping.
# Debug
activer les logs dans le fichier des `utils.ts`.

27
docs/arbres.md Normal file
View file

@ -0,0 +1,27 @@
# Arbres
Des jeux de données sont disponibles pour lister les abres, suivre leur évolution, et mettre en avant les arbres monumentaux, dignes d'intérêt touristique.
## Issy les moulineaux
- ID_ARBRE : ref:FR:issy_les_mx:id_arbre
- CADUC_PERS : leaf_cycle=evergreen pour persistant , deciduous pour caduque
- HAUTEUR est_height=* hauteur estimée
- FEUIL_CONI : feuillu leaf_type=broadleaved / conifère leaf_type=needleleaved
- GENESPVAR : nom d'espèce species=*
- AN_PLANT : date_start
- VERNACULAIRE : species:FR=*
- PARTICULAR : Majeur, Remarquable : historic=monument
- FORME: tree_shape = curtain / free / half_free <= Architecturé, rideau / Libre / Semi-libre
# conversion
Abres d'issy les moulineaux
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/arbres/arbres_issy.geojson --output-file=arbres_issy.geojson --engine-config=MappingArbresIssy
```
Cadastre vert:
```bash
ts-node convert_to_osm_t
ags.ts --source=etalab_data/arbres/arbres_92.json --output-file=arbres_92.geojson --engine-config=MappingArbres92
```

23
docs/ask_angela.md Normal file
View file

@ -0,0 +1,23 @@
# Ask Angela, dispositif anti harcèlement
Les commerces et autres lieux adhérant au dispositif
# Conversion
## Conversion des données de Toulouse
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/askangela/toulouse_askangela.json --output-file=toulouse_askangela.json --engine-config=MappingAskAngela
```
## Conversion des données de Bordeaux
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/askangela/bordeaux_askangela.json --output-file=bordeaux_askangela.json --engine-config=MappingAskAngela
```
## Conversion des données de Poitiers
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/askangela/poitiers_askangela.json --output-file=poitiers_askangela.json --engine-config=MappingAskAngela
```
## Conversion des données de Lyon
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/askangela/lyon_askangela.json --output-file=lyon_askangela.json --engine-config=MappingAskAngela
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View file

@ -0,0 +1,133 @@
# Configuration de conversion
Ce fichier de configuration est utilisé pour convertir un jeu de données ouvertes en des données exploitables par des tags OpenStreetMap. Il décrit les règles de conversion pour chaque propriété des données ouvertes et les valeurs attendues pour chaque tag OpenStreetMap.
Structure du fichier de configuration
Le fichier de configuration est un objet JSON du type MappingConfigType qui contient les propriétés suivantes :
| Clé | Sous-clé | Sous-sous-clé | Description |
|-----------------------------|---------------------------| --- | --- |
| config_name | | | le nom de la configuration |
| config_author | | | le nom de l'auteur de la configuration avec son email entre chevrons |
| source | | | infos sur la provenance des données à convertir |
| source | geojson_path | | lien relatif dans ce dépôt vers le fichier téléchargé |
| source | url | | lien absolu de la source, sur le portail datagouv par exemple |
| add_not_mapped_tags_too | | | un boolean indiquant si les tags non détectés par la configuration doivent être ajoutés également aux points convertis |
| default_properties_of_point | | | un objet qui décrit les clés et valeur par défaut à mettre pour les points |
| filters | | | un objet qui décrit les filtres à appliquer aux données ouvertes |
| filters | enable_coordinates_filter | | booléen, permet d'activer un filtre sur les points se trouvant dans certaines coordonnées |
| filters | properties | | objet listant colonne et expression régulières pour ne garder que ce qui correspond |
| filters | properties | consolidated_code_postal | | exemple de regex pour trouver les points dont le code postal commence par 76 ou 27 : '^[76|27]' |
| filters | bounding_box | | tableau décrivant un rectangle de coordonnées: Xstart Ystart Xend Yend |
| filters | enable_properties_filter | | objet décrivant les regex à chercher sur certaines colonnes pour ne garder que les objets concernés |
| tags | | | un objet qui décrit les règles de conversion pour chaque tag OpenStreetMap |
# Propriétés de conversion des tags
Chaque clé donne une colonne du jeu de données à convertir en tag OSM, soit en conservant la valeur si on lui donne une simple chaîne de caractères en valeur, soit en lui apportant des modifications plus précises avec un objet en valeur.
Par exemple, nous avons un jeu de données sur les bornes de recharge électriques et leur numéro de SIREN est donné dans une colonne "siren_amenageur", dans OSM on utilisera une clé 'owner:ref:FR:SIREN'.
```json
{
"config_name": "IRVE config",
"tags": {
"siren_amenageur": "owner:ref:FR:SIREN"
}
}
```
Ce qui équivaut à une utilisation d'objet ainsi
```json
{
"config_name": "IRVE config",
"tags": {
"siren_amenageur": {
"key_converted":"owner:ref:FR:SIREN"
}
}
}
```
Les propriétés possibles sont:
| Clé | Description | Type | Valeur par défaut |
|------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| --- | --- |
| conditional_values | Valeurs conditionnelles, détail ci après | objet | null |
| convert_to_boolean_value | Convertit la valeur en booléen | boolean | false |
| convert_to_phone | Convertir en numéro de téléphone | boolean | false |
| ignore_if_falsy | Ignorer cette ligne si elle vaut false ou 0 | boolean | false |
| key_converted | Convertir en clé OSM | string | null |
| remove_original_key | Enlever la ligne | boolean | false |
| socket_output_find_correspondances | Chercher une puissance de socket pour borne de recharge électrique | boolean | false |
Exemple:
```json
{
"tags": {
"puissance_nominale": {
"key_converted": "charging_station:output",
"socket_output_find_correspondances": true
},
"accessibilite_pmr": {
"key_converted": "wheelchair",
"conditional_values": {
"Non accessible": {
"value_converted": "no"
},
"Réservé PMR": {
"value_converted": "yes"
}
}
}
}
}
```
## Valeurs conditionnelles conditional_values
Un objet décrivant par ses clés des comportements à faire selon la valeur donnée.
Propriétés:
| Clé | Description | Type | Valeur par défaut |
| --- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| --- | --- |
| ignore_this_data | Ignorer, pour évacuer des valeurs indésirables | | |
| tags_to_add | Tags à ajouter | objet | |
| transform_function | Une fonction à appliquer à la valeur | | |
| convert_to_boolean_value | Convertit en 'yes' si la valeur est Truthy, et en 'no' si elle est Falsy. Et ne change pas la valeur si elle n'est ni Truthy ni Falsy. | | |
| value_converted | valeur à convertir | string ou number | |
| truthy_value | Convertir la valeur dans le cas où elle est Truthy. exemple: le jeu de données dit que la colonne cable_t2_attache vaut "True", mais on veut le convertir en "1". On met donc truthy_value: '1' | boolean | false |
| falsy_value | Convertir la valeur dans le cas où elle est Falsy, comme pour truthy_value. | boolean | false |
| invert_boolean_value | Inverser la valeur booléenne | boolean | false |
### Tags à ajouter
Quand on utilise la clé "tags_to_add", on lui met en valeur un tableau de tags OSM à ajouter.
Ici, ajout de trois tags si la valeur est `yes` pour `station_deux_roues`
```json
{
"tags": {
"station_deux_roues": {
"remove_original_key": true,
"conditional_values": {
"yes": {
"tags_to_add": [
{
"bicycle": "yes"
},
{
"scooter": "yes"
},
{
"motorcar": "no"
}
]
}
}
}
}
}
```

View file

@ -0,0 +1,26 @@
# Deviner les correspondances
Dans un Geojson on peut deviner à quel tag correspondent les propriétés des points de la Feature collection pour créer ses modèles de Mapper.
Examinez un geojson avec le script `propose_mapping_from_data.py`:
```shell
# exemple avec un jeu de données de musée
python propose_mapping_from_data.py etalab_data/musées/fr.geojson
```
Ce qui donne:
```json
{
"Identifiant Mus\u00e9ofile": "",
"R\u00e9gion administrative": "",
"D\u00e9partement": "",
"Commune": "",
"Nom officiel du mus\u00e9e": "",
"Adresse": "",
"Lieu": "",
"Code Postal": "",
"T\u00e9l\u00e9phone": "",
"URL": "",
"REF_Deps": ""
}
```

32
docs/engine.md Normal file
View file

@ -0,0 +1,32 @@
# Engine
Les conversions de jeux de données Geojson se font via des règles définies par les Mappers, appliqués par l'Engine. C'est là que les fonctions de conversions sont appliquées:
- conversion d'un numéro de téléphone dans un format réglementé comme dans le wiki OSM
- en booléen
- validation de format horaire
- filtrer les données selon des critères géographiques ou d'offset limité
Après initialisation de l'Engine avec [un `Mapper`](configuration_de_conversion.md), on lui passe un jeu de données geojson et on lance la conversion de données avec `mapElementFromConf()`.
Cela est réalisé dans le point d'entrée principal en node typescript: `convert_to_osm_tags.ts`
Les conversions de chaque propriété sont faites par la fonction convertProperty:
```
convertProperty(pointKeyName, mappingKeys, featurePoint, newProperties)
```
| paramètre | description |
|---------------|---------------------------------------|
| pointKeyName | clé de propriété du geojson |
| mappingKeys | liste des clés de propriétés du Point |
| featurePoint | Point geojson |
| newProperties | objet des nouvelles propriétés |
# Jardinage à partir d'OSM
L'option jardinage permet de ne pas convertir les propriétés de Geojson dans le cas où l'on extrait les données d'OSM.
Cela nécessite un mappeur différent pour appliquer des transformations de mise en qualité.
# Stats
L'engine publie des statistiques de conversion de données

8
docs/finess_santé.md Normal file
View file

@ -0,0 +1,8 @@
# fichier FINESS
Le fichier répertoriant les établissements de santé, hôpitaux, maisons médicales, pharmacies, laboratoires d'analyse...
# conversion
Commande de conversion:
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/finess/finess_idf.json --output-file=finess_idf.json --engine-config=mappingFINESS
```

97
docs/index.md Normal file
View file

@ -0,0 +1,97 @@
# Conversion de jeux de données geojson en tags OSM
Ce dépot propose des outils de conversion et de mise en qualité de jeux de données à partir de geojson ou de csv afin de les importer dans OpenStreetMap.
Une présentation de l'intégration des bornes de recharges électiques dans openstreetmap faite grâce à ce dépot est disponible sur le blog Cipher Bliss:
[https://www.cipherbliss.com/integration-des-bornes-de-recharge-de-vehicules-electriques-dans-openstreetmap/]()
# installation
utiliser npm, yarn ou pnpm
```bash
pnpm i
```
## Tout convertir d'un coup
Pour récupérer le jeu de données pour les bornes elec et convertir le geojson en fichier osm, lancer le script bash
```bash
make
```
Export depuis overpass turbo dans OSM
[https://overpass-turbo.eu/s/1yhY]()
## config
Configurer le filtre de département et les autres options dans convert_to_osm_tags.ts.
Vous pouvez voir le détail de la [création d'un nouveau Mapper ou convertisseur](ajout_jeu_de_données.md), les [propriétés possibles d'un convertisseur](configuration_de_conversion.md) en regardant celui des bornes de recharge de véhicule électrique par exemple: [MappingIRVESuisse](mappings/converters/configIRVE.ts) qui est une extension du Type [MappingConfigType](mappings/mapping-config.type.ts).
## utilisation
Après avoir bien installé les paquets et récupéré un fichier Geojson de données ouvertes, vous devez avoir une configuration de conversion, puis lancer le script principal de conversion.
```bash
ts-node convert_to_osm_tags.ts
```
Plusieurs options sont disponible pour affiner la conversion:
```
--source=chemin/mon_fichier.geojson
--department=12 (aucun filtre de département par défaut)
--engine=true (true par défaut)
--output-file=autre_nom_de_sortie.json
```
La sortie est filtrée selon le mappage donné et la zone de code postal de la config.
Vous obtenez un résultat converti en json dans le dossier /output. Il s'agit toujours d'un Geojson mais nettoyé selon votre convertisseur, il peut ensuite être converti en fichier osm à ajouter dans JOSM.
Pour le convertir, utiliser geojsontoosm, une dépendance du projet.
` geojsontoosm mon_fichier_converti.json > le_fichier_pour_josm.osm`
Ce projet a été réalisé pour l'intégration des bornes de recharge élec dans OSM à partir des données data gouv.
# Tests
Lancement de test avec Jest
# Projets d'intégrations de données
## Bornes de recharge - IRVE
Graphique des bornes de recharges à ajouter selon l'analyse Osmose:
[!https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410](https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410)
![graphique des bornes à ajouter](https://osmose.openstreetmap.fr/en/issues/graph.png?item=8410 "graphique")
* Tableau de conversion de l'open data:
https://wiki.openstreetmap.org/wiki/France/data.gouv.fr/Bornes_de_Recharge_pour_V%C3%A9hicules_%C3%89lectriques
# Ressources
# Contactez l'auteur, contribuez
contact at cipherbliss.com
sur Mastodon : mastodon.cipherbliss.com/@tykayn
# Roadmap
## Correctifs sur les données ajoutées
## bornes de recharge
Corrections à mettre dans le mappeur [../mappings/converters/configIRVE.ts]() et à modifier par édition en masse dans JOSM.
* ne pas mettre ref si la valeur vaut "non concerné"
* convertir les "False" et "0" en "no" pour les clés
* authentication:none
* fee (désactivé, l'open data est trop pourrie pour l'utiliser)
* socket:type2_cable
* convertir les numéros de téléphone avec un préfixe international +33 si commençant par 0
Données possible d'intégrer en plus avec le même jeu de données:
* ne pas mettre ref:EU:EVSE si la valeur vaut "non concerné"
* ajouter les références européennes ref:EU:EVSE.
* l'accessibilité => wheelchair pour certaines valeurs limitées.
## projets à venir
- Toilettes publiques
- Défibrillateurs - DAE
- Centres de santé
- Bus
# infos en bonus IRVE
* [Informations du dataset IRVE](irve_dataset_info)
* [Amplitude de puissance dans le jeu de données des IRVE](irve_puissances.md)
* URL du Dépôt: [https://forge.chapril.org/tykayn/mapping-geojson-osm.git]()
# documentation faite avec mkdocs
le site officiel de mkdocs: [mkdocs.org](https://www.mkdocs.org).

309
docs/irve_dataset_info.md Normal file
View file

@ -0,0 +1,309 @@
# info sur les jeux de données
D'après le jeu de données Etalab
## conversion
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/arbres/suisse.geojson --output-file=irve_suisse.geojson --engine-config=configIRVESuisse
```
## liste des 310 opérateurs
- 270 AGENCY
- 2Ed Coutances
- 2F Production
- ABSOLUT CONCEPT
- Acelec Charge
- advenir@zeborne.com
- Aeroports de lyon
- Allego
- ALLENERGIES
- alterna energie
- ALU GRANON
- Ambroise Avocat
- ANYOS
- AQUA LOISIRS
- AREA Tech
- ART DECO FINITION
- arteco44
- ATELIERS PROVENCE LOISIRS
- Atlante | FR*ATL
- ATRACHATA
- Autel Netherlands B.V. | FR*AUT
- Automobile de l'Est
- AUTORECHARGE
- AUTORECHARGE
- AUTORECHARGE SAS
- Avomarks
- Bastide beaudinard & tours (BBT)
- BAUDUCEL
- Bénédictines du Sacré-Coeur de Montmartre
- BH RESTAURATION
- BIARS DISTRIBUTION
- BORNECO
- Borneco | FR*BHM
- Bornevo
- Bornevo Connect
- Bouygues Energies et Services
- BOUYGUES ENERGIES ET SERVICES
- box
- Camping des graniers
- CAP EMPLOI
- CAR2PLUG
- CHAPITEAUX SERVICE
- ChargePoint
- Chargepoint
- CHARGEPOLY
- CHARRIERE DISTRIBUTION
- CHATEAU DE RONZIERE
- COMMUNAUTE DE COMMUNE LE DOURDANNAIS EN HUREPOIX (CCDH)
- contact@autorecharge.fr
- COPRODEX
- Daltoner Avranches
- Daltoner Caen
- DALTONER CHERBOURG
- Daltoner Granville
- Daltoner Vire
- DIDIER CHARTON-VACHET
- Dropnplug
- e-nergyze
- E-TOTEM
- E-totem
- Easycharge services
- Ecophi mobility
- EcoPhi mobility
- EDF
- EDFRAY
- EGE NOEL BERANGER
- EGSM
- EIZMENDI TRAITEUR EVENEMENTS
- Ekoplug
- ELEC eCONNECT
- ELECTRA
- ELECTRIC 55 CHARGING
- Electriox Groupe
- electromaps
- ELECTROMAPS
- Electromaps
- ELEK BORDEAUX
- ENERGEM
- ENERGIE Eure-et-Loir
- ENERGIE EURE-ET-LOIR
- ENNESSER ET FILS
- ENTREPRISE ADAM
- ESPACE AUTO COURNON
- Est Auto
- EURO TAXI LINE
- EV MAP SAS
- EVBOX
- EVERON
- EVzen (SMEG Développement)
- evzen (SMEG Développement)
- evZen | FR*EVZ
- F.B. AUTOMOBILES
- Festilight
- Freshmile
- FRESHMILE
- freshmile
- FReshmile
- Freshmile SAS
- GABMAG17
- GABORIT BOCAGE SERVICES
- Gamba et Rota
- GARAGE HENRY
- garage Henry herve
- Garage lefebvre
- GEDIBOIS BATI COLMAN
- GENE ELEC 35
- GF3e
- Golf de La Wantzenau
- Green Diffusion
- Green Technologie
- GREEN TECHNOLOGIE
- Green To Wheel
- GreenYellow | FR*GYM
- GROFF SAS
- GROUPE COURTOIS SOCOHY
- GROUPE LGE
- GROUPE LGE SOCIETE AUTOPLUG
- Grunzke Beate
- Guerin
- H alu concept
- HABT
- HAEFELI
- HERVE THERMIQUE
- HFOOD PESSAC
- HFOOD VILLENAVE
- Hostellerie
- Hotel Le Moulin
- Hôtel MACCHI
- Hôtel Restaurant Hubert Kieffer
- ICS Scgilthigheim
- IFERRO
- INOUID
- IONITY
- Ispo france
- IXINA Le Cres
- IXINA Saint Jean de Védas
- ixina Villeneuve-lès-Béziers
- Izivia
- JAV INVESTISSEMENT
- jmd
- JONNARD LES ISSAMBRES
- Kallista BDR
- KIEHL
- Kotelon
- LA CONCIERGERIE D'ISA.
- La dilettante
- La jabotte
- La jardinerie d'aveze sarl
- LA PRAIRIE
- Lacotte
- Lacotte Pierre
- LANGON DISTRIBUTION
- Last Mile Solutions
- LE BISTRO D'HUGO
- Le Capelan
- Le Grand Large
- Le Manoir de l'Isle
- le Relais
- LE REVE DE JANINE
- Leclerc Millau
- LEGA
- LEGELEUX
- Leroux Damien
- Les jardins maraichers des bords de rance
- LIDL, Nicolas Barbarin
- LMS Informatique
- LUMI'IN
- M. Yannick PIERRE
- M.A.J.U.
- ma borne auto
- ma Borne Auto
- MABORNEAUTO
- MAS DES OLIVES
- MAS DU TERME
- MAS GALOFFRE
- Masseria
- MEA ENERGIES
- MEDIODENT
- Mickael Auto
- MOBELEC
- Modulo
- MODULO
- Modulo énergies
- MONTA
- MOVIVE_Izivia
- NEXTENEO
- NM SECURELEC
- NON CONCERNE
- Non concerné
- non concerné
- Normatech
- Normatech Lodmi
- NVH
- NW IECharge
- OCR MAINTENANCE ELECTRONIQUE
- PAS DITINERANCE
- Pascal Chene
- Perrin
- perrin
- PHARMACIE DE HUNDLING
- Pilotage Maritime
- PLAGECO DISTRIBUTION
- Polybati
- Prodici
- ProperPhi
- Provibat
- PROVIRIDIS
- Proviridis | FR*PVD
- PTBG et associés
- QoWatt
- R3
- Ramsay Pole Lille métropole
- RechargerMonAuto
- REGIE MUNICIPALE D'ELECTRICITE DE LOOS
- Rencontre-handi
- REVE
- RICOME ET SADOUL AXA FRANCE
- RONALEV
- Royal Champagne
- RSDA mobility
- SA FOOTBALL CLUB DES GIRONDINS DE BORDEAUX
- sa les broyers
- Sanou électricité
- SAP LABS FRANCE
- SARL BEAUDRE BAUDOT
- SARL JUMO
- SARL LAFOURCADE
- SARL LES BAINS DE ROYAN
- SARL VAHE
- SAS CHATEAU DE MEMANAT
- SAS DE L'AILETTE
- sas e-motum
- SAS Lujasy
- SAS Miodis
- SAS Sabo
- SATUJO
- SCI LA COLLINE
- SCI LA GRANGE DESSOUS
- SCI LES RUISSEAUX
- SCI Lounapiou
- SCI NOKI
- SCI OLYMPE
- SCP ACANTHE DRIMARACCI
- SDC CENTRE MEDICAL ARTZAMENDI
- SDC ORDINAL
- SECAL
- Securecharge
- See You Sun
- SELARL PHARMACIE CEVENOLE
- Séolis
- SGA Industries
- SIEGE 27
- SIPECC
- SNAM GROUPE
- SNER RHONE-ALPES
- société La Clérine
- Société LEVAROY, Monsieur LEROY
- Societe moderne d'isolation
- Société Sigma Tec
- Société SIPECC
- Société Y
- Sodetrel
- SOLIDARAUTO 49
- SOREGIES
- SPBR1
- SPIE CITYNETWORKS
- STATIONS-E
- Sud Camargue
- Sud Hotel
- TANAY Electricité
- Technic Elec
- themis
- Thibal Distribution
- TISSERANT
- total énergie
- Total marketing france
- TotalEnergies Charging Services
- TotalEnergies Marketing France
- ubitricity
- UBITRICITY GMBH
- Vegetalis
- Vigot
- Ville de Riquewihr
- Vincent
- Virta
- VIRTA
- Volta Charging
- WAAT
- WAAT SAS
- WattzHub
- web services advenir
- Wedom
- WeDoM
- WeDoM.io
- WeeCharge
- WICKER TP
- ZEBORNE
- ZEborne
- ZEENCO
- Zen Construction

121
docs/irve_puissances.md Normal file
View file

@ -0,0 +1,121 @@
# domaines de données IRVE
## puissance_nominale
quelle pagaille:
- 0.0
- 0
- 1.7
- 2
- 2.3
- 3
- 3.00
- 3.22
- 3.4
- 3.7
- 4
- 4.6
- 5
- 5.5
- 5.9
- 6
- 6.9
- 7
- 7.00
- 7.0
- 7.36
- 7.4
- 9
- 11
- 11.00
- 11.04
- 12
- 12
- 12
- 14
- 15
- 16
- 17
- 18
- 18.00
- 19
- 20
- 21
- 22
- 22.00
- 22.0
- 22
- 22
- 22
- 22.08
- 23
- 24
- 24.00
- 25
- 26
- 27
- 30
- 32
- 36
- 38
- 40
- 42
- 43
- 43.00
- 44
- 45
- 47
- 48
- 50
- 50.00
- 54
- 56
- 60
- 62
- 63
- 64
- 70
- 72
- 75
- 80
- 90
- 100
- 100.00
- 110
- 115
- 120
- 122
- 124
- 125
- 126
- 149
- 150
- 160
- 175
- 175.00
- 180
- 200
- 210
- 225
- 230
- 240
- 300
- 320
- 325
- 350
- 360
- 400
- 3000
- 7000
- 22000
- 22080
- 49521
- 50000
- 60000
- 60973
- 62500
- 63000
- 71708
- 90000
- 131524
- 300000
- 2859660

7
docs/musées.md Normal file
View file

@ -0,0 +1,7 @@
# musées
Jeu de données des musées en île de france.
# conversion
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/arbres/musées/fr.geojson --output-file=musées_idf.geojson --engine-config=MappingMuseums
```

28
docs/parking_vélo.md Normal file
View file

@ -0,0 +1,28 @@
# Parkings vélo et 2 roues
En exemple, l'open data des parkgin 2 roues (vélo et moto) d'Issy les Moulineaux.
Le jeu de données est publié sur la plateforme data de la ville et un convertisseur est proposé ici.
Il pourrait être étendu avec les autres moyens de transport en précisant des tags sur les abris, les trottinnettes, les emplacements de vélo cargo.
Le jeu de données présente environ 350 points géolocalisés avec des informations de situation, de nature, de capacité de parking et d'équipements voisins.
Pour convertir le jeu de données dans un schéma utilisable sur OSM, on écarte les informations de voisinage et on garde les informations de nature, la date de mise en service, le nombre de places dédiées vélo et moto, et l'identifiant donné par Issy dans un référentiel personnel en sous clé de `ref:FR:` inventé à l'occasion.
# procédure
Création d'un mapping, inclusion de la config dans le code de l'Engine afin de pouvoir choisir cette configuration en option de l'appel en ligne de commande à `convert_to_osm_tags.ts`.
Fichier de mapping: `mappings/converters/configIssy_OpenData_2roues.ts`
Fichier de données: `etalab_data/cyclabilité/issy_les_mx_cyclabilité.json`
Commande de conversion:
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/cyclabilité/issy_les_mx_cyclabilité.json --o
utput-file=issy_parking_2roues.json --engine-config=mappingIssy2Roues
```
Résultat: `output/my_converted_data_set__mappingIssy2Roues.json`
Conversion en fichier OSM avec le paquet python pip geojson2osm:
```shell
geojsontoosm output/my_converted_data_set__mappingIssy2Roues.json > osm_output/issy_parkings_2r.osm
```
## Parking cyclables de la métropole de Rouen
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/cyclabilité/rouen_parking_velos.json --output-file=rouen_parking_velos.json --engine-config=mappingRouenParkingVelos
```

8
docs/recyclage.md Normal file
View file

@ -0,0 +1,8 @@
# Recyclage - PAV - points d'apport volontaire
Les boites de tri de déchets public ont leur configuration de conversion.
# Conversion
## Conversion pour les données de Rouen
```bash
ts-node convert_to_osm_tags.ts --source=etalab_data/recycling/rouen_pav.json --output-file=rouen_pav.geojson --engine-config=MappingRouenPAV
```

64
docs/testing.md Normal file
View file

@ -0,0 +1,64 @@
# Tests
Les tests sont lancés avec Jest et sont à écrire dans le dossier "tests", par défaut le runner est en mode auto rechargement des tests à la modification des fichiers.
`npm run test`
Ils fonctionnent avec des jeux de données qui se trouvent dans tests/data et des convertisseurs placés dans mappings/converters.
## Jeu de données
Le json de test disponible par défaut est un Geojson de type FeatureCollection dans testing.json
Les tests consistent à examiner les propriétés de chaque Feature Point et à les convertir selon les règles du Mapper de test.
## Mappers de test
Chaque test a à sa disposition plusieurs Mappers dans `mappings_to_test.ts` qui étendent `MappingConfigType` et peuvent s'appliquer à plusieurs jeux de données pour en tester la sortie.
- mappingPhone
- mappingRemoveAll
- mappingBoolean
- mappingName
- mappingSame
- mappingTruthy
- mappingFalsy
- mappingIgnoreFalsy
- mappingIgnoreTruthy
Leur objectif est de valider la qualité de conversion de données dans de multiples cas, et de vérifier que l'on ajoutera rien qui s'éloigne trop de ce que l'on peut deviner d'une valeur non fiable.
## Exemple de Mapper
Ce mappeur va appliquer la fonction de conversion de numéro de téléphone au format réglementaire pour les valeurs de tag "phone" selon la documentation du wiki OSM. C'est à dire que le numéro doit avoir un préfixe international (+33 pour la France) et avoir des espaces entre groupes de 2 chiffres.
```js
export const mappingPhone: MappingConfigType = {
config_name: 'testing config mappingPhone',
config_author: 'tykayn <contact@cipherbliss.com>',
default_properties_of_point: {},
tags: {
telephone_operateur: {
key_converted: 'phone',
convert_to_phone: true, // convertit en yes ou no
},
},
add_not_mapped_tags_too: false,
source: {},
filters: {},
}
```
# Écriture de tests
Pour réaliser les tests on importe l'Engine, le jeu de tests, on donne un Mapping à l'Engine, on applique la fonction de mapping, et on compare les propriétés obtenues à ce que l'on attend de la conversion.
```js
import mapping_engine from '../mappings/engine.ts'
import {
mappingPhone,
} from './data/mappings_to_test'
const testingGeoJson = require('./data/testing.json')
describe('mapping properties with rich mapping engine', () => {
test('conditional phone transform', () => {
let Mapping_engine = new mapping_engine(mappingPhone)
let mapped_point = Mapping_engine.mapElementFromConf(feature_to_test)
let expected_converted_phone = '+33 1 23 45 67 89'
expect(mapped_point.properties).toStrictEqual({ phone: expected_converted_phone })
})
})
```