MBtiles-kaart maken met QGIS

 

 

Update januari 2022

 

Kaartbron: satellietfoto van www.satellietdataportaal.nl

Gebruikt programma: QGIS https://qgis.org/nl/site/

Stappenplan

  1. WMS-gegevens van de betreffende foto downloaden van Satellietdataportaal
  2. Kaartbeeld laden in QGIS en opslaan als MBTiles-bestand
  3. MBTiles-bestand als kaart laden in OpenCPN.
  4. Ook andere kaartbronnen gebruiken, zoals Google Satellite, Google Maps, OpenStreetMap, OpenSeaMap.


Inhoudsopgave


Opmerking vooraf

  1. WMS-gegevens van satellietfoto downloaden
  2. Kaart maken in QGIS en opslaan als MBTiles-bestand
  3. MBTiles-bestand laden in OpenCPN
  4. Ook andere kaartbronnen gebruiken
  5. Google Satellite
  6. Google Maps, OpenStreetMap, OpenSeaMap, Hybride
  7. Meerwaarde van Google Maps, OpenStreetMaps e.d. 

 

 

Opmerking vooraf:


“Echte” zeekaarten zijn een onmisbare bron van informatie, maar eigenlijk al verouderd op het moment dat zij worden gepubliceerd. Dat geldt vooral voor wat betreft de precieze locatie van zandbanken en geulen. Er zijn echter mogelijkheden om (aanvullend) ook gebruik te maken van hele mooie en recente satellietfoto’s van de Waddenzee. Die foto’s kunnen met behulp van een speciaal programma (QGIS) worden omgezet naar een bestand (MBTiles) dat kan worden ingelezen in een uitstekend kaartnavigatieprogramma (OpenCPN). En… dat allemaal geheel gratis! Het zou dus zomaar kunnen dat er méér Wadvaarders zijn die daar gebruik van willen maken. Vandaar deze handleiding.

 

Zowel QGIS als OpenCPN kunnen worden geïnstalleerd als “Nederlandse” versie. Ik heb voor deze handleiding en de screenshots (oeps… “schermafdrukken”) echter gebruik gemaakt van de Engelstalige versies. Maar dat is ook voor de gebruikers van de Nederlandse versies denk ik geen onoverkomenlijk bezwaar.

Met QGIS kan een heleboel, in ieder geval véél meer dan wat ik kan bevatten.

 

Deze handleiding was oorspronkelijk uitsluitend en alleen bedoeld om QGIS te gebruiken voor het maken van een MBTiles-bestand van een satellietfoto van Satellietdataportaal. Niets minder, maar vooral ook niets méér. Later heb ik er een update aan toegevoegd omdat ik er achter kwam dat je op heel eenvoudige wijze op dezelfde manier ook kaartmateriaal van o.a. Google Satellite, Google Maps of OpenStreetMaps kunt gebruiken en kunt omzetten naar MBTiles.

 

De update leek mij wenselijk omdat de satellietfoto’s van Satellietdataportaal beperkt zijn tot Nederland en Google Satellite en OpenStreetMaps in beginsel de hele wereld bevatten (en in ieder geval ook het Duitse wad).

Het hele proces in QGIS lijkt op het eerste gezicht misschien ingewikkeld, maar valt -zeker na een paar keer oefenen- in de praktijk echt wel mee.

Roel Smidt, Den Helder 30-06-2020/01-01-2022

 

1. WMS-gegevens van satellietfoto downloaden

  Ga naar https://www.spaceoffice.nl/nl/satellietdataportaal/

Klik op "Voorbewerkte data"

  Hier is de BRT-achtergrond geselecteerd, maar je kunt ook iets anders kiezen.

  Zoom in op het gebied waar je de kaart van wilt maken. We kiezen in dit voorbeeld voor het Eierlandse Gat (tussen Texel en Vlieland).


  Bij “Filters” kun je aangeven welke resolutie je zoekt en welke periode.


  We willen voor dit voorbeeld satellietfoto’s zien met de hoogste resolutie (0,5 m per pixel) en over de periode van 31-12-2020 tot vandaag.
  Bepaal dan voor welk gebied je de satellietbeelden wilt zien. Kies bij “Zoekgebied” voor “Teken een vierkant”.


  Geef nu het gewenste gebied aan

 

