Outdated version of the documentation. Find the latest one here.

17.8. Een extern algoritme uitvoeren

Notitie

In deze les zullen we zien hoe we algoritmen gebruiken die afhankelijk zijn van een toepassing van een derde partij, in het bijzonder SAGA, die één van de belangrijkste providers van algoritmen is.

Alle algoritmen die we tot dusverre hebben uitgevoerd maken deel uit van het framework Processing. Dat is, zij zijn eigen algoritmen die zijn geïmplementeerd in de plug-in en worden uitgevoerd door QGIS net zoals de plug-in zelf wordt uitgevoerd. Echter, één van de grootste mogelijkheden van het framework Processing is dat het algoritmen kan gebruiken van externe toepassingen en de mogelijkheden van die toepassingen kan uitbreiden. Dergelijke algoritmen zijn verpakt en opgenomen in de Toolbox, zodat u ze eenvoudig vanuit QGIS kunt gebruiken, en gegevens van QGIS kunt gebruiken om ze uit te voeren.

Sommig algoritmen die u ziet in de vereenvoudigde weergave vereisen dat toepassingen van derde partijen zijn geïnstalleerd op uw systeem. Een provider van algoritmen die speciale aandacht behoeft is SAGA (System for Automated Geospatial Analysis). Eerst moeten we alles configureren zodat QGIS SAGA op de juiste wijze kan aanroepen. Dit is niet moeilijk, maar het is belangrijk te weten hoe dit werkt. Elke externe toepassing heeft zijn eigen configuratie, en later in deze zelfde handleiding zullen we enkele van de andere bespreken, maar SAGA zal ons belangrijkste backend zijn, dus zullen we dat hier bespreken.

Als u op Windows werkt, is de beste manier om met externe algoritmen te werken om QGIS te installeren met behulp van het zelfstandige installatieprogramma. Dat zal zorg dragen voor het installeren van alle benodigde afhankelijkheden, inclusief SAGA, dus als u het heeft gebruikt, is er niets anders te doen. U kunt het dialoogvenster Instellingen openen en naar de groep Providers/SAGA gaan.

../../../_images/saga_config.png

Het pad SAGA zou reeds moeten zijn geconfigureerd en moeten wijzen naar de map waar SAGA is geïnstalleerd.

If you have installed QGIS not using the standalone installer, then you must enter the path to your SAGA installation (which you must have installed separately) there. The required version is SAGA 2.1

In case you are using Linux, you do not have to set the path to your SAGA installation in the processing configuration. Instead, you must install SAGA and make sure that the SAGA folder is in PATH, so it can be called from the console (just open a console and type saga_cmd to check it). Under Linux, the target version for SAGA is also 2.1, but in some installations (such as the OSGeo Live DVD) you might have just 2.0.8 available. There are some 2.1 packages available, but they are not commonly installed and might have some issues, so if you prefer to use the more common and stable 2.0.8, you can do it by enabling 2.0.8 compatibility in the configuration dialog, under the SAGA group

../../../_images/enable208.png

Als SAGA eenmaal is geïnstalleerd, kunt u een algoritme van SAGA starten door dubbel te klikken op de naam ervan, net als met elk ander algoritme. Omdat we de vereenvoudigde interface gebruiken, weet u niet welke algoritmen zijn gebaseerd op SAGA of een andere externe toepassing, maar als dubbelklikt op een er van en de overeenkomende toepassing is niet geïnstalleerd, zult u iets soortgelijks als dit zien.

../../../_images/missing_saga.png

In ons geval, en er van uit gaande dat SAGA juist is geïnstalleerd en geconfigureerd, zou u dit venster niet zien, en u zou in plaats daarvan naar het dialoogvenster voor de parameters gaan.

Laten we het eens proberen met een algoritme dat is gebaseerd op SAGA, dat welke is genaamd Split shapes layer randomly.

../../../_images/split.png

Gebruik de puntenlaag in het project dat bedoeld is voor deze les als invoer, en de standaard waarden voor de parameters, en u zult iets zoals dit krijgen (de splitsing is willekeurig, dus uw resultaat zou anders kunnen zijn).

../../../_images/split_layer1.png

De invoerlaag is gesplitst in twee lagen, elk met hetzelfde aantal punten. Dit resultaat is berekend door SAGA, en later overgenomen door QGIS en toegevoegd aan het project van QGIS.

Als alles goed gaat zult u geen verschil merken tussen dit op SAGA gebaseerde algoritme en een van de andere die we eerder uitgevoerd hebben. Echter, SAGA zou, om enige reden, niet in staat kunnen zijn een resultaat te produceren en niet het bestand genereren dat QGIS verwacht. In dat geval zullen er problemen zijn om het resultaat toe te voegen aan het project van QGIS, en een foutbericht zoals dit zal worden weergegeven.

../../../_images/missing_result.png

Dit soort problemen zouden kunnen voorkomen, zelfs als SAGA (of enige andere toepassing die we aanroepen vanuit het framework Processing) correct is geïnstalleerd, en het is belangrijk te weten hoe dit af te handelen. Laten we eens een van deze foutberichten produceren.

Open het algoritme Create graticule en gebruik de volgende waarden.

../../../_images/create_graticule.png

We gebruiken waarden voor breedte en hoogte die groter zijn dan het gespecificeerde bereik, dus kan SAGA geen uitvoer produceren. Met andere woorden, de waarden van de parameters zijn verkeerd, maar zij worden niet gecontroleerd totdat SAGA ze krijgt en probeert het raster te maken. Omdat het het niet kan maken, zal het niet de verwachte laag produceren, en u zult het foutbericht dat hierboven wordt weergegeven zien.

Het begrijpen van dit soort problemen zal u helpen ze op te lossen en een verklaring te vinden voor wat er gebeurt. Zoals u in het foutbericht kunt zien wordt een test uitgevoerd om te controleren of de verbinding met SAGA correct werkt, wat voor u een indicatie zou kunnen zijn dat er een probleem zou kunnen zijn in hoe het algoritme werd uitgevoerd. Dit is niet alleen van toepassing op SAGA, maar ook op andere externe toepassingen.

In de volgende les zullen we het log van de verwerking introduceren, waar informatie over opdrachten, uitgevoerd door geo-algoritmen, wordt bijgehouden, en u zult zien hoe u meer details verkrijgt als problemen zoals deze optreden.