Leiden van xlsx via csv naar json: verschil tussen versies
Regel 29: | Regel 29: | ||
$file_input = "$data/leiden/gemeente/2024_04_25/obk_leiden_in.csv" ; | $file_input = "$data/leiden/gemeente/2024_04_25/obk_leiden_in.csv" ; | ||
'''Helaas is in elke versie van het bestand dat we van Leiden krijgen de indeling in kolommen anders''' | |||
*Pas '''obk_parse_csv.pl''' aan als volgt | *Pas '''obk_parse_csv.pl''' aan als volgt | ||
*Ga naar code voor Leiden | *Ga naar code voor Leiden | ||
Regel 44: | Regel 45: | ||
} | } | ||
*Voeg een nieuwe sectie toe voor dit nieuwe bestand | *Voeg een nieuwe sectie toe voor dit nieuwe bestand | ||
: | :vind zelf de juiste kolommen door '''obk_leiden_in.csv''' in Excel te openen | ||
:vervang dus '''...''' hieronder door lijst met kolommen | |||
:in deze versie zitten meer bruikbare velden dan in de vorige | :in deze versie zitten meer bruikbare velden dan in de vorige | ||
# columns for data file from 2024_04_025 | # columns for data file from 2024_04_025 | ||
Regel 54: | Regel 56: | ||
Check de output op foutmeldingen. Als er geen output is, dan was er vast een script syntax error waardoor de run meteen gestopt werd. | Check de output op foutmeldingen. Als er geen output is, dan was er vast een script syntax error waardoor de run meteen gestopt werd. | ||
*Check ook ../scripts/perl/STDERR.txt | *Check ook ../scripts/perl/STDERR.txt | ||
Als alles goed is gegaan is er een aantal bestanden | Als alles goed is gegaan is er een aantal bestanden gegenereerd, o.a. '''trees_leiden.json''' | ||
==json bestand testen== | ==json bestand testen== |
Huidige versie van 6 jun 2024 om 15:08
Complete procedure voor Leiden (voor andere gemeentes is het vaak wat simpeler)
Van xslx naar csv
- Creeer nieuwe folder ../data/Leiden/Gemeente/[yyyy-mm-dd]
- Open mail die de gemeente stuurde (tot nu toe steeds van Emiel Hilgersom)
- Sla de aangehechte xlsx file op in de nieuwe folder, bijv bomen 25-4-2024.xlsx
- Open de file in Excel
- Selecteer kolom 'Stamdiameterklasse'
- Ga naar Home / Find & Select / Replace
- Vervang komma door punt voor de hele kolom
Dit is de Engelse notatie voor decimale punt, en het voorkomt dat komma straks als scheidingsteken tussen velden wordt geinterpreteerd
- Sla het spreadsheet als csv bestand op in dezelfde folder onder naam obk_leiden_in_raw.csv (type csv versie utf-8)
van ene csv naar andere csv
- Open ActiveState Komodo IDE
- Open perl file csv2normalize.pl
- Run dit met F7
Nu is er een obk_leiden_in_raw2.csv gemaakt met kleine aanpassingen (geen dubbele quotes om velden X en Y, waar QGIS over zou vallen)
- Open QGIS
- vervolg met Admin:Invoerbestand_aanvullen_met_latitude_longitude
Aan het eind van deze actie heb je de definitieve file voor omzetting naar een json bestand: obk_leiden_in.csv
Van csv naar json
- Ga weer naar ActiveState Komodo IDE
- Open perl file obk_csv2json.pl
- Zet het combineren van diverse inputs aan
our $merge_trees_gov_osm = 1 ;
- Zorg dat juiste regel geactiveerd wordt (uit commentaar gehaald)
$file_input = "$data/leiden/gemeente/2024_04_25/obk_leiden_in.csv" ;
Helaas is in elke versie van het bestand dat we van Leiden krijgen de indeling in kolommen anders
- Pas obk_parse_csv.pl aan als volgt
- Ga naar code voor Leiden
# Leiden if ($csv_columns eq 'leiden') { ... }
- Deactiveer binnen die sectie de vorige code voor beschrijving kolommen door er commentaar aan toe te voegen
# columns for data file 2024_02_02/obk_leiden_in.csv if (0) { ... }
- Voeg een nieuwe sectie toe voor dit nieuwe bestand
- vind zelf de juiste kolommen door obk_leiden_in.csv in Excel te openen
- vervang dus ... hieronder door lijst met kolommen
- in deze versie zitten meer bruikbare velden dan in de vorige
# columns for data file from 2024_04_025 ($id, $species_nl, $species, $stamdiameterklasse, $hoogte, $plantjaar, $beheerder, $locatie, $stadsdeel, $wijk, $buurt, $long, $lat) = ($csv -> fields ()) [...] ;
- Run obk_csv2json.pl met F7
Check de output op foutmeldingen. Als er geen output is, dan was er vast een script syntax error waardoor de run meteen gestopt werd.
- Check ook ../scripts/perl/STDERR.txt
Als alles goed is gegaan is er een aantal bestanden gegenereerd, o.a. trees_leiden.json
json bestand testen
- Hernoem trees_leiden.json naar bijv. trees_leiden_test.json
- Upload met FileZilla naar ../data/..
- test en vergelijk met huidige 'live' editie van kaart
json bestand live brengen
bij grote verandering (bijv nieuwe jaarlijkse editie) huidige bestand onder andere naam beschikbaar houden
- Hernoem met FileZilla trees_leiden.json naar trees_leiden_2023.json
- Anders: Hernoem trees_leiden.json naar trees_leiden.json.bak
- Hernoem trees_leiden_test.json naar trees_leiden.json