Links in het scherm verschijnt nu een "tijdbalk" met daarin de data waarop foto's met een resolutie van 0.5m zijn gemaakt.


  De bovenste opname is de meest recente, maar daar hebben we in dit geval niet veel aan. Die foto beslaat immers maar een heel klein deel van ons zoekgebied en is bovendien genomen op een moment met teveel bewolking.


  We willen natuurlijk de beste foto uitzoeken. Dat is voor ons doel een foto die genomen is met laag water en bij een wolkenloze hemel. We zoeken   dus even bij de andere opnamedata.

  De foto van 11 dagen eerder, van 07-09-2021, blijkt een mooi beeld te geven. Hij is ook nog behoorlijk recent. Die gaan we dus gebruiken voor ons   MBTiles-bestand

 

  Je ziet dat de foto “RGB” is. Dat betekent dat de foto wordt getoond in zoveel mogelijk de echte kleuren . Je kunt echter ook kiezen voor “IRG”. Dat is   de versie in infrarood beeld.
  Op de infrarood-foto is een gebied roder aangegeven naarmate het een hogere temperatuur heeft.

 

  Op het wad zijn dat ondermeer droogvallende platen met begroeiing maar ook objecten zoals scherpe, harde oesterbanken (zoals hieronder ten   zuiden van de jachthaven Schiermonnikoog). Die scherpe oesters gaan zelfs door houten klompen heen en zijn echt gevaarlijk voor kwetsbaar   polyester en tere mensenvoeten.

 

  Zie hier het verschil tussen infrarood en RGB bij het geultje naar De Cocksdorp.


  Laten we in dit voorbeeld even kiezen voor de RGB-versie.

 

 


  Klik op het “satelliet-bolletje” van de foto en kies voor “Selecteer voor WMTS”.

 

 

 

 


Klik vervolgens bij “Acties” “Verkrijg een WMTS link voor ieder geselecteerde opname op de tijdlijn” op de aanduiding van de betreffende foto (de muiscursor wordt dan een handje) en vervolgens op het tijdstip dat dan in beeld komt.

 


  Je krijgt dan de melding dat de link is gekopieerd naar het klembord. In de volgende stap ga je die link invoeren in QGIS.

 

  2. Kaart maken in QGIS en opslaan als MBTiles-bestand


  Download en installeer QGIS (bij het maken van deze handleiding was 3.28.1 de meest recente versie).

  Start QGIS Desktop

  


  Klik “Processing” – “Toolbox”


  Die “Processing Toolbox” komt dan aan de rechterzijde van het scherm te staan en we hebben die straks nodig om het MBTiles-bestand te maken.


  Klik op "Kaartlagen, Laag toevoegen, WMS/WMTS Laag toevoegen"

 

Nieuw klik op Nieuw


 De in Satellietdataportaal aangeklikte link naar het internetadres (de URL) van de gekozen satellietfoto kopiëren.

Zet de muiscursor in het witte veld achter URL en plak daar met Ctrl V de koppeling.

Druk daarna op je toetsenbord  Enter is nu in het QGIS-veld gekopieerd

 


 


  Geef dan in het veld “Name” een herkenbare naam. Ik probeer altijd om in een bestandsnaam hoofdletters en spaties te vermijden (want sommige   systemen houden daar niet van). Ook zet ik in de bestandsnaam van welke datum “het plaatje” is. Hier heb ik dus als naam gekozen voor   “eierlandse-gat-12-22”.

  Klik vervolgens op “OK”.

  Klik nu op “ Verbinden

 

