mirror of
https://forge.chapril.org/tykayn/wololo
synced 2025-06-20 01:34:42 +02:00
add open plaques
This commit is contained in:
parent
e33aecb565
commit
a79be23ccd
8 changed files with 114916 additions and 29 deletions
|
@ -42,10 +42,14 @@ let listOfBooleanKeys = [
|
|||
]
|
||||
let irve_max_output = 401 // limite de kW de puissance pour une borne de recharge publique
|
||||
|
||||
import MappingOpenPlaquesUK from './mappings/converters/configOpenPlaquesUK'
|
||||
import MappingOpenPlaques from './mappings/converters/configOpenPlaques'
|
||||
const limitWarningPercentageChangeInPoints = 5; // show a warning when more than N percent of the number of points changed
|
||||
|
||||
|
||||
const allowed_configs: any = {
|
||||
MappingOpenPlaques,
|
||||
MappingOpenPlaquesUK,
|
||||
MappingPlaquesCommémorativesParis,
|
||||
MappingPanneauxMaxSpeed,
|
||||
MappingArbresRemarquablesRouen,
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
* npx ts-node csv_to_geojson.ts -d etalab_data/panneaux -f panneaux_limite_de_vitesse_fr_panoramax_detections.csv --latColumn 'GPSLatitude' --lonColumn 'GPSLongitude' -h
|
||||
*
|
||||
*/
|
||||
import fs from 'fs';
|
||||
import fs, { writeFile } from 'fs';
|
||||
import path from 'path';
|
||||
import minimist from 'minimist';
|
||||
import { csvToGeoJSON, checkFile, countGeoJSONFeatures } from './csv_to_geojson.utils';
|
||||
|
@ -20,9 +20,9 @@ const args = minimist<CSVConversionOptions>(process.argv.slice(2), {
|
|||
alias: {
|
||||
dir: 'd', // dossier source
|
||||
file: 'f', // fichier source
|
||||
// infos pour un fichier CSV en source au lieu d'un fichier geojson
|
||||
latColumn: 'lat', // colonne latitude
|
||||
lonColumn: 'lon', // colonne longitude
|
||||
wktColumn: 'wkt', // Nouvelle alias pour la colonne WKT
|
||||
hasHeaders: 'h', // headers présents
|
||||
},
|
||||
default: {
|
||||
|
@ -32,5 +32,15 @@ const args = minimist<CSVConversionOptions>(process.argv.slice(2), {
|
|||
|
||||
|
||||
checkFile(args);
|
||||
csvToGeoJSON(args);
|
||||
let geojsonContent = csvToGeoJSON(args);
|
||||
|
||||
// Construire le chemin de sortie dans le même dossier que le fichier source
|
||||
const outputPath = path.join(args.dir, `${args.file}.geojson`);
|
||||
|
||||
// Écrire le fichier GeoJSON
|
||||
fs.writeFileSync(outputPath, JSON.stringify(geojsonContent, null, 2));
|
||||
|
||||
console.log(`Fichier GeoJSON créé: ${outputPath}`);
|
||||
|
||||
|
||||
countGeoJSONFeatures(args);
|
||||
|
|
|
@ -9,34 +9,53 @@ let counter_features = 0;
|
|||
let counter_missing_lat = 0;
|
||||
let counter_missing_lon = 0;
|
||||
|
||||
// Liste des séparateurs à essayer
|
||||
const separators = ["|", ';', ',', '\t']
|
||||
|
||||
export interface CSVConversionOptions {
|
||||
dir: string;
|
||||
file: string;
|
||||
latColumn?: string;
|
||||
lonColumn?: string;
|
||||
wktColumn?: string;
|
||||
hasHeaders?: boolean;
|
||||
}
|
||||
|
||||
function parseCoordinates(value: string): { lat: number; lon: number } | null {
|
||||
function parseCoordinates(value: string, isWKT: boolean = false): { lat: number; lon: number } | null {
|
||||
if (!value) return null;
|
||||
|
||||
const parts = value.split(';');
|
||||
if (parts.length >= 2) {
|
||||
const lat = parseFloat(parts[0]);
|
||||
const lon = parseFloat(parts[1]);
|
||||
if (!isNaN(lat) && !isNaN(lon)) {
|
||||
return { lat, lon };
|
||||
if (isWKT) {
|
||||
// Essayer de parser le format WKT POINT(lon lat)
|
||||
const wktMatch = value.match(/^POINT\s?\(\s?(-?\d+(\.\d+)?)\s+(-?\d+(\.\d+)?)\s?\)$/i);
|
||||
if (wktMatch && wktMatch.length >= 4) {
|
||||
const lon = parseFloat(wktMatch[1]); // Le premier groupe capturé est la longitude
|
||||
const lat = parseFloat(wktMatch[3]); // Le troisième groupe capturé est la latitude
|
||||
if (!isNaN(lat) && !isNaN(lon)) {
|
||||
return { lat, lon };
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Essayer de parser le format "lat;lon"
|
||||
const parts = value.split(';');
|
||||
if (parts.length >= 2) {
|
||||
const lat = parseFloat(parts[0]);
|
||||
const lon = parseFloat(parts[1]);
|
||||
if (!isNaN(lat) && !isNaN(lon)) {
|
||||
return { lat, lon };
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
||||
return null; // Retourner null si aucun format valide n'est trouvé
|
||||
}
|
||||
|
||||
function csvToGeoJSON(options: CSVConversionOptions): FeatureCollection<Point> {
|
||||
const { dir, file, latColumn, lonColumn, hasHeaders } = options;
|
||||
const { dir, file, latColumn, lonColumn, wktColumn, hasHeaders } = options;
|
||||
const filePath = path.join(dir, file);
|
||||
|
||||
console.log('csvToGeoJSON: filePath', filePath)
|
||||
if (!fs.existsSync(filePath)) {
|
||||
console.error(`Le fichier ${filePath} n'existe pas`);
|
||||
console.error(`!!!!!!!!! Le fichier ${filePath} n'existe pas`);
|
||||
return { type: 'FeatureCollection', features: [] };
|
||||
}
|
||||
|
||||
|
@ -44,35 +63,59 @@ function csvToGeoJSON(options: CSVConversionOptions): FeatureCollection<Point> {
|
|||
const lines = csvContent.split('\n');
|
||||
const features: Feature<Point>[] = [];
|
||||
|
||||
|
||||
// Détecter le meilleur séparateur en utilisant la première ligne
|
||||
let bestSeparator = ';';
|
||||
let maxColumns = 0;
|
||||
|
||||
if (lines.length > 0) {
|
||||
for (const separator of separators) {
|
||||
const columnCount = lines[0].split(separator).length;
|
||||
if (columnCount > maxColumns) {
|
||||
maxColumns = columnCount;
|
||||
bestSeparator = separator;
|
||||
}
|
||||
}
|
||||
console.log(`Utilisation du séparateur "${bestSeparator}" (${maxColumns} colonnes détectées)`);
|
||||
}
|
||||
|
||||
const startIndex = hasHeaders ? 1 : 0;
|
||||
const headers = hasHeaders ? lines[0].split(';') : null;
|
||||
const headers = hasHeaders ? lines[0].split(bestSeparator) : null;
|
||||
|
||||
for (let i = startIndex; i < lines.length; i++) {
|
||||
const line = lines[i].trim();
|
||||
if (!line) continue;
|
||||
|
||||
const values = line.split(';');
|
||||
const values = line.split(bestSeparator);
|
||||
const row: { [key: string]: any } = {};
|
||||
|
||||
if (headers) {
|
||||
headers.forEach((header, index) => {
|
||||
row[header] = values[index];
|
||||
row[header.trim()] = values[index]?.trim();
|
||||
});
|
||||
} else {
|
||||
values.forEach((value, index) => {
|
||||
row[`column${index}`] = value;
|
||||
row[`column${index}`] = value.trim();
|
||||
});
|
||||
}
|
||||
|
||||
let coordinates: { lat: number; lon: number } | null = null;
|
||||
if (latColumn && lonColumn) {
|
||||
|
||||
// Priorité 1: Colonne WKT
|
||||
if (wktColumn && row[wktColumn]) {
|
||||
coordinates = parseCoordinates(row[wktColumn], true);
|
||||
}
|
||||
// Priorité 2: Colonnes Lat/Lon séparées
|
||||
else if (latColumn && lonColumn && row[latColumn] && row[lonColumn]) {
|
||||
const lat = parseFloat(row[latColumn]);
|
||||
const lon = parseFloat(row[lonColumn]);
|
||||
if (!isNaN(lat) && !isNaN(lon)) {
|
||||
coordinates = { lat, lon };
|
||||
}
|
||||
} else if (row['geo_point_2d']) {
|
||||
coordinates = parseCoordinates(row['geo_point_2d']);
|
||||
}
|
||||
// Priorité 3: Colonne 'geo_point_2d' avec format "lat;lon"
|
||||
else if (row['geo_point_2d']) {
|
||||
coordinates = parseCoordinates(row['geo_point_2d'], false);
|
||||
}
|
||||
|
||||
if (coordinates) {
|
||||
|
@ -85,6 +128,9 @@ function csvToGeoJSON(options: CSVConversionOptions): FeatureCollection<Point> {
|
|||
properties: row
|
||||
});
|
||||
}
|
||||
// else {
|
||||
// // console.log('csvToGeoJSON: coordinates', row)
|
||||
// }
|
||||
}
|
||||
|
||||
return {
|
||||
|
@ -100,8 +146,6 @@ function checkFile(args: CSVConversionOptions) {
|
|||
// Vérifier si le fichier existe
|
||||
if (!fs.existsSync(filePath)) {
|
||||
throw new Error(`Le fichier CSV ${filePath} n'existe pas`);
|
||||
} else {
|
||||
console.log(`Le fichier CSV ${filePath} existe`);
|
||||
}
|
||||
|
||||
fs.createReadStream(filePath)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
,tykayn,spaceship,17.04.2025 18:27,file:///home/tykayn/.config/libreoffice/4;
|
456
etalab_data/plaques_commémoratives/uk_stats.txt
Normal file
456
etalab_data/plaques_commémoratives/uk_stats.txt
Normal file
|
@ -0,0 +1,456 @@
|
|||
|
||||
Fichier GeoJSON chargé: etalab_data/plaques_commémoratives/open-plaques-gb-2021-05-14.csv.geojson
|
||||
Nombre de features: 7858
|
||||
|
||||
=== Statistiques des valeurs par propriété ===
|
||||
|
||||
Propriété: id
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7858
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"2": 1 occurrences (0%)
|
||||
"3": 1 occurrences (0%)
|
||||
"4": 1 occurrences (0%)
|
||||
"5": 1 occurrences (0%)
|
||||
"6": 1 occurrences (0%)
|
||||
... et 7853 autres valeurs
|
||||
|
||||
Propriété: machine_tag
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7858
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"openplaques:id=41936": 1 occurrences (0%)
|
||||
"openplaques:id=4856": 1 occurrences (0%)
|
||||
"openplaques:id=53515": 1 occurrences (0%)
|
||||
"openplaques:id=1729": 1 occurrences (0%)
|
||||
"openplaques:id=12236": 1 occurrences (0%)
|
||||
... et 7853 autres valeurs
|
||||
|
||||
Propriété: title
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7230
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"Edgar Wood green plaque": 14 occurrences (0%)
|
||||
"The Trafalgar Way and John Richards Lapenotiere...": 12 occurrences (0%)
|
||||
"Charles Dickens blue plaque": 11 occurrences (0%)
|
||||
"John Wesley blue plaque": 9 occurrences (0%)
|
||||
"H. G. Wells blue plaque": 9 occurrences (0%)
|
||||
... et 7225 autres valeurs
|
||||
|
||||
Propriété: inscription
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7834
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"Frank Matcham (1854-1920) theatre architect des...": 7 occurrences (0%)
|
||||
"Issued to celebrate Nine Hundred years of Norma...": 4 occurrences (0%)
|
||||
"1912 - This building is one of three branch lib...": 3 occurrences (0%)
|
||||
"Carlton Terrace. This large terrace was designe...": 3 occurrences (0%)
|
||||
"Charlie Chaplin": 2 occurrences (0%)
|
||||
... et 7829 autres valeurs
|
||||
|
||||
Propriété: latitude
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7034
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"0.0": 59 occurrences (1%)
|
||||
"51.51001": 21 occurrences (0%)
|
||||
"51.51841": 12 occurrences (0%)
|
||||
"51.4288": 9 occurrences (0%)
|
||||
"51.5118": 8 occurrences (0%)
|
||||
... et 7029 autres valeurs
|
||||
|
||||
Propriété: longitude
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7438
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"-0.22583": 22 occurrences (0%)
|
||||
"0.0": 13 occurrences (0%)
|
||||
"-0.14371": 12 occurrences (0%)
|
||||
"-0.32248": 9 occurrences (0%)
|
||||
"-0.34912": 7 occurrences (0%)
|
||||
... et 7433 autres valeurs
|
||||
|
||||
Propriété: as_wkt
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7685
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"POINT(-0.22583 51.51001)": 21 occurrences (0%)
|
||||
"POINT(0.0 0.0)": 13 occurrences (0%)
|
||||
"POINT(-0.14371 51.51841)": 12 occurrences (0%)
|
||||
"POINT(-0.32248 51.4288)": 9 occurrences (0%)
|
||||
"POINT(-0.34912 51.44385)": 6 occurrences (0%)
|
||||
... et 7680 autres valeurs
|
||||
|
||||
Propriété: country
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1
|
||||
- Toutes les valeurs:
|
||||
"United Kingdom": 7858 occurrences (100%)
|
||||
|
||||
Propriété: area
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1174
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"London": 2258 occurrences (29%)
|
||||
"Edinburgh": 228 occurrences (3%)
|
||||
"Liverpool": 168 occurrences (2%)
|
||||
"Birmingham": 159 occurrences (2%)
|
||||
"Manchester": 103 occurrences (1%)
|
||||
... et 1169 autres valeurs
|
||||
|
||||
Propriété: address
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 6601
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 311 occurrences (4%)
|
||||
"High Street": 96 occurrences (1%)
|
||||
"?": 44 occurrences (1%)
|
||||
"Church Street": 31 occurrences (0%)
|
||||
"BBC Television Centre": 24 occurrences (0%)
|
||||
... et 6596 autres valeurs
|
||||
|
||||
Propriété: erected
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2325
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 3254 occurrences (41%)
|
||||
"Westminster": 126 occurrences (2%)
|
||||
"1996": 65 occurrences (1%)
|
||||
"Kensington and Chelsea": 62 occurrences (1%)
|
||||
"2000": 61 occurrences (1%)
|
||||
... et 2320 autres valeurs
|
||||
|
||||
Propriété: main_photo
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 4372
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2183 occurrences (28%)
|
||||
"W1"": 88 occurrences (1%)
|
||||
"1996": 46 occurrences (1%)
|
||||
"2010": 43 occurrences (1%)
|
||||
"2017": 43 occurrences (1%)
|
||||
... et 4367 autres valeurs
|
||||
|
||||
Propriété: colour
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2097
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"blue": 2068 occurrences (26%)
|
||||
"": 1080 occurrences (14%)
|
||||
"black": 457 occurrences (6%)
|
||||
"green": 317 occurrences (4%)
|
||||
"bronze": 302 occurrences (4%)
|
||||
... et 2092 autres valeurs
|
||||
|
||||
Propriété: organisations
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1781
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"[]": 1732 occurrences (22%)
|
||||
"blue": 1268 occurrences (16%)
|
||||
"": 307 occurrences (4%)
|
||||
"green": 193 occurrences (2%)
|
||||
"black": 188 occurrences (2%)
|
||||
... et 1776 autres valeurs
|
||||
|
||||
Propriété: language
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 925
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"English": 3980 occurrences (51%)
|
||||
"[]": 701 occurrences (9%)
|
||||
"blue": 604 occurrences (8%)
|
||||
""[""administered by English Heritage as part of...": 160 occurrences (2%)
|
||||
""[""Corporation of London""]"": 71 occurrences (1%)
|
||||
... et 920 autres valeurs
|
||||
|
||||
Propriété: series
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 420
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 3737 occurrences (48%)
|
||||
"English": 2340 occurrences (30%)
|
||||
""[""administered by English Heritage as part of...": 361 occurrences (5%)
|
||||
"blue": 166 occurrences (2%)
|
||||
"[]": 147 occurrences (2%)
|
||||
... et 415 autres valeurs
|
||||
|
||||
Propriété: series_ref
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 229
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 6115 occurrences (78%)
|
||||
"English": 787 occurrences (10%)
|
||||
"""English Heritage""]"": 132 occurrences (2%)
|
||||
""[""administered by English Heritage as part of...": 128 occurrences (2%)
|
||||
"""London County Council""]"": 118 occurrences (2%)
|
||||
... et 224 autres valeurs
|
||||
|
||||
Propriété: geolocated?
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 99
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"true": 4046 occurrences (51%)
|
||||
"": 3053 occurrences (39%)
|
||||
"English": 482 occurrences (6%)
|
||||
"""English Heritage""]"": 79 occurrences (1%)
|
||||
"""Greater London Council""]"": 39 occurrences (0%)
|
||||
... et 94 autres valeurs
|
||||
|
||||
Propriété: photographed?
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 34
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"true": 5800 occurrences (74%)
|
||||
"": 1240 occurrences (16%)
|
||||
"false": 622 occurrences (8%)
|
||||
"English": 144 occurrences (2%)
|
||||
"L.C.C. Medallion": 8 occurrences (0%)
|
||||
... et 29 autres valeurs
|
||||
|
||||
Propriété: number_of_subjects
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 11
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"1": 2654 occurrences (34%)
|
||||
"true": 2642 occurrences (34%)
|
||||
"0": 1093 occurrences (14%)
|
||||
"": 624 occurrences (8%)
|
||||
"false": 527 occurrences (7%)
|
||||
... et 6 autres valeurs
|
||||
|
||||
Propriété: number_of_male_subjects
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 10
|
||||
- Toutes les valeurs:
|
||||
"1": 4133 occurrences (53%)
|
||||
"0": 1845 occurrences (23%)
|
||||
"true": 1120 occurrences (14%)
|
||||
"2": 444 occurrences (6%)
|
||||
"false": 156 occurrences (2%)
|
||||
"": 156 occurrences (2%)
|
||||
"BBC Yorkshire 1": 1 occurrences (0%)
|
||||
"""London County Council""]"": 1 occurrences (0%)
|
||||
"""Esso UK PLC""]"": 1 occurrences (0%)
|
||||
"""English Heritage""]"": 1 occurrences (0%)
|
||||
|
||||
Propriété: number_of_female_subjects
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 7
|
||||
- Toutes les valeurs:
|
||||
"0": 4430 occurrences (56%)
|
||||
"1": 2546 occurrences (32%)
|
||||
"true": 595 occurrences (8%)
|
||||
"2": 239 occurrences (3%)
|
||||
"false": 32 occurrences (0%)
|
||||
"": 13 occurrences (0%)
|
||||
"English": 3 occurrences (0%)
|
||||
|
||||
Propriété: number_of_inanimate_subjects
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 6
|
||||
- Toutes les valeurs:
|
||||
"0": 5676 occurrences (72%)
|
||||
"1": 1902 occurrences (24%)
|
||||
"true": 153 occurrences (2%)
|
||||
"2": 120 occurrences (2%)
|
||||
"false": 4 occurrences (0%)
|
||||
"": 3 occurrences (0%)
|
||||
|
||||
Propriété: lead_subject_id
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2507
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"0": 2775 occurrences (35%)
|
||||
"": 1096 occurrences (14%)
|
||||
"1": 971 occurrences (12%)
|
||||
"2": 54 occurrences (1%)
|
||||
"413": 18 occurrences (0%)
|
||||
... et 2502 autres valeurs
|
||||
|
||||
Propriété: lead_subject_machine_tag
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 4195
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 1538 occurrences (20%)
|
||||
"0": 1117 occurrences (14%)
|
||||
"1": 300 occurrences (4%)
|
||||
"openplaques:subject:id=413": 18 occurrences (0%)
|
||||
"2": 17 occurrences (0%)
|
||||
... et 4190 autres valeurs
|
||||
|
||||
Propriété: lead_subject_name
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 4846
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 1629 occurrences (21%)
|
||||
"0": 584 occurrences (7%)
|
||||
"1": 53 occurrences (1%)
|
||||
"Charles Dickens": 18 occurrences (0%)
|
||||
"John Wesley": 17 occurrences (0%)
|
||||
... et 4841 autres valeurs
|
||||
|
||||
Propriété: lead_subject_surname
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 4720
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 1664 occurrences (21%)
|
||||
"0": 149 occurrences (2%)
|
||||
"Smith": 24 occurrences (0%)
|
||||
"Scott": 19 occurrences (0%)
|
||||
"Wesley": 18 occurrences (0%)
|
||||
... et 4715 autres valeurs
|
||||
|
||||
Propriété: lead_subject_sex
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2639
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"male": 1992 occurrences (25%)
|
||||
"": 1667 occurrences (21%)
|
||||
"object": 622 occurrences (8%)
|
||||
"female": 339 occurrences (4%)
|
||||
"Wood": 16 occurrences (0%)
|
||||
... et 2634 autres valeurs
|
||||
|
||||
Propriété: lead_subject_born_in
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1630
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2249 occurrences (29%)
|
||||
"male": 1377 occurrences (18%)
|
||||
"object": 330 occurrences (4%)
|
||||
"female": 224 occurrences (3%)
|
||||
"1874": 40 occurrences (1%)
|
||||
... et 1625 autres valeurs
|
||||
|
||||
Propriété: lead_subject_died_in
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1037
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2723 occurrences (35%)
|
||||
"male": 519 occurrences (7%)
|
||||
"object": 93 occurrences (1%)
|
||||
"female": 90 occurrences (1%)
|
||||
"1892": 36 occurrences (0%)
|
||||
... et 1032 autres valeurs
|
||||
|
||||
Propriété: lead_subject_type
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 533
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2085 occurrences (27%)
|
||||
"man": 2032 occurrences (26%)
|
||||
"male": 380 occurrences (5%)
|
||||
"place": 377 occurrences (5%)
|
||||
"woman": 339 occurrences (4%)
|
||||
... et 528 autres valeurs
|
||||
|
||||
Propriété: lead_subject_roles
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 1560
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"man": 1395 occurrences (18%)
|
||||
"[]": 1322 occurrences (17%)
|
||||
"": 659 occurrences (8%)
|
||||
"woman": 224 occurrences (3%)
|
||||
"place": 184 occurrences (2%)
|
||||
... et 1555 autres valeurs
|
||||
|
||||
Propriété: lead_subject_primary_role
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2622
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 1464 occurrences (19%)
|
||||
"man": 524 occurrences (7%)
|
||||
"[]": 511 occurrences (7%)
|
||||
"woman": 89 occurrences (1%)
|
||||
""[""poet""": 59 occurrences (1%)
|
||||
... et 2617 autres valeurs
|
||||
|
||||
Propriété: lead_subject_wikipedia
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 2838
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2447 occurrences (31%)
|
||||
"man": 381 occurrences (5%)
|
||||
"[]": 113 occurrences (1%)
|
||||
"woman": 57 occurrences (1%)
|
||||
"poet": 47 occurrences (1%)
|
||||
... et 2833 autres valeurs
|
||||
|
||||
Propriété: lead_subject_dbpedia
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 3137
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 2948 occurrences (38%)
|
||||
"man": 120 occurrences (2%)
|
||||
"poet": 46 occurrences (1%)
|
||||
"artist": 46 occurrences (1%)
|
||||
"""Knight Bachelor""]"": 31 occurrences (0%)
|
||||
... et 3132 autres valeurs
|
||||
|
||||
Propriété: lead_subject_image
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 3067
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 3484 occurrences (44%)
|
||||
"""Knight Bachelor""]"": 34 occurrences (0%)
|
||||
"writer": 34 occurrences (0%)
|
||||
"novelist": 29 occurrences (0%)
|
||||
"poet": 25 occurrences (0%)
|
||||
... et 3062 autres valeurs
|
||||
|
||||
Propriété: subjects
|
||||
- Total d'occurrences: 7858
|
||||
- Valeurs uniques: 4001
|
||||
- Top 5 des valeurs les plus fréquentes:
|
||||
"": 1702 occurrences (22%)
|
||||
"[]": 1094 occurrences (14%)
|
||||
"novelist": 26 occurrences (0%)
|
||||
"poet": 24 occurrences (0%)
|
||||
"""Prime Minister of the United Kingdom""": 22 occurrences (0%)
|
||||
... et 3996 autres valeurs
|
||||
|
||||
=== Fin des statistiques ===
|
||||
|
||||
Suggestions de mapping OSM:
|
||||
{
|
||||
"id": "ref",
|
||||
"machine_tag": "",
|
||||
"title": "",
|
||||
"inscription": "",
|
||||
"latitude": "",
|
||||
"longitude": "",
|
||||
"as_wkt": "",
|
||||
"country": "",
|
||||
"area": "",
|
||||
"address": "addr:full",
|
||||
"erected": "",
|
||||
"main_photo": "",
|
||||
"colour": "",
|
||||
"organisations": "",
|
||||
"language": "",
|
||||
"series": "",
|
||||
"series_ref": "ref",
|
||||
"geolocated?": "",
|
||||
"photographed?": "",
|
||||
"number_of_subjects": "",
|
||||
"number_of_male_subjects": "",
|
||||
"number_of_female_subjects": "",
|
||||
"number_of_inanimate_subjects": "",
|
||||
"lead_subject_id": "ref",
|
||||
"lead_subject_machine_tag": "",
|
||||
"lead_subject_name": "name",
|
||||
"lead_subject_surname": "name",
|
||||
"lead_subject_sex": "",
|
||||
"lead_subject_born_in": "",
|
||||
"lead_subject_died_in": "",
|
||||
"lead_subject_type": "",
|
||||
"lead_subject_roles": "",
|
||||
"lead_subject_primary_role": "",
|
||||
"lead_subject_wikipedia": "",
|
||||
"lead_subject_dbpedia": "",
|
||||
"lead_subject_image": "",
|
||||
"subjects": ""
|
||||
}
|
||||
Nombre de propriétés uniques: 37
|
68
mappings/converters/configOpenPlaquesUK.ts
Normal file
68
mappings/converters/configOpenPlaquesUK.ts
Normal file
|
@ -0,0 +1,68 @@
|
|||
/**
|
||||
* open plaques commémoratives UK
|
||||
*
|
||||
*
|
||||
*
|
||||
* npx ts-node convert_to_osm_tags.ts --engine-config=MappingOpenPlaquesUK --source=etalab_data/open_plaques_uk.geojson
|
||||
*/
|
||||
import MappingConfigType from "../mapping-config.type";
|
||||
|
||||
const MappingOpenPlaquesUK: MappingConfigType = {
|
||||
config_name: "MappingOpenPlaquesUK",
|
||||
config_author: "tk",
|
||||
default_properties_of_point: {
|
||||
// Ajoutez ici les propriétés par défaut pour vos points
|
||||
},
|
||||
source: {
|
||||
geojson_path: '',
|
||||
url: ''
|
||||
},
|
||||
filters: {
|
||||
// exclude_point_if_tag_not_empty: ['id_osm'], // exclure les points ayant déjà un id_osm pour éviter les doublons
|
||||
// offset: 1
|
||||
},
|
||||
add_not_mapped_tags_too: false,
|
||||
boolean_keys: [],
|
||||
tags_to_ignore_if_value_is: ['Non renseigne'],
|
||||
tags: {
|
||||
"id": "openplaque:id",
|
||||
// "machine_tag": "",
|
||||
// "title": "",
|
||||
// "inscription": "",
|
||||
// "latitude": "",
|
||||
// "longitude": "",
|
||||
// "as_wkt": "",
|
||||
// "country": "",
|
||||
// "area": "",
|
||||
"address": "addr:full",
|
||||
"erected": "date_start",
|
||||
// "main_photo": "",
|
||||
// "colour": "",
|
||||
// "organisations": "",
|
||||
// "language": "",
|
||||
// "series": "",
|
||||
// "series_ref": "ref",
|
||||
// "geolocated?": "",
|
||||
// "photographed?": "",
|
||||
// "number_of_subjects": "",
|
||||
// "number_of_male_subjects": "",
|
||||
// "number_of_female_subjects": "",
|
||||
// "number_of_inanimate_subjects": "",
|
||||
// "lead_subject_id": "ref",
|
||||
// "lead_subject_machine_tag": "",
|
||||
// "lead_subject_name": "name",
|
||||
// "lead_subject_surname": "name",
|
||||
// "lead_subject_sex": "",
|
||||
// "lead_subject_born_in": "",
|
||||
// "lead_subject_died_in": "",
|
||||
// "lead_subject_type": "",
|
||||
// "lead_subject_roles": "",
|
||||
// "lead_subject_primary_role": "",
|
||||
// "lead_subject_wikipedia": "",
|
||||
// "lead_subject_dbpedia": "",
|
||||
// "lead_subject_image": "",
|
||||
// "subjects": ""
|
||||
}
|
||||
}
|
||||
|
||||
export default MappingOpenPlaquesUK;
|
114310
output/converted_
Normal file
114310
output/converted_
Normal file
File diff suppressed because it is too large
Load diff
|
@ -28,15 +28,9 @@ describe('mapping properties with rich mapping engine', () => {
|
|||
})
|
||||
test('maps simple key to key, and keep the same value', () => {
|
||||
let Mapping_engine = new mapping_engine(mappingSame)
|
||||
let featurePoint = {
|
||||
type: 'Feature',
|
||||
properties: {
|
||||
equal: "same value"
|
||||
}
|
||||
}
|
||||
let newProperties = Mapping_engine.convertProperty('equal',
|
||||
Object.keys(mappingSame.tags),
|
||||
featurePoint,
|
||||
feature_to_test,
|
||||
mappingSame.default_properties_of_point)
|
||||
|
||||
expect(newProperties).toStrictEqual({
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue