Perl scripts: verschil tussen versies

Uit wiki.openbomenkaart.org
Naar navigatie springen Naar zoeken springen
 
(21 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
==Installeer perl==
*[[Perl installeren]]
*Installeer Perl en een Integrated Development Environment (IDE)
*[[Perl_obk_csv2json.pl|Perl script obk_csv2json.pl]]  
**bijv [https://www.activestate.com/products/perl/ ActiveState perl]
**[[Perl_obk_csv2json.pl/Voorbereiding|Voorbereiding]]
**en [https://www.activestate.com/products/komodo-ide/ KOMODO IDE]
*[[Perl_taxons.pl|Perl script taxons.pl]]
*Test met een triviaal perl script, als volgt
*[[Perl diff_revisions.pl|Perl script diff_revisions.pl]]
**Klik <b>+</b>, rechtsboven in menu balk
*[[Perl json2csv.pl|Perl script json2csv.pl]]
**Klik 'New File'
*[[Perl obk_filter_region.pl|Perl script obk_filter_region.pl]]
**Copieer onderstaande twee regels naar het nieuwe bestand (zonder spaties voor de regels)
**Sla op als (Save as) '''hello_world.pl'''
**Voer script uit (Run) met F7
**Check de output
***Staat er "Hello world!" in het output venster? Gefeliciteerd, je heb een werkende perl omgeving.


#!/usr/bin/perl
Intro over [[regular expressions in perl]], en hoe [[ChatGPT perl|ChatGPT]] kan assisteren.
print "Hello World!"
 
*Het kan zijn dat nog extra perl modules geinstalleerd moeten worden.
**Doe dit met Perl Package Manager
*** Run c:\Perl64\bin\ppm.bat
***Zoek naar 'text csv'
***Selecteer  TEXT-CSV and klik 'Mark for install [+]'
***Klik 'Run marked actions' [Ctrl+Enter]
***Test onderstaand script
***Krijg je geen foutmeldingen dan heb je de module succesvol geinstalleerd!
 
#!/usr/bin/perl
print "Hello World!"
use Text::CSV; # install with ppm.bat
use Text::CSV::Encoded ;
use Math::Trig ;
use utf8;
 
[[Bestand:Perl package manager.jpg|thumb|400px|left]]<br clear=all>
 
 
==Test obk_csv2json.pl met een triviaal test bestand==
 
*Haal alle perl files die met obk_.. beginnen op van STRATO server en sla die lokaal op (allemaal in dezelfde folder ../perl..)
:Het gaat deze modules:
obk_csv2json.pl  hoofdscript , dit run je in de IDE
obk_setup.pl    genereer alle bestandsnamen, de meeste worden afgeleid uit de naam van het invoerbestand (csv bestand)
obk_parse_csv.pl breek een regel uit het csv bestand op in bruikbare kolommen
obk_normalize.pl standaardiseer zaken als hoogte en stamdikte, die worden in elke gemeente weer iets anders gecodeerd
obk_report.pl    rapporteer over de uitkomst
 
==csv2json.pl==
Perl script '''[https://openbomenkaart.org/scripts/perl/csv2json.pl csv2json.pl]''' voert een aantal bewerkingen uit op een bomenbestand.
 
Het is een beetje Q&D (Quick and Dirty). Zo moet je eerst wat regels in het script aanpassen, wanneer je van invoerbestand wilt wisselen.
 
Zelfs de naam had beter gekund, want intussen produceert het niet alleen een json bestand, maar ook een csv bestand.
 
Aug 2022: nu ook tellingen per park: aantal bomen, aantal soorten (park = 'park' in straatnaam, plus voor Leiden bekende namen van parken die dat niet hebben, bijv 'Leidse Hout')
 
 
==csv_match_revisions.pl==
Perl script '''[https://openbomenkaart.org/scripts/perl/csv_match_revisions.pl csv_match_revisions.pl]''' kan twee CSV bestanden met gemeentelijke data vergelijken en daaruit een aantal verschillenlijsten produceren. Er zijn verschillende bestandsformaten voor gemeentelijke bomenbestanden. Het eenvoudigste voor ons doel is een
'''csv bestand ''' (Comma Separated Values)
 
Separated Values) of XLS(X) bestand (Excel spreadsheet). Een Excel bestand kan je heel eenvoudig exportereen naar een CSV bestand. Het script verwacht dat de invoerbestanden al (oplopend) zijn gesorteerd op het eerste veld Id (dit kan in Excel).
 
(''Terzijde: de naam Comma Separated Values kan misleidend zijn. Excel hanteert verschillende scheidingstekens in verschillende landen. In de Nederlandse versie van Excel is het een punt-komma. Dit script verwacht echt komma's als scheidingstekens.'')
 
 
===Taxonnamen===
Twee van de verschillenlijsten gaan over taxonnamen:
*een tekst bestand '''[https://openbomenkaart.org/data/diffs/Leiden%20Matched%20Revisions%20Diff%20Species.txt Leiden Matched Revisions Diff Species.txt]''', bedoeld als leesbaar overzicht
*een csv bestand '''[https://openbomenkaart.org/data/diffs/Leiden%20Matched%20Revisions%20Diff%20Taxon.csv Leiden Matched Revisions Diff Taxon.csv]''', bedoeld om verder te verwerken met '''csv2json.pl'''. Dat script voegt in het json bestand extra tags toe waarmee je verschillen tussen gemeentelijke soortnamen in oude en nieuw bestand op een kaart kan markeren tijdens nalopen kan registreren wat de juiste naam is (de oude, of de nieuwe, of toch weer iets anders). Als je zo'n json bestand hebt met deze extra tags kun je die op de kaart zichtbaar maken door een extra parameter aan de url toe te voegen: '''checktaxon'''. Zie voor waarom dit er is en hoe het te gebruiken [[Veranderingen_in_taxonnamen_nalopen]]

Huidige versie van 27 jan 2024 om 14:37