De verbinding wordt nu tot stand gebracht (uiteraard alleen als je met Internet bent verbonden!). Klik op de regel onder “Layer” (hier dus de tekst 20220514_114837_SV1-02_SV_RD_8bit_RGB_50cm_Vlieland) en de Layer name wordt dan automatisch ingevuld.
Dat zijn dus de datum van de foto-opname (14-05-2022), de naam van de satelliet (SV1=SuperView- 1), de kleurstelling (RGB) en de resolutie (50 cm per pixel).

Klik dan op “Toevoegen”.


QGIS haalt nu de satellietfoto van Internet en die foto verschijnt dan als “Layer” (“Laag”) in het hoofdscherm.
Je kunt het scherm "WMS/WMTS" nu sluiten (klik op “Close”).

Zoom nu in op het gedeelte waarvan je een MBTiles-bestand wilt maken (het kan even duren voordat het beeld weer volledig is opgebouwd).

Dubbelklik dan in de “Processing Toolbox” (die in de eerste “QGIS-stap” al was geactiveerd) op “Raster tools”, “Generate XYZ-tiles (MBTiles)” (NL: “Raster-gereedschappen”, “XYZ-tegels maken (MBTiles)”)

 

 

Het is meestal niet de bedoeling om het hele gebied van de foto om te zetten naar MBTiles. Klik daarom op het knopje achter het veld voor “Extent” op “Draw on Canvas”. Je kunt het gebied dan zelf bepalen.

Bepaal vervolgens met de muis van welk gebied je een MB-tiles-bestand wilt maken.

 

Zet een minimum- en een maximum zoomlevel (een kwestie van uitproberen, ik gebruik hier 12 en 15). Pas op: hoe hoger het getal van de maximum zoom, hoe groter het bestand zal worden!

De resolutie staat standaard op 96 dpi (dots per inch). Hoe hoger, hoe scherper het beeld. Ik gebruik meestal 150 dpi.
Je kunt desgewenst ook de resolutie nog hoger zetten, maar net als bij een te hoge zoom-factor geldt ook bij een hogere resolutie dat het genereren van het MBTiles-bestand (veel) langer duurt en dat het bestand dan (veel) groter wordt.

Klik bij “Uitvoer bestand” op “Opslaan als bestand”  en Uitvoeren


Kies de map waar je het te maken MBTiles-bestand wilt opslaan en geef een naam in (voor de zekerheid: geen spaties gebruiken). Ik verwerk in de naam ook meteen de zoom-niveaus en de resolutie (Z1215-150dpi). Dan weet ik in één oogopslag wat ik kan verwachten.

 Let op dat u voor het juiste file-type kiest (*mbtiles) Klik daarna op “Uitvoeren”.

 

Tenslotten het bestand Opslaan


Noteer waar je straks op je PC het MBTiles-bestand kunt vinden en klik op “Sluiten”.

 

Je kunt QGIS nu helemaal afsluiten.

 

De volgende (en laatste) stap is het importeren van het MBTiles-bestand in OpenCPN.

 3. MBTiles-bestand laden in OpenCPN

Opmerkingen vooraf:

  1. Om in OpenCPN met MBTiles te kunnen werken moet “Use Accelerated Graphics (OpenGL)” zijn aangevinkt (bij “Options”-”Display”-Advanced”).
  2. Toen ik het MBTiles-bestand in QGIS maakte, heb ik ingegeven dat het bestand opgeslagen moest worden in de map “/home/roel/nautisch/maps_opencpn/mb-tiles”. Dat is in “mijn” OpenCPN een map die ik al eerder had opgenomen als map (“directory”) waarin OpenCPN moet zoeken naar kaartbestanden. Je moet misschien eerst zelf nog zo’n map aanmaken.
  3. Ik heb mijn MBTiles-bestanden in een aparte kaartgroep, net als mijn vectorkaarten (ENC’s) en mijn rasterkaarten (RNC’s). Als je geen kaartgroepen gebruikt, probeert OpenCPN alle beschikbare kaarten te laden en dat is een onnodige belasting van het systeem.

