SAGA - Entwurf, Funktionsumfang und Anwendung eines Systems für Automatisierte Geowissenschaftliche Analysen
SAGA - Design, Functional Range and Application of a System for Automated Geoscientific Analyses
by Olaf Conrad
Date of Examination:2006-11-06
Date of issue:2007-10-18
Advisor:Prof. Dr. Jürgen Böhner
Referee:Prof. Dr. Karl-Heinz Pörtge
Persistent Address:
http://hdl.handle.net/11858/00-1735-0000-0006-B26C-6
Files in this item
Name:conrad.pdf
Size:5.42Mb
Format:PDF
Description:Dissertation
Abstract
English
The System for Automated Geoscientific Analyses (SAGA), which is in the focus of this work, originates from the practical need to develop new methods for the analysis of spatial data and to apply them immediately. To efficiently support the work in research projects a number of demands has been outlined and successively been implemented.An application programming interface (API) forms the system"s foundation and supplies particularly the programmer of methods with a comfortable object model for the processing of raster as well as vector data. Methods are placed as modules in dynamically loadable program libraries, which are separated from the core system. Due to this modularisation a parallel and independent development of methods by different programmers becomes possible, which e.g. enables a splitting of development tasks in larger projects. For the execution of modules the system offers currently two alternative user interfaces. The graphical user interface (GUI) allows to a large extent an intuitive usage of the system. Besides the execution of modules its tasks include the management and visualisation of spatial data. The second user interface is a command line interpreter (CMD), which has been designed exclusively for module execution. The CMD can be executed from a script file, so that a further automation of complex work flows, which are composed of different successive calls to modules, becomes possible.The implementation of the systems has been done using the wide spread object oriented programming language C++, which on the one hand gives an extensive control over the computer management and therefore allows diverse optimisations and performance gains. On the other hand C++ supports a structured programming by the construction of easily usable object models. Besides object models for spatial data the SAGA-API offers numerous helpful functionalities for the programming of modules, e.g. for solving mathematical problems or for the creation document files. Operating system specific functions are accessed using the platform independent C++ class library wxWidgets. Therefore SAGA works under Windows as well as Linux operating systems.The system"s core, consisting of API, GUI and CMD, as well as numerous modules have been published together with their source codes under a Free Open Source Software (FOSS) license. Source codes, executable programs and further information about the system can be obtained from the internet site at http://sourceforge.net/saga-gis. The free availability itself aroused a broad interest among users, who have to deal with spatial data, and the opening of the sources and the efficient design of the API resulted in a positive feedback of the young SAGA user community.Currently there are about 230 modules included in the free available SAGA distribution. The spectrum of methods covers simple tools as well as complex analyses and simulation models. Modules for the data import and export enable the data exchange with other software. Fundamental capabilities are modules for the projection of spatial data into different coordinate systems. Many standard functions are provided for the work with tables, raster and vector data. But besides the general processing of raster data, the methodological focus has to be seen in the modules for terrain analysis and geostatistics, which point back to the origin of the SAGA development, when it was the objective to derive terrain parameters and classifications based on digital elevation models for the support of soil mapping. This was the starting point for a rapid development of a wider methodological framework, which lead from the terrain based modelling of processes to the regionalisation of soil properties with the help of geostatistical procedures. Since then SAGA and its implemented methods form a basis for the successful execution of various research projects. But SAGA proved itself for educational purposes too, not at least because it is a free of charge alternative to comparable commercial software.Other Languages
Das im Zentrum dieser Arbeit stehende System für Automatisierte Geowissenschaftliche Analysen (SAGA) entstand aus der praktischen Notwendigkeit, neue Methoden für die Analyse von Geodaten entwickeln und in die Anwendung bringen zu müssen. Um die Durchführung von Forschungsprojekten effizient zu unterstützen zu können, wurden eine Reihe von Anforderungen an das System formuliert und in der Folge umgesetzt.Eine Anwendungsprogrammierschnittstelle (API) bildet das Fundament des Systems und versorgt insbesondere den Programmierer von Methoden mit einem komfortablen Objektmodell für die Verarbeitung von Raster- wie auch Vektordaten. Methoden werden als Module in dynamisch ladbaren, vom Kernsystem getrennten Programmbibliotheken abgelegt. Die hierdurch erzielte Modularisierung ermöglicht die parallele, voneinander unabhängige Methodenentwicklung durch verschiedene Programmierer und kommt so einer Aufteilung von Entwicklungsaufgaben in größeren Projekten sehr entgegen. Für die Ausführung von Modulen bietet das System zur Zeit zwei alternative Benutzerschnittstellen. Die graphische Benutzeroberfläche (GUI) erlaubt eine weitgehend intuitive Bedienbarkeit des Systems. Zu ihren Aufgaben gehört neben der Modulausführung die Verwaltung und Visualisierung von Geodaten. Die zweite Benutzerschnittstelle ist ein Kommandozeileninterpreter (CMD), der ausschließlich für die Ausführung von Mod! ulen konzipiert wurde. Der CMD lässt sich aus Skriptdateien heraus aufrufen, so dass komplexe Arbeitsabläufe, die sich aus nacheinander geschalteten Aufrufen verschiedener Module zusammensetzen, weitergehend automatisiert werden können.Die Implementierung des Systems erfolgte in der weit verbreiteten, objektorientierten Programmiersprache C++, die auf der einen Seite ein maschinennahes Programmieren und dadurch bedingt diverse Optimierungen und Performanzsteigerungen ermöglicht, auf der anderen Seite aber auch eine strukturierte Programmierung durch die Entwicklung einfach zu benutzender Objektmodelle unterstützt. Die SAGA-API bietet neben Objektmodellen für Geodaten zahlreiche Funktionalitäten, die bei der Programmierung von Modulen hilfreich sind, z.B. für das Lösen mathematischer Aufgaben oder die Erstellung von Dokumentdateien. Da für betriebssystemspezifische Aufgaben auf die plattformübergreifende C++ Klassenbibliothek wxWidgets zurückgegriffen wurde, ist SAGA sowohl unter Windows als auch unter Linux Betriebssystemen lauffähig.Das Kernsystem, bestehend aus API, GUI und CMD sowie eine große Zahl an Modulen wurden unter eine Free Open Source Software (FOSS) Lizenz gestellt und mitsamt ihren Quelltexten veröffentlicht. Quelltexte, ausführbare Programmdateien und weitere Informationen über das System können von der Internetadresse http://sourceforge.net/saga-gis bezogen werden. Allein die freie Verfügbarkeit von SAGA weckte bereits ein breites Interesse unter Anwendern, die mit der Verarbeitung von Geodaten beschäftigt sind. Dank der Quelltextoffenheit und der effizienten Gestaltung der API ergeben sich seitdem positive Rückkopplungseffekte für die Weiterentwicklung des Systems auch durch Beiträge von Entwicklern einer internationalen SAGA-Nutzergemeinde.Derzeit sind etwa 230 Module in der frei verfügbaren SAGA-Distribution enthalten. Die Bandbreite der Methoden reicht dabei von einfachen Hilfsfunktionen bis zu komplexen Analysen und Simulationsmodellen. Module für den Datenimport und -Export erlauben den Datenaustausch mit anderen Programmen. Von grundlegender Bedeutung ist die Projektion von Geodaten in verschiedene Koordinatensysteme. Zahlreiche Standardfunktionen stehen für die Prozessierung von Tabellen, Raster- und Vektordaten zur Verfügung. Als methodische Schwerpunkte sind neben der allgemeinen Verarbeitung von Rasterdaten aber vor allem geostatistische und reliefanalytische Verfahren zu nennen, die letztendlich wieder zum Ausgangspunkt der SAGA-Entwicklung zurückführen. Zunächst bestand dieser in der Entwicklung neuer reliefanalytischer Methoden für die Unterstützung von Bodenkartierungen. Daraus entwickelte sich jedoch sehr schnell ein breiter angelegtes Konzept, das über die reliefbasierte Abbildung von Prozess! en u.a. zur Regionalisierung von Bodeneigenschaften mit Hilfe geostatistischer Verfahren führte. SAGA und die unter ihm implementierten Methoden bilden seitdem eine Basis für die erfolgreiche Durchführung zahlreicher Forschungsprojekte. Aber auch für den Einsatz in der Lehre hat SAGA sich bereits erfolgreich bewährt, insbesondere da es eine kostengünstige Alternative zu vergleichbarer kommerzieller Software darstellt.