Leiden van xlsx via csv naar json

Uit wiki.openbomenkaart.org
Naar navigatie springen Naar zoeken springen

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)

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