Open OpenCPN en ga in “Options” naar “Charts” -”Chart Files”. Klik “Add Directory”


Dubbelklik op de map waarin het MB-tiles bestand is opgeslagen (in dit voorbeeld dus
/rs/Desktop/Cartografie/test/Qgis) en klik op “Open”.

 


Vink “Force Full Database Rebuild”, klik “Apply” en klik daarna “OK” (in die volgorde).


Gefeliciteerd! Je hebt nu deze satellietfoto gereed voor gebruik in OpenCPN.

Mooi om bijvoorbeeld te gebruiken voor de extra details van de geultjes, maar uiteraard wel naast je “echte” zeekaart. Want op een echte zeekaart staat informatie die je op een satellietfoto niet ziet (en omgekeerd). En natuurlijk gebruik je dan de Nautin-boeienbestanden als layer zodat je werkt met de meest recente posities van de betonning!


In de meest recente versie van OpenCPN kun je bij “Tools”-Options-Display-Canvas Layout” kiezen voor “split screen”. Je kunt dan bijvoorbeeld de satellietfoto gelijktijdig gebruiken met je “gewone” electronische zeekaart.

 

Tip: Bij OpenCPN versie 5.1.612 en nieuwer kun je ook voor allebei de kaarten precies dezelfde schaalgrootte ingeven, bijvoorbeeld 1:20000. Klik daarvoor op de schaalaanduiding rechts van de knop voor “uitzoomen” en geef dan voor beide schermhelften dezelfde schaal in.
                   

 

 Ook andere kaartbronnen gebruiken


Je kunt in QGIS op heel eenvoudige wijze ook andere kaartbronnen gebruiken als basis voor het maken van een MBTiles-bestand voor OpenCPN.

Voorbeelden:

  • Google Satellite,
  • Google Maps (geen satellietfoto, maar wel met allerlei nuttige aanduidingen)
  • Google Hybride (combinatie van Google Satellite en Google Maps)
  • OpenStreetMap (idem, maar iets fraaier vormgegeven)
  • OpenSeaMap (OpenStreetMap maar dan met extra nautische informatie zoals boeien, lichten en doorvaarthoogten van bruggen).

Stap voor stap:


In QGIS: klik op ViewPanels en zorg er voor dat Browser staat aangevinkt.

Je moet nu het “Browser”-venster kunnen zien. In dat venster zie je ook een onderdeel “ XYZ Tiles”

Als je op het pijltje naast XYZ Tiles klikt, zie je waarschijnlijk al de laag “OpenStreetMap” staan (als die er nog niet staat is dat geen probleem, je kunt hem altijd nog toevoegen).

 

 

 

 

 

 

 

Je moet nu een nieuwe optie gaan aanmaken. Dat kan door met de rechter muisknop op
XYZ Tiles te klikken en dan te kiezen voor “New Connection”.

Nu opent het scherm om een nieuwe XYZ-verbinding te maken.

 

Google Satellite


Laten we eens beginnen met “Google Satellite”.
Je begint met het ingeven van een herkenbare naam.

Nu moet in het veld achter “URL” het volgende worden ingevuld:

http://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}

Gebruik als minimum zoomlevel “0”. Als maximum zoomlevel staat meestal “18” ingevoerd maar ik heb het hier verhoogd naar 22.
Als resolutie voor de tiles heb ik gekozen voor “High (512x512 / 192 DPI)”.

 

Klik dan "OK"


Nu moet je in het Browser-venster bij XYZ Tiles ook “Google-Satellite” te zien krijgen (of althans de naam die je aan de nieuwe verbinding hebt gegeven).


Als je nu op dat “Google-Satellite” dubbelklikt, dan zou je de satellietweergave van Google in beeld moeten krijgen. Die weergave start bij zoom-niveau “0”.

 


Gebruik de toetsen en het scrollwieltje van je muis om de kaart in te zoomen op het gebied wat jouw interesse heeft.

In dit voorbeeld is dat Nederland en om precies te zijn een stukje van de Noorderhaaks bij Den Helder.

