Kopiëren van WFS-gegevens naar PostGIS met behulp van ogr2ogr (DEEL 3): het automatiseren van de importprocedure

Soms laat een webservice die je gebruikt in je GIS-toepassing het afweten en dat zorgt er dan voor dat je GIS-toepassing niet goed werkt of bepaalde info niet kan worden weergeven. Om dat op te vangen, kan het handig zijn om een lokale kopie te hebben van de data van die webservice. Voor een WFS webservice kan die data opgeslagen worden in een PostGIS databank. Hiervoor kan er gebruik gemaakt worden van het command-line commando ogr2ogr. Dit is niet zo moeilijk, maar een command-line commando schrikt sommige mensen misschien af. Daarom schreef ik een handleiding hoe je dat aanpakt van installatie tot en met het automatiseren van de importprocedure. Omdat dit zeer uitgebreid is geworden, is deze handleiding opgedeeld in 3 delen. In deel 1 komt de installatie van GDAL en ogr2ogr aan bod. In deel 2 komt het gebruik van ogr2ogr in een Windows batchbestand aan bod en in deel 3 het automatiseren van de importprocedure.

DEEL 3: Het automatiseren van de importprocedure van WFS naar PostGIS

Nu we een volledig werkend batch-bestand hebben, moeten we dat nog uitvoeren om de gegevens in PostGIS te importeren. Zoals al eerder gezegd, kan dat door in Windows Verkenner op het bestand importeermijngegevens.bat te dubbelklikken. Op deze manier wordt de importprocedure maar eenmalig uitgevoerd en we willen natuurlijk dat dit elke dag of elke week automatisch gebeurt. In Windows kan dit eenvoudig geautomatiseerd worden.

Windows Task Scheduler / Windows Taakplanner

De tool die we gaan gebruiken is standaard geïnstalleerd in Windows op je PC of server. In een Nederlandstalige Windows heet dat Taakplanner in een Engelstalige Windows heet dat Task Scheduler. In het verdere verloop van deze handleiding zullen beide talen gebruikt worden, bovendien wordt in de Nederlandstalige versie ook dikwijls de naam Task Scheduler gebruikt.

Een nieuwe taak aanmaken

Als je de Task Scheduler / Taakplanner opstart, zal je zien dat het scherm uit 3 kolommen bestaat:

  • de linkerkolom is het navigatiepaneel
  • de middelste kolom is het hoofdscherm
  • de rechterkolom bevat snelkoppelingen naar de meest gebruikte acties.

Op de volgende manier kan je een nieuwe taak aanmaken in de Task Scheduler / Taakplanner:

  • Klik in de rechterkolom op de actie Taak aanmaken... / Create Task....
  • Er opent dan een nieuw venster dat verschillende tabbladen heeft. We zullen deze één voor één overlopen om de nieuwe taak aan te maken.
  • We starten in het tabblad Algemeen / General. Daar geven we onze taak een naam die we achteraf duidelijk kunnen herkennen. In dit voorbeeld noemen we de taak Import WFS Haltes De Lijn.
  • We stellen ook de Beveiligingsopties / Security options in. Standaard gebruik ik altijd Alleen uitvoeren als gebruiker is aangemeld / Run only when user is logged on. Als je merkt dat je taken niet goed uitgevoerd worden, omdat je niet ingelogd bent op je PC/server als je je taak wil laten uitvoeren, kan je er voor kiezen om de optie Uitvoeren ongeacht of gebruiker wel of niet is aangemeld. / Run whether user is logged on or not te selecteren.
  • Dan gaan we naar het tabblad Triggers en daar klikken we op Nieuw... / New....
  • Er is een Nieuwe trigger / New Trigger venster open gegaan waarin we gaan instellen wanneer onze taak uitgevoerd moet worden.
  • Bovenaan stellen we Start deze taak / Begin this task in op Gepland / On a schedule.
  • De Instellingen / Settings daaronder hangen vooral af van je eigen wensen en van de frequentie waarmee de data in de WFS geüpdatet wordt. In ons voorbeeld stellen we de taak in op Wekelijks / Weekly.
  • Als je Wekelijks / Weekly geselecteerd hebt, verschijnen de opties voor wanneer dat dan is. Je kiest een startdag en startuur en selecteert de dag van de week waarop je de taak wil laten uitvoeren. In een professionele GIS-omgeving zal ‘s nachts op een dag in het weekend het meest interessante moment zijn. Het vakje Elke ... week/weken uitvoeren / Recur every ... weeks laat je op 1 staan om het elke week te laten uitvoeren.
  • Bij de Geavanceerde instellingen / Advanced Settings moet je er zeker voor zorgen dat Ingeschakeld / Enabled aangevinkt is. De andere instellingen in dit deel van het venster zijn in principe niet nodig voor ons voorbeeld. Klik op OK om dit venster af te sluiten. Je zal zien dat onder het tabblad Triggers onze instellingen weergegeven worden.
  • We gaan nu naar het tabblad Acties / Actions en klikken daar op Nieuw... / New... en daar gaan we instellen wat we willen uitvoeren.
  • Als Actie / Action kiezen we Programma starten / Start a program.
  • Via de knop Bladeren / Browse... selecteren we het batch-bestand dat we eerder al aangemaakt hebben. In ons voorbeeld is dat importeermijngegevens.bat.
  • Het is in principe niet nodig maar in het vak Beginnen in (optioneel) / Start in (optional) zet ik meestal de map waarin mijn batchbestand staat. Dat kan dan bijvoorbeeld C:\mijnmapmetbatchbestanden zijn. Klik op OK om dit venster te sluiten. Je zal zien dat onder het tabblad Acties / Actions onze instellingen weergegeven worden.
  • In de tabbladen Voorwaarden / Conditions en Instellingen / Settings moeten we in principe niets aanpassen. Klik op OK om alle instellingen op te slaan.

