SEXTANTE kann mit zusätzlichen Anwendungen erweitert werden. Derzeit werden SAGA, GRASS, OTB (Orfeo Toolbox) und R unterstützt, zusammen mit einigen anderen Kommandozeilen-Anwendungen, die Datenanalyse Funktionalitäten zur Verfügung stellen. Algorithmen die auf einer externen Anwendung beruhen, werden von ihrem eigenen Algorithmus Provider verwaltet.
Dieses Kapitel zeigt Ihnen, wie Sie SEXTANTE so konfigurieren, dass diese zusätzlichen Anwendungen integriert sind, zudem werden einige Besonderheiten erklären. Wenn das System korrekt konfiguriert ist, sind Sie in der Lage, externe Algorithmen von jeder SEXTANTE Komponente, wie die Toolbox oder den grafischen Modeller, auszuführen, so wie Sie es mit jedem anderen SEXTANTE Algorithmus gewohnt sind.
Standardmäßig sind alle Algorithmen, die auf einer externen Anwendung beruhen nicht Teil von QGIS und werden nicht automatisch aktiviert. Sie können sie im SEXTANTE Konfigurationsdialog aktivieren. Stellen Sie sicher, dass die entsprechende Anwendung bereits auf Ihrem System installiert ist. Das Aktivieren eines Algorithmus Providers ohne Installation des Programms bewirkt, dass die Algorithmen in der Toolbox erscheinen, aber ein Fehler ausgelöst wird, wenn Sie versuchen, sie auszuführen.
Das ist so, weil die Beschreibung des Algorithmus (erforderlich, um den Parameter Dialog zu erstellen und damit SEXTANTE die benötigten Informationen über den Algorithmus bekommt) nicht in jeder Appllikation enthalten ist, dafür aber in SEXTANTE. Das heißt, sie sind Teil von SEXTANTE, so haben Sie sie in Ihrer Installation, auch wenn Sie keine andere Software installiert haben. Zum Ausführen des Algorithmus müssen jedoch auch die Binärdateien der Anwendung auf Ihrem System installiert sein.
Bei Verwendung einer externen Software, bedeutet das Öffnen einer Datei in QGIS nicht, dass es auch von der anderen Software geöffnet und verarbeitet werden kann. In den meisten Fällen können sie zwar auch lesen, was Sie in QGIS geöffnet haben, aber in einigen Fällen ist das vielleicht nicht der Fall. Bei der Verwendung von Datenbanken oder seltenen Dateiformaten, ob für Raster- oder Vektorlayer könnten Probleme auftreten. Wenn das passiert, versuchen Sie, bekannte Dateiformate, bei denen Sie sicher sind, dass sie von beiden Programmen verstanden werden zu verwenden, und überprüfen Sie die Ausgabe (im History und Log-Dialog) für weitere Informationen.
Das GRASS Rasterformat ist zum Beispiel ein Fall, bei dem Sie Probleme haben könnten und nicht in der Lage sind, Ihre Analyse durchzuführen, wenn Sie einen externen Algorithmus unter Verwendung eines solchen Layers als Eingabe aufrufen. Aus diesem Grund werden diese Layer als nicht verfügbar angezeigt für SEXTANTE Algorithmen (wir arbeiten derzeit an der Lösung dieses, und erwarten, dass es bald fertig ist).
Bei Vektorlayern sollten jedoch keine Probleme auftreten, da SEXTANTE diese automatisch vom ursprünglichen Dateiformat zu einem von der externen Anwendung akzeptierten Format konvertiert. Dies benötigt zusätzliche Bearbeitungszeit, die erheblich sein kann, wenn der Layer groß ist. Also nicht wundern, wenn es länger braucht, um einen Layer aus einer DB-Verbindung zu analysiere, als bei einem ähnlich großen Shapefile.
Provider, die nicht mit externen Applikationen arbeiten, können jeden Layer nutzen, den Sie in QGIS öffnen, da sie ihn für die Analyse mit QGIS öffnen.
Bezüglich Ausgabeformate Rasterlayer können als TIFF gespeichert werden (tif), während Vektorlayer als Shapefiles gespeichert (shp) werden. Diese Formate wurden als “lingua franca” zwischen unterstützten Anwendungen von Drittanbietern und QGIS gewählt. Wenn der Ausgabe-Dateiname, den Sie wählen nicht eines der oben genannten Formate ist, wird es geändert werden, indem das entsprechende Suffix hinzugefügt und das Standard-Dateiformat verwendet wird.
Im Falle von GDAL ist die Anzahl der unterstützten Ausgabeformate größer. Wenn Sie den Datei-Dialog öffnen, werden Sie sehen, dass Sie mehr Formate (und ihre entsprechenden Erweiterungen) zur Verfügung haben. Für weitere Informationen darüber, welche Formate unterstützt werden, überprüfen Sie bitte die GDAL Dokumentation.
Standardmäßig, wenn ein externer Algorithmus einen Vektorlayer verwendet, wird der gesamte Layer genutzt, auch wenn eine Auswahl in QGIS existiert. Sie können einem externen Algorithmus mitteilen, dass eine Auswahl verwendet werden soll, indem Sie das Kontrollkästchen Benutze ausgewählte Objekte in externer Applikation im Reiter Allgemeine Einstellungen auswählen. Wenn Sie dies tun, wird jedes Mal, wenn Sie einen externen Algorithmus auf einen Vektorlayer anwenden, die ausgewählten Merkmale dieses Layers in einen neuen Layer exportiert und dann analysiert.
Beachten Sie, dass, wenn Sie diese Option wählen, wird ein Layer ohne Auswahl wie ein Layer mit allen Objekten ausgewählt, nicht wie ein Layer ohne Objekte.
SAGA Algorithmen können mit SEXTANTE ausgeführt werden, wenn Sie SAGA auf Ihrem System installiert haben, und SEXTANTE richtig konfiguriert ist, damit es SAGA ausführen kann. Insbesondere muss die SAGA Kommandozeile ausführbar sein, damit die SAGA Algorithmen laufen. SAGA Binärdateien sind nicht Teil von SEXTANTE. Sie müssen Sie herunterladen und Installieren. Bitte stellen Sie sicher, dass SAGA Version >= 2.0.8 benötigt wird.
Sobald SAGA installiert ist, und wenn Sie Windows verwenden, öffnen Sie den SEXTANTE Konfigurationsdialog. Im Bereich SAGA finden Sie eine Einstellung mit dem Namen SAGA Ordner. Geben Sie hier den Pfad zu dem Ordner an, in dem SAGA installiert ist. Schließen Sie den Konfigurationsdialog. Sie können nun SAGA Algorithmen aus SEXTANTE laufen lassen.
Falls Sie Linux verwenden, gibt es keine Notwendigkeit, dass zu konfigurieren, und Sie werden auch keinen Odner sehen. Stattdessen müssen Sie sicherstellen, dass SAGA ordnungsgemäß installiert ist und seine Ordner der Umgebungsvariablen PATH hinzugefügt wurde. Öffnen Sie einfach eine Konsole und geben saga_cmd ein, um zu überprüfen, ob das System gefunden wurde und wo sich die SAGA Binärdateien befinden.
Die meisten SAGA Algorithmen, die mehrere Eingabe-Rasterlayer erfordern, verlangen, daß sie das gleiche KBS haben. Das heißt, sie decken dasselbe geographische Gebiet ab und haben die gleiche Pixelgröße, so das die entsprechenden Pixel zueinanderpassen. Beim Aufruf von SAGA Algorithmen aus SEXTANTE, können Sie jeden Layer, unabhängig von seiner Pixelgröße und Ausdehnung verwenden. Wenn mehrere Raster-Layer als Eingabe für einen SAGA Algorithmus verwendet werden, überprüft SEXTANTE sie auf ein gemeinsames KBS und übergibt sie dann SAGA (es sei denn, der SAGA-Algorithmus kann mit Layern aus verschiedenen KBS umgehen).
Die Definition dieses gemeinsamen KBS wird vom Benutzer gesteuert. Sie finden mehrere Parameter im SAGA Bereich des Konfigurationsdialogs. Es gibt zwei Möglichkeiten für die Einstellung des Ziel-KBS:
Setzen Sie sie manuell und legen die Ausdehnung durch Definition der Werte mit folgenden Parametern fest:
Beachten Sie, dass SEXTANTE die Eingabelayer genau soweit resampelt, wie sie es angeben, auch wenn sich die Layer nicht damit überschneiden.
Automatisch auf Basis des Eingabelayers setzen. Um diese Option zu wählen, aktivieren Sie einfach die Verwende min Abdeckgitter für Resampling Option. Alle anderen Einstellungen werden ignoriert und die minimalen Umfang, der alle Schichten umfasst wird verwendet. Die Pixelgröße des Ziellayers ist dann das Maximum aller Pixelgrößen der Eingabelayer.
Für Algorithmen, die nicht mit mehreren Rasterlayern arbeiten, oder für diejenigen, die kein eindeutiges KBS bauchen, wird kein Resampling vor dem Aufruf von SAGA durchgeführt, und die Parameter werden nicht verwendet.
Im Gegensatz zu QGIS bietet SAGA keine Unterstützung für Multiband-Layer. Wenn Sie einen Multiband-Layer (z. B. ein RGB oder multispektrales Bild) verwenden wollen, müssen Sie zuerst in Einkanal Bilder aufteilen. Um dies zu tun, können Sie den ‘SAGA/Grid - Tools/Split RGB-Image’-Algorithmus verwenden (der erstellt 3 Bilder von einem RGB-Bild) oder den ‘SAGA/Grid - Tools/Extract Band’-Algorithmus (um einen einzelnen Kanal zu extrahieren).
SAGA geht davon aus, dass Rasterlayer die selbe Pixelgröße in X- und Y-Richtung haben. Wenn Sie mit einem Layer mit unterschiedlichen Werten für die horizontale und vertikale Pixelgöße arbeiten, erhalten Sie möglicherweise unerwartete Ergebnisse. In diesem Fall wird eine Warnung im SEXTANTE Protokoll hinzugefügt, das anzeigt, dass ein Layer möglicherweise nicht geeignet ist, von SAGA verarbeitet zu werden.
Wenn SEXTANTE SAGA aufruft, findet das über die Kommandozeilen-Schnittstelle statt mit einer Reihe von Befehlen, um alle erforderlichen Operation durchzuführen. SAGA zeigt den Fortschritt, indem es Informationen an die Konsole übergibt, die den Prozentsatz der Verarbeitung beinhaltet, zusammen mit zusätzlichen Inhalten. Diese Ausgabe wird durch SEXTANTE gefiltert und verwendet, um die Fortschrittsanzeige zu aktualisieren, während der Algorithmus läuft.
Sowohl die Befehle von SEXTANTE als auch die zusätzlichen Informationen, die SAGA ausgibt, werden zusammen mit anderen SEXTANTE Meldungen protokolliert. Damit können Sie ausführlich verfolgen, was passiert, wenn SEXTANTE läuft. Dafür gibt es zwei Einstellungen Log Konsole Ausgabe und Log Ausführungsbefehle, um den Logging-Mechanismus zu aktivieren.
Die meisten anderen Provider, die eine externe Anwendung über die Kommandozeilen-Optionen aufrufen, haben ähnliche Optionen, so dass Sie sie auch an anderen Orten in der SEXTANTE Einstellungen Liste finden.
Die R Integration in SEXTANTE unterscheidet sich von der SAGA integration, da es keinen vordefinierten Satz von Algorithmen gibt, den man ausführen kann (bis auf einige Beispiele). Stattdessen sollten Sie Ihre Skripte schreiben und dann über R Befehle aufrufen, ähnlich wie man es von R kennt, und in einer sehr ähnlichen Weise zu dem, was wir sahen, im Kapitel SEXTANTE Skripte. Dieses Kapitel zeigt Ihnen die Syntax, die Sie verwenden sollten, um die R-Befehle von SEXTANTE anzusprechen und wie SEXTANTE Objekte verwendet werden (Layer, Tabellen).
Das erste, was Sie tun müssen, wie wir im Fall von SAGA gesehen haben, ist zu sagen, wo sich die R Binärdateien befinden. Sie können dies tun, indem Sie den R Ordner im SEXTANTE Konfigurationsdialog ansprechen. Nachdem Sie die Parameter definiert haben, können Sie anfangen, eigene R-Skripte auszuführen.
Dies ist wieder anders in Linux. Dort müssen Sie nur sicherstellen, dass der R-Ordner in der Umgebungsvariablen PATH enthalten ist. Wenn Sie nur die Eingabe R in eine Konsole eingeben können, kann es losgehen.
Um einen neuen Algorithmus, der eine R-Funktion aufruft (oder ein komplexeres R Skript, das Sie entwickelt haben, und mit SEXTANTE nutzen möchten) hinzuzufügen, müssen Sie eine Skript-Datei erstellen, die SEXTANTE sagt, wie man diese Operation auszuführen hat sowie die entsprechenden R Anweisungen, dies zu tun.
Script-Dateien haben die Endung rsx und die Erstellung ist recht einfach, wenn man nur über Grundkenntnisse der R-Syntax und R Scripting besitzt. Sie sollten im R Skript Ordner gespeichert werden. Sie können diese Ordner im Bereich R einstellen(siehe SEXTANTE Einstellungen-Dialog), so wie Sie es auch mit dem Ordner für die anderen SEXTANTE Skripte machen.
Werfen Sie einen Blick auf eine sehr einfache Skript-Datei, die die R-Methode spsample aufruft und ein zufälliges Gitter innerhalb der Grenzen eines Polygon in einem bestimmten Polygon-Layer erstellt. Diese Methode gehört zum Paket zur MapTools. Grundsätzlich brauchen Sie für R-Algorithmen, die Sie in SEXTANTE für räumliche geostatistische Analysen nutzen wollen, zumindest Kenntnisse der Pakete wie MapTools und speziell sp.
##polyg=vector
##numpoints=number 10
##output=output vector
##sp=group
pts=spsample(polyg,numpoints,type="random")
output=SpatialPointsDataFrame(pts, as.data.frame(pts))
Die ersten Zeilen, die mit einem doppelten Python Kommentar-Zeichen (##) beginnen, übergeben SEXTANTE die Eingaben für den Algorithmus und die Ausgaben, die generiert werden. Sie arbeiten genau mit der gleichen Syntax wie die SEXTANTE Skripte, die wir bereits gesehen haben, so dass sie hier nicht noch einmal beschrieben werden. Überprüfen Sie den entsprechenden Abschnitt für weitere Informationen.
Wenn Sie einen Eingabeparameter definieren, verwendet SEXTANTE diese Informationen für zwei Dinge: Erstellung der Benutzeroberfläche, um die Benutzer nach Eingaben von Parameters zu fragen und die Schaffung einer entsprechenden R Variable, die später als Eingabe für die R-Befehle verwendet werden.
In dem obigen Beispiel erklären wir den Eingang vom Typ Vektor mit dem Namen polyg. Bei der Ausführung des Algorithmus wird durch SEXTANTE R geöffnet und der Layer, der durch den Benutzer ausgewählt wurde, in einer Variablen polyg abgelegt. Der Name des Parameters ist also auch der Name der Variablen, die wir in R für den Zugriff auf den Wert des Parameters nutzen (vermeiden Sie, reservierte R Begriffe als Parameter zu verwenden).
Räumliche Elemente wie Vektor-und Rasterlayer werden mit den readOGR() und readGDAL()-Befehlen gelesen (Darum brauchen Sie sich nicht kümmern, SEXTANTE tut es) und gespeichert als Spatial*DATAframe Objekte. Tabellenspalten sind als Zeichenfolgen, die den Namen des ausgewählten Feldes haben, gespeichert.
Tabellen werden geöffnet, indem die den read.csv()-Befehl verwenden Wenn Sie eine Tabelle angegeben, die nicht im CSV-Format ist, wird sie vor dem Import in R. umgewandelt.
Damit können wir jetzt die erste Zeile in unserem Beispiel-Skript verstehen (die erste Zeile, die nicht mit einem Python-Kommentar beginnt).
pts=spsample(polyg,numpoints,type="random")
Die Variable Polygon enthält bereits ein SpatialPolygonsDataFrame Objekt, damit kann es verwendet werden, um das spsample Verfahren aufzurufen, ebenso wie die NumPoints, die die Anzahl der Punkte zeigt, die zum Gitter hinzugefügt werden sollen.
Da wir eine Ausgabe vom Typ Vektor definiert haben mit dem Namen``out``, müssen wir nun eine Variable namens out erstellen und Spatial*DATAframe Objekt dafür erstellen (in diesem Fall ein SpatialPointsDataFrame). Sie können einen beliebigen Namen für Ihre Zwischenvariablen verwenden. Stellen Sie nur sicher, dass die Variable Ihres Endergebnisses den gleichen Namen hat, den Sie zuvor definiert haben und das sie einen geeigneten Wert enthält.
In diesem Fall muss das Ergebnis aus dem``spsample`` Verfahren explizit in ein SpatialPointsDataFrame Objekt umgewandelt werden, da es selbst ein Objekt der Klasse ppp ist, das keine geeignet Klasse für SEXTANTE ist.
Wenn Ihr Algorithmus keinen Layer, sondern einen Text als Ergebnis in der Konsole generiert, müssen Sie SEXTANTE sagen, dass die Konsole gezeigt werden soll, wenn die Ausführung beendet ist. Um dies zu tun, starten Sie einfach die Kommandozeilen, die die Ergebnisse produzieren mit dem > (‘größer’) Zeichen. Die Ausgabe aller anderen Zeilen werden nicht angezeigt. Zum Beispiel ist hier die Beschreibungsdatei eines Algorithmus, der einen Normalitätstest auf eine bestimmte Attributspalte eines Vektorlayers ausführt:
##layer=vector
##field=field layer
##nortest=group
library(nortest)
>lillie.test(layer[[field]])
Die Ausgabe der der letzten Zeile wird angezeigt, aber die Ausgabe der ersten nicht (und auch die Ausgaben anderer Befehlszeilen werden nicht automatisch von SEXTANTE ausgegeben).
Wenn Ihr Algorithmus eine Grafiken erstellt (mit der plot()-Methode), fügen Sie die folgende Zeile ein:
##showplots
Dies führt dazu, dass SEXTANTE alle R Grafikausgaben in eine temporäre Datei umleitet, die später geöffnet werden kann, sobald die R Ausführung beendet ist.
Beides, Grafiken und Konsolenergebnisse werden im SEXTANTE Ergebnis Manager angezeigt.
Für weitere Informationen schauen Sie sich bitte die Skript-Dateien an, die SEXTANTE bereits enthält. Die meisten von ihnen sind ziemlich einfach und werden wesentlich dazu beitragen, wie Sie Ihre eigenen erstellen.
Die Konfiguration von GRASS ist nicht viel anders als die Konfiguration von SAGA. Zuerst muss der Pfad zu dem Ordner GRASS definiert werden, aber nur, wenn Sie Windows verwenden. Zusätzlich gibt es einen Shell-Interpreter (in der Regel: msys.exe, den Sie in den meisten GRASS für Windows-Distributionen finden) der definiert werden muss, genauso wie der Pfad dorthin.
Standardmäßig versucht SEXTANTE die GRASS-Anbindung zu konfigurieren, um GRASS zu verwenden, dass mit QGIS bereitgestellt wird. Dies sollte ohne Probleme in den meisten Systemen funktionieren, aber wenn Sie Probleme haben, müssen Sie es manuell tun. Auch, wenn Sie eine andere GRASS Version verwenden wollen, können Sie diese Einstellung und verweise auf den Ordner, in dem die andere Version gehalten wird ändern. GRASS 6.4 ist grundsätzlich erforderlich, damit die Algorithmen korrekt arbeiten.
Wenn Sie Linux verwenden, müssen Sie nur noch sicherstellen, dass GRASS richtig installiert ist, und dass es problemlos von einer Konsole ausgeführt werden kann.
GRASS Algorithmen verwenden eine Region für die Berechnungen. Diese Region kann manuell definiert werden unter Verwendung von Werten ähnlich denen, die in der Sage Konfiguration stehen oder automatisch, wobei die minimale Ausdehnung aller Eingangslayer verwendet werden, wenn der Algorithmus ausgeführt wird. Wenn dies das Verhalten ist, das Sie bevorzugen, können Sie es über die Option Verwende min abdecken Region in den GRASS Konfigurationsparametern definieren.
GRASS enthält Hilfedateien, die jeden Algorithmus beschreiben. Wenn Sie die Option GRASS Hilfe Ordner aktivieren, wird SEXTANTE sie öffnen, wenn Sie den [Hilfe] Knopf im Parameter-Fenster des Algorithmus drücken.
Der letzte Parameter, der konfiguriert werden muss bezieht sich auf die Mapset. Ein Mapset wird benötigt, um GRASS laufen zu lassen. Diese wird temporär von SEXTANTE für jede Ausführung eines Algorithmus erstellt. Dazu müssen Sie SEXTANTE sagen, ob die Daten mit dem Sie arbeiten geografische (lat/lon) Koordinaten oder kartesische Daten sind.
Ist keine zusätzliche Konfiguration erforderlich, um GDAL Algorithmen laufen zu lassen, da es bereits in QGIS integriert ist und SEXTANTE diese Konfiguration nutzen kann.
Orfeo ToolBox (OTB) Algorithmen können aus SEXTANTE ausgeführt werden, wenn Sie OTB in Ihrem System installiert haben und SEXTANTE richtig konfiguriert ist, so dass alle erforderlichen Dateien (Kommandozeilen-Tools und Bibliotheken) gefunden werden. Bitte beachten Sie, dass OTB Binaries nicht in SEXTANTE enthalten sind, so dass Sie die Software Herunterladen und Installieren müssen. Bitte überprüfen Sie die OTB Website für weitere Informationen.
Sobald OTB installiert ist, starten Sie QGIS,öffnen Sie den Konfigurationsdialog in SEXTANTE und konfigurieren Sie den OTB Algorithmus-Provider im Bereich Orfeo Toolbox (Bildanalyse). Sie finden dort alle Einstellungen in Bezug auf OTB. Stellen Sie zunächst sicher, dass alle Algorithmen aktiviert sind.
Dann konfigurieren Sie den Pfad zu dem Ordner, in dem die OTB Kommandozeilen-Tools und Bibliotheken installiert sind:
In der Regel OTB Programme-Ordner verweist auf /usr/lib/otb/applications und den OTB Kommandozeilen-Tools Ordner unter /usr/bin
wenn Sie den OSGeo4W Installer benutzen, dann installieren Sie das otb-bin Paket und geben Sie C:\OSGeo4W\apps\orfeotoolbox\applications als OTB Programme-Ordner und C:\OSGeo4W\bin als OTB Kommandozeilen-Tools Ordner an
Um diesen Anbieter zu verwenden, müssen Sie die TauDEM Kommandozeilen-Tools installieren.
Bitte besuchen Sie TauDEM Homepage für Hinweise zur Installation und für vorkompilierte Binaries für 32bit und 64bit Systeme. WICHTIG: Sie brauchen TauDEM 5.0.6, die aktuelle Version 5.2 wird derzeit nicht unterstützt.
Es gibt keine Pakete für die meisten Linux-Distribution, daher sollten Sie TauDEM selbst kompilieren. Weil TauDEM MPICH2 verwendet, installieren Sie es zuerst mit Ihrem Lieblings-Paketmanager. TauDEM arbeit auch mit OpenMPI , also können Sie auch das verwenden, statt MPICH2.
Laden Sie den TauDEM 5.0.6 Quellcode herunter und entpacken Sie die Dateien im selben Ordner.
Öffne linearpart.h und füge hinzu nach Zeile
#include "mpi.h"
füge neue Zeile hinzu mit
#include <stdint.h>
dadurch bekommen Sie
#include "mpi.h"
#include <stdlib.h>
Speichern Sie Änderungen und schliessen Sie die Datei. Nun öffnen Sie die Datei tiffIO.h, suchen Sie Zeile #include "stdint.h" und tauschen Sie die Anführungsstriche ("") durch <> aus
#include <stdint.h>
Speichern Sie die Änderungen und schliessen Sie die Datei. Erstellen Sie einen build Ordner und wechseln Sie in diesen
mkdir build
cd build
Konfigurieren Sie Ihren Build mit dem Kommando
CXX=mpicxx cmake -DCMAKE_INSTALL_PREFIX=/usr/local ..
und dann kompilieren
make
Schliesslich, um TauDEM unter /usr/local/bin zu installieren, führen Sie aus
sudo make install