hier - CHROMGRUEN

Transcrição

hier - CHROMGRUEN
Hans-Jörg Keiler
chromgruen Planungs- und Beratungs- GmbH, Essen
Vorbemerkung
Entstehung dieses Manuskriptes
Das vorliegende Manuskript ist im Rahmen eines dreimonatigen Praktikums (Oktober bis
Dezember 2007) bei der chromgruen Planungs- und Beratungs- GmbH entstanden, bei dem unter
anderem die Aufgabe darin bestand, verschiedene Open Source Desktop-GIS Lösungen zu testen
und so einen Vergleich zwischen den Programmen herstellen zu können.
Durch die lange Einarbeitungszeit in die komplexe Funktionsweise und den relativ großen
Funktionsumfang von GRASS GIS konnte bislang allerdings nur dieses Programm betrachtet
werden. Möglicherweise wird diese Dokumentation zu einem späteren Zeitpunkt fortgesetzt.
Lizenz
Dieses Manuskript wird unter den Bedingungen der Creative Commons Public License
„Namensnennung 2.0“ veröffentlicht (http://creativecommons.org/licenses/by/2.0/de/legalcode).
Haftungsbeschränkung
Dieses Manuskript wird veröffentlicht in der Hoffnung, dass es nützlich ist.
Der Autor und die chromgruen Planungs- und Beratungs- GmbH übernehmen keine Garantie für
die Richtigkeit der darin getroffenen Aussagen und haften – im Rahmen der gesetzlichen
Bestimmungen – nicht für Fehler oder eventuelle Schäden, die durch seine Anwendung auftreten
können.
Essen, Januar 2008
chromgruen
Analyse und Bewertung von Open Source Desktop-GIS
Vorbemerkung......................................................................................................................................1
Entstehung dieses Manuskriptes......................................................................................................1
Lizenz...............................................................................................................................................1
Haftungsbeschränkung.....................................................................................................................1
Einleitung und Aufgabenstellung.........................................................................................................3
Methodik...............................................................................................................................................3
GRASS.................................................................................................................................................5
Kurzbeschreibung und Fazit............................................................................................................5
GIS-Umgebung................................................................................................................................6
Bedienbarkeit..............................................................................................................................6
Support........................................................................................................................................7
Performance................................................................................................................................7
Kernfunktionen................................................................................................................................8
Konvertieren von Geodaten in digitale Form.............................................................................9
Datenbank-Management ..........................................................................................................10
Geoprocessing: Datenmanipulation und Analysefunktionen....................................................13
Kartenerstellung........................................................................................................................25
Fallbeispiel „Bielefeld“.............................................................................................................26
Quantum GIS......................................................................................................................................27
Kurzbeschreibung..........................................................................................................................27
OSSIM................................................................................................................................................28
Kurzbeschreibung..........................................................................................................................28
gvSIG..................................................................................................................................................29
Kurzbeschreibung..........................................................................................................................29
SAGA.................................................................................................................................................30
Kurzbeschreibung..........................................................................................................................30
Open-Jump.........................................................................................................................................31
Kurzbeschreibung..........................................................................................................................31
Bewertung der GIS-Programme.........................................................................................................32
Literatur..............................................................................................................................................33
Allgemein..................................................................................................................................33
GRASS......................................................................................................................................33
chromgruen
Inhaltsverzeichnis
Für eine Vielzahl von GIS-spezifischen Anwendungen, die in den Bereich Desktop-GIS fallen,
existieren mittlerweile unter den Open Source-basierten Programmen eine Fülle von Werkzeugen,
mit deren Einsatz das gleiche Ergebnis erzielt werden kann wie unter Verwendung von
kommerziellen Produkten. Die unterschiedliche Funktionsweise der Programme und eine nur
schwierig zu erlangende Marktübersicht sind Hemmnisse für einen verbreiteteren Einsatz.
Das vorliegende Manuskript soll dem Leser einen einen Überblick über den aktuellen
Funktionsumfang verschiedener Desktop-GIS im Open Source Bereich geben. Es wird weder auf
die verschiedenen Definitionen von Open Source eingegangen, noch soll das Manuskript als
vollständiges Manual der verschiedenen Programme gesehen werden: Eine Auflistung ausgewählter
Materialien für diese Zwecke befindet sich im Literaturverzeichnis.
Als Ergebnis dieser Dokumentation soll möglichst schnell erkennbar sein, welches Programm für
welchen Zweck am besten eingesetzt werden kann. So soll der Funktionsumfang geschildert und die
Funktionsweise möglichst anschaulich dargestellt werden. Die abschließende Bewertung soll
möglichst transparent sein.
Methodik
Wie das Inhaltsverzeichnis schon zu erkennen gibt, wird bei der Bewertung zwischen
Kernfunktionen der verschiedenen GIS-Programme und der jeweiligen „GIS-Umgebung“
unterschieden. Dabei handelt es sich um Themen wie den Inhalt der Hilfe-Datei, den Stand und die
Verfügbarkeit von Dokumentationen oder die Aktivität der Community, aber auch um technische
Rahmenbedingungen wie Performance, erhältliche Plugins und Anwendbarkeit von Scripts.
Den Kernfunktionen sind die Teilfunktionen eines GIS zugeordnet, die es standardmäßig erfüllen
sollte: Datenbank-Management, Digitalisieren von Geodaten, Datenmanipulation,
Analysefunktionen und Kartenerstellung. Die verschiedenen Kapitel sind wie folgt aufgebaut:
●
Beschreibung der verschiedenen Funktionen für jeden Teilbereich
●
Exemplarisch: Dokumentation verschiedener Module
●
Bewertung
Die Bewertung erfolgt u.a. durch eine Nutzwertanalyse, d.h. den verschiedenen Funktionen des
GIS wird ein verschieden hoher Nutzwert zugesprochen. Dabei soll allerdings auf eine Überprüfung
der Gewichtung (z.B. im Sinne einer paarweisen Gewichtung) sowie auf eine Sensitivanalyse
verzichtet werden. Verfahren und Gewichtung der Nutzwertanalyse sind an die Arbeit von Roland
Krüger („Open Source-GIS in der Kommunalverwaltung“, siehe Literaturverzeichnis) angelehnt.
Die nachfolgenden Tabellen geben die Berechnung für die Bewertung und die Gewichtung der
Kriterien wieder.
Die Nutzwertanalyse wird allerdings nur dort eingesetzt, wo ein direkter Vergleich möglich ist. In
vielen Bereichen wirken die untersuchten GIS-Programme eher ergänzend als konkurrierend, was
einem Vergleich von „Äpfeln mit Birnen“ nahe käme.
chromgruen
Einleitung und Aufgabenstellung
Bewertungsgrad
nicht erfüllt
schlecht
mäßig
durchschnittlich
gut
sehr gut
Wert
0
1
2
3
4
5
Gewichtung der Kriterien
Kriterium
GIS-Umgebung
Bedienbarkeit
Support
Performance
Kernfunktionen
Datenbank-Management
Digitalisieren
Datenmanipulation / Analyse
Kartenerstellung
Gewicht
20%
10%
05%
05%
80%
20%
20%
30%
10%
Zur Berechnung wird der Wert der Zielerfüllung mit der Gewichtung des jeweiligen Kriteriums
multipliziert. Diese Werte werden für jedes untersuchte Programm in einer Tabelle zum Vergleich
gegenübergestellt. Auf eine Aufsummierung wird wiederum verzichtet, da eine absolute Bewertung
wegen der Heterogenität der Programme nicht für sinnvoll erachtet wird.
Die Programme wurden auf dem Betriebssystem Ubuntu Linux 7.10. getestet.
chromgruen
Zielerfüllungsskala
Kurzbeschreibung und Fazit
GRASS (Geographic Resources Analysis Support System) ist ein Geographisches
Informationssystem, welches durch eine Vielzahl von Raster- und Vektorfunktionen die
Verarbeitung raumbezogener Daten in einem einzigen Programm ermöglicht. Es enthält Werkzeuge
für räumliches Modellieren, für die Darstellung von Raster- und Vektordaten, für Management und
Analyse raumbezogener Daten und für die Verarbeitung von Luft- und Satellitenbildern. Des
Weiteren besteht die Möglichkeit, anspruchsvolle 4D Präsentationen und druckfähige Karten zu
erzeugen.
Das Programm enthält über 350 Module für das Arbeiten mit Vektor-, Raster- und Volumendaten.
Durch den Konsolidierungsprozess in Bezug auf „Geospatial Open Source Standards“ (Das
GRASS-Projekt ist Mitbegründer der Open Source Geospatial Foundation) sind die aktuellsten
GDAL/OGR-Bibliotheken in GRASS eingebunden, was die Verarbeitung von einer großen
Bandbreite an Vektor- und Rasterformaten ermöglicht. Es stützt sich außerdem auf das PROJ4Projekt, welches eine Vielzahl gängiger Projektionen unterstützt und darüber hinaus auch selbst
definierte Projektionen verarbeiten kann. Enge Verbindungen bestehen auch mit den Projekten
„QuantumGIS“ und „R Statistics“, bei welchen über PlugIns auf GRASS-Funktionen
zurückgegriffen werden kann.
GRASS wurde ursprünglich von den amerikanischen Streitkräften entwickelt und dann als
lizenzfreie Software zugänglich gemacht. Seither hat ein internationales Entwickler-Team deren
Arbeit an dem System übernommen. Die Überführung in eine lizenzfreie Software erfolgte 1999
unter den Bestimmungen der GNU General Public Licence. GRASS wird momentan weltweit
erfolgreich in wissenschaftlichen, kommerziellen und öffentlichen Institutionen angewendet.1
Fazit
GRASS ist ein sehr komplexes und vollständiges GIS-Programm. Der modulare Aufbau und die
unterschiedliche Struktur im Vergleich zu anderen GIS-Programmen erfordern allerdings eine
vergleichsweise lange Einarbeitungszeit. Es ist sehr gut geeignet für Analysen von Raster- und
Vektordaten. Die Konvertierung von Rasterdaten nimmt allerdings eine gewisse Zeit in Anspruch,
führt aber ebenfalls zu guten Ergebnissen. Mit NVIZ steht ein 3D-Programm zur Verfügung,
welches ordentlich funktioniert, allerdings auf reine Visualisierungsmöglichkeiten beschränkt ist. In
diesem Bereich bieten andere GIS-Programme, wie z.B. der 3D-Analyst für ArcGIS, deutlich mehr
Möglichkeiten. Auch im Bereich des Darstellens und einfachen Selektierens von Objekten
beinhalten andere Programme bessere Lösungen, allerdings führt die enge Kooperation mit dem
QGIS-Projekt dazu, dass man dessen gutes Front-End dafür nutzen kann und auf die GRASS-Daten
über ein PlugIn zurückgreifen kann.
Auch der bei Open Source Projekten oft bemängelte Support ist über eine stark frequentierte
Mailingliste in ausreichendem Maße gegeben. Hilfsbereite Mitglieder dieser Mailinglisten
antworten generell auf Fragen innerhalb weniger Stunden. Allerdings wird auch hier eine ein
Grundverständnis für GIS und IT-Hintergrundwissen vorausgesetzt, denn die Antworten sind meist
sehr kurz und mit Fachwörtern überhäuft. Die Hilfe-Datei bietet – nach einigem Einlesen – eine
gute Dokumentation, ebenso ein spezielles Wiki sowie einschlägige Literatur.
Als nächstes soll nun auf Funktionsumfang und Funktionsweise im Speziellen eingegangen werden.
1 Quellen: E-Mail Markus Neteler (digest freegis-list) + Informationen aus http://www.osgeo.org/grass
chromgruen
GRASS
Bedienbarkeit
Installation
Die Installation über die Synaptik-Paketverwaltung in Ubuntu-Linux ist relativ leicht, zu empfehlen
sind die Installationshinweise auf der GRASS-Homepage http://grass.itc.it/. Um die aktuellste
Version (momentan GRASS 6.2.2) zu installieren, war es allerdings nötig, die Software-Quellen für
die Synaptik-Paketverwaltung zu erweitern. (Die Voreinstellung von Ubuntu beinhaltete die Version
GRASS 6.0).
Die notwendigen Schritte dafür sind auch nachzulesen unter http://les-ejk.cz/ubuntu/.
Benutzeroberfläche
Generelles zum Arbeiten mit GRASS: Wie bereits
beschrieben ist GRASS ein aus vielen Modulen
bestehendes System. Das heißt, dass für sämtliche
Berechnungen jeweils das „zuständige“ Modul aufgerufen
werden muss. Einen systematischen Überblick über die
Module erhält man über den sog. „GIS-Manager“, eine
graphische Oberfläche, in der die Module über
verschiedenen Menus via Mausklick aufgerufen werden
können.
Des Weiteren gibt es ein sog. „Map Display“, in dem die
verschiedenen Layer dargestellt werden können.
Auf den ersten Blick ist das Arbeiten mit GRASS recht
unübersichtlich, v.a. weil jeder neue Schritt (und jedes neu
Abbildung 1: Haupt-Benutzeroberfläche: Der "GISaufgerufene Modul in einem eigenen Fenster angezeigt
Manager"
wird, durch die man sich über die Taskleiste navigiert. Nach
einer gewissen Einarbeitungszeit ist aber die Verknüpfung zwischen Kommandozeilen-Eingabe und
graphischer Steuerung sehr hilfreich, weil über die Kommandozeile die Fenster viel schneller
anzusteuern sind. Es ist auch möglich, zwischen Kommandozeile und graphischer Steuerung
jeweils beim Eingeben eines Vorganges zu wechseln.
Generell ist aber das sog. „Front-End“ eher als benutzerunfreundlich zu werten, da intuitives
Manipulieren eines Layers über die rechte Maustaste nicht möglich ist. Gewöhnungsbedürftig ist
beispielsweise auch, dass der Mauspfeil mit der Spitze nach rechts oben zeigt.
Sprachen
Es besteht in der deutschen Version ein Durcheinander von deutsch und englisch. Die zumindest
teilweise Übersetzung ins Deutsche kann allerdings manchmal recht hilfreich sein für die Benutzer,
die mit den englischen Fachbegriffen nicht ganz firm sind. Die Hilfe-Datei liegt allerdings komplett
in englischer Sprache vor, allein einige Manuskripte sind auf deutsch gehalten.
chromgruen
GIS-Umgebung
Hilfe-Funktion
Es wird bei der Installation eine Hilfe-Funktion mit installiert, die lokal auf dem Rechner liegt und
die man über den Browser öffnen kann. Im Internet kann man dieses Manual aber auch einsehen;
der Vorteil ist, dass es hier laufend aktualisiert wird. Es gibt allerdings keine Schlagwort-Suche in
der Hilfe; man ist gezwungen, die Beschreibung jedes benötigten Modules nachzuschlagen. Über
einen Button in der jeweiligen graphischen Oberfläche eines Modules gelangt man allerdings direkt
zu der richtigen Stelle in der Hilfe-Datei.
Dokumentation
Die Funktionen von GRASS sind gut dokumentiert, einen Überblick findet man auf der GRASSWiki-Seite (s.u.). In deutscher Sprache gibt es ein umfangreiches Free-GIS Tutorial von Heiko
Kehlenbrink (2002) und von der GDF Hannover ein Skript zur Einführung in GRASS (2005).
User-Community
Die User-Community ist eine der größten im Open Source Desktop-GIS Bereich, es werden über
die User-Mailingliste momentan ca. 20 E-Mails pro Tag geschrieben. Auf dort angesprochene
Probleme wird oft relativ zeitnah eingegangen. Ebenso existiert ein GRASS-Wiki, wo FAQ's,
Hinweise zu Blogs, Dokumentationen und Installationsanleitungen beschrieben sind. Abrufbar ist
dies unter: http://grass.gdf-hannover.de/wiki/Main_Page
Performance
Betriebssysteme / Hardware-Plattformen
GRASS ist für alle gängigen Betriebssysteme verfügbar; für Windows ist ein PlugIn („cygwin“)
notwendig. Während der Tests mit der Linux Distribution „Ubuntu“ gab es sowohl bei der Version
7.06 als auch 7.10 keine Probleme. Der für den Test verwendete PC verfügt zwar über 2GB
Arbeitsspeicher, allerdings sind Cache und verwendetes Mainboard nicht auf dem aktuellsten Stand,
was sicherlich die Performance beeinträchtigt.
Erweiterbarkeit und Anpassbarkeit (Scripting, PlugIns)
Aufgrund der Kommandozeilen-Struktur ist das Verwenden von Skripten sehr einfach. Auch wenn
man die Graphische Benutzeroberfläche (GUI) nutzt, so erscheint bei der Eingabe bzw. dem
Anklicken der jeweiligen Optionen automatisch der ausgeschriebene Befehl im unteren Teil der
Oberfläche. Diesen kann man kopieren und in das Skript einbauen, so dass auch in der
Programmierung ungeübten Personen das Schreiben von Skripten möglich ist. Für die Verwendung
des Skriptes startet man GRASS am besten im textbasierten Modus (Eingabe im Terminal: grass62
-text) und führt das Skript aus.
Fallbeispiel „Skript für r.to.vect“
Aufgabenstellung: Vektorisieren von 23 verschiedenen Rasterkarten
Vorgehensweise: Schreiben eines Skriptes, das die darin enthaltenen Aufgaben „stapelweise“
abarbeitet. Wenn GRASS im textbasierten Modus (durch Eingabe von „grass62 -text“ in einem
Terminal) gestartet wird, kann man das Skript ausführen (z.B. durch Eingabe von
„./onl_rtovect.sh“).
chromgruen
Support
chromgruen
Abbildung 2: Shell-Skript
Für dieses Verfahren wurde exemplarisch die benötigte Zeit für das Konvertieren von Raster- in
Vektordaten gemessen:
Karte 20
9 min
89.533 erzeugte Flächen
Karte 21
9:19 min
104.909 erzeugte Flächen
Karte 22
7:53 min
24.804 erzeugte Flächen
Karte 23
7:39 min
7.647 erzeugte Flächen
* benutzte Hardware: Athlon-Prozessor mit 2 GB Arbeitsspeicher
Anhand dieser Statistik sieht man deutlich, dass die Bearbeitungsdauer hauptsächlich von der
Ausdehnung der „Current Region“ abhängt, und weniger von der Anzahl zu erstellender Polygone.
(Die „Current Region“ ist ein in XY-Koordinaten angegebener Raum, in dem die Berechnungen
stattfinden).
Performance / Stabilität
Was bei größeren Datensätzen oder / und weiter erstreckten Locations zeitraubend ist, ist die
Funktionsweise des Map Displays. Bei jeder Tätigkeit im Display (Zoomen oder Aktualisieren)
werden alle Daten für den sichtbaren Bereich neu berechnet, was relativ lange dauern kann. Das
Programm läuft allerdings sehr stabil. Fehlermeldungen werden im Ausgabefenster angezeigt.
Besonders zeitintensiv sind Konvertierungen von Rasterdaten, sowie das Im- und Exportieren
größerer Datenmengen.
Kernfunktionen
Die einzelnen Funktionen sollen im Folgenden nach Themen geordnet beschrieben werden. Dabei
werden zu jedem Thema die jeweils wichtigstenen Module erläutert, wobei stellenweise auch auf
Konvertieren von Geodaten in digitale Form
Import / Export
Vektordaten: Über die Module „v.in.ogr“ bzw. „v.out.ogr“ werden viele Formate für den Im- bzw.
Export unterstützt. Vor dem Import muss eine Location erstellt werden, wobei Angaben zur Art der
Projektion und zur Ausdehnung des zu betrachtenden Gebietes gemacht werden müssen. Es ist aber
auch möglich, die Einstellungen der Location beim Import der jeweiligen Vektorkarte anzupassen.
Zur Zeit werden folgende Datenformate unterstützt: ESRI_Shapefile, MapInfo_File, Tiger, S57,
DGN, Memory, CSV, GML, KML, Interlis_1, Interlis_2, SQLite, ODBC, PostgreSQL, MySQL
Mit „v.in.ascii“ und „v.in.db“ können Daten aus Textformaten (für größere Datensätze vorteilhaft)
bzw. Daten aus Datenbanken importiert werden. Mit „v.external“ werden externe Karten angezeigt,
aber nicht importiert.
Rasterdaten
Für Rasterdaten gibt es die Module „r.in.gdal“ bzw. „r.out.gdal“. Hierbei werden folgende Formate
unterstützt: AAIGrid, BMP, BSB, DTED, ELAS, ENVI, FIT, GIF, GTiff, HVA, JPEG, MEM, MFF,
MFF2, NITF, PAux, PNG, PNM, VRT, XPM.
Grid 3D Daten:
Module: „r3.in.ascii“ bzw. „r3.out.ascii“. Mögliche Formate sind: ASCII 3D, Vis5D, VTK ASCII
Es besteht aber auch die Möglichkeit, Grid 3D-Daten aus 3D-Punktwolken zu erzeugen (mit
„v.to.rast3“)
Topologie-Funktionen
GRASS ist ein topologisches GIS. Das bedeuted, dass benachbarte geographische Komponenten
einer Vektorkarte in Bezug zueinander stehen. Nicht-topologische GI-Systemen arbeiten mit sog.
„Pseudo-Topologien“. Diese entstehen, wenn z.B. jedes zweier aneinander grenzender Polygone
eine eigene Grenze besitzt. Da pseudo-topologische Daten weniger Rechenkapazität benötigen, gibt
es 2 Module, solche Daten zu erstellen: „v.in.ascii“ für das einbinden von Punktdaten und
„v.surf.rst“, mit dem räumliche Analysen von Punkt- und Liniendaten möglich sind.
Für das Topologie-Management gibt es 4 Funktionen:
●
„v.build“ ermöglicht den Neuaufbau der Topologie. Es können Informationen zur Topologie
in der Standardausgabe angezeigt werden.
●
„v.clean“ bereinigt Topologie-Fehler. Es stehen 12 Operatoren zur Verfügung (fürderen
Funktionen vgl. Skript GDF Hannover). So können z.B. mit dem Operator „snap“ Linien
mit den nächstliegenden Vertices verbunden werden. Zu den jeweiligen Operatoren kann
immer ein Treshold in den jeweiligen Map Units angegeben werden.
●
„v.digit“ ist das Modul für manuelles Digitalisieren von Vektordaten. Für größere
Datenmengen bietet sich allerdings das automatisierte Bereinigen von Fehlern an.
●
mit „v.type“ können Daten, wenn möglich, von einem Topologie-Typ in einen anderen
konvertiert werden (z.B. von „lines“ nach „boundaries“)
chromgruen
Problemstellungen, die bei den Tests auftraten, eingegangen wird.
●
points: Punkte
●
lines: Eine ausgerichtete Sequenz verbundener Vertices zwischen zwei Endpunkten (nodes)
●
boundary: Eine Grenze, die eine Fläche beschreibt
●
centroid: Ein Punkt innerhalb einer geschlossenen Grenze
●
area: Der topologische Verbund von boundary und centroid
●
face: 3D area
Es ist weiterhin geplant, die Vektortypen kernel (3D-centroid) und volume (topologischer Verbund
von face und kernel) zu implementieren.
Digitalisieren
Das Digitalisieren ist in GRASS relativ
benutzerunfreundlich. Man muss zuerst einen Monitor
starten und gelangt dann über den Befehl „v.digit“ an eine
Werkzeugleiste, mit der man in einem neu aufgerufenem
Monitor digitalisieren kann.
Die einzelnen Schritte sind in der Dokumentation gut
beschrieben. Es besteht die Möglichkeit, sämtliche Arten
von Vektoren zu digitalisieren, man kann Vertices
verschieben oder schaffen, eine Linie teilen oder eine
Abbildung 3: Oberfläche für das Digitalisieren
komplette Linie bzw. Polygon komplett verschieben. Über
das Attribut-Fenster kann man Daten eingeben, in den Einstellungen lässt sich die
„Schnappdistanz“ einstellen. Allerdings springt der Cursor, wenn man sich in der Nähe eines Vertex
befindet, nicht automatisch auf den Vertex, sondern erst beim „Klick“. Ein weiterer großer Nachteil
ist, dass man keine Kurven digitalisieren kann.
Eine Besonderheit von GRASS ist das Digitalisieren von Rasterdaten mit „r.digit“. So kann man
über einen Monitor Linien, Flächen und Kreise digitalisieren. Wie die meisten anderen interaktiven
Programme erfordert dies die Eingabe des Befehls in das Terminal, in dem GRASS gestartet wurde,
anstatt des Weges über das Ausgabefenster.
Datenbank-Management
Das Management der Datenbanken in GRASS funktioniert über Datenbank-Management-Systeme
(DBMS). Der Aufbau folgt der gewohnten Zweiteilung von Geometrien und Attributen. Die
Geometrien liegen wie schon beschrieben entweder als topologische Daten vor und sind dann im
nativen Format von GRASS gespeichert - die Ordnerstruktur befindet sich dann immer im
jeweiligen Mapset-Ordner - , oder sie können als pseudo-topologische Daten (z.B. shapefiles, DGNDateien) angezeigt werden, dann ist eine Bearbeitung der Daten allerdings nicht möglich. Dies
erfordert das vollständige Importieren der Daten.
Die Attribute können in allen möglichen relationalen Datenbanken gespeichert sein, z.B.
PostgreSQL, Oracle oder MySQL. Die Verbindung einer Vektorkarte mit einerAttributtabelle wird
automatisch über eine „dbln“-Datei geregelt. Über ein DBMI (Database Management Interface)
kann der Benutzer den Bezug zwischen Geometrien und Attributen festlegen. Standardmäßig
werden die Daten allerdings im dBase-Format gespeichert. Zwar ist die Bearbeitung eine dBaseDatei relativ einfach und ohne SQL-Kenntnisse möglich, jedoch ist das GRASS-interne
chromgruen
Es werden folgende Vektortypen unterschieden:
Arbeiten mit Datenbanken innerhalb von GRASS
Die Module für das Datenbank-Management sind grob in 2 Gruppen aufgeteilt.
●
Die db.*-Befehle regeln den Bezug zur Datenbank: Mit dem Modul „db.execute“ können
SQL-Befehle direkt in die Kommandozeile eingegeben werden, es ist so möglich, direkt auf
die Datenbank zuzugreifen. Über das Modul „db.connect“ wird die Verbindung zur
Datenbank geregelt.
●
mittels der v.db.*-Befehle wird der Bezug zwischen Vektorkarte und Tabellengeregelt. Die
einzelnen Vektorkarten können mit mehreren Tabellen verbunden werden. Dadurch erhält
man verschiedene Layer. Ein Layer ist also nichts anderes als ein „Link“ zwischen
Geometrie und jeweiliger Attributtabelle. Welches Objekt mit welchem Attribut verknüpft
wird, ist durch den Kategorie-Wert (cat) festgelegt, also eine Objekt-ID. Wird einem Objekt
in einem Layer keine Kategorie-Wert zugeteilt, so wird es nicht angezeigt. Dies ist ein
Vorteil, wenn z.B. mehrere Objekttypen in einer Vektorkartevorliegen und ein Objekttyp
nicht dargestellt werden soll.
Optional ist sind diese Module auch im den GIS-Manager über den Menüpunkt „Datenbanken“
aufrufbar. (siehe Kapitel „Benutzeroberfläche“)
Die Eigenschaften der Geometrien können mit „v.to.db“ zu der Datenbank hinzugefügt werden. Mit
„v.extract“ ist es wiederum möglich, Vektorgeometrien und Attribute aus einer Karte zu selektieren
und in einer neuen Karte zu speichern.
Selektieren der Daten in GRASS
„Intuitives“ Selektieren der Daten über das Klicken auf ein Objekt oder die Auswahl in einer
Attributtabelle, wie man es von anderen GIS-Programmen kennt, ist bei GRASS nicht möglich. Die
Selektion von Daten ist über verschiedene Module geregelt:
●
Über einen SQL-Befehl selektierte Daten (mit „v.db.select“) können in das
Standardausgabefenster gedruckt werden, allerdings nicht im Monitor markiert werden.
●
das Editieren von Attributwerten eines bestimmten Objektes zwar auch über dessen
Selektion im graphischen Fenster möglich, man muss allerdings den Weg über das Modul
„v.digit“ wählen.
Die Selektion nach Attributen läuft über das Modul „v.extract“. Dabei werden die selektierten
Objekte in einer neuen Karte gespeichert. Man kann zum einen nach Kategorie-Werten selektieren,
zum anderen über SQL-Statements.
Durchführen von Field Calculations
Dies ist möglich mit dem SQL-Statement „update“ über das Modul „db.execute“. Liegen die Daten
2 Support von SQL-Befehlen siehe Manual.
chromgruen
Management dieser Tabellen eben durch den fehlenden SQL-Support relativ eingeschränkt. So ist
beispielsweise das Löschen von Spalten nicht möglich.2 Liegen die Daten in relationalen
Datenbanken vor, so ist der volle SQL-Support gewährleistet. Die Daten können, bei PostGISSupport auch mit Koordinaten, am günstigsten in der Datenbank selbst manipuliert werden.
Relative Bezüge herstellen (Joins and Relates)
Das Erstellen relativer Bezüge ist in GRASS durchaus sehr gut möglich, es erfordert allerdings
schon eine gewissen Kenntnis der Module. Im GIS-Manager sind diese hauptsächlich über den
Menüpunkt „Datenbanken“ aufrufbar. Je nach Aufgabenstellung sind verschiedene Schritte
notwendig.
Um eine Tabelle mit einer Vektorkarte zu verbinden, ist zunächst für die jeweilige Vektorkarte eine
neue Tabelle zu erstellen (mit „v.db.addtable“). Dabei kann man – neben der Vergabevon
Tabellenname und Spaltennamen – einstellen, in welchen Layer die Tabelle eingefügt werden soll.
Nun ist es möglich, über das Modul „db.execute“ via SQL-Befehl Daten aus anderen Tabellen in
diese Tabelle zu importieren. Werden die Daten in der Vektorkarte nun verändert, bleiben sie in der
Originaltabelle in ihrem ursprünglichen Zustand erhalten.
Möchte man jedoch das Gegenteil erreichen, und auch die Daten der Originaltabelle verändern (im
Jargon „Relate“ genannt), so erreicht man dies, indem man die Vektorkarte mit der Tabelle
verbindet (Modul „v.db.connect“). Im GIS-Manager befindet sich dieses Modul im Menüpunkt
„Vektor“. Auch hier ist wieder einstellbar, über welchen Layer die Verbindungerstellt werden soll.
Verknüpfen einer Vektorkarte mit einer Datenbank
Dies ist möglich über das Modul „v.db.connect“. Dazu
muss die Datenbank allerdings über einen Primärschlüssel
verfügen. Dieser wird dann dem Kategorie-Wert des
jeweiligen Vektorobjektes zugeordnet. Das Manipulieren
der Daten wirkt sich nun allerdings auch auf die
angekoppelte Datenbank aus. In den meisten Fällen ist es
daher ratsam, eine Kopie der Original-Datenbank mit der
Vektorkarte zu verknüpfen.
Abbildung 4: Graphische Oberfläche "v.db.connect"
Fallbeispiel: Exportieren von Vektordaten in eine PostGIS-Datenbank
Das folgende Beispiel beschreibt den Export von Vektordaten in eine PostGIS-Datenbank und die
Zusammenführung mehrerer Tabellen innerhalb der Datenbank.
Die Daten aus 23 Karten sollten in die Datenbank überführt werden. Dazu wurde ein Skript
geschrieben, durch das die einzelnen Schritte hintereinander abgearbeitet wurden. Der Befehl,
exemplarisch für 1 Karte lautet:
v.out.ogr input=nrw2kl1kl8kl7 type=area 'dsn=PG:host=localhost dbname=nrw2005 user=postgres'
olayer=nrw2kl1kl8kl7 layer=1 format=PostgreSQL
Für das Überführen der Daten in 1 Tabelle wurde innerhalb der Datenbank über einen SQL-Befehl
chromgruen
in einer Datenbank mit vollem SQL-Support vor, können mit diesem Modul auch komplexere
Berechnungen durchgeführt werden. Eine intuitivere Bedienung über einen Field-Calculator, wie er
bei anderen GIS-Programmen existiert, ist leider nicht möglich.
INSERT INTO ergebnis (geometry, value)
SELECT nrw2kl1kl8kl7.wkb_geometry, nrw2kl1kl8kl7.a_a_a_valu
FROM nrw2kl1kl8kl7;
Geoprocessing: Datenmanipulation und Analysefunktionen
Konvertieren von Daten (Raster <-> Vektor)
Konvertieren von Raster- in Vektordaten
Diese Funktion wird über das Modul „r.to.vect“ gesteuert.
Dabei wird aus jedem Pixel ein Polygon erzeugt, welches
als Attribute eine eigene ID sowie den Wert der Rasterzelle
erhält. Aus aneinandergrenzenden Rasterzellen mit dem
gleichen Wert wird lediglich 1 (diese umfassendes) Polygon
erzeugt. Als Output wird eine neue Vektorkarte generiert,
die Rasterkarte bleibt vorhanden.
Sollen nicht alle Rasterzellen, sondern nur die mit einem
bestimmten Wert vektorisiert weredn, kann man dies mit
dem Modul „r.contour“ tun.
Abbildung 5: Graphische Oberfläche des Moduls
"r.to.vect"
Beispiel
Aus einem Satellitenbild sollten für jedes Pixel ein Polygon erzeugt werden, dabei sollten Pixel mit
dem gleichen Wert eine zusammenhängende Fläche bilden.
Folgende Punkte sind bei der Durchführung aufgefallen:
1. Bei zu starkem Zoom im Map Display kam es zum
Absturz des Programms.
2. Die GRID-Resolution ist ausschlaggebend für die
Lagegenauigkeit der Karte im Raum. Ist die GRIDResolution zu hoch eingestellt (in diesem Beispiel
war sie zuerst auf einen Wert von 30 gesetzt), so
verschob sich die Karte um ca. 4 Meter nach Osten
bzw. 4,35 Meter nach Süden. Bei einer GRIDResolution von 1 lag die Verschiebung bei nur noch Abbildung 6: Erzeugte Polygone liegen
halbtransparent auf dem Rasterbild
3cm bzw. 25 cm.
Nachteil: Die Rechendauer für das Umrechnen der Rasterzellen in Polygone als auch für das
Exportieren in ein Shapefile erhöhte sich. (Umrechnen von Raster nach Vektor: Erst ca. 1
Minute, dann ca. 30 Minuten; das Exportieren dauerte erst ca. 2 Std., dann ca. 4 Std)
3. Beim Umrechnen der Raster- in Vektordaten kam es an einigen Stellen zu
Überschneidungen, d.h. die Polygone lagen nicht genau auf den Rasterzellen. Das lag
wahrscheinlich an den Voreinstellungen für die Erstellung der Location, diese sollte
quadratisch angelegt werden, so dass die „default region“, mit der GRASS später rechnet,
ebenso viele Spalten wie Zeilen enthält.
chromgruen
gelöst:
Konvertieren von Vektor- in Rasterdaten
Diese Funktion ist zu den gleichen Bedingungen durchführbar wie die oben beschriebene. Über den
Befehl „v.to.rast“ kann man eine graphische Oberfläche aufrufen, über die man die verschiedenen
Einstellungen vornehmen kann. Dabei kann die Attributspalte, die für die Farbgebung relevant sein
soll, angegeben werden.
Datentransformation (Georeferenzieren, Projektion ändern)
Georeferenzieren
Die Prozedur für das Georeferenzieren wurde für die Version 6.2 völlig überarbeitet. Was vorher
mehrere Schritte über verschiedene Befehle in Anspruch nahm, wird in dieser Version über eine
Graphische Oberfläche in 2 Schritten abgefasst: 1. Aufrufen des GUI Georectifiers über die
Taskleiste von GRASS, Eingabe der zu georeferenzierenden Karte, wenn nötig, anlegen einer
Gruppe, für die die Georeferenzierung gelten soll. 2. Starten des Georeferenzier-Vorganges: Klicken
auf die zu georeferenzierende Karte und Eingabe der neuen Koordinaten für den angegklickten
Punkt. (Diese können z.B. über den Befehl „d.what.rast“ von einer bereits georeferenzierten Karte
abgefragt werden. Nach Eingabe von min. 4 Koordinaten Georeferenzierung starten.
Abbildung 7: Schritt 2: Passpunkte eingeben und Bild entzerren
chromgruen
Des Weiteren sollte bei der Erstellung der Location darauf geachtet werden, dass die
Ausdehnung der „default region“ ziemlich genau das zu berechnende Gebiet umfasst, da
ansonsten der Rechenaufwand größer wird.
In der Hilfe-Datei (im Verzeichnis r.proj) befindet sich eine ausführliche Anleitung für die
Transformation einer Karte in eine andere Projektion. Unter anderem wird darauf hingewiesen, dass
der Rechenaufwand sehr hoch sein kann, und somit das Gebiet, in welches projiziert werden soll,
möglichst gut abgesteckt sein sollte. Dies kann man dadurch erreichen, dass man zuerst eine
Vektordatei mit der Umrandung des Rasterbildes umprojiziert, und so die Ausmaße der neuen
Location genau ermittelt.
Abbildung 9: Pixel sind nun nicht mehr quadratisch
Das
Ändern der Projektion für 1 Satellitenbild dauerte ca. 2
Std. Für einen kleinen Bereich wurde die Prozedur
r.to.vect durchgeführt. Durch die Transformation des Abbildung 8: Einstellungen für die Transformation
Rasterbildes werden die Pixel natürlich leicht verzerrt.
Vector Processing
Im Bereich Vector Processing stehen verschiedene Funktionen zur Verfügung, die hauptsächlich
über das Modul „v.overlay“ gesteuert werden. In diesem Modul fließen 2 Vektorkarten in die
Berechnung ein, und je nach gewähltem Operator erhält man als Ergebnis eine Vektorkarte mit
unterschiedlichen Teilmengen der beiden Eingangskarten. In der Attributtabelle der resultierenden
Vektorkarte werden die Spalten der in die Berechnung eingeflossenen Attributtabellen aufsummiert.
Wählbare Operatoren:
●
„or“ Datenvereinigung („union“), die Daten beider Eingangskarten werden in die neue
Karte übernommen
●
„and“ Datenverschneidung („intersection“), nur die Daten aus dem
Überschneidungsbereich werden in die neue Karte übernommen
●
„not“ Daten ausschneiden („cutout“), sich überschneidende Daten werden nicht mit in die
neue Karte übernommen
●
„xnot“ Datenüberlagerung („overlay“), nur die Daten aus einer Karte, die in dem
Überschneidungsbereich liegen, werden übernommen.
Weitere Funktionen im Bereich Vector Processing:
chromgruen
Ändern der Projektion
Zusammenfügen von Karten: Des weiteren besteht die Möglichkeit, mit dem Werkzeug
„v.patch“ aneinander angrenzende Karten zusammenzufügen. Dafür müssen allerdings die
Atrributtabellen in ihrem Aufbau identisch sein. Die Berechnung ist aber auch mit
„v.overlay“ möglich.
●
Verbinden von Polygonen mit gleichem Attributwert: Möchte man nun die Linie, an der
zusammengefügte Karten aneinandergrenzen aufbrechen, so müssen zuerst etwaige
Topologiefehler, die beim Überschneiden von Linien auftreten können, mit dem Modul
„v.clean“ bereinigt werden. Danach können mit „v.dissolve“ die Polygone mit gleichem
Wert zusammengefügt werden.
●
Karten erstellen durch Selektion: „v.select“ erzeugt eine Karte, die Teilbereiche der
ursprünglichen Karte enthält (siehe Beispiel). Mit „v.extract“ wird eine Karte erzeugt, die
Teilmengen der ursprünglichen Karte enthält.
●
Nachbarschaftsanalysen: Unter diesen Begriff fallen bei GRASS zum einen das Erstellen
von Polygonen aus einer Punkt-Wolke. Je nach Berechnungsmethode werden ThiessenPolygone oder Delauney-Dreiecke berechnet. Die zu benutzenden Module sind „v.voroni“
und v.delauney. Zweitens ist das Berechnen von Distanzen zwischen Objekten verschiedener
Vektorkarten möglich (mit „v.distance“, siehe Beispiel)
●
Sampling: Mit dem Modul „v.sample“ können Vektordaten einer Karte (nur für Punkte
möglich) mit Rasterdaten verglichen werden. Die Vektordaten erhalten als neue Spalte die
Differenz der Werte einer ausgewählten Spalte der Vektorobjekte und der Rasterdaten.
Dabei sind die bekannten Interpolations-Möglichkeiten „nearest neighbor“, „cubic
convolution“ oder „bilinear interpolation“ wählbar.
Es gibt weiterhin eine Vielzahl „kleinerer“ Module, die für einige Problemstellungen gut geeignet
sind. So ist es möglich, ein rechtwinkliges Vektorgitter zu erzeugen, ein Umrandungspolygon der
current region oder einer Punktwolke zu erstellen, parallele Linien oder bestimmte Anzahl Punkte
zu erstellen, die sich zufällig über den Raum verteilen.
Beispiele
Karte mit Teilbereichen einer Vektorkarte erstellen (mit „v.select“)
Mit diesem Werkzeug wurden die Polygone in eine neue
Karte überführt, die in der Abbildung von dem
quadratischen Polygon im Vordergrund (zumindest in
Teilbereichen) überlagert werden. Der Unterschied zu der
Methode der Datenverschneidung (mit „v.overlay“) liegt in
der Attributtabelle der neu erstellten Karte. Mit „v.overlay“
würde erstens das quadratische Polygon mit in die neue
Karte integriert und zweitens die Spalten der jeweiligen
Attributtabellen in die neue Attributtabelle übernommen.
Abbildung 10: Teilmenge der Vektorkarte mit
"v.select"
chromgruen
●
chromgruen
Berechnung von Distanzen (mit „v.distance“)
Dieses Modul beinhaltet eine Vielzahl von Möglichkeiten.
In diesem Beispiel wurde die kürzeste Distanz zischen
Punkten und Linien (Straßen) gemessen (in einem Bereich
von <100m) und als Wert zu der Attributtabelle der Punkte
hinzugefügt. Man kann aber auch z.B. die Distanz zum
nächsten Punkt (über die Linie), den Winkel zur Linie oder
einen Attributswert der Linie als Attribut zu den Punkten
übernehmen. Als Option kann man eine Vektorkarte der
Distanzen in Form von Linien darstellen lassen (in diesem
Fall rot dargestellt).
Abbildung 11: Vektorkarte mit Linien (rot), welche
die Punkte mit den Straßen verbinden
Netzwerk-Funktionen
GRASS hält eine Reihe nützlicher Netzwerkfunktionen bereit, die im Folgenden kurz erläutert
werden sollen. Für das Arbeiten mit Netzwerkfunktionen müssen die Daten als Linien vorliegen.
●
Kürzeste-Weg-Analyse („d.path“ und „v.net.path“): Mit dem Modul „d.path“ ist es möglich,
interaktiv über einen Monitor Start- und Endpunkt im Netzwerk zu wählen. (siehe Beispiel)
●
Subnetze ausweisen („v.net.alloc“): Zum Ausweisen von Gebieten optimaler Erreichbarkeit
(siehe Beispiel).
●
Weiterhin sind einige andere Netzwerk-Funktionen in das Programm integriert, z.B. die sog.
Traveling-Salesman-Problematik, mit der eine optimale Route auf einem Netzwerk
berechnet wird, bei der mehrere fixe Punkte in den Routenverlauf einbezogen werden
können.
Beispiele
Kürzeste-Weg-Analyse (mit „d.path“)
In diesem Beispiel wurde das Modul „d.path“ gewählt, dass
sich relativ gut für die Darstellung des kürzesten Weges
eignet. In dem geöffneten Monitor kann man zwei Punkte
anklicken, zwischen denen dann die Berechnung vollzogen
wird. Es ist möglich, Kostenwerte (z.B.
Höchstgeschwindigkeiten) für beide Richtungen eines
Linienverlaufes anzugeben; auch den verschiedenen Nodes
kann eine Attributsspalte mit Kosten zugewiesen werden.
Dies wirkt sich dann in Form eines erhöhten Widerstandes
auf den gewählten Weg aus.
Abbildung 12: Berechnung des schnellsten Weges
chromgruen
Subnetze ausweisen (mit „v.net.alloc“)
Hierbei werden Gebiete optimaler Erreichbarkeit auf Basis
von Linien (Straßen) dargestellt. Um zu diesem Ergebnis zu
kommen, sind einige Schritte notwendig: Die Vektorkarte
mit den Märkten (Punkten) muss mit der Straßenkarte
verschnitten werden (mit „v.patch“). Dann müssen mit
„v.distance“ die Punkte mit dem Straßennetz verbunden
werden, und diese Distanzen ebenfalls mit der Straßenkarte
in einer neuen Karte kombiniert werden. Zu beachten ist,
dass bei der Erstellung einer neuen Karte immer jeweils die
Datenbankverbindung der Vektorkarte zugewiesen werden
muss, wenn erforderlich. Mit „v.clean“ ist weiterhin eine
topologische Säuberung erforderlich. In diesem Beispiel ist
etwa der gelbe Punkt aufgrund eines topologischen Fehlers
nicht mit dem Netzwerk verbunden.
Abbildung 13: Gebiete optimaler Erreichbarkeit
Raster Processing
Das Arbeiten mit Rasterkarten ist eines der Kernelemente von GRASS. Es erfolgt hauptsächlich
über sog. „Monitore“. Es können bis zu 7 solcher Monitore gleichzeitig aktiviert sein; der Befehl
zum Aufrufen eines Monitors lautet „d.mon“. Mit „d.rast“ werden die einzelnen Rasterkarten in den
Monitor geladen.
Funktionsumfang
Abfragen von Informationen und Statistiken
Es gibt verschiedene Optionen zum Abfragen von Rasterinformationen. Mit „r.what.rast“ können
Koordinaten und Pixelwerte interaktiv über das Klicken auf die in einen Monitor geladene Karte
angezeigt werden. Über das Werzeug „r.stats“ kann je nach gewähltem Parameter z.B. die Anzahl
der Zellen (die Rasterwerte werden in Klassen geordnet angezeigt) mit dazugehöriger Fläche
ausgegeben werden. Die Ausgabe kann auch in eine Datei umgeleitet werden. Weitere Optionen in
dieser Hinsicht bietet auch „r.reports“.
Des Weiteren ist das Erstellen eines Reports basierend auf Statistiken zweier sich überlagernder
Rasterkarten möglich („r.coin“). Diese über einfaches Anzeigen von Informationen hinaus
reichende Funktionen sind in dem Kapitel „Statistische Funktionen“ beschrieben.
Manipulation und Analyse
Die Anwendungen sind so zahlreich, dass die Wichtigsten im Folgenden nur stichwortartig
beschrieben werden. Bei der Berechnung werden jeweils immer neue Rasterkarten erstellt, so dass
die Originaldaten erhalten bleiben.
●
Überlagerung mehrerer (bis zu 11) Rasterkarten, wobei für jede Kombination der Werte
überlagernder Rasterzellen in der Output-Karte eine neue Kategorie geschaffen wird. Die
Rasterwerte der Input-Karten werden für jede Rasterzelle mitgeführt, so dass die OutputKarte mehrere Spalten enthält. Modul: „r.cross“.
●
Nachbarschaftsanalysen: Auf jede Rasterzelle wirken sich bei der Berechnung die
jeweiligen Werte der umliegenden Zellen aus. Die Werte aller Rasterzellen werden somit
neu berechnet. Es gibt mehrere Operatoren (Summe, Durchschnitt, Medianwert), mit denen
●
Reklassifizierung von Rasterdaten, wobei Rasterdaten in neue Kategorien eingeteilt werden
können. Modul: „r.reclass“ --> siehe Beispiel. Des Weiteren besteht die Möglichkeit, den
verschiedenen Rasterzellen eine eigene Farbcodierung zuzuweisen (mit „r.color“).
●
Das „Resampling“ (Veränderung der Größe der Rasterzellen) wird anhand der
Regionseinstellungen vorgenommen. Setzt man dort beispielsweise die Grid Resolution
höher, werden die Rasterzellen nach der „nearest neighbor“-Methode neu berechnet. Modul:
„r.resample“
●
Erstellen von Puffern für Rasterdaten
Darüber hinaus sind weitere Funktionen für hydrologische Berechnungen, für sog.
„Buschfeuermodellierungen“ und für Landschaftsstrukturmodellierungen in das System integriert.
Diese lassen sich am Besten im GIS-Manager unter dem Menupunkt „Raster“ aufrufen, da sie dort
strukturiert aufgeführt sind.
Beispiele
Sichtbarkeitsanalyse („r.los“)
Mit diesem Werkzeug können alle von einem bestimmten
Standort einsehbaren Bereiche der Karte abgebildet werden
(siehe Abbildung). Dabei erhalten alle anderen Pixel als
Wert „no data“, der Bereich, den die Sichtbarkeitsanalyse
ausschließt (hier gelb dargestellt) erhält den Wert 0. Die
Funktion ist mit Hilfe des GUI selbsterklärend aufgebaut,
man kann den Bereich der Betrachtung sowie die Höhe des
Betrachters einstellen. Die in blau dargestellten Zellen
enthalten als Wert den vertikalen Betrachtungswinkel zur
betrachteten Rasterzelle.
Rasterwerte und Profile entlang von Transekten anzeigen
lassen („d.profile /r.profile /r.transect“)
Abbildung 14: Sichtbarkeitsanalyse
Mit den oben genannten Werkzeugen können Profile entlang
von Transekten erzeugt werden. Die Lagebestimmung der
Transekte erfolgt wieder über einen Monitor, den man
vorher starten muss. Die Handhabung ist übersichtlich: Mit
der linken Maustaste werden Koordinaten abgefragt, mit der
mittleren Maustaste Start- und Endpunkte der Transekten
festgelegt. Eine präzise Festlegung der Koordinaten über
dieses Verfahren ist allerdings kaum möglich. Die Ausgabe
der Rasterwerte (Entfernung zum Startpunkt, geographische
Koordinaten und Werte der Rasterzellen) kann in ein
Textformat umgeleitet werden.
Abbildung 15: Profile erstellen mit „d.profile“
chromgruen
festgelegt werden kann, unter welchen Parametern die Berechnung durchgeführt werden
soll. Modul: „r.neighbors“
chromgruen
Reklassifizierung („r.reclass“)
Mit diesem Werkzeug ist es möglich, Rasterdaten in neue
Kategorien einzuteilen. Die Handhabung kann auf
verschiedene Weisen erfolgen. Am einfachsten funktionierte
es über eine interaktive Eingabe der neuen Daten in das
Terminal. Gibt man dort den Befehl „r.reclass“ ein, so wird
man zuerst nach dem Namen der Input-Karte, danach nach
dem der neuen Output-Karte gefragt. Als nächsten Schritt
legt man die Regeln fest, in diesem Beispiel 1=1 / 2=1 / 3=1
/ ... / 7=2 / 8=2 / 9=2 /... . Mit der Eingabe „end“ wird die
neue Karte erstellt.
Abbildung 16: Reklassifizierung eines
Satellitenbildes
Kostenanalyse („r.cost“)
Mit diesem Werkzeug ist es möglich, aus einem Rasterbild,
dessen Werte der Rasterzellen Kosten symbolisieren, eine
Rasterkarte zu erstellen, die darstellt, wie weit sich ein
Gebiet mit gegebenen Kosten erstreckt. In der Abbildung
symbolisieren die verschiedenen Farben in Klassen
eingeteilte Kosten, die mit über die Distanz hinweg
kumuliert werden. Mit „r.drain“ besteht des Weiteren die
Möglichkeit, eine Route zu erstellen, die den Weg der
geringsten Kosten zwischen zwei Punkten darstellt.
Abbildung 17: Kostenanalyse
Hydrologische Modellierung
Zusätzlich zu den Standardfunktionen der Rasteranalysen gibt es bei GRASS drei Bereiche, bei
denen es um die Entwicklung von Modellen auf Rasterdatenbasis geht. Dies sind die
„Buschfeuermodellierung“ und die „Landschaftsstrukturmodellierung“, mit der hauptsächlich über
verschiedene Sampling-Methoden Berechnungen gestartet werden können, wobei dann über
verschiedene Indikatoren Aussagen zur Landschaftsstruktur getroffen werden können. Der dritte
Bereich ist die hydrologische Modellierung. Auf diese soll im Folgenden etwas genauer
eingegangen werden.
●
Flussnetzwerk in ein DGM eintiefen: siehe Beispiel
●
Einzugsgebietsanalysen: siehe Beispiel
●
Füllen eines Sees bis zu einem angegebenen Level auf Grundlage eines DEM's
●
Überflutungszenarien: Bei der Berechnung werden u.a. Rasterkarten mit
Niederschlagsmengen, Versickerungsmengen und Abflussmengen benötigt.
●
Erzeugen von Fließlinien auf Grundlage einer
Rasterkarte (mit „r.flow“)
Beispiele
Flussnetzwerk in ein DGM eintiefen (mit „r.carve“)
Abbildung 18: Eingetiefter Fluss in einem Rasterbild
in 3D-Ansicht
Einzugsgebietsanalysen (mit „r.watershed“)
Hierbei ist eine hohe Vielfalt an Optionen gegeben. So
können neben Einzugsgebietsflächen auch die Abflüsse
selbst als Rasterdaten ausgegeben werden, wie in der
Abbildung dargestellt ist. Dabei wird die Fläche des
Einzugsgebietes, von der ein Fluss das Wasser bezieht, in
Fließrichtung immer weiter aufsummiert (bis zum
angegebenen Treshold), so dass man für jede Rasterzelle
des Flusses ablesen kann, wie groß die Fläche des
Einzugsgebietes bis zu dieser Stelle ist.
Abbildung 19: Berechnung der Abflüsse aus den
Einzugsgebieten
Statistische Funktionen
Für statistische Berechnungen lässt sich grundlegend das Programm „R“ empfehlen, ein Open
Source Projekt, welches über ein PlugIn auf GRASS-Funktionen zurückgreifen kann. Vor einem
kurzen Überblick über den Umfang dieses Programms sollen aber noch die statistischen Funktionen
in GRASS erläutert werden.
Es gibt in GRASS relativ viele unterschiedliche Module, mit denen sich Werte aus Karten anzeigen
lassen, wie die bereits beschriebenen Module „r.what.rast“ oder „r.stats“. Da die Statistikfunktionen
in der Hilfedatei den jeweiligen Raster- oder Vektorfunktionen zugeordnet sind und somit das
Arbeiten über die manuelle Eingabe recht unübersichtlich ist, bietet sich in diesem Fall wieder der
Weg über den GIS-Manager an. Dabei sind die statistischen Funktionen jeweils immer
zusammengefasst als unterster Menupunkt im Hauptmenu (in den Kategorien Raster, Vektor,
Imagery und Grid3D) aufgeführt.
GRASS enthält einige Statistik-Module, die über das bloße Abfragen von Werten hinausgehen:
●
Für Rasterkarten:
○
Korrelationen zwischen einzelnen Karten, das Ergebnis wird als Matrix ausgegeben
(„r.covar“)
○
Lineare Regressionen zweier Karten, wobei die Steigung der Regressionsgeraden, ihr YAchsenabschnitt, der Medianwert der Werte der Rasterzellen beider Karten sowie die
Standardabweichungen berechnet werden. („r.regression.line“)
○
Kreuztabellierungen: siehe Beispiel („r.coin“)
○
Stichproben anhand von Transekten („r.profile“): Es wird die Kilometrierung und sowie
zugeordnet die Werte der Rasterzellen ausgegeben. Leider wird bei diesem Vorgang
keine Karte mit dem Transekt erzeugt, dafür muss man das Modul „r.drain“ benutzen.
○
Univariate Statistiken erstellen („r.univar“). Ausgabe verschiedener statistischer Werte
einer Rasterkarte, z.B. Minimum und Maximum des Wertebereichs,
Standardabweichung, Varianz, etc.
chromgruen
Durch die Berechnung eines digitalen Geländemodells aus verschiedenen Punkten mit
unterschiedlichen Höhenangaben kommt es vor, dass gerade bei kleineren Tälern in ihrer
Beschaffenheit interpolationsbedingte Unregelmäßigkeiten auftreten. Mit dem Modul „r.carve“
kann man diese etwas abschwächen, indem man das Rasterbild im Bereich von Liniensegmenten
(Flüssen) etwas eintieft. Das Modul ist sehr übersichtlich aufgebaut, es ist möglich dem Fluss eine
bestimmte Tiefe und eine bestimmte Breite zuzuweisen.
Für Vektorkarten:
○
Univariate Statistiken erstellen („v.univar“)
○
Normalität der Punkteverteilung testen („v.normal“): Es werden in Abhängigkeit einer
anzugebenden Attributspalte verschiedene Testverfahren durchgeführt. Unterstützt
werden z.B. der Kolmogorov-Smirnov-Test oder der Chi-Quadrat-Test. Die Ergebnisse
der jeweiligen Tests werden in der Ausgabe angezeigt.
○
Univariate Statistiken für Zellen einer Rasterkarte erstellen, die von Vektordaten
überlagert werden. Diese Daten werden in die Attributtabelle der Vektorobjekte
geschrieben, dazu werden neue Spalten erzeugt. („v.rast.stats“)
Des Weiteren gibt es für Images und Grid3D-Daten statistische Werkzeuge, die in ihren Funktionen
aber denen der Funktionen für Rasterkarten ähneln.
Prinzipiell gilt festzuhalten, dass es für nahezu jede „einfachere“ statistische Problemstellung, die
auf eine Auswertung einer oder mehrerer übereinanderliegender Karten beruht, mit Hilfe dieses
Programmes gelöst werden kann. Für die Verarbeitung komplexerer mathematischer Funktionen
wird das Programm „R“ empfohlen, dass über ein GRASS-PlugIn verfügt.
Beispiele
Kreuztabellierungen („r.coin“)
Bei dieser Funktion werden die Werte sich überschneidender Rasterzellen (aus 2 Rasterkarten)
tabellarisch aufgeführt, wobei die Werte der 2. Karte den Werten der 1. Karte zugeordnet werden. In
diesem Beispiel sind für das Jahr 2005 die Pixelwerte eines Satellitenbildes reklassifiziert worden
(siehe BSP „r.reclass“). Mit dem Modul „r.coin“ werden nun die Werte aus dem Jahr 1975 mit den
reklassifizierten (in 2 Klassen eingeteilten) auf Basis ihrer Lage verglichen:
chromgruen
●
COINCIDENCE TABULATION REPORT
|
|
|
| Layer 1: reclass
-- NO
|
| Layer 2: raster8_klass19--
|
| Mask:
none
|
| Units:
square kilometers
|
|------------------------------------------------------------------------------|
| Window:
North: 5768600
|
West: 2670610
|
|
East: 2674610
South: 5764600
|
|
+------------------------------------------------------------------------------+
Panel #1 of 1
|
|
| reclass
cat# |
|
1 |
2 |
Panel Row Total
|
w cat 0 | w/o cat 0 |
|--------------------------------------------------------------------|
|r
1 |
2.08 |
0.01 |
2.09 |
2.09 |
|a
2 |
2.39 |
0.02 |
2.41 |
2.41 |
|s
3 |
2.53 |
0.09 |
2.62 |
2.62 |
|t
7 |
0.10 |
0.58 |
0.68 |
0.68 |
|e
|r
8 |
9 |
0.77 |
0.03 |
2.89 |
1.16 |
3.66 |
1.20 |
3.66 |
1.20 |
|8
10 |
0.06 |
1.54 |
1.60 |
1.60 |
|_
11 |
0.02 |
1.73 |
1.75 |
1.75 |
Text 1: Auszug der Ausgabe von "r.coin", Spalten: reklassifizierte Werte (1: 1-3 / 2:711)
Anhand dieser Auswertung wird deutlich, dass 2,89 km² Fläche mit dem Wert 8 (hier fett gedruckt)
mit der Kategorie 2 der reklassifizierten Karte übereinstimmen, während 0,77 km² in ihrer Lage
sich mit Gebieten der Kategorie 1 decken. Daraus wird z.B. in diesem Fall die Veränderung der
Flächennutzung quantifiziert, in diesem Beispiel ist im Zeitraum 1975-2005 0,77 km² des
Mischwaldes (Wert 8) in versiegelte Fläche (reklassifizierter Wert 1) umgewandelt worden.
Das Programm „R“
Funktionsumfang von R: Linerares und nicht-lineares Modellieren, statistische Tests,
Zeitreihenanalysen, Klassifikationen, Erstellen von Klustern, uvm.
„spgrass“6 ist die aktuelle Version des R/GRASS Interfaces. „R“ kann so in einer laufenden
GRASS-Session gestartet werden. Dadurch ist es möglich, erweiterte statistische Funktionen für
GRASS-Daten zu nutzen.
chromgruen
|
GRASS-intern gibt es verschiedene Datenformate, die entsprechend auch verarbeitet werden
können. Weitere Datenformate müssen erst importiert werden.
●
Raster 2,5D: Die Farbwerte eines Rasterbildes werden als Höhenwerte gesetzt. Da es sich
bei diesem Format die Höhenwerte nicht als Koordinatenwerte eingebunden sind, wird
dieses Format 2,5D genannt.
●
Raster 3D (Voxel): Ein 3-dimensionales Rasterbild kann als ein Stapel 2-dimensionaler
Rasterbilder verstanden werden.
●
Vektor 3D-Punkte: Die Höhenwerte der Punkte liegen nicht als Angabe in einer
Attributstabelle vor, sondern als z-Koordinatenwerte.
●
Vektor 3D-Linien: Gleiche Eigenschaften wie 3D-Punktdaten. Wenn Linien in 3D vorliegen,
ist es somit möglich, dass Straßen „untereinander“ her verlaufen (z.B. aufgrund einer
Brücke) und sich demnach nicht zwingend schneiden.
●
Vektor 3D-Polygone
Import / Export
In GRASS ist lediglich das Im- und Exportieren von AutoCAD DXF-Dateien möglich. Allerdings
können über ein Zusatzprogramm weitere gängige Formate importiert werden, indem sie über das
Programm vorher in ein AutoCAD DXF-Format konvertiert werden. Ein solches Programm ist z.B.
wcvt2pov.exe, dessen Konvertierungsmöglichkeiten kurz dargestellt werden sollen:
Import: AOFF (*.geo), AutoCAD DXF (*.dxf), 3D Studio (*.3ds), Neutral File Format (*.nff),
RAW (*.raw), TPOLY (*.tpo), True Type Font (*.ttf), Wavefront (*.obj), World Toolki
t (*.nff)
Export: AutoCAD DXF (*.dxf), 3D Studio (*.asc), Neutral File Format (*.nff), Povray V2.2
(*.pov), Povray V2.2 Include (*.inc), RAW (*.raw), TPOLY (*.tpo), True Space (*.cob), VRML
V1.0 (*.wrl), Wavefront (*.obj), World Toolkit (*.nff)
Darstellung
Wie schon beschrieben, ist NVIZ ein reines
Visualisierungsinstrument. Somit ist es nicht möglich,
Objekte im 3D Modell per Mausklick zu selektieren oder
Informationen über diese Objekte abzurufen. Auch das
Bewegen im Modell ist sehr umständlich. So ist z.B. keine
„Zoom-“ oder „Orbit-Funktion“ über das Mausrad
integriert. Allerdings zeigt sich auch an diesem Beispiel,
was so charakteristisch für GRASS im Allgemeinen ist: Die
„Orbit-Funktion“ ist integriert und wählbar, indem man den
Abbildung 20: Dreidimensionale Darstellung einer
Flugmodus aktiviert. Nun kann man mittels der dritten
2,5D-Rasterkarte mit NVIZ
Maustaste den Blick schwenken lassen. Man kann somit die
Geschwindigkeit des Schwenkens individuell einstellen und
auch wählen, ob man „sich selbst“ oder die Oberfläche drehen möchte. Es existiert also eine
Vielzahl von möglichen Optionen, allerdings ist bei der Programmierung die intuitive Bedienbarkeit
eher vernachlässigt worden.
chromgruen
Verarbeitung dreidimensionaler Daten und Visualisierungsmöglichkeiten
Die Kartenerstellung erfolgt in GRASS über PostScript-Dateien. Die erzeugten .ps-Dateien können
dann über andere Programme bearbeitet werden, um die endgültige Karte zu erzeugen. Die
Erstellung einer solchen .ps-Datei bzw. .eps-Datei läuft über das Modul „ps.map“. Darin wird
festgelegt, welcher Maßstab verwendet werden soll oder wie viele Kopien erzeugt werden sollen; es
können aber auch weitere Anweisungen für das Erscheinungsbild der Karte eingegeben werden, wie
das folgende Beipiel aus dem GRASS-Wiki verdeutlicht:
# S imp le ps .map examp le us ing the Spea r fi sh da tase t
g . r eg ion r as t = e l e va t i on . 1 0m
ps .map ou tpu t = spea r fi sh . ps << EOF
pape r us - l e t t e r
end
sca l e 1 : 1 20000
r as t e r e l e va t i on . 1 0m
co lo r t ab l e
where 2 6 . 7 5
end
t ex t 50% - 7% Spea r fi sh County , ND (Moun t Rushmore )
f on t s i ze 16
end
map in fo
where 4 . 5 7 . 2 5
end
v l i nes roads
where l abe l ~ ' h i ghway ' OR l abe l = ' i n t e r s t a t e '
co lo r grey
end
vpo in t s a r chs i t e s
symbo l bas i c / t r i ang l e
end
end3
EOF
Labels, Annotations
Mit dem Modul „v.label“ können Beschriftungen für die Objekte generiert werden. Dabei kann u.a.
Ausrichtung des Textes, Farbe und Größe individuell angegeben werden. Über eine zusätzliche
Ebene können die Beschriftungen dann im Map Display angezeigt werden.
Thematische Einfärbung
Auch für die thematische Einfärbung muss zuerst eine neue Ebene in dem GIS-Manager ausgewählt
werden. Allerdings sind die Auswahlmöglichkeiten für die Art der Einfärbung begrenzt: Es kann
lediglich eine Attributsspalte für die Einfärbung ausgewählt werden, somit kann man
unterschiedliche Werte nur über die Symbolstärke oder die Farbwahl visualisieren.
3 Quelle: http://grass.gdf-hannover.de/wiki/Psmap_simple_example
chromgruen
Kartenerstellung
Aufgabenstellung: Konvertierung von Rasterdaten in Vektordaten für eine deutsche Großstadt
Abgeleitete Aufgaben:
●
Transformation der Daten in eine andere Projektion
●
Zusammenfügen von Daten aus 2 verschiedenen Satellitenbildern
Vorgehensweise:
1. Erstellung zweier Locations (für jede Projektion eine Location)
2. Erstellung eines Polygons mit den UmgebungsKoordinaten des Untersuchungsgebietes im
Koordinatensystem GK3 mit „v.in.region“
3. Transformation des Umrandungs-Polygons in GK2
mit „v.proj“ (siehe Abbildung)
4. Festlegen der „Current Region“ auf ein Gebiet, das
nicht viel größer ist als das Untersuchungsgebiet mit
„g.region“ (--> Der Rechenaufwand für die
Vektorisierung wird geringer)
5. Vektorisierung der (Ausschnitte der) Rasterdaten
mit „r.to.vect“
6. Bereinigung des Überschneidungsbereiches
zwischen den beiden Satellitenbildern mit
„v.overlay“ --> Die aus dem oberen Satellitenbild
erzeugten Polygone werden an der Grenze zum
unteren Satellitenbild abgeschnitten. (Option „not“)
Abbildung 21: In die GK2-Zone projeziertes
Polygon "Untersuchungsgebiet"
7. Zusammenfügen der Polygone aus beiden
Satellitenbildern mit „v.overlay“ (Option „or“)
8. Ausschneiden der nicht zum Untersuchungsgebiet
gehörenden Polygone mit „v.overlay“ (Option
„and“)
9. Transformation der Vektorkarte in die
Zielprojektion
10. Exportieren der Daten als Shapefile.
Abbildung 22: Der untere Teil des oberen
Satellitenbildes ist bereits vektorisiert
chromgruen
Fallbeispiel
Kurzbeschreibung
Quantum GIS ist ein Anwender-freundliches Geographisches Informationssystem aus dem Open
Source-Bereich, welches auf GNU/Linux, Unix, Mac OSX und Windows läuft. Es unterstützt
Vektor-, Raster- und Datenbankformate und ist lizenziert unter den Bestimmungen der GNU
General Public License.
Quantum GIS ermöglicht das Öffnen, Editieren und Erzeugen von einer Vielzahl von Vektor- und
Rasterformaten, incl ESRI shapefiles, Spatial Data aus PostgreSQL/PostGIS, GRASS Vektor- und
Rasterformate oder auch GeoTiffs. Des Weiteren können Plug-Ins und GIS Applications unter
Verwendung von C++ oder Python selbst erzeugt werden. Das Erstellen und Drucken von Karten
erfolgt über eine Druckfunktion.
QGIS unterstützt Plug-Ins, welche zum Beispiel das Importieren von begrenzten Text-Daten, das
Herunterladen von Routen und Wegpunkten eines GPS oder das Visualisieren von OGC WMS und
WFS Layern möglich machen.4
4 Übersetzung von http://www.osgeo.org/qgis
chromgruen
Quantum GIS
Kurzbeschreibung
Open Source Software Image Map (OSSIM) ist ein High-Performance-System für Remote Sensing,
Image Processing, Geographische Informationssysteme und Photogrammetrie. Es wird seit 1996
entwickelt.
OSSIM wurde durch verschiedene US-Amerikanische Institutionen aus dem Geheimdienst- und
Verteidigungsbereich gegründet. Angewendet wird die Technologie heute vor allem im Bereich
Forschung und Planung.
Gebaut als Serie von High-Performance Software-Bibliotheken, ist es in der Programmiersprache
C++ geschrieben, wodurch es die neuesten Technologien aus dem Objekt-Orientierten Software
Design beinhaltet. Es wurden viele Befehlszeilen, GUI-Applications und integrierte Systeme
implementiert – von denen einige bereits bereits im System vorinstalliert mitgeliefert werden.5
5 Übersetzung von http://www.osgeo.org/ossim
chromgruen
OSSIM
Kurzbeschreibung
Charakteristisch für gvSIG ist eine benutzerfreundliche Oberfläche, verbunden mit einem schnellen
Zugang zu den gebräuchlichsten Raster- und Vektorformaten. Im einem einzigen Interface werden
sowohl lokale als auch nicht-lokale Daten (über WMS, WCS oder WFS-Formate) abgewickelt.
Besonders ansprechend ist es für universitäre Anwendungen wegen der R&D&I-Komponente.
Besondere Aufmerksamkeit liegt auf der Expansion des Projektes, so dass Programmierern das
Einbringen selbst entwickelter Plug-Ins mit Bestandteilen der gvSIG-Bibliotheken besonders leicht
gemacht wird.6
6 Übersetzung aus http://www.gvsig.gva.es/index.php?id=que-es-gvsig&L=2
chromgruen
gvSIG
Kurzbeschreibung
„SAGA – System für Automatisierte Geowissenschaftliche Analysen- ist eine hybride GIS
software. Mit SAGA soll (Geo-) Wissenschatlern eine effektive, leicht zu erlernende Plattform zur
Verfügung gestellt werden, um geowissenschaftliche Methoden mittels eines bislang auf diesem
Sektor einzigartigem Application Programming Interface (API) zu implementieren. Der Zugriff auf
die Methoden wird durch die benutzerfreundliche Bedienoberfläche (Graphical User Interface GUI) von SAGA gewährleistet. Daraus resultiert eine ständig wachsende wissenschatliche
Methodensammlung, die in Form von implementierbaren Modulen zur Verfügung steht.“7
7 aus http://www.saga-gis.uni-goettingen.de/html/index.php?newlang=deu
chromgruen
SAGA
Kurzbeschreibung
„OpenJUMP ist ein Desktop-GIS, geschrieben in Java und basierend auf JUMP GIS. Es kann mit
Vektordaten umgehen und verwendet Standards wie etwa GML, WMS und WFS.“8
OpenJump ist das Ergebnis einzelner internationaler Teilprojekte, bestehend aus dem englischsprachigen Jump-Pilot Project, dem französischen Projekt SIGLE, dem Pirol-Projekt der deutschen
Universität Osnabrück, den Firmen Lat/Lon GmbH und Integrated System Analysts, Inc.; sowie
einer großen Anzahl freischaffender Programmierer.9
8 http://www.freegis.org/database/?cat=20
9 Übersetzung aus http://openjump.org/wiki/show/OpenJUMP
chromgruen
Open-Jump
Zielerfüllungsskala
Bewertungsgrad
nicht erfüllt
schlecht
mäßig
durchschnittlich
gut
sehr gut
Wert
0
1
2
3
4
5
Bewertung
Kriterium
Gewichtung GRASS
GIS-Umgebung
20%
Bedienbarkeit
10%
4
Support
05%
3
Performance
05%
3
Kernfunktionen
80%
Datenbank-Management
20%
4
Digitalisieren
20%
3
Datenmanipulation / Analyse
30%
5
Kartenerstellung
10%
2
Bewertung gesamt
3,8
chromgruen
Bewertung der GIS-Programme
Allgemein
●
Refractions Reserch Inc. (2007): The State of Open Source GIS. Abrufbar unter
http://www.refractions.net
●
OSGeo Journal Volume 1 (Mai 2007): Abrufbar unter: http://www.osgeo.org/journal
●
OSGeo Journal Volume 2 (September 2007): Abrufbar unter: http://www.osgeo.org/journal
●
Roland Krüger (2004): Open Source GIS in der Kommunalverwaltung (Ein Vergleich von
Open Source Lösungen, Download unter http://www.rolandkrueger.de )
●
Community: Ein Wiki von OSGeo – Mailinglisten, Projekte, Dokumente
http://wiki.osgeo.org (hier gibt es auch eine deutsche Community)
●
Übersicht zu Open Source:
●
○
http://www.freegis.org/
○
http://www.opensourcegis.org/
○
http://www.maptools.org/
○
http://www.osgeo.org/
Nützliche GIS-bezogene Internetseiten:
○
http://www.gisdevelopment.net
○
http://www.spatiallyadjusted.com (GIS-Blog)
○
http://www.reprojected.com (GIS-Blog)
GRASS
●
GRASS GIS 6.0 Kursskript, abrufbar unter: http://www.gdfhannover.de/lit_html/grass60_v1.2/node2.html
●
Markus Neteler and Helena Mitasova (2007): Open Source GIS: A GRASS GIS Approach –
in: The International Series in Engineering and Computer Science: Volume 773. Third
Edition. New York.
●
Offizielle GRASS GIS Homepage: http://grass.itc.it/
●
GRASS-Wiki: http://grass.gdf-hannover.de/wiki
chromgruen
Literatur

Documentos relacionados