2016-1 Geo-Info 41 het mogelijk een overzicht te krijgen van de landen die de door Nederland ingediende resoluties hebben gesteund? Wat blijkt nu? De benodigde data is niet in een kant-en-klaar bruikbaar formaat te downloa den. Ze zijn wel te bekijken op de website van de Verenigde Naties. Een enkele pagina is met selecteren, kopiëren en plakken nog wel hand matig te behandelen, maar met meer dan 4.000 door Nederland ingediende resoluties wordt het een ander verhaal. Dat wordt datascrapendoor automatisch de gezochte pagina's in te lezen, het juiste deel selecteren en dit weg te schrijven naar een bruikbaar bestand. In feite bestaat het datascrapen uit twee elementen: het zoeken van de juiste verwijzin gen op de website, en het verwerken van de inhoud van de pagina's waarnaar verwezen wordt in een script. Hoe haal je het juiste stuk uit de website? Net als een boek is een website opgedeeld in handzame blokken. De kaft van de website is dan de <body>, daarbinnen bevindt zich de inhoud, netjes gerangschikt in blokken, ofwel in een <div>. Deze blokken zijn afzonderlijk te bekijken en op te halen, door de broncode te bekijken. Dit kan in elke browser, meestal met de functietoets F12. Om het principe te illustreren heb ik in Firefox Funda.nl geopend, waarbij ik gezocht heb naar appartementen te huur in Wageningen. Er zijn 7 appartementen te huur, elk resultaat is een rij in een tabel. Met de inspectietools die onder F12 tevoorschijn komen, is de eerste rij geselecteerd. In het stukje code van deze tabelrij staat de specifieke url van dit appar tement genoemd: href="/huur/wageningen/ appartement-49400678-churchillweg-88/". Automatiseren in een script Dit proces kan met een script worden geau tomatiseerd. Het bovenstaande zou dan in lekentaal te beschrijven zijn als: Ga naar de website Funda.nl, Zoek Wageningen, huur, appartement Zoek naar het stuk code waarbinnen de lijst staat Geef per rij de tekst achter href Schrijf de verzamelde gegevens weg als 'huurwoningen Wageningen.CSV' Het script waarmee de VN-resoluties zijn verzameld in een tabel was geschreven in de taal R, maar het kan ook met een willekeurige andere taal, bijvoorbeeld Python. Voor de VN-resoluties worden een aantal bestan den aangemaakt. Voor de tabel un-member- states geldt dat het volgende wordt uitgevoerd: Geef een lijst van alle lidstaten Zoek de hyperlink naar de zoekpagina voor de draft-resolution voor elke lidstaat Tel het aantal draft-resolutions waar elke lidstaat aan bij heeft gedragen Schrijf deze gegevens weg in un-member- states.csv De gehele code is te downloaden van github.com/ FrieseWoudloper/un-draft-resolutions. Talen voor webvisualisatie Online kaarten worden op een andere manier opgemaakt dan in een desktop- GIS, zoals bijvoorbeeld QGis of ArcGis. Data wordt op een server gezet en daarna met code van styling voorzien. Een aantal mensen had wel met GeoServer en Open Layers gewerkt, waarbij de styling plaats vindt via SLD, Styled Layer Description. Dit is een op XML gebaseerde taal die vrij lastig is voor beginners. Gelukkig is Qgis inmiddels zo ver ontwikkeld dat de opmaak daarin gemaakt kan worden, waarna deze als SLD kan worden geexporteerd. De ontdekking van CartoCSS was een eye-opener, dit is zoveel eenvoudiger en compacter dan SLD. Voor mensen die niet gewend zijn om code te lezen en schrijven, is het vaak best lastig om een webkaart op te maken met SLD. CartoCSS is veel beter te begrijpen omdat het korte commando's gebruikt, zoals 'Marker-Fill'. SLD <09c:Filtcr> <ogcPrcpart yl sSqua Ho» <oqcEx op ert: >ob 3 e et</ oq cra per t yNasze <oqc :Liwïx41>K»CKFIïTS-w ogc;Litetal> oqc-Prop*rtyl*ZqualTd> </ogc:FilC€E> CartoCSS «fiatadiafatallan Jetojeet-^aaOKFISTS": <Eloi.ac£ytabcll2fir> <Gtaptu.O <HêllKnowfHu»>eixele</H611K nownH au> <Fill> <Cja Pararaat# r ■Li^*«-llll,,>#D630i3></CafC*c*in*cax> Fill?- <CBsfarasK>r 1 ti ff fff Ca ic&rmtet <CiaParanatal troka Ca «Paramat ar </8trok*> </Kaxk> <Siaa>10</Sixa> </Grdphic> Point Syefae li iet marker-fill: tD€301D; rarkar-lina-celcr: Srte; ca rk er-Line-width1; I tt hwuf m M 1 tt ft 6 HuurwflninfM CrfMflfÜMt Vetowe t Wjawiktttn lor» met niM I AQO*i Urnen I ZMkflpfrldÜ Imtett-n n L.Aiertj 9 Kun Vraapwlji T9WU9T|T| verhuurd C 7« mnd tWklA* *WMf 1 hun h» 6796 AD WjMflVigfh Ree 10 (AakaUars et-w Markt 1J «791 Cl r Ga anhoopmafccUai op hj bnahetjjis.nl Buitenwijk Wat® Buifcrwijk W49» Chide Stad atana ft Thorback+itrut a 0 CtbiHOP Y? StatattOT t O50BSO „nd "7 riHvrfrk l:cï 1 1 [i k teer let type-"' E r«- fX/Krlpti MlcTift Urui'ui"X'Hric! cserfpt i.div c 1 as3"V 1 i-i11 (tcrlptK/itHK) k (scriptx/icrift> •MHIIIU* «n«*let 1 -■ Ter vergelijking staat de kaartopmaak van de fietsdiefstallen zoals in MapBox was gemaakt hier boven weergegeven in zowel SLD als CartoCSS. Voor dezelfde opmaak, namelijk een rode cirkel met een witte outline zijn in CartoCSS slechts 3 regels nodig, tegen een hele rij tekst in SLD... Een troost voor wie kaarten wil gaan publiceren met GeoServer en OpenLayers: er is een plug-in voor GeoServer voor opmaak in CartoCSS. www.mapillary.com CartoDb kaart van Delft: bit.ly/iPjsykH www.mapbox.com rotterdamopendata.nl/dataset/fietsdiefstal- rotterdam-20ii-tot-20i3 Namens MapTime Summercamp: Erik Meerburg, Philippe Casteleyn, Willy Bakker en Jonna Bosch.

Digitale Tijdschriftenarchief Stichting De Hollandse Cirkel en Geo Informatie Nederland

Geo-Info | 2016 | | pagina 43