documentation sur la conversion de parking
This commit is contained in:
parent
c19e27dd1a
commit
de76b9ec38
@ -120,9 +120,9 @@ let output_folder = 'output';
|
|||||||
*/
|
*/
|
||||||
function writeFile(fileName: string, fileContent: any) {
|
function writeFile(fileName: string, fileContent: any) {
|
||||||
let write_path = `./${output_folder}/${fileName}`
|
let write_path = `./${output_folder}/${fileName}`
|
||||||
debugLog('write file ', outname + fileName, write_path)
|
debugLog("write file \n", outname + fileName, write_path)
|
||||||
|
|
||||||
console.log('write file, write_path', fileName, write_path)
|
console.log("-------- write file \n", fileName, "\n", write_path)
|
||||||
|
|
||||||
return fs.writeFile(
|
return fs.writeFile(
|
||||||
write_path,
|
write_path,
|
||||||
@ -161,7 +161,7 @@ function convertDataFromSource(sourceFilePath: string, mapping: any, pointCounte
|
|||||||
|
|
||||||
if (data_transformed.features) {
|
if (data_transformed.features) {
|
||||||
|
|
||||||
debugLog('data found, features:', data_transformed.features.length)
|
console.log('data found in source, features:', data_transformed.features.length)
|
||||||
|
|
||||||
// find interesting list of points to use
|
// find interesting list of points to use
|
||||||
let list_of_points: any = data_transformed.features
|
let list_of_points: any = data_transformed.features
|
||||||
@ -243,6 +243,7 @@ function convertDataFromSource(sourceFilePath: string, mapping: any, pointCounte
|
|||||||
// output new geojson
|
// output new geojson
|
||||||
|
|
||||||
debugLog('convert : convertedGeoJson.features.length', converted_geo_json.features.length)
|
debugLog('convert : convertedGeoJson.features.length', converted_geo_json.features.length)
|
||||||
|
|
||||||
// write file on disk
|
// write file on disk
|
||||||
if (converted_geo_json.features.length) {
|
if (converted_geo_json.features.length) {
|
||||||
|
|
||||||
@ -251,7 +252,8 @@ function convertDataFromSource(sourceFilePath: string, mapping: any, pointCounte
|
|||||||
output_supplement = '_' + output_supplement;
|
output_supplement = '_' + output_supplement;
|
||||||
}
|
}
|
||||||
let fileNameToWrite = 'my_converted_data_set' + filteredName + output_supplement + '.json'
|
let fileNameToWrite = 'my_converted_data_set' + filteredName + output_supplement + '.json'
|
||||||
console.log('features: ', converted_geo_json.features.length)
|
console.log('converted features:', converted_geo_json.features.length)
|
||||||
|
console.log('diff: ', data_transformed.features.length - converted_geo_json.features.length)
|
||||||
debugLog('convert : write file ', fileNameToWrite)
|
debugLog('convert : write file ', fileNameToWrite)
|
||||||
|
|
||||||
// console.log('mapping_engine.stats', Mapping_engine.stats)
|
// console.log('mapping_engine.stats', Mapping_engine.stats)
|
||||||
|
24
docs/parking_vélo.md
Normal file
24
docs/parking_vélo.md
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# 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
|
||||||
|
```
|
@ -5,7 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
import MappingConfigType from "../mapping-config.type";
|
import MappingConfigType from "../mapping-config.type";
|
||||||
|
|
||||||
const MappingIssyOpenData: MappingConfigType = {
|
const mappingIssy2Roues: MappingConfigType = {
|
||||||
config_name: "mappingIssy2Roues",
|
config_name: "mappingIssy2Roues",
|
||||||
config_author: "tykayn <contact@cipherbliss.com>",
|
config_author: "tykayn <contact@cipherbliss.com>",
|
||||||
default_properties_of_point: {
|
default_properties_of_point: {
|
||||||
@ -15,29 +15,50 @@ const MappingIssyOpenData: MappingConfigType = {
|
|||||||
geojson_path: "cyclabilité/issy_les_mx_cyclabilité.json",
|
geojson_path: "cyclabilité/issy_les_mx_cyclabilité.json",
|
||||||
url: 'https://data.issy.com/explore/dataset/parkings-2-roues/table/?disjunctive.commune=&disjunctive.type_aire=&disjunctive.type_vehicule=&disjunctive.etat=&disjunctive.pres_abri=&disjunctive.acces_reglement=&disjunctive.position=&sort=nb_places'
|
url: 'https://data.issy.com/explore/dataset/parkings-2-roues/table/?disjunctive.commune=&disjunctive.type_aire=&disjunctive.type_vehicule=&disjunctive.etat=&disjunctive.pres_abri=&disjunctive.acces_reglement=&disjunctive.position=&sort=nb_places'
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* select only certain points from the source
|
|
||||||
*/
|
|
||||||
filters: {
|
filters: {
|
||||||
},
|
},
|
||||||
add_not_mapped_tags_too: false,
|
add_not_mapped_tags_too: false,
|
||||||
boolean_keys: [
|
boolean_keys: [
|
||||||
"acces_reglement",
|
"acces_reglement",
|
||||||
"abri",
|
|
||||||
],
|
],
|
||||||
tags: {
|
tags: {
|
||||||
// ******* nombres
|
// ******* nombres
|
||||||
nb_places: 'capacity',
|
nb_places: 'capacity',
|
||||||
nb_pl_velo: 'capacity:bike',
|
nb_pl_velo: 'capacity:bike',
|
||||||
nb_pl_moto: 'capacity:motorcycle',
|
nb_pl_moto: 'capacity:motorcycle',
|
||||||
// ******* textes
|
|
||||||
annee_crea: 'start_date',
|
annee_crea: 'start_date',
|
||||||
abri: 'abri',
|
// ******* textes
|
||||||
|
type_aire: {
|
||||||
|
"remove_original_key": true,
|
||||||
|
"conditional_values": {
|
||||||
|
"Poteaux": {
|
||||||
|
"tags_to_add": [
|
||||||
|
{
|
||||||
|
"bicycle_parking": "bollard"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Arceaux": {
|
||||||
|
"tags_to_add": [
|
||||||
|
{
|
||||||
|
"bicycle_parking": "bollard"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Anneaux": {
|
||||||
|
"tags_to_add": [
|
||||||
|
{
|
||||||
|
"bicycle_parking": "stands"
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
// type_aire: 'nb_pl_moto', // Poteaux => bicycle_parking=bollard, Arceaux, Anneaux => bicycle_parking=stands, Marquage, null, Non renseigné, Range-vélos, Sans, Trottoir
|
// type_aire: 'nb_pl_moto', // Poteaux => bicycle_parking=bollard, Arceaux, Anneaux => bicycle_parking=stands, Marquage, null, Non renseigné, Range-vélos, Sans, Trottoir
|
||||||
// id_r2roues: 'ref:FR:issy_r2roues',
|
id_r2roues: 'ref:FR:r2roues_issy_les_mx',
|
||||||
// acces_reglement: 'access',
|
// acces_reglement: 'access',
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default MappingIssyOpenData;
|
export default mappingIssy2Roues;
|
||||||
|
1
osm_output/issy_parkings_2r.osm
Normal file
1
osm_output/issy_parkings_2r.osm
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user