Admin:Referentiekaart maken op basis van bomenbestand: verschil tussen versies

Uit wiki.openbomenkaart.org
Naar navigatie springen Naar zoeken springen
 
(31 tussenliggende versies door 2 gebruikers niet weergegeven)
Regel 3: Regel 3:
==Inleiding==
==Inleiding==


We gaan een tile set maken die geschikt is om als achtergrond in een OSM editor te laden. Daarmee kunnen we dan bomen uit eigen waarneming aan die achtergrond relateren, en bijv. positie en gemeentelijk boomnummer overnemen.
We gaan een bomenbestand omwerken naar een referentiekaart. Dit doen we met QGIS.


Daartoe gaan
Dit heeft twee toepassingen:
*Op basis hiervan kan een tileset gegenereerd worden die je dan in de OSM editor kunt laden, om zo gegevens uit het gemeentebestand aan eigen waarnemingen te kunnen koppelen.
*Je kunt het referentiekaart ook rechtstreeks in QGIS bekijken, zodat je details die in de tileset niet goed te herkennen zijn 'bij de bron' kan lezen.
 
Daartoe gaan we
*'''Een bomenbestand inladen'''. We kiezen nu voor een CSV bestand, maar het kan ook een GEOJSON bestand o.i.d dergelijks zijn.  
*'''Een bomenbestand inladen'''. We kiezen nu voor een CSV bestand, maar het kan ook een GEOJSON bestand o.i.d dergelijks zijn.  
:We gaan er van uit dat alle data die we nodig hebben al in het bestand aanwezig zijn.  
:We gaan er hier van uit dat alle data die we nodig hebben al in het bestand aanwezig zijn. Dit is daarom vaak niet het originele gemeentebestand, maar een bewerkte versie.
:Zie ook
:Zie ook [[Admin:Invoerbestand_converteren|Invoerbestand converteren]], b.v. GEOJSON -> CSV / [[Admin:Invoerbestand_aanvullen_met_latitude_longitude|Invoerbestand aanvullen met latitude longitude]]
::[[Admin:Invoerbestand_converteren|Invoerbestand converteren]], b.v. GEOJSON -> CSV en
::[[Admin:Invoerbestand_aanvullen_met_latitude_longitude|Invoerbestand aanvullen met latitude longitude]]
*'''Een OSM layer toevoegen''', zodat we zien waar we zijn.
*'''Een OSM layer toevoegen''', zodat we zien waar we zijn.
*'''Boomnummers van de gemeente zichtbaar maken'''
*'''Boomnummers van de gemeente zichtbaar maken'''
*'''Presentatie van datapunten aanpassen''', zodat we boomsoorten makkelijker uit elkaar houden
*'''Presentatie van datapunten aanpassen''', zodat we boomsoorten makkelijker uit elkaar houden
*'''Een tileset genereren'''
 
==Stap voor stap handleiding==
==Stap voor stap handleiding==


