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 taakImport WFS Haltes De Lijn
. - We stellen ook de
Beveiligingsopties
/Security options
in. Standaard gebruik ik altijdAlleen 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 optieUitvoeren 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 opNieuw...
/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 opGepland
/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 opWekelijks
/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 vakjeElke ... 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 datIngeschakeld
/Enabled
aangevinkt is. De andere instellingen in dit deel van het venster zijn in principe niet nodig voor ons voorbeeld. Klik opOK
om dit venster af te sluiten. Je zal zien dat onder het tabbladTriggers
onze instellingen weergegeven worden. - We gaan nu naar het tabblad
Acties
/Actions
en klikken daar opNieuw...
/New...
en daar gaan we instellen wat we willen uitvoeren. - Als
Actie
/Action
kiezen weProgramma starten
/Start a program
. - Via de knop
Bladeren
/Browse...
selecteren we het batch-bestand dat we eerder al aangemaakt hebben. In ons voorbeeld is datimporteermijngegevens.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 bijvoorbeeldC:\mijnmapmetbatchbestanden
zijn. Klik opOK
om dit venster te sluiten. Je zal zien dat onder het tabbladActies
/Actions
onze instellingen weergegeven worden. - In de tabbladen
Voorwaarden
/Conditions
enInstellingen
/Settings
moeten we in principe niets aanpassen. Klik opOK
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.
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?
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.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!
Dag Koen,
Kan je de volledige foutmelding eens geven?