Python one-liners for adding wms, wmts, wfs layers

In the Netherlands, currently there is a movement to make more and more data available for the general public. This is done via different services: WMS, WMTS and WFS services via a service called PDOK (Publieke Data Op de Kaart).

While creating a plugin to list and load all those layers in QGIS I had to dive into the details of the different api-possibilities to add raster and vector layers to the map via the Python inteface.

Because I think this is generally helpfull, here is some code to try.

Continue reading Python one-liners for adding wms, wmts, wfs layers

Iets als lyr stijl bestand voor QGIS

Afgelopen weekend was er een posting op de gebruikers mailinglist met de vraag of er in QGIS iets dergelijks was als het .lyr bestand in de ESRI wereld.

Hoewel ik wel wist dat je met QGIS stylen kunt opslaan en hergebruiken (ze worden dan opgeslagen als .qml bestanden). Was ik me niet bewust van het feit dat ze zich OOK gedragen als de .lyr files in de zin dat als er een .lyr file staat naast een shape file met exact dezelfde naam, dat QGIS dan automatisch die stijl laadt en toewijst aan de laag.

Altijd mooi zo’n ‘leermomentje’ als begin van de week, bedankt Morten.

Esri File Based Geodatabases en Oracle connecties openen met QGIS

GDAL en OGR (www.gdal.org) van Frank van Warmerdam zijn de bekende software bibliotheek die zorgen voor het openen en schrijven van vele gis-formaten. Het mooie van QGIS is dat deze ook gebruikt maakt van OGR. Dus bij elke toevoeging of verbetering van de OGR bibliotheek wordt ook QGIS een beetje beter.

Hoewel je het natuurlijk zelf nooit zal willen gebruiken, krijg je soms een FGDB (File Geodatabase) van Esri toegestuurd. Sinds versie 1.9 kan OGR ook omgaan met dit formaat. Let wel op: “File GDB must be ArcGIS version 10, 9.3.1 is not supported.”

Sinds die versie is het voor QGIS dus ook mogelijk om FGDB files te openen, mits die QGIS gebruik maakt van OGR 1.9 of hoger. Gelukkig is dat voor bijvoorbeeld Windows gebruikers geen probleem als je gebruik maakt van een OSGEO4W installatie van QGIS (zie dit artikel). Als je daarin ‘gdal filegdb’ hebt aangevinkt kan QGIS dus fgdb’s openen. Voor Linux gebruikers is het op dit mogelijk door bijvoorbeeld gebruik te maken van packages uit repositories als ‘ubuntugis’ of ‘elgis’ zie download.qgis.org.

Om dit te proberen moesten we natuulijk eerst een fgdb bestand achterhalen (en in een hardcore OpenSource bedrijf als WebMapper is dat natuurlijk niet zo triviaal). Maar al googlend kom je (natuurlijk) terecht bij Esri Waar je na registratie (!) een voorbeeld fgdb kunt downloaden van Noord-Amerika.

Na uitpakken bevindt zich in het mapje ‘FileGDB API/samples/data’ enkele mapjes eindigend met de naam .gdb
Zo’n mapje is wat Esri een FileGDB noemt. Het heeft niet zoveel zin om hier in te kijken. Het staat vol met cryptische namen als a00000015.gdbtablx a00000015.spx etc etc.

Gelukkig kan QGIS hier wel iets mee. Ga via het menu of knoppen naar ‘Vectorlaag Toevoegen’, en selecteer daar ‘Map’ of ‘Dir. Kies als Bron/Source-type ‘ESRI FileGDB’. Als dit zich NIET tussen de mogelijkheden bevindt, werk je blijkbaar met een OGR/GDAL versie die dit (nog) niet ondersteund (zie verder onderaan) Browse naar de map data van daarnet.

Selecteer ‘topo.gdb’

Na selecteren van deze map blijkt deze verschillende datalagen te bevatten: states, us_lakes, us_rivers enz. We selecteren er meteen enkele:

Bingo. We zien de vectorlagen en kunnen ze als normale datalagen stijlen en bewerken.

QGIS kan ook data openen en visualiseren uit een Oracle Database.

Er geldt hier hetzelfde als voor fgdb: mits de geinstalleerde OGR het ondersteund is het een kwestie van een connectie aanmaken:

Hoe kun je achterhalen welke ogr bibliotheek jij gebruikt ?

Via het Help/About menu staat er in het About-tabje precies welke bibliotheken EN de versies QGIS allemaal gebruikt:

