Viktigt

Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 100.00%.

17.8. Körning av en extern algoritm

Observera

I den här lektionen kommer vi att se hur man använder algoritmer som är beroende av en tredjepartsapplikation, särskilt SAGA, som är en av de viktigaste algoritmleverantörerna.

Alla algoritmer som vi har kört hittills är en del av bearbetningsramverket. Det vill säga, de är egna algoritmer som implementerats i insticksprogrammet och körs av QGIS precis som själva insticksprogrammet körs. En av de bästa funktionerna i bearbetningsramverket är dock att det kan använda algoritmer från externa applikationer och utöka möjligheterna för dessa applikationer. Sådana algoritmer är inkapslade och ingår i verktygslådan, så att du enkelt kan använda dem från QGIS och använda QGIS-data för att köra dem.

Vissa av de algoritmer som du ser i den förenklade vyn kräver att program från tredje part installeras i ditt system. En algoritmleverantör av särskilt intresse är SAGA (System for Automated Geospatial Analysis). Först måste vi konfigurera allt så att QGIS kan anropa SAGA på rätt sätt. Det är inte svårt, men det är viktigt att förstå hur det fungerar. Varje extern applikation har sin egen konfiguration, och senare i samma manual kommer vi att tala om några av de andra, men SAGA kommer att vara vår huvudsakliga backend, så vi kommer att diskutera den här.

Om du använder Windows är det bästa sättet att arbeta med externa algoritmer att installera QGIS med hjälp av den fristående installationsprogrammet. Det tar hand om att installera alla nödvändiga beroenden, inklusive SAGA, så om du har använt det finns det inget mer att göra. Du kan öppna inställningsdialogrutan och gå till gruppen Providers/SAGA.

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

SAGA-sökvägen bör redan vara konfigurerad och peka på den mapp där SAGA är installerat.

Om du har installerat QGIS utan att använda det fristående installationsprogrammet måste du ange sökvägen till din SAGA-installation (som du måste ha installerat separat) där. Den version som krävs är SAGA 2.1 [detta ändras i enlighet med versionerna av SAGA].

Om du använder Linux behöver du inte ange sökvägen till din SAGA-installation i bearbetningskonfigurationen. Istället måste du installera SAGA och se till att SAGA-mappen finns i PATH, så att den kan anropas från konsolen (öppna bara en konsol och skriv saga_cmd för att kontrollera det). Under Linux är målversionen för SAGA också 2.1, men i vissa installationer (t.ex. OSGeo Live DVD) kanske du bara har 2.0.8 tillgängligt. Det finns några 2.1-paket tillgängliga, men de är inte vanligt installerade och kan ha vissa problem, så om du föredrar att använda den mer vanliga och stabila 2.0.8 kan du göra det genom att aktivera 2.0.8-kompatibilitet i konfigurationsdialogen under gruppen SAGA.

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

När SAGA är installerat kan du starta en SAGA-algoritm genom att dubbelklicka på dess namn, precis som med vilken annan algoritm som helst. Eftersom vi använder det förenklade gränssnittet vet du inte vilka algoritmer som är baserade på SAGA eller i en annan extern applikation, men om du råkar dubbelklicka på en av dem och motsvarande applikation inte är installerad kommer du att se något liknande detta.

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

I vårt fall, och förutsatt att SAGA är korrekt installerat och konfigurerat, bör du inte se detta fönster, och du kommer till parameterdialogen istället.

Låt oss prova med en SAGA-baserad algoritm, den som heter Split shapes layer randomly.

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

Använd punktlagret i projektet som motsvarar den här lektionen som indata och standardparametervärdena, så får du något liknande detta (uppdelningen är slumpmässig, så ditt resultat kan vara annorlunda).

../../../_images/split_layer.png

Inmatningslagret har delats upp i två lager, vart och ett med samma antal punkter. Detta resultat har beräknats av SAGA, och senare hämtats av QGIS och lagts till i QGIS-projektet.

Om allt går bra kommer du inte att märka någon skillnad mellan den här SAGA-baserade algoritmen och någon av de andra som vi tidigare har kört. Det kan dock hända att SAGA av någon anledning inte kan producera ett resultat och inte generera den fil som QGIS förväntar sig. I så fall kommer det att bli problem med att lägga till resultatet i QGIS-projektet och ett felmeddelande som detta kommer att visas.

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

Den här typen av problem kan uppstå, även om SAGA (eller någon annan applikation som vi ringer från bearbetningsramen) är korrekt installerad, och det är viktigt att veta hur man hanterar dem. Låt oss producera ett av dessa felmeddelanden.

Öppna algoritmen Create graticule och använd följande värden.

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

Vi använder bredd- och höjdvärden som är större än den angivna omfattningen, så SAGA kan inte producera någon utdata. Med andra ord är parametervärdena felaktiga, men de kontrolleras inte förrän SAGA får dem och försöker skapa graticulen. Eftersom den inte kan skapa den, kommer den inte att producera det förväntade lagret, och du kommer att se felmeddelandet som visas ovan.

Observera

I SAGA >= 2.2.3 kommer kommandot automatiskt att justera felaktiga indata, så att du inte får något fel. Om du vill provocera fram ett fel ska du använda negativa värden för division.

Att förstå den här typen av problem hjälper dig att lösa dem och hitta en förklaring till vad som händer. Som du kan se i felmeddelandet utförs ett test för att kontrollera att anslutningen till SAGA fungerar korrekt, vilket indikerar att det kan finnas ett problem i hur algoritmen kördes. Detta gäller inte bara SAGA, utan även andra externa applikationer.

I nästa lektion kommer vi att presentera bearbetningsloggen, där information om kommandon som körs av geoalgoritmer sparas, och du kommer att se hur du kan få mer information när problem som detta uppstår.