TopoTijdReis kaartlagen in QGIS

Al weer even geleden presenteerde Het Kadaster samen met ESRI the website TopoTijdReis. Een website met prachtig kaartmateriaal: verdeelt over 75 kaartlagen de scans van topografische data van Het Kadaster van 1815 tot en met 2015!

topotijdreis

Een website is mooi, maar dezelfde data kunnen gebruiken in bijvoorbeeld QGIS is nog leuker. Toen iemand mij benaderde of dat mogelijk was, heb ik geprobeerd om de lagen toe te voegen als ‘ArcGIS Mapserver layer’, wat mogelijk zou moeten zijn met QGIS 2.16 en hoger. Maar… ik kreeg het niet voor elkaar (en ernaar ‘googelende’ blijkbaar meer mensen niet)…

Maar… na wat gemopper van mij op Twitter dat ‘ze’ toch eens wat meer dit soort zaken m.b.v. OpenStandaarden zouden moeten ontsluiten, kreeg ik van het Kadaster het vriendelijke antwoord, dat de kaartlagen ook als WMTS beschikbaar zouden moeten zijn. Dat wil ik wel zien.

Eerst maar eens proberen op de WMTS link te klikken in een pagina als

http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1950/MapServer…

Mmm, geen tiles. Gelukkig werkt het getCapabilities document wel:

En op basis daarvan is het in QGIS eenvoudig om de service te bevragen. Voer de capabilities url (of de verkorte versie zonder het /1.0.0/WMTSCapabilities.xml deel) in in het ‘WMS/WMTS kaartlaag toevoegen’ dialoog

addwmts

en de dialoog toont welke kaartlaag er op te halen is.

wmtslayer

Prachtig! Werkt!

haarlem1950

Maar het mooie aan de TopoTijdReis is natuurlijk dat je je de historie van een omgeving kunt bekijken door even door te tijd te reizen… We willen natuurlijk al die 75 kaartlagen ‘even’ laden in QGIS. Jammer dat elke laag in een aparte service is gedefineerd :-(

Ik zie twee mogelijkheden:
1) we zorgen dat die 75 lagen komen te staan in het pdok.json lagenbestand van de PDOKServicePlugin, maar dan nog moet je 75 keer klikken om alle lagen te bekijken (deze optie stel ik dus even uit tot iemand hier heel vriendelijk om vraagt…)
2) we schrijven wat Python code welke we in de Python Console kunnen uitvoeren om die 75 lagen te laden.

DOEN:
– open de Python Console die je vind als menu item in het Plugins menu
– open een bestandje door op het ‘nieuw bestand’ knopje te klikken (4e knopje van links)
– kopieer daarin de volgende regels:

# create a layer group
layer_group = QgsProject.instance().layerTreeRoot().insertGroup(0, 'TopoTijdReis')
# make the group mutually exlusive (one layer visible at a time)
layer_group.setIsMutuallyExclusive(True)

# copied from http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/
years = ['1815', '1820', '1821', '1823_1829', '1830_1849', '1850', '1857', '1858', '1861', '1862', '1865', '1866', '1868', '1870', '1871', '1872', '1880', '1883', '1886', '1888', '1889', '1893', '1899', '1900', '1901', '1902', '1904', '1908', '1909', '1910', '1912', '1915', '1918', '1919', '1920', '1922', '1925', '1929', '1931', '1935', '1937', '1940', '1942', '1943', '1947', '1948', '1949', '1950', '1951', '1952', '1953', '1955', '1962', '1963', '1965', '1970', '1971', '1973', '1975', '1976', '1978', '1980', '1984', '1988', '1990', '1994', '1995', '1996', '1997', '1999', '2006', '2010', '2011', '2014', '2015']

# for every year, create a layer
for year in years:
  layer = QgsRasterLayer("tileMatrixSet=default028mm&crs=EPSG:28992&layers=Historische_tijdreis_{0}&styles=default&format=image/jpgpng&url=http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_{1}/MapServer/WMTS/".format(year, year), "TopoTijdReis {0}".format(year), "wms")
  # add it to the layer registry, without showing it yet
  QgsMapLayerRegistry.instance().addMapLayer(layer, False)  # False, meaning not ready to add to legend
  # add it on top of the group
  layer_group.insertLayer(0, layer)

Door nu op het blauwe ‘Play’-knopje te klikken wordt bovenstaande code uitgevoerd, en moet QGIS er ongeveer zo uit zien:

qgistopotijdreis

Zoals je ziet staan de 75 beschikbare kaartlagen (die ik trouwens van de ‘services’ url heb http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/ gehaald) netjes in een aparte groep.
En het mooi van een layer-group is dat je ‘m ‘mutual exlusive’ kunt maken, d.w.z. er is slechts 1 kaartlaag tegelijk zichtbaar: bij het zichtbaar maken van een andere kaartlaag wordt een evt andere zichtbaar kaartlaag uit die groep verborgen.