We gebruiken in dit voorbeeld de volgende dataset [https://openbomenkaart.org/data/trees_leiden_LL_center.csv trees_leiden_LL_center.csv] die gebaseerd is op het gemeentelijk bomenbestand van Leiden  
<!-- We gebruiken in dit voorbeeld de volgende dataset [https://openbomenkaart.org/data/trees_leiden_LL_center.csv trees_leiden_LL_center.csv] -->
<br>''alleen de bomen in het centrum van Leiden / LL staat voor longitude en latitude toegevoegd''.
We gebruiken in dit voorbeeld de volgende dataset [https://openbomenkaart.org/data/trees_leiden_LL_totaal.csv trees_leiden_LL_totaal.csv]
die gebaseerd is op het gemeentelijk bomenbestand van Leiden, maar een aantal bewerkingen heeft ondergaan:
*Aan het oorspronkelijke csv bestand zijn met QGIS velden long(itude) en lat(itude) toegevoegd (vandaar 'LL' in de bestandsnaam). Zie ook  [[Admin:Invoerbestand_aanvullen_met_latitude_longitude|Invoerbestand_aanvullen_met_latitude_longitude]] 
*Een aantal velden zijn genormaliseerd en aangevuld door een eigen [[perl script csv2json.pl]]
*Veld 'number_name' is toegevoegd, wat een verkorte notatie is die gemeentenummer en afgekort boomsoort bevat
[[Bestand:Csv gemeentedata voor background_in ID.png|thumb|left|941px]]<br clear=all>


Procedure:
*Start QGIS  
*Start QGIS  
*Kies menu Project / New
*Kies menu Project / New
*Sla dit project meteen op onder een nieuwe naam ''blabla''.qgz.
:''We gaan een lange procedure in. Het is raadzaam regelmatig de tussenstand op te slaan, zodat je vandaar altijd opnieuw kunt beginnen.''
:''Als deze procedure klaar is, kun je de referentiekaart meteen weer op het scherm toveren door deze QGZ file aan te klikken, en komt dan meteen op de positie en ingezoomd waar je was bij de laatste keer dat je ge-saved hebt, (aannemende dat je de onderliggende bestanden niet intussen verplaatst of hernoemd hebt).''
===Een bomenbestand inladen===
===Een bomenbestand inladen===


*Kies menu Layer / Add Layer /  
*Kies menu Layer / Add Layer /  
[[Bestand:QGIS add delimited text layer.png|thumb|400px|left|Laag toevoegen]]<br clear=all>
[[Bestand:QGIS add delimited text layer.png|thumb|400px|left|Laag toevoegen]]<br clear=all>
*We selecteren de velden in het bestand voor de X en Y coordinaat: nu staan X en Y al ingevuld, maar soms kies je X=long(itude), Y=lat(itude)
*We selecteren de velden in het bestand voor de X en Y coordinaat: nu staan X en Y al ingevuld, maar soms kies je X=long(itude) of Lengtegraad, Y=lat(itude) of Breedtegraad
*We selecteren de projectie: 'Geometry CRS', hier 'EPSG:7415 - Amersfoort / RD New'
*We selecteren de projectie: 'Geometry CRS', hier 'EPSG:4326 WGS84'
:''Er zijn heel veel coordinatenstels voor GIS, het fijne weet ik er niet van, maar in Nederlands is het vaak Amersfoort in de naam (= het midden van Nederland, bij de kerktoren) ''
:''Er zijn heel veel coordinatenstels voor GIS, het fijne weet ik er niet van, maar in Nederlands is het vaak Amersfoort in de naam (= het midden van Nederland, bij de kerktoren) ''
*Klik Add button
*Klik Add button
Regel 46: Regel 58:
*Klik OK -> Je ziet nu OSM, en wel het gebied dat door de coordinaten in het bestand is bepaald (hier velden X en Y)
*Klik OK -> Je ziet nu OSM, en wel het gebied dat door de coordinaten in het bestand is bepaald (hier velden X en Y)
[[Bestand:QGIS add OSM layer result.png|thumb|400px|left|Resultaat]]<br clear=all>
[[Bestand:QGIS add OSM layer result.png|thumb|400px|left|Resultaat]]<br clear=all>
*Helemaal rechtsonder staat ook een EPSG code: maak dit 'EPSG 3857'. Let op dit is de goede combinatie: Bomenlaag 'EPSG:4326 WGS84' en OpenStreetMap laag 'EPSG 3857'. Als je 2 keer dezelfde EPSG code kiest zie je niets!
De kaart heeft nu de juiste verhoudingen
*In paneel 'Layers' wissel de layers om (slepen)
*In paneel 'Layers' wissel de layers om (slepen)
[[Bestand:QGIS_added_OSM_layer_before_swap_layers.png|thumb|400px|left|Voor het verwisselen van de volgorde van layers]]<br clear=all>
[[Bestand:QGIS_added_OSM_layer_before_swap_layers.png|thumb|400px|left|Voor het verwisselen van de volgorde van layers]]<br clear=all>
Regel 53: Regel 67:


===Boomnummers van de gemeente zichtbaar maken===
===Boomnummers van de gemeente zichtbaar maken===
*Selecteer de layer met bomen
[[Bestand:QGIS select layer bomen.png|thumb|400px|left|Selecteer icon 'Layer labelling options']]<br clear=all>


[[Bestand:QGIS layer labelling.png|thumb|400px|left|Selecteer icon 'Layer labelling options']]<br clear=all>
[[Bestand:QGIS layer labelling.png|thumb|400px|left|Selecteer icon 'Layer labelling options']]<br clear=all>
Regel 59: Regel 76:
*Een veelheid aan instellingen (achter meerdere tabs) verschijnt  
*Een veelheid aan instellingen (achter meerdere tabs) verschijnt  
[[Bestand:QGIS layer labelling single details.png|thumb|400px|left|Veel instellingen]]<br clear=all>
[[Bestand:QGIS layer labelling single details.png|thumb|400px|left|Veel instellingen]]<br clear=all>
*Resultaat: een getallenwolk
[[Bestand:QGIS layer labelling a cloud of numbers appears.png|thumb|400px|left|Getallenwolk]]<br clear=all>
*We kunnen de presentatie van de labels 'fijnafstemmen', bijvoorbeeld de letters kleiner maken, naar 'size = 7 points'
[[Bestand:QGIS_layer_labelling_point_size.png|thumb|400px|left|size = 7 points]]<br clear=all>
*Als er een (afgekorte) soort naam bekend is dan is er een scheidings teken '-'.
:Door dit teken in te vullen bij 'wrap on character' wordt de tekst in twee segmenten gedeeld, en blijft deze dus dichtbij de boom-cirkel
:''N.B.: Deze afgekorte soortnaam is niet aanwezig in het oorspronkelijke gemeente bestand. Dit is toegevoegd door mijn script (kan ook in Excel).''
:''N.B.2: Het is ook mogelijk om een keten van velden achter elkaar te zetten en deze apart te tonen als label. Klik hiervoor op de Epsilon achteraan de keuze Value onder Single labels. Allerlei bewerkingen zijn mogelijk maar de functie array_to_string(array) is hiervoor eenvoudig is te gebruiken. Als voorbeeld was in mijn geval (anders dan hier verder wordt getoond) dit dus: array_to_string(array (  "Boomnummer", "Code boomsoort",  "Boomhoogte", "Stamdiameter [cm]" ) ,'_'). Let hierbij op het goede scheidingsteken als laatste deel in de regel. Sla deze op en dan kun je deze gecombineerde regel selecteren in de Value regel.''
<table><tr>
<td>[[Bestand:QGIS layer labelling wrap on character.png|thumb|400px|left|Wrap character '-']]</td>
<td><big>&rArr;</big>
<td>[[Bestand:QGIS layer labelling result of wrapping.png|thumb|400px|left|Resultaat]]</td>
</tr></table>


===Presentatie van datapunten aanpassen===
*Pas label placement aan 
===Een tileset genereren===


*Kies menu Layer / Layer Properties
[[Bestand:QGIS layer properties2.png|thumb|400px|left|Kies Layer Properties]]<br clear=all>


*KIes placement
:Mode: 'offset from point' / Klik bijv. quadrant rechtsmidden / Offset X: 2 millimeters
<table><tr>
<td>[[Bestand:QGIS layer label placement.png|thumb|400px|left|Label placement]]</td>
<td>&rArr;</td>
<td>[[Bestand:QGIS layer label placement result.png|thumb|400px|left|Label placement]]</td>
</tr></table>


*menu Project / option New
===Kleuren van cirkels aanpassen===
[[bestand:add_coordinates_1.png|thumb|left|border]]
<br clear=all>
*menu Layer / option Add Layer / Add Delimited Text Layer
[[bestand:add_coordinates_2.png|thumb|left|border]]
<br clear=all>
shows dialog ''Data Source Manager | Delimited Text''
[[bestand:add_coordinates_3.png|thumb|left|border]]
<br clear=all>


Download eerst bestand [https://openbomenkaart.org/assets/trees_symbology.qml 'trees_symbology.qml'] van de OpenBomenKaart site, en sla op.


Symbolen zijn onderdeel van een 'style'.
We gaan deze style uit dit QML bestand importeren.


*menu Layer / menu item Layer Properties
*button Style / menu item Load Style


<table>
[[Bestand:QGIS_layer_symbology_load_style.png|thumb|400px|left|Load style from file]]<br clear=all>
<tr>
 
<td colspan=99>Drie dialoogboxen in QGIS die hier bij van pas kwamen. Twee over gamma waarde (fletsheid van OSM kaart), naar keuze te gebruiken. <br>Één over cirkel kleuren die afgeleid zijn van de geslachtsnaam.</td>
*Selecteer bestand 'trees_symbology.qml'
</tr>
 
<tr>
[[Bestand:QGIS_layer_symbology_load_style_qml.png|thumb|400px|left|Het bestand dat je net gedownload hebt]]<br clear=all>
 
*En ''presto'': een aantal symbolen zijn geladen
:''Dit style bestand bevat alleen deze symbolen, maar er kan veel meer naar/van een QML bestand gebracht worden''
 
[[Bestand:QGIS layer symbology.png|thumb|400px|left|Deze symbolen zijn geladen]]<br clear=all>
 
Wat dit doet is: cirkels zullen gekleurd worden volgens de regels die hier staan ''(deze symbolen zijn rule-based)''. Controleer de veldnamen als er regels zijn overgenomen uit een bestand. Je geïmporteerde CSV bestand kan andere veldnamen bevatten dan die hier in een regel staan. Je kunt de regel eenvoudig aanpassen door de regel te selecteren en op de knop 'Refine selected rules' te drukken.
:''regel 2 bepaalt: Als het label de tekst 'Fraxinus' bevat, wordt de cirkel blauw gekleurd.''
:''Dit zijn dezelfde kleuren die in de kaarten gebruikt worden. ''
:''Als geen van deze teksten voorkomt: toon dan een witte cirkel. (bovenste regel)''
:''De witte cirkel betekent dus niet 'soort onbekend' o.i.d., maar niet een van de geslachten waarvoor een regel is gedefinieerd, overige dus ''''
 
===Achtergrond fletser maken===
''Dit doet de teksten (waar het om gaat) er meer uitspringen.''
*Selecteer OSM layer
[[Bestand:QGIS select layer OSM.png|thumb|400px|left|Slecteer OSM layer]]<br clear=all>
 
Twee dialoogboxen die hierbij van pas komen. Kies een van beide om de kaart fletser te maken.
 
*menu Layer / menu item Layer properties / Layer Rendering / pas Gamma aan
 
<table><tr>
<td valign=top>[[Bestand:QGIS_layer_properties.png|thumb|left|250px|border|gamma]]</td>
<td> of gebruik </td>
<td valign=top>[[Bestand:QGIS_layer_rendering.png|thumb|left|250px|border|gamma]]</td>
<td valign=top>[[Bestand:QGIS_layer_rendering.png|thumb|left|250px|border|gamma]]</td>
<td valign=top>[[Bestand:QGIS_layer_properties.png|thumb|left|250px|border|gamma]]</td>
<td valign=top>[[Bestand:QGIS_layer_styling.png|thumb|left|250px|border|layer styling]]</td>
</tr>
</tr>
</table>
</table>
*Save het project voor de laatste maal (-> QGZ bestand)
:De referentiekaart is nu klaar voor gebruik (rechtstreeks, of via tileset)


==Zie ook==
==Zie ook==
*[[Admin:Invoerbestand_converteren|Invoerbestand converteren]], b.v. GEOJSON -> CSV
*[[Admin:Invoerbestand_converteren|Invoerbestand converteren]], b.v. GEOJSON -> CSV
*[[Admin:Invoerbestand_aanvullen_met_latitude_longitude|Invoerbestand aanvullen met latitude longitude]]
*[[Admin:Invoerbestand_aanvullen_met_latitude_longitude|Invoerbestand aanvullen met latitude longitude]]

Huidige versie van 4 nov 2023 om 23:12

info box uit Wikipedia

Inleiding

We gaan een bomenbestand omwerken naar een referentiekaart. Dit doen we met QGIS.

Dit heeft twee toepassingen:

  • Op basis hiervan kan een tileset gegenereerd worden die je dan in de OSM editor kunt laden, om zo gegevens uit het gemeentebestand aan eigen waarnemingen te kunnen koppelen.
  • Je kunt het referentiekaart ook rechtstreeks in QGIS bekijken, zodat je details die in de tileset niet goed te herkennen zijn 'bij de bron' kan lezen.

Daartoe gaan we

  • Een bomenbestand inladen. We kiezen nu voor een CSV bestand, maar het kan ook een GEOJSON bestand o.i.d dergelijks zijn.
We gaan er hier van uit dat alle data die we nodig hebben al in het bestand aanwezig zijn. Dit is daarom vaak niet het originele gemeentebestand, maar een bewerkte versie.
Zie ook Invoerbestand converteren, b.v. GEOJSON -> CSV / Invoerbestand aanvullen met latitude longitude
  • Een OSM layer toevoegen, zodat we zien waar we zijn.
  • Boomnummers van de gemeente zichtbaar maken
  • Presentatie van datapunten aanpassen, zodat we boomsoorten makkelijker uit elkaar houden

Stap voor stap handleiding

We gebruiken in dit voorbeeld de volgende dataset trees_leiden_LL_totaal.csv die gebaseerd is op het gemeentelijk bomenbestand van Leiden, maar een aantal bewerkingen heeft ondergaan:

  • Aan het oorspronkelijke csv bestand zijn met QGIS velden long(itude) en lat(itude) toegevoegd (vandaar 'LL' in de bestandsnaam). Zie ook Invoerbestand_aanvullen_met_latitude_longitude
  • Een aantal velden zijn genormaliseerd en aangevuld door een eigen perl script csv2json.pl
  • Veld 'number_name' is toegevoegd, wat een verkorte notatie is die gemeentenummer en afgekort boomsoort bevat
Csv gemeentedata voor background in ID.png


Procedure:

  • Start QGIS
  • Kies menu Project / New
  • Sla dit project meteen op onder een nieuwe naam blabla.qgz.
We gaan een lange procedure in. Het is raadzaam regelmatig de tussenstand op te slaan, zodat je vandaar altijd opnieuw kunt beginnen.
Als deze procedure klaar is, kun je de referentiekaart meteen weer op het scherm toveren door deze QGZ file aan te klikken, en komt dan meteen op de positie en ingezoomd waar je was bij de laatste keer dat je ge-saved hebt, (aannemende dat je de onderliggende bestanden niet intussen verplaatst of hernoemd hebt).

Een bomenbestand inladen

  • Kies menu Layer / Add Layer /
Laag toevoegen


  • We selecteren de velden in het bestand voor de X en Y coordinaat: nu staan X en Y al ingevuld, maar soms kies je X=long(itude) of Lengtegraad, Y=lat(itude) of Breedtegraad
  • We selecteren de projectie: 'Geometry CRS', hier 'EPSG:4326 WGS84'
Er zijn heel veel coordinatenstels voor GIS, het fijne weet ik er niet van, maar in Nederlands is het vaak Amersfoort in de naam (= het midden van Nederland, bij de kerktoren)
  • Klik Add button
Dialoogbox


  • En daarna de bovenste regel in deze vervolgdialoggbox
Vervolgdialoogbox


  • klik OK button: en dit is het resultaat: een veelheid aan kleine cirkels (elk een boom)
Resultaat


Een OSM layer toevoegen

Dit is een heel eenvoudige stap.

Add XYZ layer


  • Je kunt misschien alleen OpenStreetMap selecteren (tenzij je al andere XYZ layers hebt aangemaakt)
Add XYZ layer


  • Klik Add
  • KIes zelfde projectie als eerder gedaan (bovenste)
  • Klik OK -> Je ziet nu OSM, en wel het gebied dat door de coordinaten in het bestand is bepaald (hier velden X en Y)
Resultaat


  • Helemaal rechtsonder staat ook een EPSG code: maak dit 'EPSG 3857'. Let op dit is de goede combinatie: Bomenlaag 'EPSG:4326 WGS84' en OpenStreetMap laag 'EPSG 3857'. Als je 2 keer dezelfde EPSG code kiest zie je niets!
De kaart heeft nu de juiste verhoudingen
  • In paneel 'Layers' wissel de layers om (slepen)
Voor het verwisselen van de volgorde van layers


Na het verwisselen van de volgorde van layers


  • Het resultaat
Resultaat


Boomnummers van de gemeente zichtbaar maken

  • Selecteer de layer met bomen
Selecteer icon 'Layer labelling options'


Selecteer icon 'Layer labelling options'


  • Kies
Single labels


  • Een veelheid aan instellingen (achter meerdere tabs) verschijnt
Veel instellingen


  • Resultaat: een getallenwolk
Getallenwolk


  • We kunnen de presentatie van de labels 'fijnafstemmen', bijvoorbeeld de letters kleiner maken, naar 'size = 7 points'
size = 7 points


  • Als er een (afgekorte) soort naam bekend is dan is er een scheidings teken '-'.
Door dit teken in te vullen bij 'wrap on character' wordt de tekst in twee segmenten gedeeld, en blijft deze dus dichtbij de boom-cirkel
N.B.: Deze afgekorte soortnaam is niet aanwezig in het oorspronkelijke gemeente bestand. Dit is toegevoegd door mijn script (kan ook in Excel).
N.B.2: Het is ook mogelijk om een keten van velden achter elkaar te zetten en deze apart te tonen als label. Klik hiervoor op de Epsilon achteraan de keuze Value onder Single labels. Allerlei bewerkingen zijn mogelijk maar de functie array_to_string(array) is hiervoor eenvoudig is te gebruiken. Als voorbeeld was in mijn geval (anders dan hier verder wordt getoond) dit dus: array_to_string(array ( "Boomnummer", "Code boomsoort", "Boomhoogte", "Stamdiameter [cm]" ) ,'_'). Let hierbij op het goede scheidingsteken als laatste deel in de regel. Sla deze op en dan kun je deze gecombineerde regel selecteren in de Value regel.
Wrap character '-'
Resultaat
  • Pas label placement aan
  • Kies menu Layer / Layer Properties
Kies Layer Properties


  • KIes placement
Mode: 'offset from point' / Klik bijv. quadrant rechtsmidden / Offset X: 2 millimeters
Label placement
Label placement

Kleuren van cirkels aanpassen

Download eerst bestand 'trees_symbology.qml' van de OpenBomenKaart site, en sla op.

Symbolen zijn onderdeel van een 'style'. We gaan deze style uit dit QML bestand importeren.

  • menu Layer / menu item Layer Properties
  • button Style / menu item Load Style
Load style from file


  • Selecteer bestand 'trees_symbology.qml'
Het bestand dat je net gedownload hebt


  • En presto: een aantal symbolen zijn geladen
Dit style bestand bevat alleen deze symbolen, maar er kan veel meer naar/van een QML bestand gebracht worden
Deze symbolen zijn geladen


Wat dit doet is: cirkels zullen gekleurd worden volgens de regels die hier staan (deze symbolen zijn rule-based). Controleer de veldnamen als er regels zijn overgenomen uit een bestand. Je geïmporteerde CSV bestand kan andere veldnamen bevatten dan die hier in een regel staan. Je kunt de regel eenvoudig aanpassen door de regel te selecteren en op de knop 'Refine selected rules' te drukken.

regel 2 bepaalt: Als het label de tekst 'Fraxinus' bevat, wordt de cirkel blauw gekleurd.
Dit zijn dezelfde kleuren die in de kaarten gebruikt worden.
Als geen van deze teksten voorkomt: toon dan een witte cirkel. (bovenste regel)
De witte cirkel betekent dus niet 'soort onbekend' o.i.d., maar niet een van de geslachten waarvoor een regel is gedefinieerd, overige dus ''

Achtergrond fletser maken

Dit doet de teksten (waar het om gaat) er meer uitspringen.

  • Selecteer OSM layer
Slecteer OSM layer


Twee dialoogboxen die hierbij van pas komen. Kies een van beide om de kaart fletser te maken.

  • menu Layer / menu item Layer properties / Layer Rendering / pas Gamma aan
gamma
of gebruik
gamma
  • Save het project voor de laatste maal (-> QGZ bestand)
De referentiekaart is nu klaar voor gebruik (rechtstreeks, of via tileset)

Zie ook