Het framework Processing kan worden uitgebreid met behulp van aanvullende toepassingen. Momenteel worden SAGA, GRASS, OTB (Orfeo Toolbox) en R ondersteund, naast enkele andere programma’s voor de opdrachtregel die functionaliteiten verschaffen voor analyses van ruimtelijke gegevens. Algoritmen die afhankelijk zijn van externe toepassingen worden beheerd in hun eigen provider van algoritmen.
Dit gedeelte zal u laten zien hoe het framework Processing te configureren zodat het deze aanvullende toepassingen opneemt, en zal het enkele bijzondere mogelijkheden uitleggen van de algoritmen die op hen gebaseerd zijn. Als u het systeem eenmaal juist hebt geconfigureerd, zult u in staat zijn externe algoritmen uit te voeren vanuit elke component, zoals de Toolbox of Grafische modellen bouwen, net zoals u doet met elk ander geo-algoritme.
Standaard zijn alle algoritmen, die afhankelijk zijn van een externe toepassing en niet worden meegeleverd met QGIS, niet ingeschakeld. U kunt ze inschakelen in het dialoogvenster Opties. Zorg er voor dat de corresponderende toepassing al is geïnstalleerd op uw systeem.
Als u nog geen gevorderde gebruiker bent en u voert QGIS uit op Windows, bent u misschien niet geïnteresseerd in het lezen van de rest van dit hoofdstuk. Zorg er voor dat u QGIS op uw systeem installeert met behulp van het zelfstandige installatieprogramma. Dat zal automatisch SAGA, GRASS en OTB op uw systeem installeren en ze configureren, zodat zij vanuit QGIS kunnen worden uitgevoerd. Alle algoritmen van deze providers zullen gereed zijn om te worden uitgevoerd, zonder verdere configuratie. Indien QGIS wordt geïnstalleerd met OSGeo4W, selecteer dan ook SAGA, GRASS en OTB.
Als u meer wilt weten over hoe deze providers werken, of als u enkele algoritmen wilt gebruiken die niet zijn opgenomen in de vereenvoudigde Toolbox (zoals R-scripts), lees dan verder.
Bij het gebruiken van externe software, betekent het openen van een bestand in QGIS niet dat het kan worden geopend en ook verwerkt kan worden in die andere software. In de meeste gevallen kan andere software lezen wat u hebt geopend in QGIS , maar in sommige gevallen hoeft dat niet zo te zijn. Bij het gebruiken van databases of ongebruikelijke bestandsindelingen, voor raster- of vectorlagen, zouden problemen kunnen optreden. Als dat gebeurd probeer dan goed bekende bestandsindelingen te gebruiken waarvan u weet dat zij door beide programma’s worden begrepen, en controleer de uitvoer in de console (in de dialoogvensters Geschiedenis en Log) om meer te weten te komen over wat er fout gaat.
Bijvoorbeeld het gebruiken van GRASS rasterlagen is één geval waarbij u problemen kunt ondervinden en niet in staat zijn uw werk te voltooien als u een extern algoritme aanroept met een dergelijke laag als invoer. Deze lagen zullen, om deze reden, niet verschijnen als beschikbaar voor algoritmen.
U zou echter in het geheel geen problemen moeten ondervinden met vectorlagen, omdat QGIS automatisch converteert vanuit de originele bestandsindeling naar een die geaccepteerd wordt door de externe toepassing vóórdat de laag daaraan wordt doorgegeven. Dit zorgt voor extra verwerkingstijd, die significant zou kunnen zijn als de laag een enorme grootte heeft, wees dus niet verbaasd als het meer tijd vergt om een laag uit een DB-verbinding te verwerken dan het doet om een soortgelijk grootte die is opgeslagen in een shapefile te verwerken.
Providers die geen externe toepassingen gebruiken kunnen elke laag verwerken die u kunt openen in QGIS, omdat zij het voor analyse openen via QGIS.
Met betrekking tot uitvoerindelingen kunnen alle indelingen die worden ondersteund door QGIS als uitvoer worden gebruikt, zowel voor raster- als voor vectorlagen. Sommige providers ondersteunen bepaalde indelingen niet, maar zij kunnen allemaal worden geëxporteerd naar veelvoorkomende indelingen voor rasterlagen die later automatisch kunnen worden getransformeerd door QGIS. Net als in het geval van invoerlagen, als deze conversie nodig is, zou dat de verwerkingstijd kunnen verhogen.
Externe toepassingen kunnen ook bewust worden gemaakt van de selecties die bestaan in vectorlagen binnen QGIS. Dat vereist echter het opnieuw schrijven van alle vectorlagen voor de invoer, net als wanneer zij origineel in een indeling waren die niet wordt ondersteund door de externe toepassing. Alleen wanneer er geen selectie bestaat, of de optie Alleen geselecteerde objecten gebruiken niet is ingeschakeld in de algemene configuratie van Processing, kan een laag direct worden doorgegeven aan een externe toepassing.
In andere gevallen is slechts het exporteren van de geselecteerde objecten nodig, wat er voor zorgt dat de benodigde tijd voor uitvoering langer wordt.
Algoritmen voor SAGA kunnen worden uitgevoerd vanuit QGIS als u SAGA hebt geïnstalleerd op uw systeem en u het framework Processing juist heeft geconfigureerd, zodat het de uit te voeren bestanden van SAGA kan vinden. In het bijzonder is het uit te voeren bestand voor de opdrachtregel in SAGA nodig om algoritmen van SAGA uit te voeren.
Als u werkt op Windows bevatten zowel het zelfstandige installatieprogramma als het installatieprogramma OSGeo4W SAGA tezamen met QGIS, en het pad wordt automatisch geconfigureerd, dus is er hoeft er verder niets te worden gedaan.
Als u SAGA zelf hebt geïnstalleerd en uw installatieprogramma van QGIS bevatte dat niet, moet het pad naar het uit te voeren bestand van SAGA worden geconfigureerd. Open het dialoogvenster Opties om dat te doen. In het blok SAGA vindt u een instelling genaamd SAGA Folder. Voer het pad in naar de map waar SAGA is geïnstalleerd. Sluit het dialoogvenster Opties en nu bent u gereed om algoritmen van SAGA uit te voeren vanuit QGIS.
Als u werkt op Linux zijn de binaries van, SAGA niet opgenomen in SEXTANTE, dus moet u de software zelf downloaden en installeren. bekijk de website van SAGA voor meer informatie.
In dit geval is het niet nodig om het pad naar het uit te voeren bestand van SAGA te configureren, en u zult deze items voor de mappen niet zien. In plaats daarvan dient u er voor te zorgen dat SAGA juist is geïnstalleerd en dat de map ervan is toegevoegd aan de omgevingsvariabele PATH. Open eenvoudigweg een console en typ saga_cmd om te controleren of het systeem kan vinden waar de binaries van SAGA zijn opgeslagen.
De meeste algoritmen van SAGA die meerdere invoerrasterlagen vereisen eisen dat zij hetzelfde rastersysteem hebben. Dat is, zij moeten hetzelfde geografische gebied bedekken en dezelfde celgrootte hebben, zodat hun overeenkomende rasters overeenkomen. Bij het aanroepen van algoritmen van SAGA vanuit QGIS kunt u elke laag gebruiken, ongeacht celgrootte en bereik ervan. Wanneer meerdere rasterlagen worden gebruikt als invoer voor een algoritme van SAGA, resamplt QGIS ze naar een algemeen rastersysteem en geeft ze dan door aan SAGA (tenzij het algoritme van SAGA kan werken met lagen uit verschillende rastersystemen).
De definitie van dat algemene rastersysteem wordt beheerd door de gebruiker en u zult verschillende parameters vinden in de groep SAGA van het venster Opties om dat te doen. Er zijn twee manieren voor het instellen van de doel-rastersystemen:
Handmatig instellen. U definieert het bereik door het instellen van de volgende parameters:
Onthoud dat QGIS invoerlagen zal resamplen tot dat bereik, zelfs als ze er niet mee overlappen.
Automatisch instellen vanuit invoerlagen. Selecteer eenvoudigweg de optie Use min covering grid system for resampling om deze optie te selecteren. Alle andere instellingen zullen worden genegeerd en het minimum bereik dat alle invoerlagen bedekt, zal worden gebruikt. De celgrootte van de doellaag is het maximum van alle celgrootten van de invoerlagen.
Voor algoritmen die niet meerdere rasterlagen gebruiken, of voor die welke geen uniek rastersysteem voor invoer nodig hebben, wordt geen resamplen uitgevoerd vóór het aanroepen van SAGA end worden deze parameters niet gebruikt.
Anders dan QGIS heeft SAGA geen ondersteuning voor lagen met meerdere banden. Als u een laag met meerdere banden wilt gebruiken (zoals een RGB of multispectrale afbeelding), dient u die eerst te splitsen in afbeeldingen met één band. U kunt het algoritme ‘SAGA/Grid - Tools/Split RGB image’ (wat drie afbeeldingen uit een RGB-afbeelding maakt) of het algoritme ‘SAGA/Grid - Tools/Extract band’ (om één enkele band te extraheren) gebruiken om dat te doen.
SAGA gaat er van uit dat rasterlagen dezelfde celgrootte hebben in de X- en de Y-as. Als u werkt met een laag met verschillende waarden voor horizontale en verticale celgrootte, zou u onverwachte resultaten kunnen krijgen. In dat geval zal een waarschuwing worden toegevoegd aan het log van Processing, die aangeeft dat een invoerlaag niet geschikt zou kunnen zijn om te worden verwerkt door SAGA.
Als QGIS SAGA aanroept doet het dat door middel van de interface voor de opdrachtregel, en dus door het doorgeven van een set opdrachten om alle vereiste bewerkingen uit te voeren. SAGA geeft zijn voortgang weer door informatie te schrijven naar de console, wat het percentage van reeds verrichte verwerking bevat, naast aanvullende inhoud. Deze uitvoer wordt gefilterd en gebruikt om de voortgangsbalk bij te werken terwijl het algoritme wordt uitgevoerd.
Zowel de opdrachten die zijn verstuurd door QGIS als de aanvullende informatie die is afgedrukt door SAGA kunnen worden gelogd naast andere logberichten voor de verwerking, en u zou ze handig kunnen vinden om tot in detail te kunnen zien wat er gebeurd als QGIS een algoritme van SAGA uitvoert. U zult twee instellingen vinden, namelijk Log console-uitvoer en Log uitvoeringsopdrachten, om dat mechanisme voor het loggen te activeren.
De meeste andere providers die een externe toepassing gebruiken en die aanroepen via de opdrachtregel hebben soortgelijke opties, u zult ze dus ook op andere plaatsen in de lijst met instellingen voor Processing vinden.
Integratie van R in QGIS is anders dan die van SAGA op die manier dat er geen voorgedefinieerde set van algoritmen is die u kunt uitvoeren (uitgezonderd een aantal voorbeelden). In plaats daarvan zou u uw scripts moeten schrijven en opdrachten in R moeten aanroepen, net zoals u zou doen vanuit R, en op een hele soortgelijke manier als die welke we zagen in het gedeelte over scripts voor Processing. Dit gedeelte toont u de te gebruiken syntaxis om deze opdrachten in R te gebruiken vanuit QGIS en hoe objecten van QGIS (lagen, tabellen) er in te gebruiken.
Het eerste dat u moet doen, zoals we zagen in het geval van SAGA, is om QGIS te vertellen waar uw binaries van R zijn opgeslagen. U kunt dit doen door middel van het item map R in het dialoogvenster Opties. Als u die parameter eenmaal hebt ingesteld, kunt u beginnen met het maken en uitvoeren van uw eigen scripts in R.
Notitie
voor gebruikers van Windows, gewoonlijk staat het uitvoerbare bestand voor R in C:\Program Files\R\R-3.2. Pas de map aan NIET het binaire bestand!
Nogmaals dit is anders in Linux en u dient er voor te zorgen dat de map R is opgenomen in de omgevingsvariabele PATH. Als u R kunt starten door slechts R in een console te typen, dan bent u klaar om te beginnen.
U dient een scriptbestand te maken dat het framework Processing vertelt hoe die bewerking moet worden uitgevoerd en de corresponderende opdrachten in R om dat te doen om een nieuw algoritme toe te voegen dat een functie in R aanroept (of een meer complex script in R dat u heeft ontwikkeld en dat u beschikbaar zou willen hebben vanuit QGIS),
Scriptbestanden van R hebben de extensie .rsx, en het maken ervan is redelijk eenvoudig als u basiskennis bezit van de syntaxis en scripten van R. Zij zouden moeten worden opgeslagen in de map voor scripts van R. U kunt deze map instellen in de groep met instellingen R (beschikbaar vanuit het dialoogvenster Opties), net zoals u doet met de map voor normale scripts voor Processing.
Laten eens kijken naar een heel eenvoudig scriptbestand, dat de methode in R spsample aanroept om een willekeurig raster te maken binnen de begrenzing van de polygonen in een bepaalde polygoonlaag. Deze methode behoort tot het pakket maptools. Omdat bijna alle algoritmen die u zou willen inbedden in QGIS ruimtelijke gegevens zullen gebruiken of genereren, is kennis van ruimtelijke pakketten zoals maptools en, speciaal, sp, verplicht.
##polyg=vector
##numpoints=number 10
##output=output vector
##sp=group
pts=spsample(polyg,numpoints,type="random")
output=SpatialPointsDataFrame(pts, as.data.frame(pts))
De eerste regels, die worden aangeduid met een Python commentaar symbool (##), geven QGIS informatie over de parameters van het algoritme en de resultaten die het zal genereren. Zij werken met exact exact dezelfde syntaxis als de scripts voor Processing die we al eerder hebben gezien en zal dus hier niet nogmaals worden beschreven.
Bekijk eens R Intro en de R Syntax hoofdstukken in de Trainingshandleiding om meer informatie te krijgen over hoe u uw eigen scripts voor R schrijft-
Wanneer u een parameter voor de invoer declareert, gebruikt QGIS die informatie voor twee dingen: het maken van de interface om de gebruiker te vragen naar de waarde voor die parameter en het maken van een overeenkomstige variabele in R die later kan worden gebruikt als invoer voor opdrachten in R.
In het bovenstaande voorbeeld declareren we een invoer van het type vector genaamd polyg. Bij het uitvoeren van het algoritme zal QGIS in R de laag openen die is geselecteerd door de gebruiker en die opslaan in een variabele die ook is genaamd polyg. Dus de naam van een parameter is ook de naam van de variabele die we in R kunnen gebruiken voor de toegang tot de waarde van die parameter (dus zou u moeten vermijden om door R gereserveerde woorden als namen voor parameters te gebruiken).
Ruimtelijke elementen zoals vector- en rasterlagen worden gelezen met behulp van de opdrachten readOGR() en brick() (u hoeft zich geen zorgen te maken over het toevoegen van deze opdrachten aan uw bestand voor de beschrijving – QGIS zal dit voor u doen), en zij worden opgeslagen als objecten Spatial*DataFrame. Tabelvelden worden opgeslagen als tekenreeksen die de naam van het geselecteerde veld bevatten.
Tabellen worden geopend met behulp van de opdracht read.csv(). Als een door de gebruiker ingevoerde tabel niet in de indeling CSV is, zal die worden geconverteerd, voorafgaande aan het importeren in R.
Aanvullend kunnen rasterbestanden worden gelezen met behulp van de opdracht readGDAL() in plaats van met brick() door de ##usereadgdal te gebruiken.
Als u een gevorderde gebruiker bent en niet wilt dat QGIS het object maakt dat de laag vertegenwoordigt, kunt u de tag ##passfilename gebruiken om aan te geven dat u in plaats daarvan een tekenreeks met de bestandsnaam prefereert. In dat geval is het aan u om het bestand te openen vóórdat een bewerking wordt uitgevoerd op de gegevens die het bevat.
Met bovenstaande informatie kunnen we nu de eerste regel van ons eerste voorbeeldscript begrijpen (de eerste regel die niet begint met een opmerking in Python).
pts=spsample(polyg,numpoints,type="random")
De variabele polygon bevat al een object SpatialPolygonsDataFrame, dus kan het worden gebruikt om de methode spsample aan te roepen, net als numpoints, die het aantal punten aangeeft die moeten worden toegevoegd aan het gemaakte voorbeeldraster.
Omdat we al een uitvoer hebben gedeclareerd van het type vector genaamd out, moeten we een variabele genaamd out maken en er een object Spatial*DataFrame in opslaan (in dit geval een SpatialPointsDataFrame). U kunt elke naam gebruiken voor uw tussentijdse variabelen. Zorg er alleen voor dat de variabele die uw uiteindelijke resultaat opslaat dezelfde naam heeft als die welke u gebruikt om het te declareren, en dat het een geschikte waarde bevat.
In dit geval zal het resultaat dat wordt verkregen uit de methode spsample expliciet moeten worden geconverteerd naar een object SpatialPointsDataFrame, omdat het zelf een object van de klasse ppp is, wat geen geschikte klasse is om te worden teruggegeven aan QGIS.
Als uw algoritme rasterlagen genereert, is de manier waarop zij worden opgeslagen afhankelijk van het feit of u al dan niet de optie ##dontuserasterpackage heeft gebruikt. Wanneer u die heeft gebruikt worden lagen opgeslagen met behulp van de methode writeGDAL(). Indien niet, zal de methode writeRaster() uit het pakket raster worden gebruikt.
Als u de optie ##passfilenames gebruikte, wordt de uitvoer gegenereerd met behulp van het pakket raster (met writeRaster()), zelfs als het niet is gebruikt voor de invoer.
Als uw algoritme geen laag genereert, maar in plaats daarvan een tekstresultaat in de console, dient u aan te geven dat u wilt dat de console wordt weergegeven als de uitvoering eenmaal is voltooid. Start eenvoudigweg de opdrachtregels die de resultaten produceren die u wilt afdrukken met het teken > (‘groter dan’) om dat te doen. De uitvoer van alle andere regels zal niet worden weergegeven. Hier is bijvoorbeeld het bestand voor de beschrijving van een algoritme dat een test voor normalen uitvoert op een bepaald veld (kolom) van de attributen van een vectorlaag:
##layer=vector
##field=field layer
##nortest=group
library(nortest)
>lillie.test(layer[[field]])
De uitvoer van de laatste regel wordt afgedrukt, maar de uitvoer van de eerste wordt dat niet (en ook de uitvoer van de andere opdrachtregels, die automatisch door QGIS werden toegevoegd, worden dat niet).
Als uw algoritme iets grafisch maakt (met behulp van de methode plot()), voeg dan de volgende regel toe:
##showplots
Dit zal er voor zorgen dat QGIS alle grafische uitvoer voor R zal omleiden naar een tijdelijk bestand, wat zal worden geopend als de uitvoering van R is voltooid.
Beide grafische en console-resultaten zullen worden weergegeven in het beheer van de resultaten van Processing.
Bekijk, voor meer informatie, de scriptbestanden die zijn opgenomen in Processing. De meeste daarvan zijn redelijk eenvoudig en zullen u enorm helpen te begrijpen hoe u uw eigen scripts kunt maken.
Notitie
De bibliotheken rgdal en raster worden standaard geladen, dus hoeft u de twee overeenkomende opdrachten library() niet toe te voegen (u moet er alleen voor zorgen dat deze twee pakketten zijn geïnstalleerd in uw distributie van R). Echter, andere aanvullende bibliotheken die u denkt nodig te hebben moeten expliciet worden geladen door te typen library(ggplot2). Als het pakket nog niet is geïnstalleerd op uw machine zal Processing het downloaden en installeren. Op deze manier zal het pakket ook beschikbaar zijn voor R Standalone. Onthoud dat als het pakket moet worden gedownload, het erg lang zou kunnen duren als u uw script voor de eerste keer uitvoert.
Configureren van GRASS is niet veel anders dan het configureren van SAGA. Eerst moet het pad naar de map GRASS worden gedefinieerd, maar alleen als u werkt op Windows. Aanvullend zal een shell interpreter (gewoonlijk msys.exe, die aanwezig is in de meeste distributies van GRASS voor Windows) moeten worden gedefinieerd en ook het pad daarvoor worden ingesteld.
Standaard probeert het framework Processing zijn verbinding naar GRASS te configureren om de distributie van GRASS te gebruiken die wordt meegeleverd met QGIS. Dit zou op de meeste systemen zonder problemen moeten werken, maar als u problemen ondervindt, zou u de verbinding naar GRASS handmatig moeten configureren. ook als u een andere installatie van GRASS wilt gebruiken kunt u die instelling wijzigen en verwijzen naar de map waar die andere versie is geïnstalleerd. GRASS 6.4 is nodig om de algoritmen juist te laten werken.
Als u werkt op Linux hoeft u er slechts voor te zorgen dat GRASS correct is geïnstalleerd, en dat het zonder problemen kan worden uitgevoerd vanaf een console.
Algoritmen van GRASS gebruiken een regio voor berekeningen. Deze regio kan handmatig worden gedefinieerd met behulp van waarden die soortgelijk zijn aan die welke werden gebruikt in de configuratie van SAGA, of automatisch, met het minimum bereik dat alle gebruikte invoerlagen bedekt bij het elke keer uitvoeren van het algoritme. Als de laatste benadering het gedrag is dat u prefereert, selecteer dan de optie Use min covering region in de configuratie van de parameters in GRASS.
Er is geen aanvullende configuratie nodig om algoritmen van GDAL uit te voeren. Omdat zij al zijn opgenomen in QGIS kunnen de algoritmen hun configuratie daaruit afleiden.
Algoritmen van Orfeo Toolbox (OTB) kunnen worden uitgevoerd vanuit QGIS als u OTB heeft geïnstalleerd op uw systeem en u QGIS juist heeft geconfigureerd, zodat het alle benodigde bestanden (gereedschappen voor de opdrachtregel en bibliotheken) kan vinden.
Net als in het geval van SAGA zijn de bibliotheken van OTB opgenomen in het zelfstandige installatieprogramma voor Windows, maar zij zijn niet opgenomen als u werkt op Linux, dus u dient de software zelf te downloaden en te installeren. Bekijk de website van OTB voor meer informatie.
Als OTB eenmaal is geïnstalleerd, start QGIS, open het dialoogvenster Opties en configureer de provider voor de algoritmen van OTB. In het blok Orfeo Toolbox (image analysis) vindt u alle instellingen die zijn gerelateerd aan OTB. Zorg er eerst voor dat algoritmen zijn ingeschakeld.
Configureer dan het pad naar de map waar de gereedschappen voor de opdrachtregel en de bibliotheken van OTB zijn geïnstalleerd:
Gewoonlijk verwijst OTB applications folder naar /usr/lib/otb/applications en OTB command line tools folder is /usr/bin.
Als u een van de installatieprogramma’s gebruikt die OTB bevatten, zoals OSGeo4W, is er geen noodzaak voor nadere configuratie. Processing zal het pad automatisch detecteren en zal de overeenkomende items voor configuratie niet weergeven. Anders, vul de parameters OTB applications folder en OTB command line tools folder met de overeenkomende waarden voor uw installatie.
TauDEM (Terrain Analysis Using Digital Elevation Models) is een programma voor extractie en analyse van hydrologische informatie uit Digital Elevation Models (DEM). TauDEM kan vanuit QGIS worden gebruikt als u het op uw systeem hebt geïnstalleerd en QGIS juist hebt geconfigureerd, zodat het alle noodzakelijke bestanden kan vinden.
Er zijn twee versies van het programma TauDEM: één enkel bestand (TauDEM 5.0.6 of 5.1.2) en meerdere bestanden (TauDEM 5.2.0). Het verschil tussen deze twee versies zijn de ondersteunde invoer/uitvoer. De versie van één enkel bestand accepteert en schrijft alleen enkele rasterbestanden als uitvoer. De versie met meerdere bestanden accepteert een map met rasters en schrijft naar een map met rasters als uitvoer. Een dergelijke map zou rasters moeten bevatten die zullen worden behandeld als één enkel raster van DEM.
De TauDEM provider voor Processing ondersteunt zowel de enkele als de meerdere bestanden versie van TauDEM en staat zelfs toe dat ze tegelijk worden gebruikt.
Notitie
Hoewel de TauDEM provider voor Processing TauDEM 5.0.6, 5.1.2 en 5.2.0 ondersteunt, bevelen wij aan om 5.1.2 en/of 5.2.0 te gebruiken omdat die versies enkele nieuwe gereedschappen beschikbaar hebben, zoals Gage Watershed en TWI.
Bezoek de thuispagina van TauDEM en download de gewenste versie van de vooraf gecompileerde binaries voor uw platform (32-bit of 64-bit), gewoonlijk zijn dit “Command Line Executables”. Ook dient u Microsoft HPC Pack 2012 MS-MPI te installeren. Installeer eerst Microsoft HPC Pack 2012 MS-MPI door het bestand mpi_x64.Msi voor 64-bit platforms en mpi_x86.Msi voor 32-bit platforms uit te voeren.
Notitie
Indien u TauDEM 5.0.6 wilt gebruiken
Helaas zijn er geen pakketten voor de meeste distributies van Linux, dus zou u TauDEM zelf moeten compileren. Omdat TauDEM MPI gebruikt is het noodzakelijk om eerst een implementatie voor MPI te installeren, bijv. MPICH of OpenMPI. Gebruik uw favoriete pakketbeheerder om MPICH of OpenMPI te installeren.
Download het TauDEM 5.2.0 broncodepakket vanaf GitHub repository en pak de inhoud van het archief uit. Open terminal en cd naar de map src in de uitgepakte map. Maak een map build en cd daar naartoe
mkdir build
cd build
Configureer uw build (wijzig het voorvoegsel voor installeren indien nodig) en compileer
CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
make
Als het compileren is voltooid, installeer dan de gereedschappen van TauDEM door uit te voeren
sudo make install
Notitie
Uitvoerbare bestanden zullen worden geïnstalleerd in de submap bin binnen het door u gespecificeerde voorvoegsel tijdens het configureren. Als u bijvoorbeeld het voorvoegsel /opt/taudem5.2 specificeerde zullen de binaries worden geïnstalleerd in /opt/taudem5.2/bin.
Om de versie met één enkel bestand te gebruiken — download het bronpakket hier en voer de hierboven vermelde stappen uit om te compileren en installeer het.
De oude TauDEM 5.0.6 is ook beschikbaar. maar het is noodzakelijk om enkele bronbestanden te bewerken vóór deze versie te compileren.
Open het bestand linearpart.h en na regel
#include "mpi.h"
voeg een nieuwe regel toe met
#include <stdint.h>
dan krijgt u
#include "mpi.h"
#include <stdint.h>
Sla de wijzigingen op en sluit het bestand. Open nu het bestand tiffIO.h, zoek de regel #include "stdint.h" en vervang de aanhalingstekens ("") door <>, zodat u krijgt
#include <stdint.h>
Sla de wijzigingen op en sluit het bestand.
Configureer, compileer en installeer nu TauDEM 5.0.6 met behulp van dezelfde opdrachten als hierboven beschreven.
Start, als TauDEM is geïnstalleerd, QGIS, open het dialoogvenster Processing opties via Processing ‣ Opties... en configureer de provider TauDEM voor algoritmen. In de groep Providers zoek het blok TauDEM (hydrologische analyse), en vergroot het. Hier zult u alle instellingen zien die zijn gerelateerd aan TauDEM.
Zorg er eerst voor dat de algoritmen zijn ingeschakeld, en activeer de provider indien nodig.
De volgende stap is om MPI te configureren. De instelling MPICH/OpenMPI bin directory wordt gebruikt om de locatie van het programma mpiexec te definiëren. In de meeste Linux distributies kunt u deze veilig leeg laten, omdat mpiexec beschikbaar is in uw PATH.
De instelling Number of MPI parallel processes to use is een tweede die is gerelateerd aan MPI. Het definieert het aantal processen die zullen worden gebruikt om opdrachten van TauDEM uit te voeren. Als u niet weet welke waarde te gebruiken, is het beter deze waarde niet te wijzigen.
Nu dienen we het pad naar de map(pen) te definiëren waar programma’s voor de opdrachtregel voor TauDEM zijn geïnstalleerd. Zoals we al eerder vermelden ondersteunt de provider TauDEM zowel TauDEM met één enkel bestand als die met meerdere bestanden, dus zijn er twee instellingen voor de mappen van TauDEM:
TauDEM command line tools folder gebruikt om de locatie voor programma’s voor het enkele bestand in te stellen
TauDEM multifile command line tools folder gebruikt om de locatie voor programma’s voor meerdere bestanden in te stellen
Indien u beide versies van TauDEM hebt geïnstalleerd in verschillende mappen, is het mogelijk beide opties te specificeren.
De laatste stap is om te definiëren welke versie van TauDEM te gebruiken:
met de optie Enable multifile TauDEM tools geselecteerd zult u het programma tauDEM met meerdere bestanden gebruiken vanuit de map dis is gespecificeerd in TauDEM multifile command line tools folder. Meerdere bestanden hebben dezelfde naam als die van één enkel bestand met daaraan toegevoegd het achtervoegsel “(multifile)”
met de optie Enable single TauDEM tools geselecteerd zult u het programma TauDEM met meerdere bestanden gebruiken vanuit de map die is gespecificeerd in TauDEM command line tools folder.
Het is mogelijk beide programma’s tegelijkertijd in te schakelen. In dat geval zou u twee instanties van elk programma in Toolbox hebben en kunt u die gebruiken voor uw analyse.
Notitie
Wees voorzichtig met het ontwikkelen van modellen voor Processing met behulp van TauDEM!
Omdat de versies van één enkel bestand en van meerdere bestanden verschillende uitvoer hebben, zal een model dat is gemaakt met algoritmen uit de versie van één enkel bestand niet werken als alleen algoritmen van meerdere bestanden beschikbaar zijn. Indien u van plan bent om uw model te delen, specificeer dan welke versie van TauDEM zou moeten worden gebruikt of, beter nog, verschaf twee versies van uw model: voor één enkel- en meerdere bestanden TauDEM.