Eigenlijk hebben we zo onze eigen TopoTijdReis in QGIS.

En mocht je nu via de python console gewoon maar 1 kaartlaag willen laden, gebruik dan:

iface.addRasterLayer(
"tileMatrixSet=default028mm&crs=EPSG:28992&layers=Historische_tijdreis_1820&styles=default&format=image/jpgpng&url=http://tiles.arcgis.com/tiles/nSZVuSZjHpEZZbRo/arcgis/rest/services/Historische_tijdreis_1820/MapServer/WMTS/", # uri
"TopoTijdReis 1820", # name for layer (as seen in QGIS)
"wms"
)

Een paar leuke screenshots nog ter afsluiting:

Zoals je ziet is de kaarttekst van 1815 nog franstalig. Wanneer namen we ook al weer afscheid van de Fransen? De daaropvolgende kaart is dan ook opgedragen “aan zijne majesteit den koning”

kaartkoppen

Verder is het goed te zien dat er hier en daar wel flink ‘geplakt’ is.

Letterlijk (ik denk door het oude Kadaster):

plakwerk

Figuurlijk (door de cache bouwer):
mapmix

Een paar tips:

– Gebruik het ‘Tile Scale Panel/Paneel Schaal tegel’ om de juiste kaartschaal te bepalen: maak een kaartlaag aktief/zichtbaar en gebruik dan de schuif om ‘m op de juiste schaal te krijgen. (zie de grijze ‘schuif’ aan de rechterkant in een van de volgende screenshots)

– Zorg dat je in Extra/Opties/Rendering het vinkje ‘Gelijktijdig rendereren van kaartlagen …’ aan hebt. Voor Tiled layers scheelt dit aanzienlijk en ziet er VEEL beter uit!

