Admin:Data samenvoegen uit meerdere bronnen

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

Lees eerst

Boomgegevens van gemeente en OpenStreetMap samenvoegen

OpenBomenKaart (OBK) bevat kaarten die helemaal van OpenStreetMap (OSM) komen, dus inventarisatie door vrijwilligers. Dat geldt nu voor alle parken. Daarnaast komen er kaarten op basis van open data van de gemeente (ODG), voor een hele gemeente ineens.

De crux is hoe dit samen te voegen. Wat je niet wil is dat de gemeentekaart voor een bepaald park andere bomen toont dan de kaart voor alleen dat park laat zien. Dat zou een beetje verwarrend zijn bij andere boomdiameters, maar heel verwarrend bij andere soortnamen. Ook wil je niet dat bomen alleen op een van beide kaarten voorkomen.

Het samenvoegen kan op verschillende nivo's.

Per boom kiezen voor 1 bron

Relatief makkelijk is het als elke boom maar uit 1 bron wordt gehaald. Ofwel het ODG, ofwel OSM.

Dat gebeurt nu al op de kaart van Voorschoten. De bomen in het Burg. Berkhoutpark die je op die kaart ziet is wat Hans en Sjaan in kaart hebben gebracht.

In het gemeentebestand worden de boomgegevens voor dat park uitgefilterd. Vervolgens wordt de lijst die uit OSM komt er aan toegevoegd, en dat samen als 1 invoerbestand door de scripts ingelezen.

Hoe te bepalen uit welke bron je put?

Eerst deed ik dat op basis van een filter in lengte- en breedtegraden. Dus alles wat binnen deze rechthoek viel: breedtegraad tussen 52.133 en 52.137, lengtegraad tussen 4.459 en 4.464 werd uit het gemeentebestand gefilterd. Nadeel hiervan is dat je alleen in rechthoeken kan werken, maar parken zijn geen rechthoeken. Je moet dan dus ook alle bomen buiten het park, maar binnen die rechthoek, in OSM zetten.

Later bedacht ik dat het gemeentebestand voor elke boom ook een straatnaam bevat. Voor het Berkhoutpark staat in het veld 'straatnaam' gewoon Berkhoutpark. Door dat als uitgangspunt te nemen, filter je precies dat wat je wilt vervangen uit.

Complicaties:

  • Dit kun je wel doen voor een heel park (of hele straat) maar niet voor een park (of straat) die half in kaart is gebracht.
  • Dit moet bij elke update van de kaart herhalen.
slechte enkele kolommen worden getoond
kaart met alleen gemeentelijke data
kaart na uitfilteren 'straat' berkhoutpark
kaart na toevoegen OSM data

In het vorige voorbeeld ging het om een gebied dat binnen OSM bekend is; Berkhoutpark gebied dat daar gedefinieerd is. Het wordt alweer wat lastiger om alleen bomen die in een bepaalde straat staan uit OSM op te halen.

De nodes voor de bomen hebben geen adresinformatie. Die kunnen dus alleen indirekt geselecteerd worden, door aan te geven bij welke weg ze in de buurt staan (zie script).

bomen binnen 50 meter
mist enkele bomen
bomen binnen 70 meter
werkt hier goed
bomen binnen 100 meter
neemt teveel bomen mee
script aangemaakt met tool Wizard

Per boom data uit beide bronnen combineren.

Het is flink lastiger om data uit beide bronnen voor 1 boom te combineren. Dus bijvoorbeeld locatie uit het ODG (het gemeentebestand dus), maar soort en stamomtrek uit OSM.

locatie

Zowel gemeente als OSM vrijwilligers bepalen de locatie met GPS. Beide zullen de onvermijdelijke meetfouten bevatten, maar misschien heeft de gemeente betere apparatuur, zodat de fouten kleiner zijn.

Door in een app zoals Go Map!!!, Vespucci, ID of JOSM beide kaarten over elkaar te leggen, en de cirkel uit OSM over de cirkel uit ODG te schuiven kun je dit oplossen. En een dag later zijn de tiles in OSM aangepast en zie je geen 'spookbomen' meer.

Gekleurde cirkels zijn door het OBK script boven de tiles (kaartsegmenten)getekend. Groene cirkels zitten in de OSM tiles 'ingebakken'. Door coordinaten in OSM aan te passen naar die van gemeentekaart zijn een dag later (als de tiles ververst zijn) de spookbomen verdwenen.


Dit kan door in de OSM editor een custom map als achtergrond te gebruiken, waar de gemeente bomen al als cirkels op staan.
Hier wordt uitgelegd hoe je zo'n custom map maakt: Achtergrond tiles voor OSM editor.

Hier voor de aardigheid ook even met optie show tiles aan.


soort

Soort zal meestal hetzelfde zijn, maar soms ook niet, en dan heeft OSM de voorkeur lijkt mij, aannemend dat een van onze boomexperts de naamsverandering (of eigenlijk naamscorrectie) goedkeurt.

In het gemeente bestand heet deze boom
Fagus sylvatica 'Purpurea'
In OSM heet deze boom net even anders
Fagus sylvatica 'Atropurpurea'

omtrek

Voor stamomtrek zou ideaal de hoogste waarde moeten prevaleren (even aannemend dat beide metingen correct zijn, dan heeft de meest recente meting natuurlijk de voorkeur. Een script kan hier bij helpen, maar pas als de boom in beide bestanden uniek aan te wijzen is, en daarvoor is het gemeentenummer van de boom nodig. Pas als dat gemeentenummer ook in OSM staat kun je de keuze welke omtrek te kiezen automatiseren.

Wijzigingen/aanvullingen naar de gemeente terugkoppelen

Dit zou het mooiste zijn. Maar is ook het meest complex. Voorwaarde lijkt me dat we een verschillenlijst kunnen produceren met boomnummers zoals de gemeente die eerder heeft toegekend. De gemeente kan daar hun database mee updaten (of niet natuurlijk, dan blijft het verschil bestaan en komt dat telkens terug in de verschillenlijst).

De lijst kan bevatten:

  • Nieuwe bomen met soortnaam, locatie, meetgegevens, en een tijdelijk nummer (om communicatie te versimpelen).
  • Bomen die gesneuveld zijn (met gemeentenummer)
  • Bomen die een andere soortnaam (of cultivar) hebben in beide bronnen
  • Afmetingen indien er een heel groot verschil is (zoals bij de grote beuk) zodat handmatige correctie in het gemeentebestand ook voor de gemeente zeer gewenst is