Hoe kun je achterhalen welke formaten ogr/gdal allemaal ondersteunt?

Om te zien welke formaten uw OGR of GDAL ondersteund gebruik het volgende commando:

c:\osgeo4w>ogrinfo --formats

en

c:\osgeo4w>gdalinfo --formats

Dit geeft voor beide een lange lijst van formaten die worden ondersteund. Om te bekijken of fgdb (gdb) en Oracle (oci) ondersteuning is zoek naar die strings in de output:

c:\osgeo4w>ogrinfo --formats | grep -i gdb
Supported Formats:
-> "FileGDB" (read/write)
c:\osgeo4w>ogrinfo --formats | grep -i oci
-> "OCI" (read/write)

Hoe kom je aan een ogr/gdal die WEL fgdb en/of oracle ondersteund?

Zoals gezegd, voor Windows gebruikers is de QGIS installatie met OSGeo4w een eenvoudige manier (de standalone/msi installer heeft die mogelijkheden niet).

Voor Linux gebruikers is het zelf compileren van GDAL de (enige?) oplossing. De reden hiervoor is dat bedrijven als Oracle, Esri en Erdas geen toestemming geven om de binaire bibliotheken mee te laten ‘packagen’ door de Open Source gemeenschap. Je zult dus altijd de hobbel moeten nemen om de SDK’s te downloaden en met behulp daarvan GDAL zelf te compileren.

QGIS installeren via osgeo4w

De meeste windows gebruikers zullen QGIS installeren via de zogenaamde ‘stand alone installer’ die je kunt downloaden van download.qgis.org Dit is voor de meeste gebruikers de eenvoudigste en bekendste manier van een programma installeren.

Maar QGIS heeft ook een andere mogelijkheid. Namelijk een installatie van osgeo4w ( osgeo4w.osgeo.org ). osgeo4w staat voor ‘Open Source Geo Voor Windows’, en is een volledige omgeving voor Windows gebruikers met bijna alle open source geo componenten en bibliotheken die in omloop zijn. Het installeert zich in een map op je harde schijf en van daaruit kun je al bijvoorbeeld QGIS installeren, maar ook command-line programma’s als ogr2ogr of gdalinfo opstarten. Het is zelfs mogelijk om mapserver in een apache webserver te installeren en te draaien.

Continue reading QGIS installeren via osgeo4w

Meerdere objecten / features tegelijk aanpassen / editten

Soms wordt je door een vraag bekend gemaakt met een functie in QGIS die je niet kent.
Iemand had een BAG-uitsnede van panden, en wilde per huis een aantal velden kunnen invullen. MAAR soms wilde hij dat per huizenblok doen, gewoon omdat dat blok allemaal van hetzelfde type was, en hij dus niet 6 keer dezelfde waarde of vinkje wilde invullen.

Na een vraag op de QGIS-User mailinglijst kwam al gauw het verlossende antwoord: “natuurlijk kan dat….”. Hieronder een korte demonstratie hiervan.

Continue reading Meerdere objecten / features tegelijk aanpassen / editten

Invoerformulieren gebruiken in QGIS

QGIS heeft zogenaamde ‘invoerformulieren’ (forms) om het aanpassen van de attribuutwaarden van een object te vergemakkelijken. Dit artikel gaat over het gebruik van die formulieren. We gaan uit van een BAG-extract met alleen de pand-omtrekken en voegen zelf de attribuutkolommen toe.

We beginnen met een shapefile met een aantal panden erin. Er zijn geen verder attribuutgegevens aanwezig. Met behulp van de Python Plugin ‘Table Manager’ van Borys Jurgiel is het eenvoudig om kolommen toe te voegen aan een shape bestand. Gewoon de naam en het type van de kolom aangeven. Eventueel kan ook de kolomvolgorde worden aangepast:

Op deze manier hebben we een shape file gemaakt met een aantal kolommen om ons fictieve ‘zonnepanelen’-onderzoek te kunnen doen. We willen per huis weten of een bewoner geinteresseerd is in zonnepanelen, en zo ja meteen opnemen wat voor type dak het huis heeft, wat het type en de zichtrichting is van het dak en zo nog wat gegevens.

Continue reading Invoerformulieren gebruiken in QGIS

QGIS als GeoZET-Viewer