– Gebruik de middelmuisknop om netjes met een factor 2 in of uit te zoomen (gebruik diezelfde middelmuisknop trouwens ook eens om eenvoudig te ‘pannen’ zonder de pan-tool aktief te hoeven maken

En om toch nog wat te mopperen te hebben:

– waarom heeft het kadaster/esri zich eigenlijk niet gehouden aan de Nederlands Tiling richtlijn? De kaartschalen komen niet overeen met die van de overige PDOK kaartlagen?

– waarom zijn juist de modernste kaartlagen niet scherp?

Maar verder: bedankt Kadaster en ESRI voor het beschikbaarstellen van dit prachtige kaartmateriaal!!

PDOK services plugin update

Een korte post om te laten weten dat er een versie 0.10 beschikbaar is van de pdokservices plugin (http://plugins.qgis.org/plugins/pdokservicesplugin/).

Er zijn wat lagen verdwenen en wat lagen bijgekomen. Het totaal aantal lagen komt nu op 6723 (was 5298).

WMS layer windspeed at 100m height
WMS laag Windsnelheid op 100m hoogte

Belangrijkste veranderingen zijn:

Verdwenen:

– brtachtergrondtijdelijk
– brtachtergrondgrijstijdelijk
– top10nl (nu: top10nl2)
– Noordzee Kabels en Leidingen
– Noordzee Wingebieden

Nieuw:

– AHN3 WMS, WFS en WCS
– Adressen (INSPIRE geharmoniseerd)
– CBS Wijken en Buurten 2014
– Historische Rivierkaarten
– Kadastrale Kaart
– NAPinfo
– Potentiekaart omgevingswarmte
– Potentiekaart reststromen
– Potentiekaart restwarmte
– Verspreidingsgebied habitattypen
– Windsnelheden 100m hoogte

Update je plugin via de plugin-manager in QGIS.

2016_histrivieren

Aanpassen van de vaste schalen plus nieuwe PDOK services

Nieuwe PDOK services

Ten eerste: PDOK heeft een aantal nieuwe services ingevoerd de laatste maanden, en ik had die nog niet toegevoegd aan de plugin. Nu wel, en ze zijn beschikbaar voor de plugin, zonder een nieuwe versie van de plugin te installeren.

Ga in de dialoog naar het tabblad ‘Extra’ en gebruik daar de knop ‘Check services’. De plugin zal een nieuw laagbestand proberen op te halen en gebruiken.

PdokServicesPlugin_201

Als dat goed gaat schiet je van 2782 beschikbare layers naar meer dan 5000(!) lagen: de service die de meeste lagen toevoegd zijn de ‘Habitatrichtlijnen verspreiding’, typen en soorten. Dus heb je je altijd al eens afgevraagd wat het verspreidingsgebied is van de ‘Grijze Grootoor Vleermuis’, dan heb je die nu als WMS en WFS beschikbaar :-)

Verder zijn er een paar nieuw referentiekaartlagen bijgekomen: een ‘pastel’ kleurige en een tijdelijk grijze. Verder is NOK2014 beschikbaar, nieuw Spoorwegenlagen, iets met Schelpdierwater, Vogelrichtlijn verspreiding van soorten, Verkeersscheidingsstelsel en Publiek rechtelijke beperkingen.. In ieder geval: plezier ermee.

Aangepaste vaste schalen

In de statusbar van QGIS is er een Schaal/Scale dropdown waarmee je QGIS direkt naar een bepaalde schaal kan zetten. Standaard bevat die schalen lopend van 1:500 naar 1:1.000.000.

Selection_202

Als je echter de brtachtergrondkaart of de luchtfoto’s van PDOK gebruikt, en je maakt gebruik van de door QGIS vastgestelde schalen, dan krijg je dit:

wrongscale

Onscherpte van de tegels omdat de WMTS tileschema schalen die gelijklopen met de mooie historisch kaartschalen die QGIS nog in de dropdown heeft staan.

Nu is het mogelijk bij QGIS om ZELF te bepalen welke schalen in de dropdown staan. Ga via Settings/Options naar tabje Map Tools en verwijder door op het rode ‘minnetje’ te klikken alle daar aanwezige schalen. Een ‘schaalconfiguratie’ in QGIS bestaat uit een eenvoudig XML-bestand. Download hier: zip met schaalbestanden
twee PDOK voorbeelden door ze ergens uit te pakken. Probeer ze beide eens uit: door op de knop met het mapje te klikken kun je bv het bestandje nltilescales.xml openen. Je hebt dan in dropdown alle schalen zoals die te vinden zijn in dit Geonovum bestand.

Een andere manier is om de een PDOK WMTS laag te laden, aktief te maken en dan de ’tile scale’ of ‘schaalschuif’ te voorschijn te halen. Door op een van de schaalstreeptjes te klikken zal QGIS de schaal pakken zoals die in het capabilitiesdocument zijn gedefinieerd.

tilescale

Het vreemde nu is dat dit andere schalen zijn dan die in het Geonovum bestand zijn. Ik heb een tweede xml bestand in het zipje gestopt: nlscales.xml en DIE bevat de schalen die QGIS bepaalt als je gebruikt maakt van de tile scale.

Dit geeft eigenlijk de beste resulaten: rightscale.

Op deze manier kun je dus zonder gebruikt te maken van de tile scale gewoon naar een scherpe achtergrondkaartschaal zoomen.
Je zou natuurlijk ook nog een aantal tussenliggende schalen eruit kunnen laten. Door bijvoorbeeld alleen je favoriete schalen op te nemen. Elke kaartvisualisatie heeft wel een aantal schaalnivo’s die niet helemaal mooi zijn.

Moraal van het verhaal: bepaal ZELF je schalen. Happy QGIS-ing!

QGIS goodies

Even een kort berichtje voor het geval je het gemist hebt.

Sinds kort heeft QGIS een samenwerking met spreadshirt.com zodat we overal ter wereld virtuele winkeltjes hebben om QGIS-t-shirts, petjes en mokken te verkopen.

Dus: check je maat en ga via deze pagina naar de dichtsbijzijnde QGIS-shop en maak je vrienden jaloers met zo’n prachtig QGIS shirt :-)

shop_tshirt

Oh, en het QGIS project ontvangt een klein percentage van de verkopen om verfrissingen te kunnen kopen tijdens de hackfests…

QGIS 2.6.1 en QGIS 2.6 Documentatie Released

QGIS 2.6.1

Even een kort bericht dat het QGIS project (stilletjes) QGIS 2.6.1 beschikbaar heeft gesteld, het is een bugfix voor de laatste stabiele versie QGIS 2.6 Brighton.

Selection_098

Een paar opgeloste problemen:

– in de print manager waren wat zaken die niet goed werkte
– in de attribuuttabel werden niet alle kolommen getoond
– metasearch (CSW plugin) werkte niet goed vanuit een versie 2.6
– een aantal crashes die soms optreedde zijn gefixt

QGIS Documentatie 2.6

Groter nieuws: Het documentatie team heeft de 2.6 documentatie af!

U kunt het hier vinden http://docs.qgis.org/2.6 of via http://docs.qgis.org/latest.

De oude (2.2) documentatie is up to date gebracht met de vernieuwingen in QGIS 2.6. Iets nieuws is dat de documentatie nu ook Help pagina’s bevat voor alle algorithms die in Processing kunnen worden gebruikt.

Alle nieuwe tekst is naar Transifex gestuurd. De meeste talen zullen daar dus een paar procent hebben verloren in hun “Totaal vertaald” score, en moeten weer aan het werk om hun oude score te halen.