Ons batchbestand zal vanaf nu eenmaal per week uitgevoerd worden en daarmee zullen de gegevens van de online WFS in onze PostGIS databank gekopieerd worden. Het is aan te raden om af toe de commentaren van de PostGIS tabellen te controleren om na te gaan wanneer de importprocedure het laatst uitgevoerd is. Anders loop je het risico dat als de importprocedure misloopt je met verouderde gegevens zit. De meest voorkomende oorzaken voor het mislopen van de importprocedure zijn het veranderen van de URL van de WFS en het veranderen van de naam van de tabel in de WFS.

Een bestaande taak aanpassen

Je kan een bestaande taak ook aanpassen. Dit doe je op de volgende manier:

  • Je selecteert in de linkerkolom Task Scheduler-bibliotheek / Task Scheduler Library. Een lijst met al je taken verschijnt dan in de middelste kolom van het venster. Sommige software zet bij installatie hier ook taken in die uitgevoerd moeten, dus het kan zijn dat in die lijst taken staan die je niet onmiddellijk herkent.
  • Om een taak te bewerken dubbelklik je op de naam van je taak. Je krijgt dan hetzelfde venster als bij het aanmaken van een nieuwe taak, maar met daarin de gegevens die je eerder al ingaf.
  • Voer de nodige wijzigingen uit en klik op OK om de wijzigen op te slaan.

Je mag het programma Windows Task Scheduler / Windows Taakplanner afsluiten wanneer je klaar bent, want de geplande taken worden sowieso op de achtergrond uitgevoerd.

4 antwoorden op “Kopiëren van WFS-gegevens naar PostGIS met behulp van ogr2ogr (DEEL 3): het automatiseren van de importprocedure”

  1. Heel tof! Bedankt om te delen.
    Zelf niet bij stil te staan om de WFS’en zo te gaan gebruiken, bedankt om de suggestie op te werpen!

    Zelf intussen geprobeerd: WFS’en van Informatie Vlaanderen werken perfect, maar deze van mercator en onroerend erfgoed lukken me niet.

    Ik krijg dan volgende error:
    Error1: SSL certificate problem: unable to get local issuer certificate
    unabel to open datasource (met lijst van alle drivers van ogr)

    Voorbeeld van dllocation:
    set dllocation=”https://geo.onroerenderfgoed.be/geoserver/ows?service=wfs&version=1.1.0&request=GetFeature&typeName=vioe_geoportaal:archeologienotas&srsName=EPSG:31370&bbox=100000,152397,125000,249211″

    Heeft U mogelijks een zelfde ervaring?

    1. Dag Koen,

      Ik heb je voorbeeld eens geprobeerd en ik kreeg dezelfde foutmelding. Het viel me wel op dat de aanhalingstekens die jij gebruikt er anders uitzien dan diegene die ik gebruik. Ik heb daarom beide vervangen door " en dan lukte de import zonder problemen bij mij. Dus je kan dat eens proberen.

  2. Dag Michel,

    Bedankt, maar helaas. Ik zie lokaal de aanhalingstekens gewoon normaal staan, ook als ik ze verander.

    Moest je nog een suggestie hebben dan hoor ik het wel. En anders, sowieso bedankt!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.