De GeoZET-Viewer is bedoeld als online kaartapplicatie op Overheid.nl die alle bekendmakingen van overheden op de kaart zet. Hoewel de GeoZET-Viewer nog niet op Overheid.nl line is geïmplementeerd, zijn de onderliggende WFS-diensten dat wel. En QGIS kan goed omgaan met die WFS diensten. Hoe de BRT-Achtergrondkaart in QGIS wordt getoond is beschreven in het artikel WMS-C lagen van PDOK in QGIS.

Download hier het projectbestand (.qgs) voor QGIS:

http://www.qgis.nl/geozet.qgs

Open dit project in QGIS en je zult zoiets zien:

Geozet bekendmaking met info

Continue reading QGIS als GeoZET-Viewer

WMS-C lagen van PDOK in QGIS

UPDATE: in tegenstelling tot de eerste tekst van dit artikel, is het heel eenvoudig om de lagen in QGIS te gebruiken, zie tekst onder UPDATE midden in het artikel.

De BRT (Basisregistratie Topografie) is een van de zogenaamde basisregistraties die door het programma Publieke Dienstverlening op de Kaart (PDOK) via overheidsinstellingen aan het publiek beschikbaar worden gemaakt. Vanaf 23 januari 2012 zullen een aantal van deze kaartlagen voor het publiek vrijelijk te gebruiken zijn.

De BRT wordt onderhouden door het Kadaster . De BRT-Achtergrondkaart is ontworpen door Webmapper op basis van de TOP10NL en Top250vector in combinatie met gegevens van het CBS en OpenStreetMap en wordt onder andere gebruikt als ondergrond voor de GeoZET-Viewer (Geografische Zoek- en Toondienst).

Continue reading WMS-C lagen van PDOK in QGIS

Top10Vector stijlen in QGIS

Regelink Ecologie en Landschap gebruikte QGIS al voor het maken van de kaartjes in hun rapporten. De benodigde data daarvoor kregen ze van het Kadaster, via een abbonnement.

Er werd (de nog oude) Top10Vector uitgeleverd, voor een demo van zulke data zie de Kadaster site. De uitlevering bestaat uit 5 ESRI-Shapebestanden:

  • top010vlakken_poly
  • top010huizen_poly
  • top010lijnen_line
  • top010symline_line
  • top010sympoint_point

Het Kadaster heeft voor verschillende desktop GIS-pakketten stijl-bestanden beschikbaar, maar voor QGIS (nog) niet.

Webmapper hebben met behulp van QGIS’ ‘new symbology’ en ‘style-rules’ een eenvoudige visualisatie gemaakt die lijkt op de klassieke Top10Vector kaarten. Voor deze eerste versie zijn vooral de vlakken en lijnen voorzien van een stijl (o.a. omdat vooral deze van belang zijn voor kleine projectkaartjes). Wanneer er behoefte aan is kunnen we de stijlen uitbreiden voor punten.

De huidige versie van de stijlbestanden (.qml-betanden ) kunt u hier voor eigen gebruik downloaden. Na het uitpakken vind u voor elk kadaster bestand een stijlbestand, verder zitten er in zip een mapje met enkel SVG-symbolen. Om QGIS hiervan gebruikt te kunnen laten maken dient u in Extra/Opties het pad naar het mapje met SVG-symbolen aan te geven (zie screendump hieronder).

Er staat een eenvoudige demo met de demodata van het Kadaster.

Pff.. opslaan als dbf: general input/output error

Ooit een Excel bestand ontvangen, om bijvoorbeeld een shape-bestand van te maken? En gedacht: even als dbf/Dbase4 opslaan in OpenOffice/LibreOffice, want dat wordt door alle OpenSource gis-applicaties wel gelezen…

Een tijdje terug had ik altijd onderstaande foutmelding als ik probeerde een dbf op te slaan in Debian or Ubuntu: “Error saving the document: General Error. General input/output error”

In eerste instantie dacht ik altijd dat het een oude Open/LibreOffice bug moest zijn. Die misschien niet meer zou worden gefixed omdat tenslotte ‘niemand’ meer dbf bestanden gebruikt…

Maar fout! De foutmelding onstaat gewoon doordat je NIET de libreoffice-base / openoffice-base package hebt geinstalleerd in Ubuntu!
Blijkbaar wordt deze niet standaard geinstalleerd waneer je libre/openoffice installeert. Maar even:

sudo apt-get install libreoffice-base

En je kunt WEL dbf’s opslaan!

zie ook https://bugs.launchpad.net/ubuntu/+source/openoffice.org/+bug/502462

Groet…