Iedereen die tijd heeft geinvesteerd in het updaten van de Documentatie en/of de 2.6.1 release heeft mogelijk gemaakt: bedankt!

PDOK-servicesplugin 0.7

Er is een nieuwe versie van de PDOK-serviceplugin beschikbaar: 0.7
Sinds 0.6 zijn de volgende zaken toegevoegd:

– de plugin heeft nu een kleine toolbar, waarmee je snel gebruik kunt maken van de pdok geocoder. Hoewel de geocoder niet zo verdraagzaam is m.b.t. spelfouten e.d. is het wel heel handig om even snel naar een postcode, postcode/huisnummer combi of plaatsnaam te schieten (zie screenshot).
TIP: om het gele kruisje te laten verdwijnen: klik nog een keer op het bruine stekker knopje.
TIP2: ziet de brtachtergrondkaart of andere wmtslaag er rafelig uit in QGIS? Dat komt omdat u de kaartlagen zit te bekijken op zoomschalen die tussen de schalen van de service in liggen. Om QGIS te laten ‘luisteren’ naar de zoomschalen van de service: haal de ‘Tile scale’ of ‘Tile schaal’ te voorschijn, via View/Panels’ of ‘Beeld/Panelen’ en klik daar op een van de schaalstreepjes.

pdokserviceplugin_geocodersearch

– nieuwe kaartlagen.
PDOK heeft een heel aantal nieuwe services aangemaakt. Een van de leukste om te proberen is ahn2, deze is ook als WCS beschikbaar.
Daarnaast zijn een aantal lagen in nu in een tweede stijl beschikbaar: ‘inspire_common_DEFAULT’, wat er meestal op neerkomt dat je grijze polygonen krijgt :-)
Omdat de plugin nu deze stijlen ook herkent en opneemt als service, gaat het aantal services van ruim 900 naar ruim 2700 (hoewel de 200 zeegraskarteringslagen daar ook een beetje aan meehelpen….)

– bgt te bekijken
Een andere nieuwe laag zijn de bgt lagen. In de plugin kwam ik bgtstandaard, bgtlijngericht, bgtachtergrond en bgtomtrekgericht lagen tegen, maar bij het laden daarvan is in eerste instantie niets te zien. Maar na een contact met PDOK blijkt dat er pas twee gemeenten zijn ‘geladen': Dronten en Valkenswaard.
Onderstaand screendumpje is de kaartlaag bgtstandaard en gezocht op de postcode/huisnummer van het gemeentehuis: 5554DA 15.
Het is jammer dat dit een WMTS service is die niet queryable lijkt. Het is natuurlijk verschrikkelijk interessant om uit deze laag objecten te kunnen bevragen.

pdokservicesplugin_bgt

– in 0.6 hadden we na een wens uit de QGIS community besloten om het gebruik van losse dialogen te ontmoedigen, en werd de plugin dus een zogenaamde ‘dockable widget’. Helaas is de plugin een beetje te groot om zich in de linker ‘dock’ te nestelen en leek de wens om alles dockable te maken dus niet handig.
Daarom nu een ‘extra’ tab toegevoegd, en de mogelijkheid om zelf te bepalen of je de plugin wilt zien als een ‘dockable widget’ of als een ‘dialoog’.

pdokservicesplugin_extra

– nieuwe pdok.json ophalen
Juist omdat de pdok services nogal eens veranderen, wilden we het mogelijk maken om de services te updaten ZONDER de plugin zelf te hoeven updaten. Dat kan nu.
In het tabje extra zit nu een knop ‘Check services’ die even naar qgis.nl gaat om daar een laatste versie nummer op te halen van het configuratiebestandje. Als uw lokale bestand ouder is, zal de plugin een nieuwere versie ophalen bij qgis.nl.

Als laatste nog de tip mbt tot het gebruik van de PDOK WFS services in QGIS, en het lijkt alsof u binnen uw kaartview geen resultaat heeft. Lees vooral dit artikeltje nog eens door. Doordat PDOK het aantal features heeft gemaximaliseerd, haalt QGIS standaard soms NIET de features op die je zou verwachten.

QGIS in de klas onder Windows

In mijn omgeving (Haarlem) is een bekende van mij een Windows Administrator op een Middelbare School.

De school, het Mendelcollege, had in het kader van de Geoweek een gastles aangevraagd en ontvangen. Margit Stapel (GisWijzer) geeft introducties QGIS voor 10 – 14 jarigen op basis- en middelbare scholen.

qgismendel1

Het enige ‘probleem’ was nog even de 30 computers in het computerlokaal te voorzien van QGIS en de demo data.

Continue reading QGIS in de klas onder Windows