Inzoomen...

 

Nog een beetje meer..

 

Eens even kijken of we een beetje scherp beeld hebben…

Dus nog maar wat verder inzoomen.. Hmmm… er lijken wat bootjes tegen de zuidkant van de plaat aan te liggen.


En wat is dat stipje aan het einde van dat doodlopende geultje nou toch?

Krijg nou wat! Het is het 22-voets tweemastertje van de schrijver van dit stukje!


Kortom: met de resolutie van die satellietfoto zit het wel goed!


Je kunt nu van deze satellietfoto van Google Satellite een MBTiles-bestand maken.
Dat doe je op precies dezelfde manier zoals eerder is beschreven bij de Satellietfoto van Satelietdataportaal.

Je gebruikt daarvoor dus de “Processing Toolbox” (die in de eerste “QGIS-stap” al was geactiveerd) en klikt op “Raster tools” en “Generate XYZ-tiles (MBTiles)”. Zie de procedure die is beschreven eerder in dit document.

Ook het invoeren als kaart in OpenCPN gaat op dezelfde manier als eerder beschreven.

Google Maps, OpenStreetMap, OpenSeaMap, Hybride


Een satellietfoto geeft het plaatje “zoals het er in het echt uit ziet”. Maar het kan handig zijn om bijvoorbeeld ook kaartmateriaal van Google Maps of OpenStreetMap te gebruiken.

Je kunt dat doen door bij het maken van een nieuwe “XYZ-verbinding” een andere URL in te voeren.


Hieronder staan de URL’s die horen bij de verschillende andere kaartbronnen: Google Maps: http://mt0.google.com/vt/lyrs=m&hl=en&x={x}&y={y}&z={z} Google Hybride: http://mt0.google.com/vt/lyrs=y&hl=en&x={x}&y={y}&z={z}
OpenStreetMap:
https://tile.openstreetmap.org/{z}/{x}/{y}.png

OpenSeaMap:
http://tiles.openseamap.org/seamark/{z}/{x}/{y}.png

Het eindresultaat is dan dat je in het Browser-veld het volgende rijtje aan opties van XYZ Tiles- verbindingen ziet:

 

Meerwaarde van Google Maps, OpenStreetMaps e.d.


Google Maps en OpenStreetMaps zijn absoluut van nul en generlei waarde voor het navigeren!

Maar….. het is wel reuze handig om op de kaart te kunnen zien waar je je jerrycannetje met benzine kan laten vullen (erg belangrijk!) of waar de plaatselijke Chinees is gevestigd (heel erg belangrijk!!).

Als je een bepaalde kaartsoort hebt gekozen, bijvoorbeeld Google Hybride, dan kun je de satellietfoto gecombineerd krijgen met het “wat zit waar”. En als je daarna dan ook nog op OpenSeaMap klikt, dan krijg je als extraatje ook nog de gegevens van de breedte en hoogte van (een aantal) bruggen en het boeien- en lichtenbestand uit OpenSeaMap.

Zie de onderstaande voorbeelden.

Google Hybride (satellietfoto plus “Wie-wat-waar” inclusief de plaatselijke -en zeer goede- Chinees)


Idem maar nu ook met OpenSeaMap er bij (op dit voorbeeld wat gegevens van bruggen)

 

Waarschuwing:

Het boeienbestand van OpenSeaMap in natuurlijk lang niet zo actueel als dat van Nautin. Voor de boeien dus altijd de meest recente bestanden van Nautin aanhouden en als laag in OpenCPN hanteren (en voor de bruggegevens kan OpenSeaMap natuurlijk bij lange na niet tippen aan het GPX- bestand van Rooie Dirk (eveneens via Nautin).

OpenStreetMap is natuurlijk ook prettig voor de schipper die wil weten bij welke bushalte hij een lastige opstapper kan dumpen (of voor de opstapper die zo snel mogelijk van boord wil….).

Juni 2020/januari 2022
Versie 2022-0101