Übung - Universität Heidelberg

Transcrição

Übung - Universität Heidelberg
Einführung in Theorie und Praxis
Geographischer Informationssysteme
Dr. Alexander Zipf
European Media Lab
Lutz Nücker
Universität Heidelberg
Geographisches Institut
Einführung in Theorie und Praxis Geographischer Informationssysteme
von Dr. Alexander Zipf und Lutz Nücker
Copyright © 2001 von Alexander Zipf und Lutz Nücker
Alle in diesem Buch enthaltenen Angaben, Daten Ergebnisse usw. wurden von den Autoren nach bestem Wissen erstellt und von ihnen mit
größtmöglicher Sorgfalt überprüft. Dennoch sind inhaltliche Fehler nicht völlig auszuschließen. Daher erfolgen die Angaben usw. ohne jegliche
Verpflichtung oder Garantie der Autoren. Sie übernehmen deshalb keinerlei Verantwortung und Haftung für etwa vorhandene inhaltliche
Unrichtigkeiten.
Dieses Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des
Urheberrechtsgesetzes ist ohne Zustimmung der Autoren unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen,
Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen.
Inhaltsverzeichnis
Vorwort ........................................................................................................................................................i
1. Grundlagen von Geographischen Informationssystemen..................................................................1
1.1. Was ist ein GIS............................................................................................................................1
1.1.1. Wozu GIS?......................................................................................................................2
1.1.2. GIS und Datenbanken.....................................................................................................3
1.1.3. GIS und CAD .................................................................................................................3
1.1.4. GIS und Kartographie.....................................................................................................4
1.2. Einsatzbereiche von Geoinformationssystemen .........................................................................4
1.3. Digitale Geodaten .......................................................................................................................6
1.3.1. Geoobjekte......................................................................................................................6
1.3.2. Geometrie versus Topologie ...........................................................................................7
1.3.2.1. Geometrie: Raster versus Vektor .......................................................................7
1.3.2.2. Topologie ...........................................................................................................8
1.3.2.3. Topologie in ARC/INFO....................................................................................9
1.3.2.3.1. Connectivity ..........................................................................................9
1.3.2.3.2. Flächendefinition...................................................................................9
1.3.2.3.3. Contiguity..............................................................................................9
1.3.3. Thematik und Dynamik..................................................................................................9
1.3.3.1. Thematik ............................................................................................................9
1.3.3.1.1. Ebenenprinzip (Layerprinzip) ...............................................................9
1.3.3.1.2. Objektklassenprinzip (Klassenhierarchien).........................................10
1.3.3.2. Dynamik...........................................................................................................11
1.4. Datenbanken..............................................................................................................................11
1.4.1. Datenmodelle von ARC/INFO .....................................................................................12
1.4.1.1. Konzeptionelle Modellierung mit ER-Diagrammen........................................12
1.4.1.1.1. Entität ..................................................................................................13
1.4.1.1.2. Beziehung............................................................................................13
1.4.1.1.3. Attribute...............................................................................................13
1.4.1.1.4. Kardinaliät...........................................................................................13
1.4.1.2. Logische Datenbankschemata..........................................................................14
1.4.1.3. Relationale Datenbanken .................................................................................14
1.4.1.4. Grundbegriffe...................................................................................................14
1.4.1.4.1. Transaktion ..........................................................................................15
1.4.1.4.2. Primärschlüssel....................................................................................15
1.4.1.4.3. Fremdschlüssel ....................................................................................15
1.4.1.4.4. Sichten (Views) ...................................................................................16
1.4.1.4.5. Integritätsbedingungen ........................................................................16
1.4.1.4.6. Referentielle Integrität.........................................................................16
1.4.1.4.7. Indizes .................................................................................................17
1.4.1.5. Normalformen..................................................................................................17
1.4.1.6. Manipulation und Selektion von Sachdaten mit SQL......................................18
1.4.1.6.1. SQL als Datendefinitionssprache ........................................................18
1.4.1.6.2. Relationale Operationen......................................................................18
1.4.1.6.3. Mengenoperationen.............................................................................19
1.4.1.7. Raumbezogene Erweiterungen von SQL (OPENGIS) ....................................19
v
1.4.1.8. Die Spatial Database Engine (SDE) von ESRI................................................21
1.4.1.9. Auf dem Weg zu raumzeitlichen Datenbanken................................................22
1.4.2. Speicherstrukturen für raumbezogene Daten ...............................................................22
1.5. Analysefunktionen ....................................................................................................................23
1.5.1. Räumliche Transformationen .......................................................................................23
1.5.2. Räumliche Suche ..........................................................................................................23
1.5.3. Räumliche Statistik.......................................................................................................24
1.5.4. Netzwerkanalyse...........................................................................................................24
1.5.5. Oberflächenanalyse.......................................................................................................24
1.6. Datenqualität und Metadaten ....................................................................................................25
1.6.1. Fehlerquellen ................................................................................................................25
1.6.1.1. Allgemeine Fehlerquellen................................................................................25
1.6.1.2. Räumliche Variationen.....................................................................................25
1.6.1.3. Verarbeitungsfehler ..........................................................................................26
1.6.2. Metadaten .....................................................................................................................26
Weiterführende Literatur: .......................................................................................................28
2. Der Aufbau von ARC/INFO ...............................................................................................................29
2.1. Architektur ................................................................................................................................29
2.1.1. Die Benutzeroberfläche ARCTOOLS ..........................................................................30
2.2. Datenmodelle ............................................................................................................................31
2.2.1. Vektordaten...................................................................................................................31
2.2.2. Verknüpfung der Features mit den Attributdaten .........................................................32
2.2.2.1. Das Coverage ...................................................................................................32
2.2.2.2. Die Coverage Feature Classes..........................................................................33
2.2.2.2.1. Arcs als Liniensegmente .....................................................................33
2.2.2.2.2. Nodes (Knotenpunkte) ........................................................................34
2.2.2.2.3. Pseudo Nodes ......................................................................................34
2.2.2.2.4. Dangling Nodes...................................................................................35
2.2.2.2.5. Polygone..............................................................................................35
2.2.2.2.6. Polygon Attributes...............................................................................36
2.2.2.2.7. Tics ......................................................................................................37
2.2.2.2.8. Annotation...........................................................................................37
2.2.2.2.9. Links....................................................................................................37
2.2.2.2.10. Route-Systems...................................................................................38
2.2.2.2.11. Coverage Begrenzung (Boundary, BND)..........................................39
2.2.2.2.12. Regions..............................................................................................39
2.2.2.2.13. Coverage-Verzeichnisstruktur ...........................................................40
2.2.2.3. Map-Libraries ..................................................................................................40
2.2.2.4. CAD-Zeichnungen...........................................................................................40
2.2.2.5. Shapefiles .........................................................................................................41
2.2.3. Rasterdaten ...................................................................................................................41
2.2.3.1. Grids.................................................................................................................41
2.2.3.2. Images ..............................................................................................................43
2.2.4. Dreidimensionale Daten ...............................................................................................43
2.2.4.1. Lattice ..............................................................................................................44
2.2.4.2. Dreiecksvermaschung (TIN)............................................................................44
2.3. Erste Schritte in ARC/INFO .....................................................................................................45
vi
2.3.1. Workspaces...................................................................................................................46
2.3.2. Grundsätzliche Bedienung............................................................................................46
2.3.3. Initialisierung der Graphikfenster.................................................................................47
2.3.4. Voreinstellungen beim Programmstart .........................................................................48
2.4. Erhalten von Hilfe .....................................................................................................................48
2.4.1. Hilfe auf der Kommandozeile ......................................................................................49
2.4.2. Die Online-Hilfe ARCDOC .........................................................................................49
2.4.3. Der Tool Browser .........................................................................................................52
2.4.4. Weitere nützliche Tools ................................................................................................53
2.4.4.1. Der Datenbetrachter .........................................................................................53
2.4.4.2. Umrechung von Maßeinheiten.........................................................................53
Weiterführende Literatur: .......................................................................................................54
3. Projektplanung und Erstellen der raumbezogenen Datengrundlage mit ARCEDIT...................57
3.1. Fragestellung und Arbeitsablauf ...............................................................................................57
3.2. Geometriedaten in ARC/INFO übernehmen/erstellen ..............................................................58
3.2.1. Vorbereitung .................................................................................................................58
3.2.1.1. Kartengrundlage...............................................................................................58
3.2.1.2. Reihenfolge der Arbeitsschritte festlegen........................................................58
3.2.1.3. Namensbeschränkungen und -konventionen, Verzeichnisstruktur ..................58
3.2.1.4. Kartenmaterial vorbereiten ..............................................................................59
3.2.1.4.1. Karten ggfs. auf anderes Material übertragen .....................................60
3.2.1.4.2. TICs bestimmen und markieren ..........................................................60
3.2.1.4.3. unklare Stellen markieren....................................................................61
3.2.1.4.4. Richtung der Linien festlegen .............................................................61
3.2.2. Geometriedaten.............................................................................................................62
3.2.2.1. Digitalisierung..................................................................................................62
3.2.2.1.1. Toleranzen ...........................................................................................62
3.2.2.2. Fuzzy Tolerance ...............................................................................................62
3.2.2.3. Grain Tolerance................................................................................................63
3.2.2.4. Weed Tolerance................................................................................................63
3.2.2.4.1. Editfeature festlegen............................................................................64
3.2.2.4.2. Digitalisierbrett....................................................................................64
3.2.2.4.3. Digitalisieren am Bildschirm ..............................................................66
3.2.2.5. Georeferenzieren von Rastergraphiken mit register und rectify ....................68
3.2.2.6. Import/Export...................................................................................................70
3.2.3. Import von Vektorkoordinaten......................................................................................71
3.2.4. ASCII-Schnittstelle für Vektor-Geometriedaten (GENERATE) ..................................73
3.2.5. DXF-Dateien ................................................................................................................75
3.2.6. Weitere Schnittstellen ...................................................................................................77
3.2.6.1. ATKIS / EDBS.................................................................................................77
3.2.6.2. SICAD..............................................................................................................77
3.2.6.3. Export von Vektorkoordinaten .........................................................................77
3.2.6.4. Import und Export von Rasterdaten .................................................................78
3.2.6.4.1. import ..................................................................................................78
3.2.6.4.2. generate ...............................................................................................78
3.2.6.4.3. shape/dxf .............................................................................................78
3.2.6.5. Fehlerkorrektur ................................................................................................78
vii
3.2.6.5.1. Nodes...................................................................................................78
3.2.6.5.1.1. Dangling Nodes ......................................................................78
3.2.6.5.1.2. Pseudo Nodes..........................................................................79
3.2.6.5.2. Arcs .....................................................................................................79
3.2.6.5.2.1. Under/Overshoots ...................................................................79
3.2.6.5.2.2. Überschneidung ohne Node....................................................79
3.2.6.5.2.3. Sliver-Polygone.......................................................................80
3.2.6.5.3. Labels ..................................................................................................81
3.2.6.5.3.1. Fehler in Polygonlabels ..........................................................81
3.2.6.6. Fehlende Labels ...............................................................................................81
3.2.6.7. Doppelte Labels ...............................................................................................81
3.2.6.8. Topologie erzeugen ..........................................................................................82
3.2.6.9. Koordinatentransformation / Projektion ..........................................................82
3.2.6.9.1. Transformation in das Gauss-Krüger System .....................................83
3.2.7. Andere Projektionen.....................................................................................................84
3.2.8. Sachdaten......................................................................................................................86
3.2.9. Die INFO-Datenbank ...................................................................................................87
3.2.9.1. Hinzufügen von Attributen ..............................................................................87
3.2.9.2. Erstellen eigener INFO-Tabellen .....................................................................88
3.2.9.3. Einlesen von ASCII-Tabellen ..........................................................................88
3.2.9.4. Bearbeiten von INFO-Dateien .........................................................................89
3.2.9.5. Erstellen von Indizes........................................................................................89
3.2.9.6. Berechnung neuer Variablen ............................................................................89
3.2.9.7. Verknüpfen mehrerer Tabellen.........................................................................89
3.2.10. Anbindung externer Sachdaten...................................................................................90
3.2.11. Anbindung an eine Oracle Datenbank........................................................................91
3.2.11.1. DBase-Dateien (DBF)....................................................................................92
3.2.11.1.1. Import von dbase-Tabellen mit dbaseinfo ........................................92
3.2.11.1.2. Export von dbase-Tabellen mit infodbase ........................................92
3.2.11.2. INFO ..............................................................................................................92
3.2.11.3. Tables .............................................................................................................92
3.2.11.4. externe DB .....................................................................................................93
3.2.12. Speichern einer Sitzung als Makro.............................................................................93
3.2.12.1. Editieren der Datengrundlage ........................................................................95
3.2.12.1.1. Korrektur angrenzender Coverages ...................................................95
3.2.12.1.2. Anpassen von Elementen ..................................................................95
3.2.13. INFO-Dateien anlegen................................................................................................95
3.3. Sachdaten hinzufügen/bearbeiten .............................................................................................95
3.3.1. Tabellen erzeugen .........................................................................................................96
3.3.2. Attributdateien über joinitem verbinden.......................................................................98
3.4. Relate erzeugen .........................................................................................................................98
3.5. Erstellen der Geometrie/Rohdaten in ARCEDIT....................................................................101
3.5.1. Grundfunktionen.........................................................................................................101
3.5.2. Öffnen eines Coverages..............................................................................................105
3.5.3. Darstellung der Editiergrundlage................................................................................106
3.5.4. Hintergrundcoverages und -bilder ..............................................................................107
3.5.5. Auswahl der zu editierenden Elemente ......................................................................107
3.5.5.1. Graphische Auswahl ......................................................................................107
viii
3.5.5.2. Logische Auswahl..........................................................................................108
3.5.6. Editieren oder Erzeugen eines Coverages ..................................................................108
3.5.7. Editieren von Arcs ......................................................................................................108
3.5.7.1. Verschieben und Kopieren von Arcs..............................................................110
3.5.7.2. Editieren von Nodes.......................................................................................110
3.5.7.3. Weitere Editierfunktionen ..............................................................................110
3.5.7.4. Ändern der Geometrie....................................................................................111
3.5.7.5. Editieren von Vertices ....................................................................................111
3.5.7.6. Drehen und aneinanderschnappen .................................................................111
3.5.8. Editieren anderer Feature Classes ..............................................................................112
3.5.9. Vergabe von Kennummern .........................................................................................113
Weiterführende Literatur: .....................................................................................................114
4. Räumliche Analyse in ARC und mit CommandTools....................................................................117
4.1. Geographische Analyse...........................................................................................................117
4.2. Verschneidungsoperationen und Bufferbildung ......................................................................117
4.2.1. Union..........................................................................................................................120
4.2.1.1. Polygoncoverage............................................................................................121
4.2.2. Identity.......................................................................................................................122
4.2.2.1. Punktcoverage................................................................................................122
4.2.2.2. Liniencoverage...............................................................................................123
4.2.2.3. Polygoncoverage............................................................................................125
4.2.3. Intersect .....................................................................................................................126
4.2.3.1. Punktcoverage................................................................................................126
4.2.3.2. Liniencoverage...............................................................................................127
4.2.3.3. Polygoncoverage............................................................................................128
4.2.4. Clip.............................................................................................................................129
4.2.4.1. Punktcoverage................................................................................................130
4.2.4.2. Liniencoverage...............................................................................................131
4.2.4.3. Polygoncoverage............................................................................................131
4.2.5. Erase ..........................................................................................................................132
4.2.5.1. Punktcoverage................................................................................................133
4.2.5.2. Liniencoverage...............................................................................................134
4.2.5.3. Polygoncoverage............................................................................................135
4.2.6. Update........................................................................................................................136
4.2.7. Split ............................................................................................................................137
4.2.8. Mapjoin .....................................................................................................................139
4.2.9. Append.......................................................................................................................141
4.2.10. Reselect ....................................................................................................................142
4.2.11. Dissolve ....................................................................................................................144
4.2.12. Entfernen von Restflächen mit Eliminate................................................................145
4.3. Entfernungsberechnungen.......................................................................................................146
4.3.1. Buffer: Erzeugung von Pufferzonen ..........................................................................146
4.4. Entfernungsberechnungen.......................................................................................................148
4.4.1. Near............................................................................................................................148
4.4.2. Entfernungsmatritzen zwischen Punkten ...................................................................148
4.4.3. Thiessen-Polygone .....................................................................................................148
4.4.4. Abschlußübung...........................................................................................................149
ix
4.5. Weitere Werkzeuge - Die Productivity Tools..........................................................................150
4.5.1. Geokodieren von Adressen.........................................................................................150
4.5.2. Auswahl anhand von Attributdaten mit reselect ........................................................151
Weiterführende Literatur:............................................................................................154
5. Netzwerkanalyse ................................................................................................................................155
5.1. Netzwerkanalyse - Tourenplanung..........................................................................................155
5.1.1. Kürzester Weg ............................................................................................................155
5.1.2. Gravitation ..................................................................................................................155
5.1.3. Traveling-Salesman-Problem (TSP)...........................................................................155
5.1.4. Netzwerkanalysen mit den Productivity Tools ...........................................................156
Weiterführende Literatur: .....................................................................................................157
6. Visualisierung.....................................................................................................................................159
6.1. Kartenerstellung mit ARCPLOT.............................................................................................159
6.1.1. Ausgabemedium .........................................................................................................159
6.1.2. Angaben zur Kartengröße...........................................................................................159
6.1.3. Auswahl von Signaturen und Farbskalen ...................................................................160
6.1.4. Ausgabe von Coverage-Elementen.............................................................................161
6.1.5. Benennung von Coverage-Elementen ........................................................................161
6.1.6. Eingrenzen der Auswahl (ARCPLOT).......................................................................162
6.1.7. Kartographische Elemente hinzufügen.......................................................................162
6.1.8. Ausgabe auf Papier oder in Dateien ...........................................................................162
6.2. Ausgabe mit MapTools ...........................................................................................................166
6.2.1. Erzeugen von Themes und Views...............................................................................166
6.2.1.1. Erstellen / öffnen eines Views........................................................................166
6.2.1.2. Editieren eines Views.....................................................................................167
6.2.1.3. Klassenbildung u. Farbzuweisung (View-/Legendenerstellung) ...................168
6.2.1.4. Variablenausprägung als Text ........................................................................169
6.2.2. Weitere Hilfsmittel beim Umgang mit Views ............................................................170
6.2.2.1. Zoomen ..........................................................................................................170
6.2.2.2. Abfragewerkzeuge .........................................................................................170
6.3. Kartenerstellung ......................................................................................................................171
6.3.1. Der Map Object Manager...........................................................................................173
6.3.2. Einstellung der Zeichenumgebung .............................................................................174
6.4. Hinzufügen neuer Kartenobjekte ............................................................................................174
6.4.1. View............................................................................................................................174
6.4.2. Legende ......................................................................................................................175
6.4.3. Maßstab ......................................................................................................................176
6.4.4. Nordpfeil.....................................................................................................................176
6.4.5. Text, Rahmen, Grafik etc............................................................................................177
6.4.6. Erstellen von Diagrammen in Karten .........................................................................178
6.4.7. Speichern der Karte ....................................................................................................179
6.5. Drucken einer Karte ................................................................................................................179
6.6. ArcPress ..................................................................................................................................180
Weiterführende Literatur: .....................................................................................................181
x
7. Geländemodelle..................................................................................................................................183
7.1. Erzeugung eines Triangulated Irregular Networks als Datengrundlage.................................183
7.1.1. Umwandeln von TINs in Lattices...............................................................................185
7.1.2. Export von 3D-Daten..................................................................................................185
7.1.3. Umwandlung von TINs in VRML..............................................................................186
7.1.4. Virtuelle 3D Welten mit VRML .................................................................................187
7.2. 3D-Visualisierung ...................................................................................................................188
7.2.1. Erstellen und Anzeigen des dreidimensionalen Themas ............................................189
7.2.2. Orientierung des Geländes .........................................................................................190
7.2.3. Virtuelle Durchflüge durch Geländemodelle..............................................................191
7.2.3.1. Definition der Flugparameter durch den Flight Path Generator ....................192
7.2.3.2. Abspielen der Videos .....................................................................................194
7.3. 3D Analyse..............................................................................................................................194
7.3.1. Interpolieren von Höhenlinien....................................................................................195
7.3.2. 3D-Sichtbarkeitsanalysen ...........................................................................................195
7.3.3. Volumen unter einem 3D-Modell berechnen..............................................................196
7.3.4. Veränderung von 3D-Oberflächen verfolgen..............................................................197
Weiterführende Literatur: .....................................................................................................197
8. Die Makro-Programmierung mit AML...........................................................................................199
8.1. Was ist AML ...........................................................................................................................199
8.2. Wie funktioniert die Arc Macro Language .............................................................................199
8.3. Wie erzeuge ich ein AML-Programm.....................................................................................199
8.3.1. Vereinfachungen bei der Programmierung .................................................................201
8.3.1.1. Zeilenumbruch ...............................................................................................201
8.3.1.2. Mehrere Aktionen in einer Zeile....................................................................201
8.3.1.3. Erweiterungen ................................................................................................202
8.3.1.4. Zeilenwiederholung .......................................................................................202
8.3.1.5. Zeichenketten und Sonderzeichen .................................................................202
8.3.1.6. Operatoren......................................................................................................203
8.4. AML-Elemente .......................................................................................................................203
8.4.1. Variablen.....................................................................................................................203
8.4.1.1. Setzen von Variablen......................................................................................203
8.4.1.2. Löschen von Variablen...................................................................................204
8.4.1.3. Lokale und globale Variablen ........................................................................204
8.4.1.3.1. Lokale Variablen ...............................................................................204
8.4.1.3.2. Globale Variablen..............................................................................204
8.4.1.4. Variablenverkettungen....................................................................................206
8.4.1.5. Indexvariablen................................................................................................206
8.4.1.6. Anzeigen von Variablen und deren Werten....................................................206
8.4.1.7. Übertragen von Argumenten/Variablen .........................................................207
8.4.1.8. Reservierte Variablen .....................................................................................208
8.4.1.8.1. Coverage-/Grid-/Tin-Variablen .........................................................208
8.4.1.8.2. Cursorposition (PNT$)......................................................................208
8.4.1.8.3. AML-Status-Variablen (AML$)........................................................208
8.4.1.8.4. Programmvariablen ...........................................................................209
8.4.2. Funktionen und Anweisungen....................................................................................209
8.4.2.1. Anzeigen einer Liste mit Auswahl.................................................................210
xi
8.4.2.2. Existenzüberprüfung von Objekten ...............................................................210
8.4.2.3. Erhalten von Attributinformationen...............................................................211
8.4.2.4. Anzeigen der momentanen Einstellungen .....................................................211
8.4.2.5. Verschachtelte Funktionen .............................................................................211
8.4.2.6. Entscheidungen und Bedingungen.................................................................212
8.4.2.6.1. IF-THEN (Wenn ... dann)..................................................................212
8.4.2.6.2. IF-THEN-ELSE (Wenn ... dann ... sonst)..........................................213
8.4.2.6.3. SELECT-WHEN (Wähle ... wenn)....................................................214
8.4.2.6.4. GOTO ................................................................................................215
8.4.2.7. Schleifen ........................................................................................................215
8.4.2.7.1. Zählschleifen (&DO ... &TO ... &BY ... &END) .............................216
8.4.2.7.2. WHILE-Schleifen..............................................................................216
8.4.2.7.3. UNTIL-Schleifen ..............................................................................217
8.4.2.7.4. LIST-Schleifen ..................................................................................217
8.4.2.7.5. REPEAT-Schleifen ............................................................................217
8.4.2.7.6. Verschachtelte Schleifen ...................................................................218
8.4.2.8. Routinen (Module).........................................................................................218
8.5. Dateien und Datenbanken .......................................................................................................219
8.5.1. Öffnen einer Datei ......................................................................................................220
8.5.1.1. Datei lesend öffnen (-read) ............................................................................221
8.5.1.2. Datei mit Schreibberechtigung öffnen (-write)..............................................221
8.5.1.3. An Datei anfügen (-append)...........................................................................221
8.5.1.4. Lesen einer Zeile aus einer Datei...................................................................222
8.5.1.5. Schreiben einer Zeile in eine Datei................................................................224
8.5.1.6. Schließen einer Datei .....................................................................................225
8.5.1.7. Löschen einer Datei .......................................................................................226
8.5.1.8. Anzeigen von vorhandenen Dateien und Spalten ..........................................226
8.5.1.9. Zugriff auf INFO-Tabellen.............................................................................228
8.6. Menüs......................................................................................................................................231
8.6.1. Pulldown Menu...........................................................................................................231
8.6.2. Sidebar Menu..............................................................................................................232
8.6.3. Matrix Menu...............................................................................................................233
8.6.4. Key Menu ...................................................................................................................234
8.6.5. Tablet und Digitizer Menu..........................................................................................234
8.6.5.1. Form Menu.....................................................................................................236
8.6.5.1.1. Input fields.........................................................................................236
8.6.5.1.2. Choice fields......................................................................................236
8.6.5.1.3. Slider fields........................................................................................236
8.6.5.1.4. Button ................................................................................................236
8.6.5.1.5. Scrolling list of devices .....................................................................236
8.6.5.1.6. Check box..........................................................................................236
8.6.5.1.7. Display field ......................................................................................237
8.6.5.1.8. Setbutton............................................................................................237
8.6.5.2. Die Arbeitsweise eines Form Menus .............................................................237
8.6.5.2.1. Setzen von Variablen durch das Ausführen von Eingaben................237
8.6.5.2.2. Wie erzeugt man ein Formmenu?......................................................238
8.6.5.3. Form Menu Widgets (Bedienelemente) .........................................................238
8.6.5.3.1. Buttons ..............................................................................................239
xii
8.6.5.3.2. Check Box Fields ..............................................................................239
8.6.5.3.3. Choice Fields.....................................................................................239
8.6.5.3.4. Display Fields....................................................................................240
8.6.5.3.5. Setbuttons ..........................................................................................240
8.6.5.3.6. Input Fields........................................................................................240
8.6.5.3.7. Slider Fields.......................................................................................241
8.7. Beispieloberflächen .................................................................................................................242
Weiterführende Literatur: .....................................................................................................259
Stichwortverzeichnis..............................................................................................................................261
xiii
xiv
Tabellenverzeichnis
1-1. Strukturelle Bestandteile eines GIS......................................................................................................2
1-2. Funktionale Bestandteile eines GIS .....................................................................................................2
1-3. GIS und DBS........................................................................................................................................3
1-4. Logische Datenbankschemata ............................................................................................................14
1-5. Neue SQL-Methoden in OPENGIS ...................................................................................................20
1-6. Methoden für räumliche Analyse .......................................................................................................21
1-7. Einige Attribute des FDGC Metadaten-Standards .............................................................................27
3-1. Namenskonventionen für Coverages ..................................................................................................59
3-2. Namenskonventionen für Bearbeitungsschritte..................................................................................59
3-3. DCW layers ........................................................................................................................................84
3-4. WORLD 1: 1.000.000, Edition 3-GSGS............................................................................................85
Abbildungsverzeichnis
1-1. Ebenenprinzip.....................................................................................................................................10
1-2. Objektklassenprinzip am Beispiel ALK.............................................................................................10
1-3. Datenbanksystem (DBS) ....................................................................................................................12
1-4. 1:n-Beziehung ....................................................................................................................................13
1-5. Primärschlüssel: Geometriedaten .......................................................................................................15
1-6. Fremdschlüssel: Sachdaten.................................................................................................................16
1-7. Metadatentypen (nach SPIESS 98) ....................................................................................................26
2-1. Vektordaten: Ein Polygoncoverage ....................................................................................................31
2-2. Aufbau eines Arcs ..............................................................................................................................33
2-3. Arcs mit Dangling Nodes ...................................................................................................................34
2-4. Polygone mit Pseudo Nodes und Label Points...................................................................................35
2-5. Straßencoverage mit drei bemaßten Routen.......................................................................................38
2-6. Ausschnitt eines Liniencoverages mit bemaßten Abschnitten ...........................................................39
2-7. Dateien eines Coverages.....................................................................................................................40
2-8. Rasterdaten: ein Grid..........................................................................................................................42
2-9. TINs und Lattices im Vergleich - Ausgangsdaten und Resultate (aus ARCDOC) ............................44
2-10. Datenquelle (Punkte) für ein TIN.....................................................................................................44
2-11. Resultierendes TIN...........................................................................................................................45
2-12. Das ARCTOOLS Hauptmenü ..........................................................................................................46
2-13. Die Online-Hilfe ARCDOC .............................................................................................................49
2-14. Funktionale Kommandolisten in ARCDOC.....................................................................................50
2-15. Alphabetische Kommandolisten in ARCDOC.................................................................................51
2-16. Suchfunktion in ARCDOC...............................................................................................................51
2-17. Glossar in ARCDOC ........................................................................................................................52
2-18. Das Tool Browser Menü...................................................................................................................53
2-19. Das Data Viewer Menü ....................................................................................................................53
2-20. Das Programm zur Konvertierung von Einheiten.............................................................................54
3-1. Arbeitsablauf eines GIS-Projekts .......................................................................................................57
3-2. Kartenübersicht mit TICs ...................................................................................................................60
3-3. Vorbereitung des Kartenmaterials: nicht eindeutige Start- und Schnittpunkte festlegen ...................61
xv
3-4. Eingabemethode auswählen (Set Coordinate Entry Device)..............................................................65
3-5. Initialisierung des Digitalisierbretts ...................................................................................................65
3-6. Das Export Menü................................................................................................................................71
3-7. Das Generate Menü ............................................................................................................................74
3-8. Das Generate Menü zur manuellen Eingabe (Linien) ........................................................................75
3-9. Konvertierung von DXF nach ARC/INFO.........................................................................................76
3-10. Arcs mit Dangling Nodes .................................................................................................................78
3-11. Das Transform Coordinates Menü ...................................................................................................83
3-12. Terminologie für Datenbanken.........................................................................................................86
3-13. Das Add Items Menü........................................................................................................................87
3-14. Das ASCII Table to INFO Menü......................................................................................................88
3-15. Digitalisieren von Arcs und Polygonen............................................................................................94
3-16. Das Describe Coverage Popup Menü.............................................................................................104
3-17. Select an Edit Coverage Menü .......................................................................................................105
3-18. Das Change Symbolset Menü ........................................................................................................106
3-19. Erweiterte Maustastenbelegung zum Digitalisieren.......................................................................109
3-20. Das Edit Menü................................................................................................................................110
3-21. Das More Arc Editing Menü ..........................................................................................................111
3-22. Optionen beim Node to Arc Snapping ...........................................................................................111
3-23. Das Arc Environment Menü...........................................................................................................112
3-24. Das Table Editor (AAT) Menü .......................................................................................................113
4-1. Das Union Menü ..............................................................................................................................120
4-2. Das Identity Menü ............................................................................................................................122
4-3. Das Intersect Menü...........................................................................................................................126
4-4. Das Clip Menü..................................................................................................................................129
4-5. Das Erase Menü................................................................................................................................133
4-6. Das Update Menü.............................................................................................................................136
4-7. Das Split Menü.................................................................................................................................138
4-8. Das Mapjoin Menü...........................................................................................................................140
4-9. Das Append Menü............................................................................................................................141
4-10. Das Reselect Menü.........................................................................................................................143
4-11. Das Dissolve Menü ........................................................................................................................144
4-12. Das Eliminate Menü.......................................................................................................................145
4-13. Das Productivity Tools Menü .........................................................................................................150
4-14. Das Productivity Tools Menü .........................................................................................................150
5-1. Das Productivity Tools Menü, Type = Network und das Location-Allocation-Pulldownmenü.......156
6-1. Wichtige Kartenparameter................................................................................................................160
6-2. Das Map Tools Hauptfenster ............................................................................................................166
6-3. MapTools mit View Pulldownmenü .................................................................................................166
6-4. Der Add New Theme Manager ........................................................................................................167
6-5. Das Theme Manager Menü ..............................................................................................................167
6-6. Das Polygon Coverage Properties Menü..........................................................................................168
6-7. Discrete Legend Editor (Bsp. für Linien-Coverages ........................................................................168
6-8. Das Classification - Menü ................................................................................................................168
6-9. Der Save File as Macro Dialog ........................................................................................................169
6-10. Das CoverageText Properties Menü ...............................................................................................169
6-11. Das Zoom Menü.............................................................................................................................170
6-12. Das Tool Menü ...............................................................................................................................170
xvi
6-13. Das Snapshot Menü........................................................................................................................171
6-14. Das Map Menü ...............................................................................................................................172
6-15. Das Map Template Menü ...............................................................................................................172
6-16. Seiteneigenschaften: Das Page Properties Menü ...........................................................................173
6-17. Der Map Object Manager...............................................................................................................173
6-18. Das Add New Object Menü ...........................................................................................................173
6-19. Das Snap to Grid Menü ..................................................................................................................174
6-20. Das View Properties Menü.............................................................................................................175
6-21. Das Key Properties Menü...............................................................................................................175
6-22. Das Scalebar Properties Menü .......................................................................................................176
6-23. Das North Arrow Properties Menü.................................................................................................176
6-24. Das Text String Properties Menü ...................................................................................................177
6-25. Das Text Symbol Properties Menü.................................................................................................177
6-26. Das More Text Symbol Properties Menü .......................................................................................177
6-27. Das Shaded Box Properties Menü..................................................................................................178
6-28. Das Shade Properties Menü ...........................................................................................................178
6-29. Das Custom Color Properties Menü...............................................................................................178
6-30. Das Graph Properties Menü ...........................................................................................................179
6-31. Das Layout Properties Menü..........................................................................................................179
6-32. Die Metafile Format und Plotting Utilities Menüs .........................................................................180
7-1. Das TIN Builder Menü.....................................................................................................................183
7-2. Das TIN Source Menü......................................................................................................................184
7-3. Das TIN Source Menü (Generate)....................................................................................................184
7-4. Das TIN Source Menü (Lattice).......................................................................................................184
7-5. Das TIN Properties Menü.................................................................................................................185
7-6. Das TIN to Lattice Menü..................................................................................................................185
7-7. Das Export from ARC / TINs and Lattices Menü............................................................................186
7-8. VRML-3D Geländemodell von Heidelberg .....................................................................................186
7-9. Das TIN to VRML-Menü.................................................................................................................186
7-10. Ausschnitt einer VR-Welt der Heidelberger Altstadt direkt aus ARC/INFO.................................187
7-11. Das Surface Properties Menü .........................................................................................................188
7-12. Der Grid Composite Property Sheet...............................................................................................189
7-13. Das Mesh Properties Menü ............................................................................................................190
7-14. 3D-Mesh.........................................................................................................................................190
7-15. Das Camera Orientation & Advanced Camera Orientation Menü.................................................191
7-16. Das Camera Preferences Menü ......................................................................................................191
7-17. Einzelbild aus einem der Videos ....................................................................................................191
7-18. Das Productivity Tools Menü (Type = Animation) ........................................................................192
7-19. Das Flightpath Menü und Optionen Menü.....................................................................................192
7-20. Das Flyby Viewing Options Menü .................................................................................................193
7-21. Das Flight Frame Generator Menü.................................................................................................193
7-22. Das Mpeg-Encode Menü................................................................................................................193
7-23. Der Circular Flight Path Generator ................................................................................................194
7-24. Der interne MPEG-Player ..............................................................................................................194
7-25. Das Surface Menü ..........................................................................................................................195
7-26. Das Contouring Tool Menü ............................................................................................................195
7-27. Das Visibility Menü........................................................................................................................196
7-28. Das Volume Calculation Menü.......................................................................................................196
xvii
7-29. Das Cut & Fill Calculation Menü...................................................................................................197
Beispiele
1-1. Tabelle / Sicht erstellen ......................................................................................................................18
1-2. Selektion: Auswahl von Zeilen einer Tabelle.....................................................................................18
1-3. Projektion: Auswahl von Spalten einer Tabelle .................................................................................18
1-4. Verbund: Relationen werden miteinander verknüpft (JOIN) .............................................................18
1-5. Vereinigung mehrerer Tabellen (UNION)..........................................................................................19
1-6. Schnittbildung (INTERSECT) ...........................................................................................................19
1-7. Differenz (EXCEPT) ..........................................................................................................................19
4-1. Baumbestand ....................................................................................................................................123
4-2. Tarifgrenzen für ÖPNV-Netz............................................................................................................124
4-3. Nunavut ............................................................................................................................................125
4-4. Brunnenstandorte und Altlasten .......................................................................................................126
4-5. Krötenwanderung .............................................................................................................................127
4-6. Erosionsgefahr..................................................................................................................................128
4-7. Gefährdete Standorte von geschützten Pflanzen ..............................................................................130
4-8. Naturschutzgebiet.............................................................................................................................131
4-9. Landnutzung einer Gemeinde ..........................................................................................................132
4-10. Kahlschlagflächen ..........................................................................................................................133
4-11. Schienennetz...................................................................................................................................134
4-12. Landbedeckung ..............................................................................................................................135
4-13. Aktualisierung von Karten .............................................................................................................137
4-14. Kreisgrenzen...................................................................................................................................138
4-15. Teildigitalisierungen zusammenfassen...........................................................................................140
4-16. Landkreis ........................................................................................................................................142
4-17. Ackerflächen nach Besitzern ..........................................................................................................143
4-18. Nahtlose Kartenübergänge .............................................................................................................145
4-19. Doppelt digitalisierte Linien...........................................................................................................146
4-20. Pufferzone um Schnellstraßen........................................................................................................147
xviii
Vorwort
* LN: Ich denke, wir sollten die Zielgruppe noch staerker betonen - Unterschied zu ArcView oder Positionierung innerhalb von
ArcGIS 8.1
Fast alle Entscheidungen haben einen räumlichen Bezug. Mit der immer breiteren Verfügbarkeit Geographischer Informationssysteme wachsen auch die Möglichkeiten, diese räumlichem Bezüge und Abhängigkeiten mit Hilfe des Computers herauszuarbeiten. Da dieses Potenzial noch lange nicht ausgeschöpft
ist, ist ein weiterer Zuwachs der Nachfrage nach GIS (und deren Anwendern/Betreuern) abzusehen.
Wir wollen mit diesem Buch eine Einführung in Theorie, Grundlagen und Anwendung Geographischer
Informationssysteme geben. Der Schwerpunkt dieses Buches liegt in der Einführung in die GIS-Software
ARC/INFO, sei es als Kursbegleitung oder zum Selbststudium. Die umfangreichen Möglichkeiten, die
dieses Programm bietet, können wir natürlich bei diesem Umfang des Buches nicht erschöpfend behandeln, genausowenig können wir auf alle Analysemöglichkeiten ausführlich eingehen. Für weitergehende
Fragen verweisen wir auf die weiterführende Fachliteratur und verschiedene WWW-Seiten.
ARC/INFO war eines der ersten kommerziellen GIS-Programme. Seine lange Entwicklungsgeschichte
bringt eine für Windows-Verwöhnte manchmal etwas sperrige Bedienung und eine anfangs hohe Lernkurve mit sich. Dies liegt jedoch nicht alleine am Programm, sondern vielmehr an der Komplexität der
Materie insgesamt.
Mit der Version 8 erschien eine in der Windows-Version grundlegend neue Version des GIS-Pakets ARC/INFO.
Neben einer stark vereinfachten Bedienung wurde das relationale Datenmodell um ein objektorientiertes
ergänzt. Die Workstation-Varianten wurden ebenfalls erweitert, ihre Bedienung hat sich gegenüber den
7er Versionen jedoch nicht wesentlich geändert.
Dieses Buch soll den Anwender in die Lage versetzen, sich selbständig oder im Rahmen eines Kurses die
Bedienung von ARC/INFO anzueignen. Mit dem Kapitel zu AML wird zugleich ein plattformunabhängiges Werkzeug zur Erstellung eigener Anwendungen mit ARC/INFO beschrieben. Auf die Programmierung von Desktop-ARC/INFO mit Visual Basic oder COM-kompatiblen Sprachen können wir in diesem
Zusammenhang nicht eingehen.
Im Text verwenden wir häufig die englischen Begriffe, die in der jahrzehntelangen Geschichte des Programmes im täglichen Umgang mit ARC/INFO häufig gebraucht werden.
Die verwendeten Beispieldaten stammen hauptsächlich aus dem angelsächsischen Raum, da nur hier umfangreiche Daten problem- und kostenlos zugänglich sind.
Das Kapitel zur AML basiert auf einem Skript von Stefan Scherer, dem Abschnitt zu SDE liegt eine
Arbeit von Roman Elsässer zugrunde. Die Abbildungen des Theorieteils wurden von Dipl. Ing. Christine
Brückner und den Autoren angefertigt.
Den Teilnehmern unserer Kurse danken wir für zahlreiche Anregungen zu früheren Versionen dieses
Buches.
Für die kritische Durchsicht des Textes und Anregungen danken wir ganz besonders herzlich ... und ... .
Layout-Konventionen
Um dieses Buch möglichst übersichtlich zu gestalten, wurden für Programmein- und ausgaben, Übungsaufgaben, Hinweise etc. verschiedene Formatierungen verwendet, die wir hier kurz vorstellen wollen.
i
Vorwort
Allgemein
Im laufenden Text beziehen wir uns manchmal auf Datei- oder Verzeichnisnamen. Damit sich diese vom
übrigen Text abheben, setzen wir sie in Schreibmaschinenschrift, wie z.B die Datei grenzen.bnd.
Um auf möglicherweise schwerwiegende Fehler in der Bedienung etc. hinzuweisen geben wir einen Warnhinweis:
!
Achtung!
Tun Sie das bloß nicht, Sie würden es höchstwahrscheinlich später bereuen. Sagen Sie nicht, wir
hätten Sie nicht gewarnt!
Daneben gibt es natürlich noch beliebig viele Möglichkeiten, weniger schwere Fehler zu machen, auf die
wir mit den folgenden Formaten hinweisen:
Vorsicht
Auch hier ist eine mögliche Falle versteckt, die Ihnen bei Nichtbeachtung möglicherweise einige graue
Haare beschert.
* Hier fehlt noch ein Icon
!
Wichtig
Auch bei diesem Hinweis sollten sie etwas genauer hinsehen, wenn Sie sich unnötige Arbeit oder
Datenverluste ersparen möchten.
i
Tip: Bitmaps in Karten
Kleine Tricks oder Hinweise, die vielleicht der einen oder dem anderen etwas Arbeit sparen oder eine
neue Möglichkeit aufzeigen sehen so aus.
Um das Programm zu lernen, müssen Sie leider ab und zu auch selbst etwas tun. Dafür sind unsere
Übungsaufgaben da. Sie sehen in etwa folgendermaßen aus:
?
Übung
ii
Vorwort
Verbinden Sie die durch split geteilten Coverages durch append wieder zu einem Coverage
und erstellen Sie die Topologie neu.
* note zweckentfremdet fuer Uebungen - Hier fehlt noch ein Icon ...
* Icon dazu? - Stylesheets
Manchmal gibt es auch sinnvolle Ergänzungen im World Wide Web, die wir ihnen nicht vorenthalten
wollen, z.B. auf der Homepage unseres Lehrstuhls ;) :
http://www.geog.uni-heidelberg.de/wisogeo/
Alles können wir in diesem Buch bei weitem nicht abdecken, deshalb geben wir nach jedem Kapitel
Hinweise für weiterführende Literatur.
Kommandozeile
Folgende Darstellung verwenden wir für die kommandozeilenorientierte Schreibweise von ARC/INFOBefehlen1:
Kommando {erforderliches Argument} [optionales Argument | optionales Argument]
In diesem Beispiel ist das erste Argument nach dem Befehl ein erforderliches Argument, das 2. und 3.
Argument stellen optionale Eingaben dar, aus denen eine ausgewählt werden kann. Wird das optionale
Argument nicht angegeben, so wird die Programmvorgabe übernommen, falls eine solche existiert. In der
Regel ist dies die erste von mehreren genannten Optionen.
Will man ein optionales Argument auslassen, aber ein späteres angeben, so muß für jedes ausgelassene
Argument ein # eingegeben werden. Für die so übersprungenen optionalen Argumente wird jeweils der
vom Programm standardmäßig vorgegebene Wert eingesetzt:
* Beispiel komplettieren (Usage)
Arc: usage register
...
Arc: register tk50a # # composite 1 2 3
In der Regel wird eine Eingabe an der Kommandozeile mit einer Return/Entertaste beendet: Ret. Der
Digitalisierpuck hat eine eigene Tastatur, die im Text so erscheint: 1, 8, A etc.
Der Teil, der selbst eingegeben werden muß, wird von der Programmausgabe abgehoben:
Arc: erase i_poly op_poly outerpy
Erasing i_poly with op_poly to create outerpy
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outerpy.PAT...
AML-Texte und andere Textdateien oder Programmtexte erscheinen ebenfalls in Schreibmaschinenschrift:
display 9999 2
arcedit
iii
Vorwort
editcover river
drawenvironment arc node error
editfeature arc
nodesize dangle .2
nodecolor dangle 2
nodesize pseudo .15
nodecolor pseudo 5
draw
ArcTools
Um Ihnen Hilfe zu geben, sich durch die verschiedenen ARCTOOLS-Menüs zu hangeln, ohne das ganze
Buch mit Screenshots vollpflastern zu müssen, haben wir den Weg, den Sie mit der Maus zurücklegen
müssen, markiert:
CommandTools
Analysis
Overlay
Intersect
Beziehen wir uns auf einzelne Schaltflächen eines gerade aktiven Menüs, so sieht das im laufenden Text
so aus: Select an item.
Fußnoten
1. In den Hilfesystemen von ARC/INFO werden die Befehlsnamen zur besseren Lesbarkeit jeweils groß
geschrieben, obwohl das Programm in der Regel eine Eingabe in Kleinbuchstaben erwartet.
iv
Kapitel 1. Grundlagen von Geographischen
Informationssystemen
Was ist ein GIS? Der englische Begriff geographical information system wird im Deutschen mit Geoinformationssystem wiedergegeben. Unter diesem allgemeinen Oberbegriff werden recht unterschiedliche
Dinge verstanden. Dies liegt am weiten Spektrum möglicher Einsatzgebiete von Geoinformationssystemen.
1.1. Was ist ein GIS
* wir brauchen noch ein paar motivierende, interesseerregende einfuehrende Worte zu Anwendungspotential etc.
Grundsätzlich handelt es sich bei einem GIS1 um ein spezielles digitales Informationssystem. Die große
Klasse der digitalen Informationssysteme gewinnt in unserem digitalen Informationszeitalter immer mehr
an Bedeutung. Ihre wesentlichen Charakteristika sollen nachfolgend kurz skizziert werden.
Digitale Informationssysteme (IS) erlauben die digitale Erfassung, Speicherung, Aktualisierung, Verarbeitung und Wiedergabe von umfangreichen Informationen eines Fachgebietes (nach STREIT 97). Als
operationale Grundlage dafür dienen meist ein oder mehrere Datenbanksysteme. Das Informationssystem
ermöglicht eine thematisch strukturierte Abfrage und Analyse dieser unterschiedlichen Daten. Diese können wiederum in unterschiedlicher Form vorliegen. Grob können folgende Typen unterschieden werden:
(Alpha)numerische Daten
Text-Dokumente
d.h. Attribute als Text oder Zahlen
in der Regel unstrukturiert (wenn der Text nicht z.B. in SGML/XML
markiert ist und so auch eine gezieltere inhaltliche Suche ermöglicht),
aber z.B. Volltextsuche möglich
Bilder
Multimediale Informationen
Fotos, Scans, Satellitenbilder
Digitale Videos, Audiosequenzen, computergenerierte Animationen, o.ä.
GIS ist ein Oberbegriff für eine große Menge differenzierter raumbezogener Informationssysteme. Nach
Bill (1999:91) können z.B. folgende Typen unterschieden werden:
LIS
RIS
Land(schafts)informationssystem (z.B. zur Naturraumausstattung)
Rauminformationssystem (z.B. für Regionalplanung)
KIS
UIS
Kommunales Informationssystem (für Planung u. Verwaltung)
Umweltinformationssystem (z.B. Umweltüberwachung)
NIS
FIS
Netzinformationssystem (z.B. Kanal-IS, Straßen-IS)
Fachinformationssystem (z.B. Boden-IS, ...)
BILL/FRITSCH (1991) definieren ein GIS folgendermaßen:
Bill/Fritsch 1991, 5
1
Kapitel 1. Grundlagen
Ein Geo-Informationssystem ist ein rechnergestütztes System, das aus Hardware, Software, Daten und den
Anwendungen besteht. Mit ihm können raumbezogene Daten digital erfaßt und redigiert, gespeichert und reorganisiert, modelliert und analysiert sowie alphanumerisch und graphisch präsentiert werden.
Im Englischen läßt sich dies noch knapper formulieren:
Burrough 1986
a powerful set of tools for collecting, storing, retrieving at will, transforming and displaying spatial data from
the real world.
oder mit Betonung der Organisationsseite:
Cowen 1988, zitiert in Burrough 1998
a decision support system involving the integration of spatially referenced data in a problem solving environment.
Dabei unterscheiden die Worte analyze und spatial ein GIS von herkömmlichen (nichträumlichen) Informationssystemen oder aber von Kartographieprogrammen (die keine Analysefunktionen besitzen).
Damit kann man GIS strukturell (Tabelle strGIS) oder funktionell (Tabelle fnkGIS) nach seinen Komponenten untergliedern:
Tabelle 1-1. Strukturelle Bestandteile eines GIS
Komponente Bestandteile und geschätzte Lebensdauer in Jahren
Hardware
Rechner, Peripherie, Netzwerk (3-5)
Software
Programm-System und modulare GIS-Werkzeuge (3-15)
Geodaten
bestehend aus Geometrie, Topologie und Thematik (10-30)
Anwender
(weites Spektrum)
Tabelle 1-2. Funktionale Bestandteile eines GIS
Komponente Bestandteile
Datenbank
Attribute, Geoobjekte
Räumliches
Analysewerkzeug
Routenfindung, Pufferung, Polygonverschneidung, Räumliche Suche
Kartographiesystem
Punkte, Linien, Flächen, Objekte, Schichten / Ebenen
Aus der Lebensdauer kann auch der Wert der einzelnen Komponenten abgeschätzt werden: Digital erfaßte
und vor allem gepflegte Datenbestände sind meist deutlich wertvoller als Hard- oder Software. Besonders
die Pflege von sich in der Regel ändernden Datenbeständen ist noch immer sehr aufwendig und kostenintensiv. Kosten für Hard- und Software sinken laufend, doch insbesondere für spezialisierte Software muß
oft deutlich mehr ausgegeben werden als für Hardware.
2
Kapitel 1. Grundlagen
1.1.1. Wozu GIS?
Es stellt sich die Frage, wozu ein GIS benötigt wird. Sind all diese Funktionalitäten nicht schon durch
eigene, spezialisierte Programme abgedeckt, wie es folgende Beispiele nahezulegen scheinen?
* auf registered trademarks™ verweisen (Vorwort?)
• Möglichkeit der statistischen Berechnung durch SAS, SPSS, Excel
• Darstellung von Karten z.B. MERCATOR, MapInfo, THEMAK
• Bearbeitung der Geometriedaten mit CAD-Programmen z.B. AutoCAD...
• Verwaltung großer Datenbestände in Datenbanken
Diese Unschärfe in der Abgrenzung zwischen Datenbanksystemen, Kartographiesystemen und CADSystemen nimmt sogar noch zu, da viele Funktionen heute in den unterschiedlichsten Systemen implementiert werden.
Folgende Aspekte eines „typischen“ GIS sollen daher noch einmal aufgeführt werden:
• Geometrische Analysen / Flächenverschneidung / Buffer...
• Alle Möglichkeiten in einem System
• Verknüpfung verschiedener Abfragen möglich
• Kombination verschiedener Datentypen / Geometrien
• Aufbau eines interaktiven räumlichen Informationssystems.
1.1.2. GIS und Datenbanken
Heute ist ein Trend zu beobachten, daß einige GIS-Funktionalität auch in modernen Datenbanksystemen
zur Verfügung gestellt wird. Doch sind nach SPIESS die in Tabelle Tabelle 1-3 genannten grundsätzlichen
Unterschiede zwischen Geoinformationssytemen und Datenbanksystemen zu berücksichtigen.
Tabelle 1-3. GIS und DBS
GIS
DBS
Geoobjekte mit explizitem Raumbezug und
gekoppelten Sachdaten
Modellierung allgemeiner Objekte, Raumbezug nur
als Attribut
Selektion von Geoobjekten über Raumbezug oder
Attribute
Selektion von Objekten über Attribute (Schlüssel)
Datenanalyse interaktiv-graphisch und
numerisch-statistisch
Statistische Datenanalyse
Kartographische Visualisierung
Visualisierung als Tabellen und Diagramme
(Business-Grafik)
1.1.3. GIS und CAD
Gerne werden GIS mit CAD (Computer-Aided-Design) Systemen verglichen, da sich die Funktionalität
3
Kapitel 1. Grundlagen
beider Systeme annähert. Jedoch ist ein grundsätzlicher Unterschied in der Aufgabenstellung der jeweiligen Produkte zu sehen: bei CAD steht die Konstruktion im Vordergrund, d.h. vom digitalen Modell zur
realen Welt, während dies in GIS umgekehrt ist, da dort das Hauptaugenmerk auf der Abbildung der realen
Welt ins digitale Modell liegt.
BILL u. FRITSCH geben folgende Definition eines CAD-Systems:
Bill/Fritsch 1991, 40
CAD - Systeme dienen dem interaktiven geometrischen Modellieren in 2D und 3D im Rechner mit den Komponenten Beschreibung, Entwicklung, Bearbeitung, Speicherung und Darstellung.
Damit ergeben sich im Vergleich zu GIS folgende Eigenschaften von CAD-Systemen:
• Erfassung, Verwaltung und Präsentation als Komponenten
• Erweiterte Datenmodellierung
• Zwei- und/oder Dreidimensional
• Rein vektororientiert (Raster nicht sinnvoll)
• Permanentdatenhaltung
• Hohe Interaktivität
• Stärken in der Visualisierung
• nur eingeschränkte Analysefunktionen
(nach BILL / FRITSCH 1991, 40, erweitert)
1.1.4. GIS und Kartographie
Kartographieprogramme legen den Schwerpunkt auf die Visualisierung raumbezogener Sachverhalte. Eine computerunterstützte Analyse wurde ursprünglich nicht unterstützt. Heute werden Kartographieprogramme oft mit Datenbanken gekoppelt, bzw. greifen auf diese zu und werden werden dann bisweilen
schon als GIS bezeichnet. Diese Bezeichnung ist nicht zutreffend, da die geographische Analyse ein elementares Merkmal eines GIS darstellt.
Oben erwähnte Systeme werden heute meist als Desktop Mapping Systeme (Bsp: ARCVIEW) bezeichnet. Ursprünglich als reine Visualisierungswerkzeuge gedacht, fließt in diese Systeme heute immer mehr
GIS-Funktionalität ein, oder wird in Form von optionalen Modulen zur Verfügung gestellt. Es ist also
ein Trend weg von großen, monolithischen Geoinformationssystemen hin zu modularen, für die jeweilige
Aufgabe optimierten GIS festzustellen. Dies spiegelt auch besser die heterogene Struktur, Funktionalität
und Anwendungsgebiete von GIS wieder. In einer GIS-Analyse stellen die eigentlichen Kartographieprogramme nur einen Aspekt, nämlich die kartographische Visualisierung, zur Verfügung.
4
Kapitel 1. Grundlagen
1.2. Einsatzbereiche von Geoinformationssystemen
Geoinfomationssysteme weisen einen äußerst breiten Bereich von Einsatzmöglichkeiten auf, da eigentlich
alle Informationen und Daten über die physische Welt und die in ihr lebenden und wirkenden Menschen
in irgendeiner Weise einen Ortsbezug besitzen. Die Verwaltung, Darstellung und Analyse dieser „verorteten“ Daten gehört zu den grundsätzlichen Aufgaben eines Geoinformationssystems. Dieses gilt für die
unterschiedlichsten Maßstabsebenen und Themenschwerpunkte. Damit ist die Bedeutung von Geoinformationssystemen als einem der Hauptwerkzeuge in den Geo- und Umweltwissenschaften, aber auch für
alle raumbezogenen Planungs-, Verwaltungs- oder Überwachungs- und Analyseaufgaben stark gestiegen.
Es soll nur grob zwischen dem Einsatz in Wirtschaft und Verwaltung und dem in Umwelt und Natur
unterschieden werden. Da aber auch mit und in der Umwelt gewirtschaftet wird, kommt es natürlich zu
Überschneidungen. Mögliche Anwendungen (ohne Anspruch auf Vollständigkeit) sind:
• Logistik / Verkehrsplanung / Routenplanung (Speditionen, Taxiunternehmen, Lieferverkehr, Feuerwehr, Rettungsdienste ...)
• Telematik
• Einzugsbereichsermittlung
• Standortplanung
• Trassenplanung
• Landschaftsplanung
• Grundstücksverwaltung
• Umweltkataster / Baumkataster, ...
• Erosionsberechnungen
• Kanal-/Leitungsverwaltung
• Straßenverwaltung
• Stadtinformationssysteme
• Nationalpark-Informationssysteme
• Tourismusinformationssysteme
• Geomarketing
• Hydrologische Fragestellungen (Grundwasser, Einzugsbereiche, Ablaufgebiete)
• Hochwassermodellierung
• Sozioökonomische Modellierung
• Klimaforschung
• Telematik / Navigationssysteme
• Medizin
• Kriminalistik
• Location Based Services (LBS)
• u.v.m.
5
Kapitel 1. Grundlagen
Außerdem spielt die Integration von Systemen und Methoden für folgende Aufgaben im Rahmen von
interoperable GIS eine verstärkte Rolle:
• wissensbasierte Spatial Decision Support Systems (SDSS)
• rechnergestützte Datengewinnung (für Geometrie und Sachdaten)
• WWW-Integration
Weitere Einsatzmöglichkeiten können aus der in den späteren Kapiteln vorgestellten Übersicht über mögliche Analysefunktionen erschlossen werden. Letztendlich hängt es vom Anwender ab, wie er ein GIS
einsetzt.
1.3. Digitale Geodaten
1.3.1. Geoobjekte
Es existieren unterschiedliche Sichtweisen der Welt und ihrer Phänomene. Eine Aufgabe der Geoinformatik ist es, diese Phänomene geeignet in ein digitales und damit auf 0 und 1 als Ausdrucksmittel beschränktes Computersystem zu überführen. BURROUGH und McDONNELL (1998) unterscheiden folgende mögliche Abstraktionsebenen der realen Welt:
• Reale Welt
• (wahrgenommene) Struktur des untersuchten Phänomens
• GIS-Repräsentation der Phänomenstruktur
•
Raster
•
Vektor
•
etc.
• Struktur der Datenbasis
• Hierarchisches Datenmodell
•
Netzwerk-Datenmodell
•
Relationales Datenmodell
•
Objektorientiertes Datenmodell
• Hardwarestruktur
Wie definieren wir nun die für GIS relevanten Geoobjekte und wie werden sie in Geographischen Informationssystemen verwaltet und verwendet? Ein Geoobjekt (auch oder ) definieren wir als ein auf einen
räumlichen Ausschnitt der Erde bezogenes reales oder abstraktes Objekt mit folgenden Charakteristika:
• Lage (und Form) im Raum (Geometrie)
• Räumliche Beziehungen zu anderen Geoobjekten (Topologie)
• Fachliche Inhalte (Thematik)
6
Kapitel 1. Grundlagen
SPIESS 98 fügt diesen die Dynamik als Veränderung der obigen Charakteristika mit der Zeit hinzu. Darauf
gehen wir unter „Thematik und Dynamik“ im Abschnitt 1.3.3 genauer ein.
Geodaten können unterschiedliche räumliche (aber auch zeitliche) Dimensionen besitzen. Mögliche Dimensionen von Geoobjekten führen wir nachfolgend an:
0-dimensional (NodePunkt (keine Länge oder Fläche)
/ Point)
1-dimensional (Arc) Linienstück (Strecke)
2-dimensional
Fläche (in der Regel besitzen Flächen keine „natürliche“ Länge, d.h. die Länge
Polygon, ...)
einer Fläche müßte jeweils definiert werden. Nur der Kreis besitzt mit dem
Durchmesser eine inhärente „Länge“.
3-dimensional
Körper (verschiedene Modellierungsmöglichkeiten: Solide (Volumen-Körper)
versus Polyeder (Grenzflächen-Körper).
Die kursiven englischen Bezeichnungen in der ersten Spalte nennen die typischen Vertreter im traditionellen Coverage-Datenmodell von ARC/INFO. Auf dieses wird später genau eingegangen. Wie ARC/INFO
unterstützen heute viele GIS-Systeme 2,5-dimensionale Objekte, d.h. Flächen mit Höheninformationen
als zusätzliche Z-Koordinate. Diese Geländemodelle sind aber keine echten 3D-Körper mit Volumen,
sondern im Raum „gefaltete“ Flächen. Allerdings sind Volumenberechnungen zum Beispiel mit ebenen Schnittflächen möglich. Die entsprechenden Datenstrukturen (TIN, LATTICE, GRID), die diese
2,5-Dimensionalität unterstützen, werden üblicherweise dennoch als 3D-Datentypen aufgeführt und im
Kapitel Kapitel 2 erläutert, sowie im Kapitel Kapitel 7 ausführlicher vorgestellt. Echte 3D-Systeme sind
Gegenstand von Forschungsprototypen. Erste kommerzielle Systeme existieren in den Bereichen Geologie, Umweltwissenschaften und Architektur.
1.3.2. Geometrie versus Topologie
1.3.2.1. Geometrie: Raster versus Vektor
Die verschiedenen GIS-Systeme verwenden unterschiedliche Ansätze zur Repräsentation der Geometrie.
Grob können die folgenden Gruppen unterschieden werden, wobei wir einige verbreitete Produkte exemplarisch nach ihrem Haupteinsatzgebiet aufführen.
• Vektor (ARC/INFO, SICAD, SMALLWORLD, INTERGRAPH, Bentley)
• Raster (GRASS, IDRISI, OSU-MAP)
• Hybrid-GIS
Die meisten Produkte können heute sowohl mit Raster als auch mit Vektordaten umgehen (Hybrid-GIS),
wobei noch immer die ursprünglichen Schwerpunkte erkennbar sind.
Im Allgemeinen bestimmt die Geometrie eines Geoobjektes dessen Lage und Form im Raum bezogen auf
ein räumliches Bezugssystem (Koordinatensystem), die durch die Angabe von Koordinaten (im zweidimensionalen Raum zwei: x und y, drei falls die Höhe z einbezogen wird) definiert wird. Zusätzlich wird
eine Metrik (Abstandsfunktion) definiert, die das Messen von Entfernungen erlaubt. In rechtwinkligen Ko-
7
Kapitel 1. Grundlagen
ordinatensystemen ist dies üblicherweise die Euklidische Distanz. Auf die Unterschiede zwischen Raster
und Vektor wird noch bei der Vorstellung des Rasterfomates GRID von ARC/INFO kurz eingegangen.
Die folgende Tabelle bietet eine differenziertere Einteilung der wichtigsten GIS-Geometriedatenstrukturen
nach Raster- und Vektorformaten:
Vektor
Raster
Unstrukturiert (Spaghetti)
Nicht-Topologisch
Einfache BitMap / Matrix
Run-length encoded
Topologie (einfach/komplex)
Quadtree Modelle (diverse Erweiterungen)
Objekt-Orientiert
Tesselation
1.3.2.2. Topologie
Topologie ist definiert als die räumliche Beziehung der Geoobjekte zueinander:
In einer analogen Karte steckt implizit Information über die Lage der Geoobjekte zueinander: ein Mensch
kann die Karte lesen und erkennt dabei, daß die „Brücke über den Fluß“ verläuft oder sich „die Kirche
neben dem Marktplatz“ befindet. Soll der Rechner ähnliche Leistungen vollbringen, müssen außer der
Geometrie der Objekte zusätzliche Informationen explizit gespeichert werden (oder errechenbar sein).
Typische topologische Fragestellungen lauten:
• Schneidet Objekt A Objekt B ?
• Ist Objekt A in Objekt B enthalten?
• Sind Objekt A und B benachbart?
Die Geometrie der einzelnen Geoobjekte ist für solche Fragestellungen nicht ausschlaggebend. Bekannte
Beispiele für topologische Karten sind Pläne von Straßenbahn- oder Omnibuslinien. Der genau geometrische Verlauf der Straßen ist für diese unerheblich. Es ist sogar so, daß Veränderungen im Straßenverlauf
die topologische Struktur unverändert lassen. So können Haltestellen verschoben oder Straßen umgeleitet
werden, ohne daß sich die Topologie der Karte ändert. Das bekannteste Beispiel zur Erklärung dieser Invarianz gegenüber solchen Transformationen wie Drehung oder Streckung ist der Luftballon auf dessen
Hülle eine einfache Straßenkarte gemalt ist. Die Hülle des Luftballon kann stark verzerrt werden, aber
dennoch bleibt die Topologie der aufgemalten Objekte zueinander gleich.
GIS-Systeme können bezüglich ihrer Behandlung der Topologie unterschieden werden. Sie können ein
topologisches Datenmodell benutzen, also die topologischen Beziehungen explizit speichern, oder diese
bei Bedarf errechnen, d.h. über Möglichkeiten zur Bestimmung der topologischen Beziehungen verfügen.
ARC/INFO gehört zur ersten Kategorie, während ARCVIEW zur zweiten gerechnet würde. Systeme, die
keine der beiden Möglichkeiten unterstützen, sind dagegen nur als Visualisierungswerkzeug und nicht als
vollwertiges GIS anzusehen. Die explizite Speicherung der Topologie bewirkt, daß das Retrieval der Information relativ rasch vonstatten geht. Dieser Vorteil wird mit einem relativ aufwendigen Datenerhebungsund Editiervorgang erkauft. Es existieren verschiedene topologische Datenstrukturen wie DIME, TIGER,
GEOGRAF2 etc. Im Rahmen dieses Buches kann nur das von ARC/INFO verwendete Modell genauer dargelegt werden (vgl. Kapitel 2). Schnellere Hardware ermöglicht heute auch das Errechnen der Topologie
on the fly (in erträglicher Geschwindigkeit). Dies machen sich moderne, stärker objektorientierte Systeme
wie ARCVIEW, aber auch Konkurrenzprodukte, zunutze, indem sie sich die komplexere Datenverwaltung
sparen. Allerdings verzichten sie dadurch auch auf die eingebaute Sicherheit, daß die Beziehungen in den
8
Kapitel 1. Grundlagen
Daten konsistent sind, wie sie ein topologisches Datenmodell bietet. Die Vor- und Nachteile der beiden
Ansätze müssen also im Verhältnis zu ihrem Haupteinsatzgebiet gesehen werden. Sind topologische Analysen häufig und Veränderungen der Grunddaten selten, bietet sich ein topologisches Datenmodell an -auch wenn es um die Verwaltung großer Datenbestände geht, deren Korrektheit gewährleistet sein muß.
Liegt der Schwerpunkt auf der Visualisierung und verändert sich die Datengrundlage häufig, topologische
Beziehungen werden aber seltener abgefragt, so ist der zweite Ansatz pragmatischer.
1.3.2.3. Topologie in ARC/INFO
Der genauere Aufbau der vektorbasierten Datentypen und der dazu verwendeten wesentlichen Dateien und Tabellen wird in Kapitel Kapitel 2 vorgestellt. Folgende topologische Grundtypen werden in
ARC/INFO explizit abgelegt:
1.3.2.3.1. Connectivity
(Arc-Node Topologie, Verbundenheit von Features): Eine Kante (Arc) besteht aus zwei Knoten (Nodes),
die den Anfangs- und Endpunkt dieser Kante (From-Node und To-Node) definieren, damit eine Richtung
definieren und in einer für den Endbenutzer lesbaren Tabelle abgelegt sind. Die genaue Form der Kante
ist für die Topologie uninteressant. Diese Form, d.h der geometrische Verlauf eines Arcs, wird intern über
Zwischenpunkte (Vertices) definiert.
1.3.2.3.2. Flächendefinition
(Polygon-Arc Topologie): In ARC/INFO werden Polygone definiert, indem die das Polygon begrenzenden
Kantenlinien (Arcs) in einer internen Tabelle abgelegt werden.
1.3.2.3.3. Contiguity
(Rechts-Links-Topologie): Da jede Kante in ARC/INFO eine Richtung besitzt, kann das Programm daraus eine Tabelle mit den Polygonen erstellen, die jeweils links oder rechts dieser Kante (Arc) liegen.
Diese Tabelle wird gespeichert. Dabei erhält die „unendliche“ Restfläche, d.h. die Fläche außerhalb aller
definierten Polygone, die Nummer 1 und wird als Universalpolygon bezeichnet.
1.3.3. Thematik und Dynamik
1.3.3.1. Thematik
Wenn wir die Geometrie und Topologie eines Geoobjektes definiert haben, wissen wir noch nichts über
seine inhaltliche Bedeutung. Repräsentiert diese Linie einen Fluß oder Eisenbahnschienen? Ein Geoobjekt besitzt also eine sogenannte Thematik, die über Attribute, d.h. beschreibende Variablen festgelegt
wird. Diese sogenannten Sachdaten werden in der Regel in Datenbanken gespeichert und können unterschiedliche Datentypen oder Skalenniveaus aufweisen.
9
Kapitel 1. Grundlagen
1.3.3.1.1. Ebenenprinzip (Layerprinzip)
In ARC/INFO werden wie in vielen Geoinformationssystemen die Geometriedaten unterschiedlicher Thematik in der Regel voneinander getrennt gespeichert, d.h. in einzelnen Geometrieebenen (layers) vorgehalten. Diese Geometrieebenen sind in ARC/INFO die sogenannten Coverages (vgl. Kapitel 2). Dieses
Modellierungsprinzip stammt vom Folienprinzip der Kartographie ab. Bei diesem wirdfür jeden dargestellten Inhalt eine eigene Folie erstellt, z.B.: Gewässerfolie, Grünflächenfolie oder Schriftfolie. Durch
Austausch der einzelnen Folien (bzw. Coverages) können leicht thematische Karten erstellt werden. Außerdem können die einzelnen Informationsebenen getrennt bzw. in unterschiedlichen Kombinationen analysiert werden (vgl. Abbildung Abbildung 1-1).
1.3.3.1.2. Objektklassenprinzip (Klassenhierarchien)
Während beim Layerprinzip zunächst alle Ebenen gleichberechtigt sind, werden im Objektklassenprinzip
Geoobjekte zu Klassen geordnet. Ein Objekt besitzt damit einen bestimmten Klassentyp und kann in eine
Hierarchie von Klassen eingeordnet werden. Als Beispiel dazu zeigen wir in Abbildung Abbildung 1-2
einen Ausschnitt des Objektschlüsselkatalogs der ALK (Automatisierte Liegenschaftskarte).
Abbildung 1-1. Ebenenprinzip
Abbildung 1-2. Objektklassenprinzip am Beispiel ALK
10
Kapitel 1. Grundlagen
* Inhalt/Beschriftung von Abbildung fehlt
1.3.3.2. Dynamik
Die Dynamik eines Geoobjektes betrifft Änderungen des Geoobjektes über die Zeit. Diese Veränderungen können sowohl Thematik (Attributwerte), Geometrie oder Topologie betreffen. Am einfachsten sind
die Änderungen der Thematik, d.h. der Sachdaten. Einzelnen Attributen können Zeitabschnitte für die
Gültigkeit der einzelnen Ausprägungen zugewiesen werden. Dies kann mit herkömmlichen Datenbankmanagementsystemen (DBMS) realisiert werden, indem zusätzlich für jedes Attribut der Anfangs- und
Endzeitpunkt der Gültigkeit als Datum gespeichert wird. Für die Verwaltung der zeitlichen Veränderung
der Geometrie (2D oder 3D) oder gar Topologie von Geoobjekten sind in den meisten kommerziellen
Systemen nur rudimentäre Möglichkeiten vorgesehen. Diese beschränken sich oft darauf, zu bestimmten
Zeitpunkten Schnappschüsse zur Verfügung zu stellen. Im einfachsten Falle beinhaltet dies eine komplette Kopie des gesamten Datenbestandes. Dies ist natürlich äußerst ineffizient und zudem geht die Dynamik der Veränderungen zwischen diesen gespeicherten Zuständen verloren. Insbesondere objektorientierte Datenbanken bieten ausgefeiltere Mechanismen der Versionierung von Objektzuständen, eine nähere
Betrachtung derselben würde aber den Rahmen dieser Einführung sprengen.
* TODO AZ: (vgl. Zipf und Krüger ...)
Grundsätzlich müßten für eine möglichst realitätsnahe Modellierung also dynamische räumliche Prozesse
(spatio-temporal processes), mit gleichzeitigen Veränderungen in Raum und Zeit (und Attributwerten) behandelt werden. Entsprechende mehrdimensionale Analysemethoden oder Modelle sind äußerst komplex.
In der Regel finden vereinfachte Modelle Anwendung, wie z.B. Zeitreihen an einem Meßpunkt (Hauptaugenmerk auf der Zeit) oder die Analyse räumlicher Verteilungsmuster zwischen definierten Zeitpunkten
(Hauptaugenmerk auf dem Raum). Ein wichtiges Hilfsmittel stellt die Visualisierung solcher mehrdimensionaler Phänomene dar. Hierbei können neue Hilfsmittel wie Virtual Reality von Nutzen sein. (siehe dazu
auch Kapitel 7)
1.4. Datenbanken
Die Speicherung von Daten erfolgt entweder als einfache Datei (Flat File) in der Dateistruktur des Betriebssystems, oder besser unter Zuhilfenahme einer Datenbank, genauer eines Datenbank-ManagementSystems (DBMS). Für GIS ist dabei die unterschiedliche Behandlung von Geometriedaten, Topologie und
der thematischen Sachdaten von Bedeutung. Für letztere hat sich die Speicherung in Datenbanksystemen
durchgesetzt. Geometrie und Topologie bereiten Standard-DBMS jedoch Schwierigkeiten, da diese für
einfache eindimensionale Tabellen entwickelt wurden. Hierfür wurden eigene Lösungen gefunden, wobei
die Verwaltung der Geometrie und Topologie in Datenbanken gerade durch neue Entwicklungen ein starkes Wachstum erfährt. Die großen Datenmengen und die hohen Anschaffungs- und Pflegekosten, die für
Geodaten typisch sind, machen eine professionelle Speicherung aller Daten in Datenbanken unerläßlich.
* Heute Realität - Geodatenserver - OGC - Arc 8 - GeoDB - ArcSDE, vgl. Kapitel Geodatenbanken
Zunächst sollen die grundlegenden Begriffe geklärt werden:
Inhaltlich zusammengehörige Dateien bilden eine Datenbank (Datenbasis, DB). Spezielle Softwareprogramme, die die integre Verwaltung und Auswertung solcher Datenbestände erlauben, heißen Datenbank-
11
Kapitel 1. Grundlagen
managementsystem (DBMS). Zusammen bilden DBMS und ein oder mehrere Datenbanken ein Datenbanksystem, was in Abbildung Abbildung 1-3 veranschaulicht wird.
Abbildung 1-3. Datenbanksystem (DBS)
Allerdings werden umgangssprachlich auch oft Datenbanksysteme oder Datenbankmanagementsysteme
als Datenbanken bezeichnet. Wir werden im Folgenden daher nicht die strikte Nomenklatur einhalten.
Bekannte DBMS sind z.B. Oracle, Informix, DB2 oder MS SQL-Server.
1.4.1. Datenmodelle von ARC/INFO
In einem Datenbanksystem können 3 Ebenen bezüglich der Datenmodelle unterschieden werden.
Externe Ebene
Unterschiedliche Sichten verschiedener Anwender auf die Daten
Konzeptionelle Ebene
Strukturierung der Daten unabhängig von Hard- und Software oder speziellen
Fachfragen. Beliebtes Hilfsmittel zur konzeptionellen oder logischen
Modellierung des fraglichen Weltausschnitts sind die sogenannten
ER-Diagramme (Entity-Relationship-Diagramme).
Interne Ebene
Physische Organisation der Speicherung auf dem Rechner, d.h. Festlegung von
Datentypen, Speicherplatzen, Speichermedium, Zugriffsoperationen etc.
Die einzelnen Ebenen sind unabhängig voneinander. Aus dieser schichten-basierten Sichtweise lassen
sich einige Vorteile von Datenbanken gegenüber der Speicherung auf Basis einfacher Dateien ableiten:
• Unabhängigkeit von Anwendungsprogrammen
• Datenintegrität
• Mehrbenutzerbetrieb
• Verschiedene Sichten auf Daten
• Sicherheit
1.4.1.1. Konzeptionelle Modellierung mit ER-Diagrammen
Bei der Datenmodellierung handelt es sich um eine Abstraktion, bei der ein Ausschnitt der realen Welt in
Form einer Datenbeschreibung abgebildet wird.
12
Kapitel 1. Grundlagen
Das ER-Modell ist ein möglicher Ansatz, von der realen Welt zu abstrahieren. Dabei wird in dem betrachteten Ausschnitt der Wirklichkeit nach Objekten gesucht, die miteinander in Beziehung (= Relationship)
stehen und dies im Rahmen einer speziellen grafischen Notation dargestellt. Diese Technik wird vor allem
dazu verwendet, die reale Welt in Form eines abstrakteren Diagramms anschaulich darzustellen. Diese
Diagramme können dann in ein Datenbankschema überführt werden. Es gibt Softwarewerkzeuge, die dabei helfen (CASE-Tools (Computer Aided Software Engineering)). Folgende Begriffe müssen in diesem
Zusammenhang kurz erläutert werden:
1.4.1.1.1. Entität
Ein real existierendes oder abstraktes, aber identifizierbares Objekt, das meist in Form eines Rechteckes
dargestellt wird.
1.4.1.1.2. Beziehung
Eine Beziehung (relationship) zeigt eine mögliche Verbindung, einen Zusammenhang zwischen zwei Entitäten auf. Für die Namen von Beziehungen werden daher gerne Verben benutzt. Dabei muß beachtet
werden, daß Beziehungen von zwei Richtungen aus gelesen werden können, dann erhält die Beziehung
gegebenenfalls zwei unterschiedliche Rollennamen. Relationships werden meist als Raute dargestellt. Linien weisen zu den einzelnen Entitäten.
Es existieren verschiedene spezielle Typen von Beziehungen, wie Aggregation (Teil Ganzes-Beziehung),
IS_A, Vater-Sohn-Beziehung, ...
1.4.1.1.3. Attribute
In einem weiteren Schritt werden nun Eigenschaften (Attribute) der einzelnen Entitäten und Beziehungen
identifiziert, die sie beschreiben. Attribute ordnen den Entitäten oder auch den Beziehungen beschreibende
Werte zu. Hierbei muß auf die funktionale Abhängigkeit geachtet werden.
So kann ein Grundstück als Attribute einen zugehörigen NAMEN, eine ZUGEHOERIGKEIT zu einer Gemeinde, eine FLURSTUECKNUMMER, einen EIGENTUEMER, eine LANDNUTZUNG etc. besitzen.
Der Besitzer wird z.B. durch seinen NAMEN, die , die SPRACHE charakterisiert. Auch die Beziehungen
können durch Attribute genauer charakterisiert werden. In unserem Beispiel z.B. das Jahr (DATUM), in
der Besitzer das Grundstück erworben hat.
1.4.1.1.4. Kardinaliät
Die Kardinalität beschreibt die Quantität, die zwischen den beiden Entitäten herrscht, d.h. wie viele Exemplare einer Entität mit wie vielen Exemplaren einer anderen Entität in einer speziellen Beziehung stehen können. Folgende Typen können unterschieden werden: 1:1, 1:n, n:m. (Für die ns oder ms können
gegebenenfalls konkrete Zahlen eingesetzt werden). Es existieren noch andere Schreibweisen für Kardinalitäten, auf die hier aber nicht eingegangen werden soll.
Abbildung 1-4. 1:n-Beziehung
13
Kapitel 1. Grundlagen
Als Illustration soll Abbildung 1-4 dienen: ein Eigentümer kann mehrere Flurstücke besitzen, aber ein
Flurstück gehört genau einem Eigentümer. Man kann sich bereits über diesen Fall streiten. Wieso sollte
ein Flurstück nicht mehrere Eigentümer haben? Die Modellierung hängt also sehr stark davon ab, wie der
Modellierende den Weltauschnitt sieht und welche Randbedingungen für die Anwendung gegeben sind.
1.4.1.2. Logische Datenbankschemata
Für Datenbanken existieren verschiedene Möglichkeiten für den Aufbau der konzeptionellen (oder logischen) Datenschemata. Die grundlegenden logischen Schemata sollen kurz angeführt werden:
Tabelle 1-4. Logische Datenbankschemata
Hierarchisch
Nur 1:n- Beziehungen (d.h. auch 1:1) -- einfache Baumstruktur (historisch ältestes
Datenbankkonzept)
Netzwerk
Navigation in Graphen. Bsp: IMS von IBM.
Relational
Tabellen als Grundstruktur -- heute Standard der meisten kommerziellen DBMS,
besonders für Sachdaten geeignet
Postrelational, Die aktuellen Entwicklungen zeigen in Richtung einer Verschmelzung von relationalen
objektrelational, und objektorientierten Ansätzen.
hybrid
Objektorientiert „Natürliche“ Sichtweise auf die modellierten Objekte. Einheit von Daten und
Methoden, Zugriff auf das Objekt nur über die von ihm unterstützen Methoden,
Vererbung / Kapselung/ und Polymorphie.
Für Attributdaten hat sich das relationale Modell etabliert. Netzwerk- und hierarchische Datenbanken besitzen hier nur historische Bedeutung. Bei räumlichen Datenstrukturen spielen sie neben originären Konzepten noch eine gewisse Rolle. Objektorientierte Datenmodelle konnten sich nicht kommerziell durchsetzen. Auf sie werden Hoffnungen bei der Modellierung komplexer Daten gesetzt, da relationale Datenbanken im Wesentlichen für einfache "flache" Tabellen entwickelt wurden und Schwierigkeiten bestehen,
komplexere Zusammenhänge effektiv in (normalisierter) Tabellenform darzustellen. Es gibt mittlerweile
ein breites Angebot an sogenannter Middleware, die die Speicherung komplexer Objekte (wie Geometrie)
in relationalen Systemen erlaubt. Damit ist ein Trend zu objektrelationalen (hybriden) Datenbanksystemen
zu verzeichnen. Beispiele für solche Middleware-Lösungen sind die Spatial Data Cartridge für Oracle, der
Spatial Extender von IBM oder die Spatial Database Engine (ArcSDE) von ESRI. ARC/INFO in Version
8 wird heute standardmäßig mit solchen GeoDB geliefert. Dies unterstreicht die heutige Marktdominanz
relationaler Datenbanksysteme. Es ist daher notwendig, einige grundlegende Begriffe dieses Datenbanktyps zu klären.
1.4.1.3. Relationale Datenbanken
In diesem Rahmen kann nur eine erste Begriffsbestimmung einiger für (relationale) Datenbanken wichtiger Aspekte erfolgen, damit ein grundsätzliches Verständnis des später Folgenden möglich ist. Sollen
selbst größere Datenbanken aufgebaut werden empfiehlt sich eine eingehendere Beschäftigung mit diesem Thema.
14
Kapitel 1. Grundlagen
1.4.1.4. Grundbegriffe
1.4.1.4.1. Transaktion
Das Transaktionsprinzip ist einer der grundlegenden Mechanismen in Datenbanken. Durch Transaktionsmechanismen werden erst sichere auf Datenbanken basierende Anwendungen oder Mehrbenutzerfähigkeit ermöglicht. Eine Transaktion besteht aus einer Folge von zusammengehörigen Verarbeitungsschritten
innerhalb der Datenbank, die z.B. ein Benutzer als eine Aufgabe durchführen will (z.B. die Änderung eines Wertes in einer Tabelle). Vereinfacht dargestellt basieren Transaktionen auf dem „Alles oder Nichts“Prinzip: Entweder wird die gesamte Transaktion erfolgreich durchgeführt oder komplett zurückgewiesen.
Auch bei einem Systemabsturz mitten im laufenden Betrieb, bei dem bei einer Mehrbenutzerdatenbank
sehr viele Transaktionen gleichzeitig aktiv sein können, darf kein inkonsistenter Zustand der Daten entstehen, sondern es muß die Integrität der gesamten Datenbank gesichert bleiben. Inkonsistente Zustände
könnten z.B. dann auftreten, wenn ein Wert gelöscht, aber der neue Wert noch nicht eingefügt wurde,
oder Trigger (siehe unten im Abschnitt Abschnitt 1.4.1.4.5) nicht vollständig ausgeführt wurden. Es gibt
verschiedene Ansätze, um den Transaktionsgedanken zu realisieren. Diese sogenannten Lockingmechanismen beruhen darauf, die gerade in Benutzung (Read, Write) befindlichen Tabellen (oder Tupel) für
andere Benutzer auf gewisse Weise zu sperren.
1.4.1.4.2. Primärschlüssel
In Relationen dürfen Tupel (Zeilen) mit gleichen Einträgen in allen Attributen nicht vorkommen, d.h.
Einträge müssen eindeutig identifizierbar sein. Identifiziert werden die Einträge genau durch ihre Attribute. Kombinationen von Attributen, die einen Eintrag eindeutig identifizieren, heißen Schlüsselkandidaten.
Aus den Schlüsselkandidaten kann einer, nämlich der minimale (d.h. mit der kleinsten Menge beteiligter Attribute) als Primärschlüssel ausgewählt werden. Der Primärschlüssel identifiziert damit jede Zeile
eindeutig und besteht aus der minimalen Anzahl dazu notwendiger Attribute. Aus der Forderung der eindeutigen Identifizierbarkeit folgt, daß der Wert eines Primärschlüssels nie NULL sein darf. Oft wird extra
ein eigenes, neues Attribut als Primärschlüssel kreiert: z.B. werden Integerwerte beständig hochgezählt
oder vom System generierte, eindeutige Werte vergeben.
Abbildung 1-5. Primärschlüssel: Geometriedaten
1.4.1.4.3. Fremdschlüssel
Kommt der Primärschlüssel einer Relation in einer anderen Relation noch einmal als Attribut(menge)
15
Kapitel 1. Grundlagen
vor, d.h. referenzieren diese Attribute die erste Relation eindeutig, so werden sie in der zweiten Relation
als Fremdschlüssel bezeichnet. Auf diese Weise können Beziehungen (Relationships) des ER-Modells im
Fall 1:n realisiert werden.
Abbildung 1-6. Fremdschlüssel: Sachdaten
1.4.1.4.4. Sichten (Views)
Ein View (in einer Datenbank) ist eine externe Sicht (d.h. die eines Endanwenders oder eines externen Anwendungsprogrammes) auf die Daten. Ein View beruht auf einer konkreten Abfrage der real existierenden
Tabellen einer Datenbank und wird beim Aufruf dynamisch erzeugt. Man kann einen View daher auch
als virtuelle Tabelle bezeichnen. Damit zeigt ein View auch immer die aktuellen Daten an, da bei jedem
Öffnen eines solchen Views die entsprechende Abfrage von neuem ausgeführt wird. Für verschiedene
Benutzer oder Benutzerkategorien können auf diese Weise verschiedene Sichten (je nach Benutzerrechten) auf dieselbe zentrale Datenbasis definiert werden. Beispielsweise dürfen nur Mitarbeiter bestimmter
Abteilungen definierte Attribute gewisser Tabellen ansehen oder gar verändern. Dies wird über datenbankinterne Zugriffsrechte geregelt, die zusätzlich die Sicherheit einer Datenbank gewährleisten.
In ARC/INFO exisitiert ebenfalls der Begriff view, der eine ähnliche, aber eigene Bedeutung aufweist und
in Kapitel 6 eingehender erläutert wird.
1.4.1.4.5. Integritätsbedingungen
Integritätsregeln sind Regeln, die bei der Eingabe oder Veränderung von Werten in der Datenbank beachtet
werden müssen, damit die sachliche und logische Korrektheit der Datenbasis gewährleistet ist. Sie umfassen z.B. erlaubte Wertebereiche und Datentypen, sowie sogenannte Geschäftsregeln (business rules), die
in relationalen Datenbanken z.B. mit Hilfe von Triggern oder Stored Procedures realisiert werden können.
Trigger sind Anweisungen (Programmcode), die beim Verändern von Werten ausgeführt werden und z.B.
die Korrektheit der Änderungen überprüfen oder auf Grundlage der Eingaben andere Daten verändern.
1.4.1.4.6. Referentielle Integrität
Die Einhaltung folgender Regeln muß u.a. vom Datenbankmanagementsystem gewährleistet werden:
16
Kapitel 1. Grundlagen
• Kein Bestandteil eines Primärschlüssels (wenn es sich um einen zusammengesetzten Primärschlüssel
handelt) darf je den Wert NULL annehmen, da sonst der Gesamtschlüssel den Datensatz nicht mehr
eindeutig identifiziert.
• Zeilen, die einen Fremdschlüssel enthalten, müssen den Wert des bereits vergebenen Primärschlüssels
in der referenzierten Tabelle besitzen oder den Wert NULL, sonst werden sie abgewiesen.
• Primärschlüssel dürfen nicht verändert werden, wenn zu ihnen Fremdschlüssel existieren.
1.4.1.4.7. Indizes
Typisch für Standard-Datenbanksysteme sind eindimensionale Indexmechanismen (z.B. B-Bäume). Für
raumbezogene Daten werden spezielle Zugriffsmechanismen benötigt, die später kurz angerissen werden.
1.4.1.5. Normalformen
Wir haben Relationen im Wesentlichen als Tabellen mit gleicher Variablenstruktur definiert. Diese Tabellen erfüllen eine bestimmte Normalform, wenn die Struktur der Tabellen gewissen Regeln entspricht.
Es können mehrere Normalformen unterschieden werden. Der Zweck der Normalisierung von Tabellen
ist die Beseitigung von Redundanzen oder mehrwertigen Abhängigkeiten zwischen Attributen. Falls diese
Regeln nicht befolgt werden, kann es zu sogenannten Anomalien kommen, die die logische Konsistenz
der Datenbasis gefährden, da dann in unterschiedlichen Tabellen sich widersprechende Aussagen zum
Inhalt gewisser Variablen existieren.
Im Folgenden geben wir eine kurze Charakterisierung der wichtigsten Normalformen:
Normalformen NF
1NF
Eine Relation ist in erster Normalform (1NF), wenn jeder Attributwert elementar ist, also nicht aus
mehreren Bestandteilen besteht (Vektoren, Gruppen, Aufzählungen).
2NF
Eine Relation ist in zweiter Normalform (2NF), wenn sie in 1NF ist und jedes Nichtschlüssel-Attribut
vom Gesamtschlüssel voll funktional abhängig ist. D.h.: Ein Nicht-Schlüsselattribut darf nicht schon
von einem Teil des Schlüssels abhängen.
3NF
Eine Relation ist in dritter Normalform (3NF), wenn sie in 2NF ist und kein Nichtschlüssel-Attribut
von einer Menge anderer Schlüssel-Attribute transitiv abhängig ist.
4NF
Eine Relation ist in vierter Normalform (4NF), wenn sie in 3NF ist und außer funktionalen Abhängigkeiten keine mehrwertigen Abhängigkeiten enthält.
17
Kapitel 1. Grundlagen
5NF
Eine Relation ist in fünfter Normalform (5NF), wenn sie in 4NF ist und wenn sie nicht dadurch
gewonnen werden kann, daß einfachere Relationen mit unterschiedlichen Schlüsseln verschmolzen
werden. Ihre praktische Bedeutung ist umstritten.
Wird eine relationale Datenbank entworfen, so sollten die Tabellen grundsätzlich normalisiert sein. Allerdings können Performanceaspekte o.ä. Abweichungen sinnvoll erscheinen lassen. Diese sollen dann aber
sehr bewußt vorgenommen werden. Mögliche Inkonsistenzen müssen erkannt und z.B. von der auf der
Datenbank aufsetzenden Anwendung oder von Triggern oder Stored Procedures behandelt werden.
1.4.1.6. Manipulation und Selektion von Sachdaten mit SQL
Die Structured Query Language (SQL) ist die standardisierte Sprache zum Erzeugen, Manipulieren und
Abfragen von relationalen Datenbanken, weswegen diese umgangssprachlich manchmal auch SQL-Datenbanken
genannt werden.
SQL (Structured Query Language) wurde ursprünglich in den 70er Jahren in den Labors von IBM entwickelt und stellt eine Möglichkeit des Zugriffs auf relationale Datenbanken dar. SQL-Anweisungen
dienen dazu, Tabellen zu erzeugen, Daten aufzufinden, einzufügen, zu verändern oder zu löschen und
Zugriffsberechtigungen zu verwalten. Seither wurde SQL zum Standard für den Zugriff auf relationale
Datenbanken, wenn sich auch, wie nachfolgend erläutert, verschiedene „Dialekte“ entwickelten.
Beispiele für den Umgang mit externen relationalen Datenbanken und SQL mit ARC/INFO finden sich
im Kapitel Kapitel 3. Hier sollen nur einige wesentliche Konstrukte von SQL vorgestellt werden.
1.4.1.6.1. SQL als Datendefinitionssprache
Beispiel 1-1. Tabelle / Sicht erstellen
CREATE TABLE;
CREATE VIEW AS ...
1.4.1.6.2. Relationale Operationen
Beispiel 1-2. Selektion: Auswahl von Zeilen einer Tabelle
SELECT * FROM MITARBEITER WHERE NAME = "Maier";
Alle Zeilen, deren Feld Name den Eintrag Maier enthält, werden ausgewählt.
Beispiel 1-3. Projektion: Auswahl von Spalten einer Tabelle
SELECT NAME, GEHALT FROM MITARBEITER;
Aus der Tabelle „Mitarbeiter“ werden die Spalten Name und Gehalt ausgewählt.
18
Kapitel 1. Grundlagen
Beispiel 1-4. Verbund: Relationen werden miteinander verknüpft (JOIN)
SELECT MITARBEITER.NAME, ABTEILUNG.NAME FROM MITARBEITER, ABTEILUNG WHERE MITARBEITER.ABTEILUNG = ABTEILUNG.ID;
Gibt alle Mitarbeiter mit dem Namen der Abteilung, in der sie arbeiten aus. Die Namen von Mitarbeitern
und Abteilungen stehen in jeweils eigenen Tabellen und werden über das Attribut ID als Fremdschlüssel
verknüpft.
1.4.1.6.3. Mengenoperationen
Beispiel 1-5. Vereinigung mehrerer Tabellen (UNION)
SELECT * FROM BERGHEIM.EINWOHNER
UNION
SELECT * FROM NEUENHEIM.EINWOHNER;
Die Ergebnistabelle erhält die Liste aller Einwohner von Bergheim und Neuenheim.
Beispiel 1-6. Schnittbildung (INTERSECT)
SELECT * FROM BANKA.KUNDEN
INTERSECT
SELECT * FROM FIRMAB.KUNDEN;
Die Ergebnistabelle erhält die Liste aller Kundendaten, die sowohl Kunde der Bank A als auch der Firma
B sind.
Beispiel 1-7. Differenz (EXCEPT)
SELECT * FROM BANKA.KUNDEN
EXCEPT
(SELECT * FROM FIRMAB.KUNDEN);
Die Ergebnistabelle enthält alle Kundendaten der Bank A, die nicht Kunden der Firma B sind.
Wie wir später sehen werden, gibt es in ARC/INFO recht ähnliche Operationen zur geometrischen Verschneidung von räumlichen Gebietseinheiten, bzw. Geoobjekten (vgl. Kapitel 4). Dies motiviert auch
die zunehmende Verlagerung von GIS-Funktionalität in Datenbanken, bzw. die Entwicklung von SQLErweiterungen für raumbezogene Datentypen.
1.4.1.7. Raumbezogene Erweiterungen von SQL (OPENGIS)
Im folgenden sollen Entwicklungstendenzen der Sprache SQL in Bezug auf die Integration geographischer Elemente vorgestellt werden.
Eine Komponente des SQL 3-Standards ist SQL MM. Diese definiert standardisierte Erweiterungen für
die Handhabung von Datentypen wie Text, Bild und räumlichen Daten. Es wird versucht, SQL Multimedia
19
Kapitel 1. Grundlagen
(MM) mit dem Open GIS Standard abzustimmen, so daß beide die gleiche Funktionalität für räumliche
Daten besitzen.
Im Folgenden wird die OpenGIS Simple Features Specification For SQL Revision 1.0 erläutert, die im
März 1998 veröffentlicht wurde, und an der u.a. die folgenden Unternehmen beteiligt sind:
• Environmental Systems Research Institute, Inc. (ESRI)
• IBM Corporation.
• Informix Software, Inc.
• MapInfo Corporation.
• Oracle Corporation.
Ziel dieser Spezifikation ist die Definition eines standardisierten SQL-Schemas, das die Speicherung,
Wiederauffindung, Abfrage einschließlich Update einer Auswahl einfacher räumlicher Objekte mittels
der ODBC API unterstützt. Hierbei wird unter einem Feature ein Objekt mit geometrischen Attributen
verstanden. Eine Tabelle, deren Zeilen grundlegende räumliche Objekte (OpenGIS Simple Features) enthalten, wird Feature Table genannt. Ein Objekt, das in einer Feature Table gespeichert wird, besteht aus
einer zweidimensionalen Geometrie mit linearer Interpolation zwischen den Knoten (Vertices). Einem
solchen Objekt werden sowohl räumliche als auch nicht-räumliche Attribute zugeordnet. Vom Ansatz
her werden die Datensätze räumlicher Objekte in einem relationalen DBMS in Tabellen gespeichert.
Die nicht-räumlichen Attribute der Objekte werden in Spalten eingetragen, deren Datentypen denen des
Standard-SQL92 entnommen sind. Die räumlichen Attribute der Objekte beziehen sich auf Spalten, deren
Datentypen auf dem Konzept der zusätzlichen geometrischen Datentypen für SQL basieren.
Dem Ansatz liegt folgendes geometrisches Objektmodell zugrunde (siehe Abb.):
Die übergeordnete Geometrieklasse (Geometry) hat als Unterklassen Point, Curve, Surface und GeometryCollection. Jedes geometrische Objekt ist mit einem räumlichen Referenzsystem verbunden, das Auskunft
über den Koordinatenraum gibt, in dem das geometrische Objekt definiert ist.
Die null-, ein- und zweidimensionalen Klassen namens MultiPoint, MultiLineString und MultiPolygon setzen sich aus einer Sammlung von Punkten (Points), Linien (LineStrings) und Flächen (Polygons) zusammen. Alle Elemente einer Sammlung von Geometrien müssen dem gleichen räumlichen Referenzsystem
zugeordnet sein. Die Einführung von MultiCurve und MultiSurface als abstrakte Oberklassen verallgemeinert die Schnittstelle zu den Geometriesammlungen und vereinfacht den Umgang mit Kurven und
Flächen.
Die Spezifikation stellt neben den neuen Datentypen auch neue Methoden zur Verfügung, um räumliche
Beziehungen zwischen geometrischen Objekten zu überprüfen:
Tabelle 1-5. Neue SQL-Methoden in OPENGIS
Equal
Prüfen, ob eine Geometrie räumlich gleich einer anderen ist.
Disjoint
Prüfen, ob eine Geometrie räumlich getrennt von einer anderen ist.
Intersect
Prüfen, ob eine Geometrie eine andere räumlich schneidet.
Touch
Prüfen, ob eine Geometrie eine andere räumlich berührt.
Contains
Prüfen, ob eine Geometrie eine andere beinhaltet
Diese und weitere Methoden waren bisher nur Geographischen Informationssystemen vorbehalten und
20
Kapitel 1. Grundlagen
sind jetzt direkt in der Datenbank verfügbar. Weiterhin stehen u.a. folgende Methoden bereit, die räumliche Analysen unterstützen:
Tabelle 1-6. Methoden für räumliche Analyse
Distance
Ermittelt die kürzeste Distanz zwischen zwei beliebigen Punkten.
Buffer
Ermittelt eine Geometrie, deren Punkte sich gleich oder innerhalb eines
maximalen Abstandes befinden. Dies ermöglicht z.B. die Berechnung
eines lärmbelasteten Streifens 50m rechts und links von einer Straße.
ConvexHull
Ermittelt die Umrandung einer Geometrie.
Intersection
Ermittelt die Punkte einer Geometrie, die sich mit denen einer anderen
überlagern.
Difference
Ermittelt die Punkte einer Geometrie, die sich von denen einer anderen
unterscheiden.
Die SQL92-Implementation von räumlichen Objekten, wie sie von OpenGIS definiert werden, erzeugt
ein Schema zur Speicherung der Feature Tables, der Geometrie und der Informationen des räumlichen
Referenzsystems. Sie legt also ein Schema zur Speicherung der räumlichen Attribute, der abstrakten geometrischen Klasse (Punkt, Linie, Fläche ...) und des zugehörigen räumlichen Referenzsystems fest.
* Textbaustein von Alex zu OGC, geodB und SFS fuer CORBA
1.4.1.8. Die Spatial Database Engine (SDE) von ESRI
* TODO AZ: Einleitung
Damit SDE diesen offenen Datenzugriff gewährleisten kann, hat ESRI eine dreischichtige Client/ServerArchitektur. Diese ist folgendermaßen aufgebaut:
• Präsentationsschicht (ArcView GIS, MapObjects, ARC/INFO, ArcExplorer etc.),
• Application Server-Schicht (SDE Server),
• Datenmanager-Schicht (ARC/INFO Coverages, Open GIS Simple Features, SDE compressed binary,
RDBMS3).
SDE arbeitet mit allen führenden modernen relationalen DBMS-Produkten wie Oracle, Informix, IBM
DB2, Microsoft SQL Server und Sysbase zusammen. SDE benutzt das darunterliegende RDBMS, das für
den Endbenutzer und den Anwendungsentwickler „unsichtbar“ ist und das die räumlichen und nichträumlichen Daten enthält. SDE ist mittels eines „Database Interface Modules“ eng mit dem RDBMS gekoppelt.
Dieses Modul ist die Schnittstelle zu allen in dem darunterliegenden RDBMS gespeicherten, Geodaten
und Sachdaten. Dieses Modul wurde so anbieterunabhängig wie möglich vom RDBMS gestaltet, um die
Zusammenarbeit mit vielen Systemen zu erreichen.
Ein SDE-Datensatz wird Schicht (Layer) genannt und ist ein Satz von geographischen Eigenschaften
einheitlicher Objekttypen, die die gleichen Attribute haben. Ist z.B. ein Gebietsausschnitt eines topologischen oder kartographischen Modells nicht als ein komplettes Objekt gespeichert, sondern als Pfade,
die entlang von Punkten aufgereiht sind, hat das zum Nachteil, daß jeder Zugriff auf das Polygon des
Gebietes eine Rekonstruktion benötigt, die viele Plattenzugriffe nach sich zieht. Um diesen Nachteil zu
21
Kapitel 1. Grundlagen
umgehen, speichert das von SDE verwendete Objekt-Entitäten-Modell jedes Gebiet als ein komplettes
Polygon, wodurch das ganze Objekt mit einem einmaligen Plattenzugriff geladen werden kann.
* TODO AZ: Tabelle Eigenschaften von SDE (aus Web ESRI D)
1.4.1.9. Auf dem Weg zu raumzeitlichen Datenbanken
Ein spannende Fragestellung für die Forschung ist die Verwaltung historischer Geodaten. Um in die Datenbank einen historischen Bezug zu integrieren, müssen alle Informationen, die über die Zeit hinweg
eine Veränderung erfahren haben, mit einem entsprechenden Zeitbezug versehen werden. Wie die steigende Anzahl von Publikationen zeigt, wird die Integration der Zeit in der Datenbank von immer größerer
Bedeutung. Die zeitliche Veränderung ist ein grundlegender Bestandteil von Phänomenen in der Realität.
Es gibt verschiedene „Arten“ von Zeit, die je nach Bedeutung auf unterschiedliche reale Sachverhalte
verweisen, wie z.B. Ereignisse, Tatsachen, Prozesse. Bei der Definition und Verwaltung zeitabhängiger
Daten haben sich, bezogen auf die Verwaltung in SQL-Datenbanken, nach Snodgrass [Sno98] schon einfache Konzepte, wie z.B. der Schutz vor Duplikaten von zeitabhängigen Daten als überraschend komplex
erwiesen.
* TODO AZ: Textbaustein
1.4.2. Speicherstrukturen für raumbezogene Daten
Räumliche Daten weisen im Gegensatz zu den üblicherweise in Datenbanken gespeicherten eindimensionalen Sachdaten (z.B. Wirtschaftsdaten) einige Besonderheiten auf. Dazu gehört vor allem die inhärente
Zweidimensionalität der Daten, die eine einfache Sortierung (und damit eine Standard-Indizierung über
B-Bäume oder ähnliche eindimensionale Indexalgorithmen) erschwert. Daher wurden besondere Verfahren entwickelt, um Geometriedaten im Computer zu speichern. Hierin ist auch die historische Trennung
der Speicherung von Geometriedaten und Sachdaten in unterschiedlichen Datenbanken in den meisten
GIS begründet.
Einige wenige dieser zweidimensionalen Indexalgorithmen sollen hier wenigstens angeführt werden. Für
den Endbenutzer sind sie von untergeordneter Bedeutung. Sie betreffen im wesentlichen die Performanz
räumlicher Abfragen. Vertiefende Informationen können aus der einschlägigen Fachliteratur, speziell auch
derjeniger der Geoinformatik gewonnen werden. Sogenannte Nicht-Standard-Datenbankensysteme sind
noch immer Forschungsgegenstand der Informatik.
• Rasterzellen
• Quadtrees (4 Nachfolger je Knoten)
• Halbebenenunterteilung (k-1 dimensionale Hyperebenen)
• K-d-Bäume
• K-d-B-Bäume
• etc.
(BILL / FRITSCH , 1991, 305)
Es existieren weitere Methoden, um den physikalischen Zugriff auf die Daten mittels unterschiedlicher
Datenstrukturen zu realisieren:
22
Kapitel 1. Grundlagen
• Extendable hashing (Formelbasiertes Indexmanagement)
• Extendable cell method (Erweiterung desselben)
• Gridfile
• R-Baum (R+ -Baum)
• Zellbaum (Knoten mit komplexen Polyedern)
(BILL / FRITSCH 1991, 306)
Dynamische Zugriffsmethoden zeichnen sich dadurch aus, daß sie sich dem Wachstum des Datenvolumens dynamisch anpassen, wodurch die periodische Notwendigkeit der Reorganisation der Daten entfällt und effizienter Zugriff bei akzeptablem Speicherplatzverbrauch gewährleistet ist. In diesem Rahmen
können und sollen nur einige gängige Verfahren erwähnt werden. Genauere Beschreibungen liefert die
Fachliteratur.
* TODO AZ: noch ein paar Takte dazu
1.5. Analysefunktionen
Im Zusammenhang mit GIS tauchen immer wieder die Begriffe Spatial Analysis (raumbezogene Analyse)
oder Spatial Modelling (raumbezogene Modellierung) auf. Die folgenden Tabellen geben eine knappe
Übersicht über die damit verknüpften Konzepte. Grundsätzliche Erläuterungen zu den damit verbundenen
Funktionalitäten finden sich in den Standard-Lehrbüchern zu GIS:
* TODO AZ: Verweis auf Fotheringham etc.
Die in ARC/INFO relevanten Variationen werden vor allem in den Kapiteln Kapitel 4 und Kapitel 7
angesprochen. Wie die folgenden Aufzählungen andeuten, existieren daneben eine große Zahl weiterer
Analysemethoden, die jedoch den hier verfügbaren Rahmen sprengen würden, sollten sie alle ausführlich
behandelt werden.
1.5.1. Räumliche Transformationen
• Koordinatensystemkonvertierung
• Rubber-sheeting (Entzerrung)
• Erzeugung von Pufferzonen (buffer generation)
•
um Punkte (Punkt zu Fläche)
•
um Linien (Linie zu Fläche)
•
um Flächen (Fläche zu Fläche)
• Thiessen Tessellation / Delaunay Triangulation (Punkt zu Fläche)
• Netzwerk Einzugsbereich (Linie zu Fläche)
23
Kapitel 1. Grundlagen
1.5.2. Räumliche Suche
• Entfernung
• Räumliche Bemaßung, Fläche, ...
1.5.3. Räumliche Statistik
• Räumliche Korrelation und Autokorrelation
• Interpolation
• Gravitätsmodelle
• Mustererkennung
• Fehleranalyse
• Fernerkundung und Satellitenbildinterpretation
1.5.4. Netzwerkanalyse
• Kürzeste Strecke
• Pfadanalysen in Netzwerken
• Konnektivität
• Gerichtete Netzwerke
• Interaktionsmodellierung
• Ermittlung von Einzugsbereichen
1.5.5. Oberflächenanalyse
• Interpolation
• Hangneigung
• Hangrichtung
• Sichtbarkeit
• Volumenberechnung
Aus den genannten Anwendungsbereichen bzw. den gewünschten Funktionalitäten ergeben sich folgende
Anforderungen an ein GIS:
• Fähigkeit, große heterogene Mengen räumlich indizierter Punkte zu verwalten
24
Kapitel 1. Grundlagen
• Möglichkeit der Abfrage solcher Datenbanken hinsichtlich Existenz, Position und Eigenschaften von
raumbezogenen Objekten
• Möglichkeit der Interaktion, Verknüpfung von Abfragen
• Offenheit des Systems in Hinsicht auf Nutzeranpassung und Aufgabenanpassung
1.6. Datenqualität und Metadaten
Die mittels Geographischer Informationssysteme erzielten Analyseergebnisse können nur so gut sein wie
die Daten, auf denen sie aufbauen. Von deren Qualität und Eignung hängt die Gültigkeit einer Untersuchung ab. Eines der größten Probleme ist die Maßstabsfrage, da Geometriedaten unterschiedlichster
Maßstabsebenen und damit Generalisierungsgrade digitalisiert und mittels Zoom- und Streckfunktionen
technisch einfach übereinander abgebildet und verschnitten werden können. Dabei wird die unterschiedliche Eignung verschiedener Maßstäbe für bestimmte Fragestellungen oft vernachlässigt, oder nicht berücksichtigt, daß die Verschneidung von generalisierten mit lagegenauen Informationsebenen nur bedingte
Aussagekraft aufweist.
1.6.1. Fehlerquellen
Bei Betrachtung möglicher Fehlerquellen bei GIS-Analysen sind folgende Problemfelder zu nennen (vgl.
BILL / FRITSCH 1991, 193ff und BURROUGH/McDONNELL 1998, 223):
1.6.1.1. Allgemeine Fehlerquellen
• Unterschiedliches Alter der Daten
• Verschieden dichte Gebietsbedeckung
• Maßstab
• Generalisierung
• Gültigkeit / Eignung der Daten
• Digitale Aufbereitung
• Verfügbarkeit / Kosten
1.6.1.2. Räumliche Variationen
• Positionsgenauigkeit
•
Erfassungsmethode
•
Gebietsgröße und -form
•
Datenart
• Inhaltsgenauigkeit
25
Kapitel 1. Grundlagen
•
Konsistenz
•
Gültigkeit
•
Repräsentativität
•
Eingabefehler
• Natürliche Variation
•
Meßfehler
•
Interpretationsfehler
•
Auflösung
•
Vergleichbarkeit
1.6.1.3. Verarbeitungsfehler
• Rechenschärfe des Computers
• Algorithmen
• Erfassungsfehler
• Verarbeitungsfehler
1.6.2. Metadaten
Metadaten sind Daten über Daten, also beschreibende Informationen einer höheren Abstraktionsebene als
die Primärdaten. Sie sollen notwendige Informationen (Quelle, Maßstab, Alter, Genauigkeit, Erfassungsmethoden, Maßeinheit, Datentyp, Erstellungsart, Bearbeiter, ...) über die Primärdaten liefern. Um Daten
mit verschiedenen Anwendungen nutzen zu können, gibt es Bemühungen, diese Metadaten zu standardisieren.
Abhängig von der inhaltlichen Bedeutung werden drei Typen von Metadaten unterschieden (vgl. auch
Abb. metadata):
Metadaten
Semantische Metadaten
Sie bestimmen die fachliche Bedeutung durch eine inhaltliche Beschreibung der Geodaten (Maßeinheit, etc).
Syntaktische Metadaten
Hier erfolgt die strukturell formale Beschreibung (also Datentyp oder Datenstruktur).
Pragmatische Metadaten
Diese beschreiben Frage zur Nutzbarkeit, wie Zugriffspfade (navigatorische Metadaten) oder datenrechtliche Bestimmungen.
26
Kapitel 1. Grundlagen
Abbildung 1-7. Metadatentypen (nach SPIESS 98)
Wichtige Metadatenstandards sind derjenige des US-amerikanischen FGDC (Federal Geographic Data
Comitee) oder der Dublin CORE. Auf europäische Ebene wird im ESMI-Projekt (European Spatial Metadata Infrastructure) die Entwicklung solcher Standards koordiniert. Als Beispiel sollen einige der über
200 Attribute des in den USA für Behörden vorgeschriebenen Content Standard for Digital Geospatial
Metadata des FGDC angeführt werden:
* TODO AZ: Ingeoforum: dt. Metadatenforum
Tabelle 1-7. Einige Attribute des FDGC Metadaten-Standards
Identification Information
Urheber des analogen Datenbestandes
Urheber des digitalen Datenbestandes
Kurzbeschreibung
räumlicher Umgriff
thematische und räumliche Schlagworte
Data Quality Information
Genauigkeit der Geometrie- und Sachdaten
Logische Konsistenz
Vollständigkeit
Historie des Datensatzes
Spatial Data Organization Information
Raster-/Vektormodell
Anzahl der vektoriellen Informationen
Zeilen- und Spaltenzahl bei Datenmatritzen
Spatial Reference Information
Art der geodätischen Referenzierung
Projektionsparameter
Entity and Attribute Information
Beschreibung der Sachdaten
Urheber
Datentyp
Wertebereich
Distribution Information
Datenvertreiber
Optionen für den Datenverkehr (online/offline)
Techn. Voraussetzungen der Datenübernahme
Kosten
27
Kapitel 1. Grundlagen
Metadata Reference Information
Aktualität des Eintrags in die Metadatenbank
Da in zunehmenden Maße digitale Geodaten aus den unterschiedlichsten Quellen mit diversen Maßstäben, Zeitbezug und Erhebungsart zur Verfügung stehen, sind Metadaten zur Orientierung unerläßlich und
ermöglichen erst eine sinnvolle Integration verschiedener (Geo-)Daten. Zum Teil erfordert die Fülle der
Metadaten schon wieder Metadaten über Metadaten. Grundsätzlich können Metadaten, wie normale Daten
auch, unterschiedliche Datentypen aufweisen: Diese reichen von Attributwerten in einer Datenbank über
unstrukturierten Freitext bis hin zu Karten oder Bildern (z.B. quick looks). Damit wird verdeutlicht, daß
die Erfassung der Metadaten ähnlich gut organisiert sein muß wie die Erhebung der Primärdaten selbst.
Insbesondere sollte dies werkzeuggestützt vonstatten gehen. So sind im WWW auf der ESRI-Homepage
und andernorts verschiedene AMLs4 (bzw. AVENUE-Scripte für ARCVIEW) verfügbar, die Hilfestellung
bei der Erstellung von Metaddaten für die verwendeten Geodaten geben.
* TODO AZ: In Arc 8 neues Metadatenmanagement auf XML-Basis?
Weiterführende Literatur:
Norbert Bartelme, 1995, Geoinformatik: Modelle, Strukturen, Funktionen, Berlin, Heidelberg: Springer.
Ralf Bill, 1999, Grundlagen der Geo-Informationssysteme. Band 2: Analysen, Anwendungen und neue
Entwicklungen. 2. Auflage, Heidelberg: Wichmann.
Michael F. Worboys, 1995, Geoinformatik: Modelle, Strukturen, Funktionen, London: Taylor and Francis.
Andrew MacDonald, 1999, Building a Geodatabase, Redlands: ESRI.
Fußnoten
1. Vgl. J.D. Wilson: What’s In A Name in: GeoWorld Vol. 11, No. 11, anläßlich der Umbenennung von
GISWorld in GEOWorld: Während dieser Begriff in Europa noch geläufig ist, sind anderswo Tendenzen zu beobachten, diese als zu eng betrachtete Bezeichnung zu ändern. So ist in Asien inzwischen
der Begriff Räumliches Informationssystem gebräuchlicher, und auch in Nordamerika findet spatial
inzwischen weitere Verbreitung, neben dem vor allem kanadischen Begriff Geomatics.
2. Basis für ARC/INFO
3. Relationales Datenbankmanagementsystem
4. Makros, die in der Arc Macro Language (vgl. Kapitel 8) geschrieben wurden. Da es sich um eine
interpretierte Skriptsprache handelt, sind die Makros les- und änderbar und können an die eigenen
Bedürfnisse angepaßt werden.
28
Kapitel 2. Der Aufbau von ARC/INFO
ARC/INFO besteht aus verschiedenen Modulen mit eigenen Einsatzbereichen, die eng mit dem Grundmodul ARC verwoben sind. Wir starten ARC/INFO und stellen einige wichtige Unterprogramme vor.
2.1. Architektur
Mit der Version 8 wurde eine Trennung von ARC/INFO in Workstation-ARC/INFO und Desktop-ARC/INFO
vollzogen. Dabei kann der Desktop-Teil nur unter Windows NT/2000 installiert werden, der WorkstationTeil unter Windows NT/2000 (auch auf dem gleichen Computer) oder unter verschiedenen Unix-Varianten
(nicht Linux).
Der Workstation-Teil beinhaltet eine aktualisierte Version des bisherigen ARC/INFO-Kerns. Seine wichtigsten Bestandteile (Module) werden in der nachfolgenden Aufstellung vorgestellt:
ARC
Einstellungen der Arbeitsumgebung
Aufruf der Unterprogramme/Module von ARC/INFO
Datenerfassung, -automation und -aktualisierung
Analyse
Koordinatentransformation und -projektion
Sachdatenautomation und -aktualisierung
Datenexport und -import
Anbindung externer Datenbanken
ARCEDIT
Datenerfassung / Digitalisierung
Editierung und Aktualisierung der Koordinatengrundlage
ARCPLOT
Analyse, Visualisierung und graphische Ausgabe
LIBRARIAN
ARCSTORM
Erstellung und Verwaltung von Kartenbibliotheken
Weiterentwicklung von LIBRARIAN
NETWORK
Aufbau und Analyse von Netzwerkstrukturen Bemaßung von Netzwerken,
Routenplanung
Einzugsgebietsberechnung (Location / Allocation-Probleme)
DYNAMIC
SEGMENTATION
COGO
Dynamisches Zuordnen von Sachdaten an Linientopologien, Analyse und
Visualisierung dynamischer Phänomene auf Netzwerken
Werkzeuge zur Einbindung von Vermessungsdaten, CAD-Daten, Daten der
Feldaufnahme ((halb-)automatisch)
ArcSDE
Einbindung von und Zugriff auf externe Datenbanksysteme wie ORACLE,
INGRES, SYBASE, INFORMIX, RDB
IMAGE INTEGRATOR
Gleichzeitige Visualisierung von Raster- und Vektordaten
Georeferenzierung von Rasterdaten
Organisation von Bilddaten in einem Image Katalog
GRID
Bearbeitung und Analyse von Rasterdaten
29
Kapitel 2. Der Aufbau von ARC/INFO
TIN
Triangular Irregular Network, Verarbeitung dreidimensionaler Vektordaten,
Oberflächendarstellung und -modellierung
ARCSCAN
ARCPRESS
Vektorisierung von Rasterdaten (halb- oder vollautomatisch)
Rasterung von Ausgabedateien für Plotausgabe und Druckvorstufe
AML
ODE
Arc Macro Language, prozedurale Programmiersprache von ARC/INFO
Programmierschnittstellen zu C, Java etc.
Bei Nutzung der Kommandozeile muß das jeweilige Modul von ARCaus aufgerufen werden und stellt
dann einen eigenen Prompt zur Verfügung. Ein Großteil der Möglichkeiten der Module steht auch menügesteuert über ARCTOOLS zur Verfügung. ARCTOOLS wird im nächsten Abschnitt vorgestellt.
Der Desktop-Teil besteht aus folgenden Anwendungen:
ArcToolbox
Konvertierung, Verschneidung, Transformierung
ArcCatalog
ArcMap
Datenbrowser /-editor
Abfrage, Visualisierung und Ausgabe von Vektor- und Rasterdaten
2.1.1. Die Benutzeroberfläche ARCTOOLS
ARCTOOLS ist die bisherige grafische Benutzeroberfläche (GUI - Graphical User Interface) für ARC/INFO.
Sie ermöglicht dem Benutzer relativ bedienungsfreundlich verschiedene Analyse- und Editierabläufe, sowie z.B. die Layoutgestaltung der Ergebniskarte mittels Menüfenstern. Die Oberfläche ist auf allen verfügbaren Betriebssystemen im wesentlichen identisch. Bis auf wenige Ausnahmen (z.B. Dateidialoge) ist
nur das Aussehen des umgebenden Fensterrahmens plattformabhängig.
* TODO: verschiedene Beispiele unter verschiedenen OS?
ARCTOOLS gliedert sich in fünf logische Aufgabenbereiche, die im wesentlichen den Modulen von
ARC/INFO entsprechen:
EditTools
Aufbau und Editieren der Kartengrundlage
MapTools
Visualisierung und Kartenerstellung
CommandTools Analyse und weiterführende Befehle
GridTools
Land Records
Analyse von Grids
Verwaltung von Vermessungsdaten
Jedes dieser Tools arbeitet unabhängig von den anderen. Daher sind die grundlegenden Funktionen (Dateimanagement, Hilfemenü, allgemeine Arc-Befehle) in jedem vorhanden. Die Command Tools sind zusätzlich von den anderen vier Modulen als eigenes Fenster aufrufbar.
ARCTOOLS übernimmt automatisch die Festlegung verschiedener Umgebungsvariablen, die normalerweise vom Benutzer zu Sitzungsbeginn selbst definiert werden müssen (z.B. der Typ des Terminals:
&TERMINAL 9999).
Da ARCTOOLS als GUI vollständig in AML, der interpretierten ARC/INFO-eigenen Makrosprache,
programmiert wurde, liegen alle Menüs und Werkzeuge als AML-Makro-Sourcecode vor. Damit ist die
Programmierung eigener, speziell angepaßter Oberflächen in AML möglich. Auf diese Möglichkeiten
30
Kapitel 2. Der Aufbau von ARC/INFO
gehen wir in Kapitel Kapitel 8 ein.
Seit der Version 7.2 können auch weitere Programmiersprachen wie C++ o.ä. für die Programmierung
von Oberflächen, die an spezifische Nutzergruppen angepaßt wurden (Fachschalen) oder die leichtere
Einbindung externer Funktionalität (z.B. eigene Optimierungs- oder Simulationsroutinen) im Rahmen
der ODE-Architektur (Open Developers Environment) genutzt werden.
2.2. Datenmodelle
ARC/INFO kann mit verschiedenen Datenmodellen umgehen. Es unterstützt verschiedene Raster- (Grid,
Lattice) und Vektorformate (Coverage, TIN, Network). Die Geometrieinformation wird dabei entweder
getrennt gespeichert (Coverages, Grids) oder über ArcSDE direkt in der Datenbank als sogenanntes GeoObject vorgehalten.
2.2.1. Vektordaten
In den folgenden Abschnitten werden die in ARC/INFO verwendeten Datenstrukturen erklärt. Im wesentlichen wird in vektorbasierten Systemen versucht, die reale Welt mittels Punkt und Linie als kleinsten Elementen abzubilden. Die mit einer Richtung versehene Linie (= Vektor) erhält in ARC/INFO den Namen
Arc und bildet die Grundlage für komplexere Konstruktionen. Die nächste Ebene stellen Polygone zur
Darstellung von Flächen dar. Die räumlichen Beziehungen zwischen all diesen (und weiteren) Elementen
wird als Topologie bezeichnet. Diese digitale Kartengrundlage, über Koordinaten und IDs verortet und
ansprechbar, kann in einem weiteren Schritt mit zusätzlichen Variablen versehen und dadurch mit Inhalt
und Sinn erfüllt werden (Computerkartographie, räumliche Statistik). Nun können jedoch noch zusätzliche räumliche Analyseverfahren angewendet werden. Diese bilden das eigentlich Neue und Spezifische
eines GIS gegenüber herkömmlichen Techniken. Sie werden in Kapitel 4 (Analysetechniken) vorgestellt.
Das Ergebnis derselben wird im Normalfall die Grundlage einer neuen Karte bilden. Abbildung 2-1 zeigt
ein schematisches Vektorcoverage (vgl. dazu auch Abbildung 2-8.
Abbildung 2-1. Vektordaten: Ein Polygoncoverage
31
Kapitel 2. Der Aufbau von ARC/INFO
Es muß in ARC/INFO zwischen der Koordinatenebene, d.h. dem zusätzlich mit expliziter Topologie versehenen Coverage als Kartengrundlage und den Ergebnissen weiterer Verarbeitungsschritte unterschieden
werden.
Die in den Coverages verorteten Sachdaten werden in ARCTOOLS in sogenannten Views visualisiert. Ein
View kann aus mehreren sogenannter Themes aufgebaut sein. Ein Theme ist die Visualisierung einer (oder
mehreren) Variablen auf einer bestimmten Grundgeometrie (dem Coverage). Es wird also pro Theme ein
thematischer Inhalt eines Coverages dargestellt. Der ARCTOOLS-spezifische Fachbegriff Theme kann
also gut mit „Thema“ übersetzt werden. Beispielsweise könnte ein Thema die Gewässergüte darstellen,
ein weiteres die aktuelle Bodennutzung und ein drittes den Strassenzustand. Alle drei Themes können
dann in einem View gemeinsam dargestellt werden. Erst solch ein View dient als Grundlage einer Karte im
klassischen Sinne. Diese wird mit Map bezeichnet. Sie verfügt neben dem View über Legende, Maßstab,
Titel und gegebenenfalls weitere gestalterische Elemente. Es können aber auch mehrere Views (z.B. eine
Übersichtskarte und eine Detailkarte) in einer einzigen Map dargestellt werden. Die Erstellung von Views
und Maps wird in Kapitel Kapitel 6 erläutert.
Zunächst soll jedoch die Struktur innerhalb eines Coverages untersucht werden.
* AZ: bezieht sich schon alles auf Coverage, weiss nicht genau, wie das jetzt in der OO-GeoDB gehandlet wird
2.2.2. Verknüpfung der Features mit den Attributdaten
* AZ: unter + hinter Ueberschrift "Das Coverage"
Von besonderem Interesse ist die Verknüpfung der den Raum darstellenden Daten (Koordinaten, Geländemodell) und der ihn beschreibenden Sachverhalte, welche zunächst in tabellarischer Form vorliegen.
Diese von ARC/INFO automatisch erzeugte Verknüpfung besitzt folgende Charakteristika:
• Eine eineindeutige Beziehung zwischen den Coverage-Features und den zugehörigen Einträgen in der
Datentabelle (Feature Attribute Table). Diese wird realisiert durch:
• Die programminterne Kennung (Sequence Number) (#) (-#), als für jedes Coverage Feature spezifisches
Kennzeichen zur Identifizierung zugehöriger Daten im Feature Attribute Table (FAT). Es existieren
verschiedenene FAT-Arten -- zu jedem Objekttyp (Feature Type, z.B. arc, poly, line) eines Coverages,
bzw. besser Coverage-Types (Line Coverage, Polygon Coverage, Point Coverage, ...) eine eigene. Dies
wird in den kommenden Kapiteln im Detail dargestellt.
Letztendlich muß diese Indentifikationsnummer für jedes Feature, d.h. die räumlichen Datengrundstrukturen, pro Coverage an zwei physikalisch verschiedenen Orten gespeichert werden: Nämlich in der Datei,
welche die Raumdaten, z.B. x/y-Koordinaten beinhaltet, sowie in der Datei mit den zugehörigen Einträgen
in der Feature Attribute Table.
2.2.2.1. Das Coverage
Vektordaten werden in Informationsebenen verwaltet, die als Coverages bezeichnet werden. Ein Coverage repräsentiert die digitale Form einer einzelnen Informationsebene. Beispiele solcher Informationsschichten sind ein Straßen- oder Gewässernetz, eine Bodenkarte oder Verwaltungseinheiten, also jeweils
geometrische Objekte mit festen Grenzen1
Eine Informationsebene enthält sowohl geometrische Lagedaten als auch Attributdaten. Letztere beschreiben die Geoobjekte weitergehend durch Sachinformationen.
32
Kapitel 2. Der Aufbau von ARC/INFO
Die einzelnen Coverage-Features, also z.B. Polygone oder Linien, besitzen zwei Kenn-Nummern. Die
eine ist die vom Benutzer vergebene Feature-ID und wird mit coveragename-ID gekennzeichnet.
Die andere ist eine fortlaufende programminterne Nummer (sequence number), welche an einem Gartenzäunchen -# erkennbar ist. Letztere kann sich nach Editiersitzungen ändern, was vom Benutzer nicht
beeinflußbar ist.2 Dagegen bleibt die Feature-ID voll unter Kontrolle des Benutzers. Beide Kennnummern
werden als ganzzahlige numerische Werte (Integer) abgelegt.
2.2.2.2. Die Coverage Feature Classes
Da jede Informationsebene (Coverage) in ARC/INFO nicht nur logisch aus den unterschiedlichen Feature
Classes besteht, sondern diese auch physikalisch in eigenen Dateien gespeichert werden, sollen deren
Charakteristika erläutert werden.
2.2.2.2.1. Arcs als Liniensegmente
Arcs werden definiert als fortlaufende Kette von x/y-Koordinatenpaaren, die an einem Ort beginnt (FromNode), an einem zweiten endet (To-Node) und eine Länge, jedoch keine Fläche besitzt (vgl. Abbildung
2-2.
Abbildung 2-2. Aufbau eines Arcs
Der Anfangs- und der Endpunkt werden besonders ausgezeichnet und mit Node bezeichnet. Da beide
genannten Punkte explizit unterschieden werden, ist ein Arc mehr als eine einfache Linie oder beliebige
Kurve, denn er besitzt eine Richtung. Diese kann z.B. in Straßen- oder Flußsnetzen Bedeutung erlangen
und ermöglicht erst Pfadanalysen wie Network Tracing oder Routing.
Arcs definieren Liniensysteme wie z.B. Flüsse, aber auch die Grenzen von Polygonen. Sie werden in zwei
Coverage-Dateien mit den Namen ARC und AAT gespeichert:
In der ARC-Datei findet man pro Arc die IDs (jeweils die programminterne und die vom Anwender
definierbare) und die Folge von x/y-Koordinaten, die Ort und Aussehen des Arcs bestimmen.
Die AAT-Datei enthält Zusatzinformationen wie Anfangs- und Endpunkt (From-node und To-node) jedes
Arcs. Weiterhin sind die Nummern des links und rechts des Arcs liegenden Polygons gespeichert. Falls
dieses nicht existiert, lautet der Eintrag 0. Die explizite Speicherung ist notwendig, um später räumliche
Abfragen zu Nachbarschaftsbeziehungen o.ä. realisieren zu können. Dies unterscheidet ein GIS u.a. von
Kartographieprogrammen, die folglich keine so komplexe Datenstruktur benötigen. In letzeren reicht eine
eindeutige Indizierung der darzustellenden Elemente (Flächen, Linien), um ihnen über diese ID Farbwerte
o.ä. zuzuordnen. Mittels der Sequenz-Nummer (-#) werden jedem Arc verschiedene Einträge zugeordnet.
Als Minimum findet man folgende Items (Felder):
FNODE#
programminterne Kennung des Anfangspunktes (from-node
TNODE#
LPOLY#
interne Kennung des Endpunktes (to-node
interne Kennung des linken Polygons (0, falls nicht existent)
RPOLY#
interne Kennung des rechten Polygons ( xxxxx )
33
Kapitel 2. Der Aufbau von ARC/INFO
Cover#
interne Kennung des Arcs in der ARC-Datei
Cover-ID
LENGTH
vom Benutzer vergebene Feature-ID
Länge des Arcs in Coverage-Einheiten
Danach können sich noch benutzerdefinierte Variablen anschließen.
Durch obige Variablen wird die Topologie definiert. Nun kann eine Reihe weiterer vom Benutzer angelegter Variablen folgen (Sie dürfen erst nach der Cover-ID stehen!)
2.2.2.2.2. Nodes (Knotenpunkte)
Die Koordinaten eines Nodes werden als Teil des Arcs in der Datei ARC gespeichert. Außerdem tauchen sie
in der AAT-Datei auf (s.o.). Falls nun ein Node ein eigenes Punktfeature darstellt (z.B. einen Kanaldeckel
in der Straße), also weitergehende Eigenschaften aufweist als die reine Trennfunktion zweier Arcs, werden
diese Eigenschaften in einer NAT-Datei (Node Attribute Table) gespeichert. Diese Datei enthält folgende
Einträge:
Cover#
programminterne Kennung des Arcs mit der niedrigsten Nummer der Arcs, die den
Node berühren
programminterne Kennung des Nodes
Cover-ID
vom Benutzer festgelegte Feature-ID
ARC
Beim erstmaligen Erstellen einer NAT (Node Atttribute Table) wird letztere automatisch auf den Wert der
Sequenznummer gesetzt. Genaugenommen gibt es drei unterschiedliche Node-Typen, die besonders bei
der Fehlerkorrektur von Bedeutung sind:
• Normale Nodes
• Pseudo Nodes
• Dangling Nodes
2.2.2.2.3. Pseudo Nodes
werden durch eine Raute dargestellt. Sie repräsentieren Nodes von in sich geschlossenen Arcs (Inseln)
oder entstehen, wenn nur zwei Arcs miteinander verbunden werden.
* absichtliche vs. unerlaubte Pseudo Nodes
34
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-3. Arcs mit Dangling Nodes
2.2.2.2.4. Dangling Nodes
zeigen mögliche Digitalisierfehler wie zu kurz oder zu lang geratene Abschnitte bei Polygonen an. Sie
werden durch Quadrate gekennzeichnet. Natürlich kann solch ein sogenannter undershoot (Arc dessen
Endpunkt nicht mit weiterem Arc verbunden ist, sondern kurz davor endet) oder overshoot (Arc, der einen
anderen Arc schneidet und darüber hinaus weiter verläuft) auch Absicht sein, z.B. bei der Digitalisierung
von Sackgassen.
Label Points sind einfache Punkte auf einer Ebene. Sie werden daher nur durch ein einzelnes x/y-Koordinatenpaar
bestimmt und besitzen eine Kennummer (ID).
Ihr Nutzen besteht darin, daß sie punktförmige Gegebenheiten wie Laternenpfähle, Grenzsteine oder Gipfelkreuze darstellen können. Außerdem kennzeichnen sie den Ort, an dem die Kennummer (User-ID)
eines Polygons auf der Karte aufgetragen werden soll - in diesem Fall ist die genaue räumliche Lage
unerheblich. Ohne Label Point ist ein Polygon nicht vollständig.
Die zu einem Punkt-Feature gehörenden Daten heißen Point Attributes. Diese werden in einer sogenannten
PAT-Datei abgelegt (Point Attribute Table). Dasselbe gilt für Polygon Attributes. Die PAT-Datei enthält
also entweder Punkt- oder Polygon-Features. Pro Coverage ist aber nur eine PAT-Datei möglich. Somit
kann ein Coverage nicht beide Feature-Typen gleichzeitig beinhalten. % nachpruefen ... mehrere Punkte
in einem Polygon ...??
2.2.2.2.5. Polygone
Polygone (Polygons) sind geschlossene, durch mehrere Arcs als Umrandung definierte flächige Figuren.
Sie besitzen eine User-ID, die an einen Label Point innerhalb des Polygons positioniert wird. Beispiele
für Polygone reichen von administrativen Grenzen über die Landnutzungsverteilung bis zur Verteilung
von Bodenarten etc.
35
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-4. Polygone mit Pseudo Nodes und Label Points
Zu den definierenden Arcs eines Polygons gehören auch die Arcs, die innerhalb eines Polygons liegen und
eine Insel (Enklave) aus diesem herausschneiden.
Für Polygone werden keine expliziten Koordinaten gespeichert. Stattdessen enthält die PAL (Polygon Arc
List) eine Liste aller Arcs und Nodes, welche die Grenze eines Polygons definieren. Für jedes Polygon
wird wieder eine Kennung erstellt. Der erste Eintrag dahinter bestimmt das umschließende Hintergrundpolygon.
2.2.2.2.6. Polygon Attributes
Die die Polygone beschreibenden Daten werden in einer PAT-Datei (Polygon Atribute Table) gespeichert.
Wie schon erläutert, sind dort für jedes Polygon wenigstens folgende Variablen notwendig:
Area
Perimeter
Fläche des Polygons (bzw. 0 bei Punkten)
entsprechende Umfang (bzw. 0 bei Punkten)
Cover#
Cover-ID
programminterne Kennung des Punkt-Features in der LAB-Datei
benutzerspezifizierte Feature-ID des Punktes
Nach diesen können sich weitere benutzerdefinierte Variablen (Items) anschließen. Hier ein Beispiel aus
einer PAT:
1
AREA
PERIMETER
SIEDL#
SIEDL-ID
EIGENTUEMER
=
=
=
=
=
2
AREA
PERIMETER
SIEDL#
SIEDL-ID
= 2.226
= 5.586
= 2
= 500
3.664
13.802
1
0
heike
36
Kapitel 2. Der Aufbau von ARC/INFO
EIGENTUEMER
= tim
2.2.2.2.7. Tics
Die Referenzpunkte eines Kartenauschnitts, die eine Georeferenzierung und damit z.B. das Übereinanderprojezieren räumlich zusammengehöriger Informationsebenen ermöglichen, heißen Tics. Oft werden
für diese Kontrollpunkte die vier Eckpunkte eines Kartenblattes verwendet. Selbstverständlich müssen
bei allen Informationsebenen (also den einzelnen Coverages) jeweils räumlich genau dieselben Punkte
als Tics benutzt werden. Um eindeutig zugeordnet werden zu können, müssen diese auch alle dieselbe
Tic-ID aufweisen.
Tics spielen auch bei der Transformation von Digitalisierkoordinaten in Echte-Welt-Koordinaten eine entscheidende Rolle. Aus den Echte-Welt-Koordinaten der Tics werden die entsprechenden Koordinaten aller
übrigen Punkte berechnet. Die Informationen über Tics stehen in der Tic-Datei. Dabei handelt es sich um
eine INFO-Datei, die ebenso wie das Coverage benannt wird: COVER.TIC. Die enthaltenen Informationen
sind:
IDTIC
User-ID für jedes Tic
XTIC
YTIC
X-Koordinate des Tics
entsprechende Y-Koordinate
Weitere für das Koordinatenmanagement notwendige Informationen finden sich in den Dateien PRJ und
TOL. In PRJ stehen Angaben zur benutzten Kartenprojektion und in TOL zu den eingestellten Fehlertoleranzen für die Digitalisierung.
2.2.2.2.8. Annotation
Unter Annotations versteht man Anmerkungen, die benutzt werden, um die bisher beschriebenen Typen
von räumlichen Features mit einem Textkommentar zu versehen. Dieser wird aber nicht mit der zu beschreibenden Feature Class topologisch verbunden, sondern bildet eine unabhängige Informationsschicht,
welche zu reinen Darstellungszwecken über die übrigen Ebenen gelegt werden kann. Demgemäß besitzen
Annotations keine Aussagekraft bei der Analysearbeit, sondern dienen nur der Orientierung oder zusätzlichen Beschreibung der Objekte auf dem Kartenausschnitt. Suchabfragen nach bestimmten Annotations
sind beispielsweise nicht möglich.
Annotationen werden in den TAT-Dateien eines Coverages gespeichert. Es können verschiedene Unterklassen von Annotationen definiert werden, die dann in eigenen Dateien gespeichert werden. Beispielsweise können Text-Annotationen entlang der Geometrie anderer Feature-Typen (z.B. Linien) ausgerichtet
werden. Dies ermöglicht eine Beschriftung, die z.B. dem Verlauf von Straßen oder Flüssen folgt. Jedoch
können für Annotationen auch eigene Geometrien definiert werden.
Für die nichtgeographischen, dem Layout dienenden Bestandteile einer Karte wie Titel, Legende, Windrosen oder Quellenangaben etc. werden sie jedoch in der Regel nicht verwendet. Dies fällt in den Bereich
der Kartenerstellung mit MapTools bzw. dem Modul ARCPLOT
* TODO LN: Abbildung mit Annotations (Englandkarte ponet mit Beschr.)
37
Kapitel 2. Der Aufbau von ARC/INFO
2.2.2.2.9. Links
Links sind durch einen Anfangs- und Endpunkt definierte Verschiebungsvektoren. Sie werden zur Korrektur und Anpassung ganzer Coverages an angrenzende Gebiete oder weitere Informationsebenen gebraucht. Oft passen die Features aneinandergrenzender Kartenausschnitte durch Digitalisierfehler oder
andere Ungenauigkeiten nicht zusammen. Durch eine Entzerrung des Coverages werden diese so hingezogen, daß eine Verknüpfung möglich ist. Man kann diese Links auch als Soll-Ist-Vektoren bezeichnen.
Sie werden in der LNK-Datei innerhalb einer Coverage-Informationsebene mit den Koordinaten ihrer
Anfangs- und Endpunkte gespeichert. Falls bestimmte Punkte unbedingt ihren Platz behalten sollen, können Links mit identischen Anfangs- und Endkoordinaten benutzt werden. Diese wirken während des Anpassungsprozesses wie Nägel.
* TODO AZ: Abb. Diplomarbeit Gernot
2.2.2.2.10. Route-Systems
Aus den Coverage-Features Arcs, Routes und Sections sind die sogenannten Routensysteme (Route Systems) aufgebaut. Für jedes Liniencoverage kann es Routensysteme geben. Sie stellen eine logisch zusammengehörende Sammlung linienförmiger Gegebenheiten wie Buslinien, Stromleitungsnetze, Einkaufswege etc. dar. Da sie bezüglich der Anwendungs- und Analysemethoden einen eigenständigen Komplex darstellen, soll hier nur kurz auf ihre Existenz hingewiesen werden. Ihre Handhabung erfolgt im ARC/INFOModul NETWORK. Einige Funktionalität des NETWORK-Moduls findet sich in ARCTOOLS unter
MapTools
Productivity Tools
Routensysteme sind eine Methode zur Darstellung von Abschnitten auf Linienstrukturen. Diese Abschnitte können dynamisch verändert werden (Dynamic Segmentation). Dabei muß nicht jedesmal die zugrundeliegende Arc-Node-Topologie geändert werden. Auf diese Weise können auf demselben Coverage verschiedene Routen (z.B. von Buslinien) definiert werden oder Verkehrsbelastungsszenarien durchgespielt
werden, ohne daß eine Änderung der Arc-Definitionen und damit der Grundtopologie notwendig ist.
Die Feature Classes im Network-Modul heißen Route und Section.
Als Route bezeichnet man dabei eine geordnete Abfolge von Abschnitten (Sections). Jede einzelne Buslinie in einem ÖPNV-Netz ist z.B. eine Route. Die Gesamtheit der Buslinien stellt das Route System dar.
Die Daten der Routen finden sich in der RAT-Datei (Route Attribute Table), welche wie üblich mindestens
die interne Subclass-# und die benutzerdefinierte Subclass-ID enthält.
Abbildung 2-5. Straßencoverage mit drei bemaßten Routen
Mit Sektionen/Abschnitten (Sections) werden die Arcs oder Teile derselben bezeichnet, welche das Gerüst
für die einzelnen Routen bilden. Für jedes Routensystem eines Coverages finden sich die Daten über die
Abschnitte in der SEC-Datei. Mit folgendem Inhalt besitzt es einen ähnlichen Aufbau wie ein Feature
Attribute Table:
38
Kapitel 2. Der Aufbau von ARC/INFO
ROUTELINK# interne Sequenznummer der Route, zu der der Abschnitt gehört. Dies bezieht sich auf
den Eintrag mit dem Namen SUBCLASS# in der RAT.
ARCLINK#
F-POS
dasselbe für den betroffenen Arc. Die Bezugsadresse ist COVER# in der AAT.
Prozentwert der Länge des Arcs, an dem der Abschnitt beginnt.
T-POS
F-MEAS
Prozentwert der Arc-Länge, an dem der Abschnitt endet.
Maß des Routensystems, an dem der Abschnitt beginnt, in den realen Einheiten wie
Meilen oder km.
T-MEAS
Subclass#
die entsprechende Angabe für den Endpunkt des Abschnittes.
interne Sequenznummer für jeden Abschnitt.
Subclass-ID
benutzerdefinierte Feature-ID jedes Abschnittes.
Hieran können sich weitere Variablen anschließen. Falls der Abschnitt eine dem Arc entgegengesetzte
Richtung aufweist, ist der Wert von F-POS größer als der von T-POS.
Abbildung 2-6. Ausschnitt eines Liniencoverages mit bemaßten Abschnitten
* TODO AZ: Vielleicht noch ein paar Takte zu Netzwerkanalyse
2.2.2.2.11. Coverage Begrenzung (Boundary, BND)
Die Ausdehnung des Kartenausschnittes wird mit Coverage Extent bezeichnet. Als minimale Abgrenzung
definiert es die Werte der äßersten Eckkoordinaten der sichtbaren (d.h. dargestellten) Arcs und Label
Points des Coverages. Von ARC/INFO wird es als standardmäßige Kartengrenze bei der graphischen
Umsetzung eines Coverages benutzt.
Folgende Informationen werden in der Datei Covername.BND gespeichert:
XMIN
X-Koordinate der linken unteren Ecke des Kartenausschnitts
YMIN
XMAX
Y-Koordinate der linken unteren Ecke des Kartenausschnitts
X-Koordinate der rechten oberen Ecke des Kartenausschnitts
YMAX
Y-Koordinate der rechten oberen Ecke des Kartenausschnitts
Diese definieren die Ecken (links unten, rechts oben) des Rechtecks (bounding box), innerhalb dessen alle
dargestellten Arcs und Label Points (und mit diesen die Polygone und Routensysteme) liegen. Sie gelten
nur für die Visualisierung als Karte.
2.2.2.2.12. Regions
Regions sind eine Erweiterung des Polygon-Datentyps für Mehrfachgeometrien. Sie erlauben z.B. aus
39
Kapitel 2. Der Aufbau von ARC/INFO
mehreren Polygonen zusammengesetzte Gebiete. Dies erleichtert die einheitliche Behandlung von logisch zusammengehörenden Gebieten, die aus nicht zusammenhängenden Flächen bestehen. Beispiele
dafür sind Inselgruppen oder Gebiete mit Exklaven. Dabei wird ein Attributdatensatz pro Region, die
aber potentiell aus mhereren Teilgeometrien bestehen kann, verwaltet. Neben der Einsparung von Speicherplatz hilft dies Inkonsistenzen der Attributdaten zu vermeiden.
* TODO: Beispiel (aus Roberts Dipl.?)
2.2.2.2.13. Coverage-Verzeichnisstruktur
Die in den vorherigen Kapiteln beschriebene Dateienstruktur für ein Coverage sieht für ein Liniencoverage
z.B. wie in Abbildung 2-7 wiedergegeben aus. Dabei ist zu beachten, daß die Namen, unter denen INFODateien wie z.B. Feature-Attributtabellen in INFO und anderen Modulen angesprochen werden, in dieser
Form im Dateisystem nicht existieren. Es ist also nicht möglich, eine Datei wie z.B. fluss.aat direkt
von der Betriebssystemebene aus zu kopieren.
Abbildung 2-7. Dateien eines Coverages
2.2.2.3. Map-Libraries
Bei größeren Projekten ist es manchmal sinnvoll3 (oder wegen der Art der Datenaufnahme zunächst unumgänglich), die Information in einzelnen Teilflächen (tiles), die zum Beispiel einzelnen Kartenblättern
entsprechen können, zu organisieren und innerhalb dieser Teilflächen wieder einheitliche Informationsebenen (layers) zu definieren. Solch eine räumlich und thematisch geordnete Sammlung zusammengehörender Informationsebenen wird in ARC/INFO als map library bezeichnet. Diese map libraries können
ihrerseits mit ARCSTORM verwaltet werden.
2.2.2.4. CAD-Zeichnungen
Durch den starken Gebrauch von CAD (Computer-Aided Design) in Planung und Entwicklung existieren eine Fülle interessanter Karten (Katasterpläne ...) oder Bilder, die in ein GIS-Projekt miteinbezogen werden können. ARC/INFO besitzt dazu die Voraussetzungen. Ihrer Natur gemäß eignen sich CADbasierte Pläne jedoch nur bedingt zu Analysezwecken oder zur Modellbildung. CAD-Zeichnungen können
als Bereicherung vorhandener geographischer Raumobjekte gespeichert werden. Beispielsweise könnte
beim Anklicken eines Hauses in einem Stadtplan der Grundrißplan des gewählten Gebäudes als CAD-
40
Kapitel 2. Der Aufbau von ARC/INFO
Zeichnung erscheinen. Es ist heute für einige CAD-Formate möglich, sie in ARC/INFO-Vector-Coverages
umzuwandeln. So gibt es Schnittstellen zu den gängigsten Formaten wie DXF (Binär oder ASCII), Intergraph IGDS und IGES u.a.
2.2.2.5. Shapefiles
Shapefiles sind das ursprüngliche Datenformat von ArcView. Sie können importiert und in Coverages
umgewandelt werden. In Desktop-ArcInfo können sie auch direkt verwendet werden. Im Gegensatz zu
Coverages verfügen sie über keine explizite Topologie. Sie verfügen auch nur über eine vereinfachte
Geometrie (z.B. keine Splines).
* TODO LN: check - bilde mir jedenfalls ein, das mal wo gelesen zu haben ...
Die Attributdaten von Shapefiles werden in einer separaten DBase-Datei bwz. GeoDB vorgehalten.
2.2.3. Rasterdaten
Obwohl Coverages als vektorbasierte Informationsebenen das Herzstück von ARC/INFO bilden, gibt es
einige Aufgabenstellungen, für deren Lösung ihre Struktur weniger geeignet ist. Hierzu zählen:
• Oberflächenmodellierung
• Darstellung fließender Grenzen und Übergangsbereiche (z.B. Bodengüte, Vegetation, Feuchtgebiete)
• Schnelle Verschneidung verschiedener Ebenen
Das Erzeugen neuer Grenzen durch Verschneidungsoperationen ist auf Vektorbasis sehr rechenintensiv,
da jeweils die Topologie neu erstellt werden muß. Für Aufgaben, bei denen der genaue Grenzverlauf
weniger kritisch ist, sind Rasterverfahren im Vorteil. Diese werden neben anderen im nächsten Abschnitt
vorgestellt.
Außer den ausführlich behandelten Coverages gibt es noch eine Reihe anderer Datenmodelle (TIN, GRID,
Lattice). Der Schwerpunkt im Übungsteil auf der Handhabung von Vektorcoverages. ARC/INFO wurde
ursprünglich als vektororientiertes GIS entwickelt. Die im folgenden vorgestellten ebenfalls unterstützten
Datenmodelle sollen nur kurz erläutert werden.
2.2.3.1. Grids
Dem Coverage im Vektorformat entspricht das Grid im Rasterformat. Grid steht im Englischen für Raster
und das entsprechende Softwaremodul von ARC/INFO trägt denselben Namen.
Rasterkarten (Grids) wie in Abb. raster sind aus gleich großen quadratischen Zellen als kleinsten Einheiten
aufgebaut. D.h. ein GRID-Punkt oder „Pixel“ entspricht in der Regel einem quadratischen Gebiet, d.h.
einer Fläche mit einer bestimmten Kantenlänge (Auflösung), nicht einem Punkt! Jeder dieser Zellen ist ein
ganzzahliger oder reeller 32 Bit-Wert zugeordnet, welcher z.B. in einen Grauton oder Farbwert umgesetzt
werden kann. Dieser steht wiederum für eine beliebige Variablenausprägung. Diese Informationen werden
in Value Attribute Tables (VAT) gespeichert und können bei Integer-Grids (also Grids mit ganzzahligen
Werten) mit Zusatzinformationen in einer Attributtabelle versehen werden. Die Verortung erfolgt über die
X- und Y-Werte der Spalten- und Zeilennummern. Jedes Grid entspricht dabei einer Informationsschicht.
41
Kapitel 2. Der Aufbau von ARC/INFO
Im Gegensatz zu den Objekten eines Coverages, die durch eine Folge von X- und Y-Koordinaten definiert
werden (Nullpunkt links unten), werden Grids als Spalten- und Zeilennummer gespeichert (Nullpunkt
links oben).
Abbildung 2-8. Rasterdaten: ein Grid
Im Gegensatz zu einfachen Rasterbildern verfügen GRIDs über die Möglichkeit der Sachdatenanbindung,
was sie erst zu einem GIS-Datenmodell macht.
In den Grid-Attributtabellen (VAT) stehen immer wenigstens die beiden Variablen VALUE und COUNT. VAT
stehen dieselben Möglichkeiten der Datenbank-Anbindung offen wie den entsprechenden Attributtabellen
eines Coverages.
* LN: was ist mit GRIDS mit reellen Zahlen ? Attributtabelle?
Besonders geeignet sind Grids zur Darstellung kontinuierlich fließender Übergänge oder von Oberflächen.
Weitere Einsatzbereiche sind Fließ- bzw. Diffusionssimulationen. Ein anderer Vorteil liegt in der hohen
Geschwindigkeit von Analysen, die im vergleichsweise simplen Aufbau solch eines Rasters begründet
liegt.
Das Softwaremodul GRID verfügt über mehrere räumliche Analysemöglichkeiten.
Durch die Festlegung auf ein bestimmtes Rasterformat werden Objekte mit einer Ausdehnung unterhalb
dieser Auflösung nicht mehr dargestellt. Analyseoperationen, die sich auf linien- oder punktförmige geographische Objekte oder Polygone beziehen, (wie z.B. Netzwerkanalysen oder Grundstücksmanagement)
sind mit Grids nicht zufriedenstellend zu lösen. Will man die Auflösung eines bestehenden Grids verfeinern, muß daher eine völlige Neuaufnahme der Originaldaten erfolgen. Jedoch sind auf der anderen Seite
rein geometrische Generalisierungen relativ einfach durchzuführen.
* Vgl. Kap. ??
GRID verfügt über die Möglichkeit, Raster mit unterschiedlicher Auflösung zu überlagern.
Keine der beiden Datenstrukturen Raster und Vektor ist grundsätzlich besser, vielmehr hängt es von der
jeweiligen Fragestellung und der vorhandenen Datengrundlage ab, mit welchen Datenstrukturen eine Aufgabe optimal gelöst werden kann. Dabei können beide Modelle nebeneinander existieren und es wird in
42
Kapitel 2. Der Aufbau von ARC/INFO
ARC/INFO eine gewisse Integration beider Modelle erreicht, da zudem Konvertierungsmöglichkeiten
zwischen den unterschiedlichen Datenstrukturen bestehen.
2.2.3.2. Images
Bilder können die Aussagekraft der Darstellung vieler Sachverhalte erhöhen. Mit der Tool-Sammlung
IMAGE INTEGRATOR verfügt ARC/INFO über die Möglichkeit, u.a. Bilder folgender Formate darzustellen und einzubinden.
•
ERDAS .GIS und .LAN -Formate
•
GRASS
•
RLC
•
Grids
•
BIL (Band-interleaved-by-Line)
•
BIP (Band-interleaved-by-Pixel)
•
TIFF
•
Sun-Raster
Bilder bestehen aus Bildpunkten (Pixeln), die je einem bestimmten Zahlenwert (z.B.: zwischen 0-255
für 8-Bit Rastergrafiken (Bitmaps)) entsprechen, der in Graustufen oder Farben umgesetzt wird. Reine
Schwarz-Weiß-Bilder ohne Graustufen bestehen nur aus Nullen und Einsen. Farben werden durch verschiedene Intensitäten der Farben Rot, Gelb und Blau gemischt. Es werden aber auch andere Farbmodelle
wie die Prozessfarben CYMK (Cyan, Yellow, Magenta, Schwarz) oder HSV-Werte (Hue, Saturation, Value) unterstützt.
Ein Beispiel ist die Zuordnung der verschiedenen Bänder (jeweils Graustufen) von Satellitenbildern zu
jeweils einer Farbe, um zu einem farbigen Ergebnis zu kommen, d.h. die Zuweisung dreier Werte pro
Pixel, z.B. für die drei Kanäle Rot, Gelb, Blau. Die entstehenden Monochrombilder werden dann übereinandergelagert. Das Resultat ist ein multispektrales Bild. Typische Beispiele sind Landsat TM oder
SPOT-Satellitenaufnahmen.
Diese oder anderweitig gescannte Bilder (z.B. Landkarten) können als Hintergrund zu anderen in ARC/INFO
erstellten Informationsebenen unterlegt werden oder als Attributdaten gespeichert werden. Im zweiten Fall
können sie bei Mausklick auf das zugehörige Objekt angezeigt werden. Anwendungsbeispiele dafür sind
in einem Informationssystem gescannte Photos von Gebäuden, Sehenswürdigkeiten oder Straßenabschnitten mit erhöhter Unfallgefahr etc.
Images lassen sich auch in Grids umwandeln und können dann bei entsprechender Entzerrung und Georeferenzierung für die Analyse mit herangezogen werden. Dabei sind natürlich wie bei der Einbindung
anderer Daten mögliche Fehler- bzw. Maßstabsprobleme zu beachten (vgl. Kapitel Kapitel 1).
In Kapitel Kapitel 3 wird die Georeferenzierung von Bildinformationen auf ein Coverage, sowie die OnScreen-Digitalisierung von solchen hinterlegten Rasterkarten erläutert.
43
Kapitel 2. Der Aufbau von ARC/INFO
2.2.4. Dreidimensionale Daten
2.2.4.1. Lattice
Ein Lattice bezeichnet in ARC/INFO eine regelmäßig angeordnete Menge von Punkten auf einer Fläche
(X,Y-Kordinaten), die durch eine Z-Koordinate eine Oberfläche definieren. Im Prinzip ist ein Lattice also
ähnlich aufgebaut wie ein Grid und besitzt in ARC/INFO eine entsprechende Datenstruktur 4. Der Unterschied liegt in der Interpretation der X,Y,Z -Werte. Es handelt sich hier um echte Punktinformationen,
während eine Gridzelle eine Fläche darstellt.
Abbildung 2-9. TINs und Lattices im Vergleich - Ausgangsdaten und Resultate (aus ARCDOC)
In einem Grid erhält die gesamte Zelle (X,Y) einen Wert (Z). In einem Lattice wird der Z-Wert als Höhenangabe eines einzelnen Punktes, dessen Basis den Mittelpunkt der entsprechenden Grid-Zelle darstellt,
interpretiert. Die Werte zwischen den bekannten Oberflächenpunkten werden über die übrigen LatticePunkte interpoliert. Für diese Aufgabe stehen in dem TIN-Modul verschiedene Algorithmen zur Verfügung. Sie sind in der Online-Hilfe ARCDOC dargestellt. Die Auflösung muß insgesamt an die feinste
benötigte Geländedarstellung angepaßt werden.
2.2.4.2. Dreiecksvermaschung (TIN)
TIN ist die Abkürzung für Triangulated Irregular Network (trianguliertes irreguläres Netzwerk oder unregelmäßige Dreiecksvermaschung) und wird zur Darstellung kontinuierlicher Oberflächen, z.B. von Gelände, benutzt. Geländeoberflächen o.ä. bestehen in der Realität aus unendlich vielen Punkten. Nun ergibt
sich das Problem, eine geeignete, noch handhabbare Auswahl aus diesen zu treffen, um die Oberfläche
möglichst exakt abzubilden. Die nicht explizit gespeicherten Punkte sollen möglichst genau aus den gegebenen interpoliert werden. TIN versucht dies mittels der Grundelemente Dreieck (Triangle), Knoten
(Node) und Kante (Edge) zu erreichen, während einfache rasterbasierte Geländemodelle aus einer regelmäßigen Matrix bestehen, die damit keine Rücksicht darauf nehmen kann, ob die Stützpunkte signifikant
für die abzubildende Oberfläche sind.
44
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-10. Datenquelle (Punkte) für ein TIN
Abbildung 2-11. Resultierendes TIN
Viele einfache digitale Geländemodelle (Digital Elevation Model, DEM) besitzen ein regelmäßiges Netz
von Stützpunkten, ohne Unterscheidung, ob die gewählten Punkte signifikante Änderungen im Gelände
darstellen oder ob mehrere Punkte für die Darstellung einer homogenen Fläche „verschwendet“ werden.
In einem TIN können dagegen charakteristische Gegebenheiten (Küstenlinien, Talboden, Gipfelpunkte,
Höhenzüge...) herangezogen werden, um die Geländeform zu modellieren. Diese charakteristischen Linien (Breaklines), mit bekannten Koordinaten stellen im TIN die Kanten (bzw. Eckpunkte) von Dreiecken
dar.
* TODO AZ: Saetze?
TINs haben gegenüber Grids den Vorteil, daß Daten aus unterschiedlichen Quellen (Punkt-, Linien- und
Flächencoverages, ASCII-Dateien...) verarbeitet werden können, die Darstellungsgenauigkeit ist adaptiv,
das heißt es werden nur jeweils so viele Dreiecke verwendet, wie es für das jeweilige Relief erforderlich
ist: wenige bei Ebenen und viele bei großer Variabilität. Außerdem können Breaklines definiert werden,
d.h. Linien, deren Höhenwert nicht durch Interpolation verändert werden darf, so z.B. Küstenlinien. Sind
Tins also für die Modellierung realer Oberflächen prädestiniert, besitzen Grids Vorteile bei der Darstellung
theoretischer Gebilde wie Kostenoberflächen, Wasserleitfähigkeit etc. sowie der mit solchen Anwendungen verbundenen Modellierung wie der Simulation eines Waldbrandes oder der Planung kostenminimaler
Trassen.
45
Kapitel 2. Der Aufbau von ARC/INFO
2.3. Erste Schritte in ARC/INFO
2.3.1. Workspaces
Die Coverages in ARC/INFO sind in sogenannten Workspaces organisiert. Das sind Unterverzeichnisse, die ein oder mehrere Coverages enthalten und in denen ein Unterverzeichnis namens info angelegt
wird, in welchem die internen Verknüpfungen zwischen den Coverages und den INFO-Tabellen für die
Sachattribute durch ARC/INFO verwaltet werden. Neu erstellte Coverages oder ähnliches werden standardmäßig in das gerade aktive Workspace gespeichert. Die Erzeugung von Workspaces und das Wechseln
zwischen den Workspaces kann auf der Kommandozeile über die Befehle createworkspace workspace
(kurz: cw) bzw. workspace workspace (kurz: w geschehen.
ARCTOOLS erstellt jedoch bei jedem Speichern eines Coverages über ARCTOOLS bei Bedarf in dem
angegebenen Verzeichnis ein eigenes neues Workspace. Dies führt bei fehlender Umsicht oder Kontrolle unter Umständen zu einem Wildwuchs an Verzeichnissen und Workspaces, so daß es besser ist, bei
Projektbeginn eine entsprechende Verzeichnisstruktur zu planen, diese mit createworkspace einzurichten und dann auch darauf zu achten, daß die entsprechenden Coverages hier gespeichert werden. Dies
ist besonders dann sinnvoll, wenn mehrere Personen in einem Projekt mitarbeiten, da dann nur einmal die entsprechenden Zugriffsrechte vergeben werden müssen. Bei der Vergabe der Zugriffsrechte auf
Betriebssystem- bzw. Netzwerkdateisystemebene ist darauf zu achten, daß insbesondere auch Zugriffsrechte (lesend und schreibend) auf das in jedem Workspace enthaltene Info-Unterverzeichnis gewährt
werden müssen, damit das Arbeiten darin möglich ist. Bei Netzwerkverbindungen müssen gegebenenfalls
noch Locking-Mechanismen berücksichtigt werden, aber dies ist dann Sache Ihres Netzwerkadministrators.
2.3.2. Grundsätzliche Bedienung
Um ARCTOOLS zu starten, muß zunächst ARCauf der Kommandozeile gestartet werden. ARCTOOLS
wird dann durch Eingabe von arctools aufgerufen:
zeus: arc
... einige Startup-Meldungen
ARC/INFO meldet sich mit seinem eigenen Prompt und damit steht nun das gesamte Programmpaket von
ARC/INFO zur Verfügung (bzw. die für die lokale Installation lizensierten Module). Um sich einen ersten
Eindruck zu verschaffen, kann man zunächst die grafische Bedienoberfläche ARCTOOLS von ARC/INFO
starten:
Arc: arctools
Das Hauptmenü erscheint (vgl. Abbildung 2-12). Aus der Liste kann der gewünschte Unterpunkt durch
Mausklick ausgewählt und dann durch Anklicken des OK-Knopfes bestätigt werden.
46
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-12. Das ARCTOOLS Hauptmenü
Bei Auswahlvorgängen wird der rechte Mausbutton benutzt. Soll eine gewählte Aktion schließlich ausgeführt werden, wird der linke Mausbutton eingesetzt. Bei Eingabe eines expliziten Wertes oder Textstrings
in die dafür vorgesehenen Eingabefelder muß diese durch Drücken der return-Taste bestätigt werden. Um
die gewählten Menüeinstellungen auszuführen, drückt man den OK oder den Apply-Button (Einstellungen anwenden). Im Unterschied zu OK verschwindet das Menü bei Apply nicht.
Sämtliche Funktionen in ARCTOOLS können auch durch Aufruf der entsprechenden Befehle von der
Kommandozeile erreicht werden. ARCTOOLS wurde hauptsächlich entwickelt, um Einsteiger nicht mit
der unübersichtlichen Befehlsfülle zu überfordern und ihnen das Erlernen der jeweils erforderlichen genauen Syntax zu ersparen. Jedoch wurde nicht die volle Funktionalität von ARC/INFO in ARCTOOLS
eingegeben. Das bedeutet, daß einige Funktionen nur über die Kommandozeile erreicht werden können.
ARCTOOLS erspart neuen Benutzern zwar das Erlernen und Tippen der konkreten Befehlssyntax, jedoch
wurde ARCTOOLS durch die gewachsene Funktionsfülle mittlerweile für Einsteiger relativ unübersichtlich. Der Benutzer muß sich durch zahlreiche Menüs hangeln und deren Struktur erlernen. Unter Umständen kann man daher nach einiger Übung mit der Kommandozeile schneller arbeiten. Durch die steigende
Verbreitung und Akzeptanz von Windows-Systemen geht die Bedeutung letzterer für den einfachen Anwender zunehmend zurück. Geht es jedoch darum, eigene Anpassungen vorzunehmen oder das Programm
um weitere Funktionen zu erweitern, wird man ohne Kenntnis der Kommandozeilensyntax nicht arbeiten
können. Welche Lernkurve nun für welche Anwender die steilere darstellt, hängt sicher von persönlichen
Vorkenntnissen und Präferenzen ab. Für die wichtigsten Befehle werden wir in dieser Einführung beide
Varianten vorstellen.
Für die neue Windows-Version von ARC/INFO (ArcDesktop) stellt sich diese Frage nicht mehr -- sie ist
von Beginn an für eine grafische Oberfläche programmiert worden.
Die grundsätzliche Befehlssyntax wird im Folgenden angegeben. Da ARCTOOLS in der eigenen Makrosprache AML entwickelt wurde, können zusätzlich erwünschte Befehle durch Neu- oder Umprogrammierung der zugrundeliegenden AMLs in ARCTOOLS eingebunden werden.
Zunächst wollen wir unseren Lesern aber nicht vorenthalten, wie man ARC/INFO wieder beenden kann:
Arc: quit
2.3.3. Initialisierung der Graphikfenster
ARC/INFO benötigt nicht zwangsläufig eine Fensteroberfläche. So ist es möglich, das Programm über
eine einfache Terminalverbindung zu steuern, solange keine Graphikausgabe auf dem Bildschirm erforderlich ist.
47
Kapitel 2. Der Aufbau von ARC/INFO
Verschiedene Module von ARC/INFO öffnen Graphikfenster unter einer graphischen Benutzeroberfläche
wie MS Windows oder X-Window Fenster, um Geometriedaten anzuzeigen, z.B., um sie mit der Maus zu
editieren. Unter ARCTOOLS wird dem Benutzer dabei die Initialisierung einiger Umgebungsvariablen
abgenommen. So sind auch Größe und Position der Anzeigefenster voreingestellt. Auf der Kommandozeile können diese Einstellungen wie folgt festgelegt werden:5
display 9999 1
display 9999 2
klein, aber gut für Übersicht, identisch zu DISPLAY schmales hochkantiges Fenster
9999
display 9999 3
display 9999 4
größtes Fenster, bei dem noch eine sichtbare
Eingabe von Befehlen möglich ist. Das
entsprechende Befehlsfenster muß vor der
Initialisierung an den unteren Bildschirmrand
verschoben werden
Full-Screen-Anzeige des ARC/INFO Draw
Fensters. Blinde Eingabe ist erforderlich, v.a.
geeignet für Demonstrationszwecke
2.3.4. Voreinstellungen beim Programmstart
Der Start von ARC/INFO kann vereinfacht werden, wenn Voreinstellungen wie Arbeitsverzeichnis, Initialisierung des Grafikfensters etc. gespeichert werden. Dazu dient eine Datei namens arc.aml. Dies ist eine
Makro-Datei, die im Homeverzeichnis des Anwenders abgelegt ist und ausgeführt wird, wenn ARC/INFO
im entsprechenden Verzeichnis gestartet wird.
Sie könnte z.B. wie folgt aussehen:
/* arc.aml
/*
&station 9999 /* graphisches Display initialisieren
workspace digi /* in aktuelles Arbeitsverzeichnis wechseln
48
Kapitel 2. Der Aufbau von ARC/INFO
2.4. Erhalten von Hilfe
2.4.1. Hilfe auf der Kommandozeile
usage Befehl
* LN: Formatierung ist Sache der Stylesheets (Default: Kommando: Times fett, Replacable: Courier kursiv)
gibt eine kurze Syntax-Beschreibung des Befehls mit seinen Optionen aus. Diese Hilfsfunktion können
wir bei uns schon bekannten Befehlen anwenden, um die genaue Syntax, die vom Programm erwartet
wird, in Erfahrung zu bringen. Für neue Befehle, deren Wirkung und Arbeitsweise uns noch nicht bekannt
sind, reicht dies natürlich nicht aus. Falls wir einen Befehl mit falschen Optionen eingeben (z.B. mit
Tippfehler oder ausgelassener zwingender Eingabe), wird dies vom Programm in der Regel ebenfalls mit
der Ausgabe von usage quittiert.
asciihelp Befehl gibt eine genauere textbasierte Erläuterung zur Funktionsweise des Befehls.
commands gibt eine Liste der verfügbaren Befehle im jeweiligen Modul aus.
help startet die im Folgenden beschriebene Online-Hilfe.
2.4.2. Die Online-Hilfe ARCDOC
Abbildung 2-13. Die Online-Hilfe ARCDOC
ARCDOC (vgl. Abbildung 2-13) ist ein Hypertext-Hilfesystem für alle Befehle, Begriffe und Konzepte
in ARCDOC. Es ähnelt in der Erscheinung den neueren Windows-Hilfesystemen, sodaß man sich als Be-
49
Kapitel 2. Der Aufbau von ARC/INFO
nutzer recht schnell darin zurechtfinden kann. Trotzdem sollen kurz die wichtigsten Merkmale dargestellt
werden:
ARCDOC kann von der ARC-Kommandozeile (oder der Kommandozeile anderer Module) aufgerufen
werden:
Arc: help
Starting ArcDoc Version 7.2.1
Copyright (C) 1982-1998 Environmental Systems Research Institute, Inc.
All Rights Reserved Worldwide.
[1] 4838
Es ist auch möglich, die Hilfe unabhängig von ARC/INFO zu starten:
> arcdoc&
Starting ArcDoc Version 7.2.1
Copyright (C) 1982-1998 Environmental Systems Research Institute, Inc.
All Rights Reserved Worldwide.
[1] 4838
Die Hilfe wird unter UNIX als eigener Prozess gestartet, sodaß die Kommandozeile wieder für die weitere
Arbeit zur Verfügung steht.
In ARCDOC kann nach Themen bzw. Modulen sortiert nach Befehlsbeschreibungen gesucht werden. Es
handelt sich hier um sämtliche in ARC/INFO zur Verfügung stehenden Befehle, wie sie im Zeilenmodus
in das Terminalfenster eingegeben werden können.
Zu allen Modulen von ARC/INFO lassen sich unter Command References sowohl alphabetische als
auch funktionelle Auflistungen der verfügbaren Kommandos anzeigen. Zudem enthält die Hilfe einige
grundlegende Artikel zu verschiedenen Programmschwerpunkten und ihrer Handhabung.
Die folgenden Abbildungen zeigen die Auswahlmöglichkeiten unter Command References und die jeweiligen weiterführenden Menüs, wenn man auf einen der kleinen Doppelpfeile rechts neben der Modulbezeichnung drückt. Mit Abbildung 2-14 und Abbildung 2-15 sind jeweils ein Beispiel für eine funktionale
(für das TIN-Modul) und eine alphabetische (für das ARC-Modul) Aufstellung angegeben.
50
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-14. Funktionale Kommandolisten in ARCDOC
Abbildung 2-15. Alphabetische Kommandolisten in ARCDOC
Eine Suchfunktion (Abbildung 2-16) hilft bei der Suche nach Einträgen in der Online-Hilfe. Zusätzlich
listet ein Glossar (Abbildung 2-17) viele der relevanten Begriffe auf und gibt kurze Erläuterungen zu
denselben.
51
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-16. Suchfunktion in ARCDOC
Abbildung 2-17. Glossar in ARCDOC
52
Kapitel 2. Der Aufbau von ARC/INFO
2.4.3. Der Tool Browser
Zusätzlich zu ARCDOC verfügen die ArcTools über eine eigene Dokumentation, in der sowohl Hilfetexte
als auch die Quelltexte der AML-Programme selbst zu betrachten sind. Um Hilfe-Dateien oder den AMLQuellltext für die Funktionsweise der ARCTOOLS-Menüs zu finden, gibt es den ToolBrowser. Dieser
zeigt entweder Hilfe-Dateien oder die zugehörigen AML-Makros oder Menü-Definitions-Dateien an. Die
Hilfedateien beziehen sich nur auf die Funktionsweise der AML-Makros von ARCTOOLS, nicht auf
die Befehlssyntax im Zeilenmodus. Diese findet man in der Online-Hilfe ARCDOC. Geordnet sind die
einzelnen Menüs in sogenannte Tool Libraries. Diese spiegeln vor allem die verschiedenen Module von
ARC/INFO wieder.
Abbildung 2-18. Das Tool Browser Menü
2.4.4. Weitere nützliche Tools
2.4.4.1. Der Datenbetrachter
Der Data Viewer ist ein nützliches Werkzeug, um schnell einen Überblick über die verfügbaren Daten zu
erhalten und ihre wesentlichen Eigenschaften abzufragen. Er ist in den ARCTOOLS-Modulen (EditTools,
MapTools ...) jeweils im ARCTOOLS-Pulldownmenü zu finden.
EditTools
ArcTools
Data Viewer
Mit diesem Menü können schnell Übersichtsgrafiken der Geometriedaten angezeigt werden und die Charakteristika der Datensätze mittels Properties, Describe sowie List abgefragt werden. Außerdem liefert
Items eine Beschreibung der zu den Geometrien gehörigen Attributdaten.
2.4.4.2. Umrechung von Maßeinheiten
Ein kleines, aber hilfreiches Werkzeug ist das Unit Conversion Tool, mit welchem die Umrechnung
verschiedener Maßeinheiten (v.a. Längen, Grad und Flächenmaße) in andere Einheiten möglich ist. Es
kann mit diesem Menü jedoch immer nur ein einzelner Wert auf einmal umgerechnet werden.
53
Kapitel 2. Der Aufbau von ARC/INFO
Abbildung 2-19. Das Data Viewer Menü
Abbildung 2-20. Das Programm zur Konvertierung von Einheiten
Weiterführende Literatur:
ESRI, 1995, Understanding GIS. The ARC/INFO Method, Cambridge: GeoInformation International.
Heather Campbell und Ian Masser, 1995, GIS and Organizations: How effective are GIS in practice?,
London: Taylor and Francis.
Stanley Aronoff, 1989, Geographic information systems: a management perspective, Ottawa: WDL Publications.
Booth Bob, 1999, Getting Started with ArcInfo, Redlands: ESRI.
Fußnoten
1. Diese festen Grenzen existieren in der Realität (außerhalb von Verwaltungseinheiten) natürlich in den
seltensten Fällen, vielmehr treffen wir auf unscharfe Grenzsäume und Übergangsgebiete, für die aus
Gründen der Vereinfachung und Modellbildung die Grenzen festgelegt werden.
2. Es sei denn er/sie ändert sie selbst in INFO. Dies ist ein relativ sicherer Weg, seine Daten für eine
weitere Verwendung unbrauchbar zu machen.
54
Kapitel 2. Der Aufbau von ARC/INFO
3. Heute möchte man ja eigentlich immer seamless boundaries, also keine Kartenblätter
4. Interessante Anwendungsmöglichkeiten ergeben sich dadurch, daß so auch vorhandene statistische
Attributdaten, die keine topographischen Höhenwerte darstellen, sich als Höhenmodell interpretieren
lassen.
5. Die Größe der Fenster kann auch nachträglich mit der Maus verändert werden, aber in Einzelfällen
(z.B. wenn in ARCPLOT kein map-Befehl abgesetzt wurde) geht der bisherige Bildschirminhalt dabei
verloren.
55
Kapitel 2. Der Aufbau von ARC/INFO
56
Kapitel 3. Projektplanung und Erstellen der
raumbezogenen Datengrundlage mit ARCEDIT
Das Erzeugen der digitalen Kartengrundlage ist einer der wichtigsten und oft auch aufwändigsten Schritte
eines GIS-Projektes. Zunächst geben wir grundsätzliche Hinweise zur Planung und beschreiben dann das
Digitalisieren einer Kartenvorlage am Digitalisierbrett und am Monitor. Außerdem geben wir Hinweise
zum Import existierender Daten aus anderen Systemen oder Datenquellen. Die Kopplung der räumlichen
Geometrien mit Attributdaten unterschiedlichster Art ist eines der Hauptcharakteristika von Geoinformationssystemen.
3.1. Fragestellung und Arbeitsablauf
Abbildung 3-1. Arbeitsablauf eines GIS-Projekts
Problem
Zu Beginn müssen die Problemstellungen untersucht und grundsätzliche Organisationsfragen geklärt werden: Wie wird das Problem momentan gelöst und welche Alternativen gibt es dazu (auch zur Benutzung
eines GIS)? Wie soll das Resultat präsentiert werden? Für welche Zielgruppe(n) ist es bestimmt? Nutzen
andere gleichzeitig oder künftig dieselben Ausgangsdaten? Wie oft werden die selben Routinen durchgeführt werden? Welche Genauigkeit wird benötigt? Welche Daten sind vorhanden, welche müssten beschafft werden?
Daten
Die Datengrundlage muß beschafft werden. Falls eine Digitalisierung notwendig wird, kann dieser Schritt
viel Zeit und Geld kosten. Das Untersuchungsgebiet, die Kartenprojektion und die notwendigen Datenschichten müssen bestimmt werden. Die Erstellung letzterer beinhaltet zunächst Import/Digitalisierung/Konvertierung,
Fehlererkennung und -verbesserung sowie das Erzeugen der Topologie. Dann müssen die Zusatzinformationen (Sach- oder Attributdaten) eingelesen und mit den Raumelementen verbunden werden. Schließlich
erfolgen gegebenenfalls die Umwandlung von Digitalisierkoordinaten in geographische Koordinaten sowie Projektionskonvertierungen, um Daten aus unterschiedlichen Quellen in ein einheitliches Format zu
bringen und damit untereinander in Beziehung setzen zu können.
57
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Analyse
Die eigentliche Analysearbeit beginnt. Durch Flächenverschneidungen, logisches oder räumliches Selektieren, Bufferbildung, statistische Analysen und Verknüpfung mit den übrigen graphischen Datenmodellen werden neue Erkenntnisse gewonnen und in Text oder Bild umgesetzt. Dies geschieht in der Regel in
mehreren Schritten. Die Analyse mit ARC ist Gegenstand von Kapitel 4.
Präsentation
Diese Umsetzung mit anschließender Präsentation der Ergebnisse stellt den letzten Schritt eines GISProjektes dar. Es wird deutlich, daß GIS nicht mit Computerkartographie gleichzusetzen ist, die nur
einen kleinen Teil des Gesamtprojektes darstellt. Prinzipiell ist die Kartographie durch Export der Ergebnisdaten bzw. -geometrien auch in anderen spezialisierten Kartographieprogrammen oder DesktopGraphikprogrammen möglich. Selbstverständlich weisen die meisten GIS-Programme wenigstens eingeschränkte kartographische Gestaltungsmöglichkeiten auf. In der Praxis sind es sogar oft die interaktiven
Visualisierungsmöglichkeiten und die Einbindung von Sachdaten aus Datenbanken, die einen Großteil der
Anwendungen in Verwaltung und Wirtschaft darstellen. Die Visualisierung mit ARCPLOT behandeln wir
in Kapitel 6.
3.2. Geometriedaten in ARC/INFO übernehmen/erstellen
ARCEDIT und die EditTools aus ARCTOOLS dienen dazu, die Geometrie- und Attributdaten von Coverages zu bearbeiten.
3.2.1. Vorbereitung
3.2.1.1. Kartengrundlage
Das Erstellen der Kartengrundlage will sorgfältig geplant sein. Der erste Schritt ist die Vorbereitung auf
das Projekt: Welche Daten sind vorhanden, in welcher Form, was muß noch digitalisiert oder aus anderen
Systemen importiert werden?
3.2.1.2. Reihenfolge der Arbeitsschritte festlegen
Um einen reibungslosen Ablauf zu erreichen, sind zunächst die einzelnen Schritte zu planen. Sobald
die notwendige Reihenfolge feststeht und die einzelnen Arbeitsschritte dokumentiert wurden, sollte man
einen Zeitplan erstellen, in dem die einzelnen Arbeitsschritte Personen zugeordnet und von diesen bei
Vollendung abgehakt werden können.
3.2.1.3. Namensbeschränkungen und -konventionen, Verzeichnisstruktur
Für das Projekt sollten im Vorfeld schon Namenskonventionen und eine Verzeichnisstruktur für verschiedene Arbeitsbereiche und Arbeitsschritte festgelegt werden, um spätere Missverständnisse zu vermeiden.
Verzeichnisstruktur einrichten (workspaces)
58
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Dann kann ein neues Arbeitsverzeichnis erstellt werden, in das man anschließend wechselt (Abkürzungen
für diese Befehle sind jeweils kursiv gedruckt):
Arc: createworkspace workspace
Arc: workspace workspace
/* d.h. cw in der Kurzfassung
* AZ: wurde Kommentarzeichen schon eingefuehrt?
Namen von Coverages können bis zu 13 Buchstaben Länge besitzen. Da Variablennamen bis zu 16 Buchstaben lang sein dürfen, ist dadurch gewährleistet, daß der Zusatz -ID an den Cover Namen angehängt
werden kann. Ein ähnlicher Grund begrenzt den Namen von Annotations und Route-Systems auf elf
Stellen. Die Namen der Coverages müssen mit einem Buchstaben beginnen, dürfen jedoch auch Ziffern
enthalten (A - Z, 0 - 9), ebenso Binde- und Unterstriche. Eine weitere Beschränkung existiert beim Export
in Shapefiles, da die Feldnamen in den zugehörigen DBase-Datenbankdateien ebenfalls einer Größenbeschränkung unterliegen1.
Um die im Laufe eines Projekts anfallenden Daten übersichtlich und konsistent zu organisieren, werden
beispielsweise die in Tabelle 3-1 aufgeführten Namenskonventionen vorgeschlagen.
Tabelle 3-1. Namenskonventionen für Coverages
ABB Abbaugebiete
GRW Grundwasser
ALP Agrarleitplan
HOE Höhenlinien/ -punkte
ALT Altlasten
IMI Immission
BIO
KLM Klima
Biotope
BOD Boden
LKG Landkreisgrenzen
EMI Emission
LSG Landschaftsschutzgebiete
ERO Erosion
LEG Legende
ERZ Erzeugungsgebiete
NTR Naturräumliche Einheiten
EXP Exposition
NSG Naturschutzgebiete
FNP
NEI Neigung
Flächennutzungsplan
FGW Fließgewässer
REL Realnutzung
FLR
Flurkarte
SGW Stillgewässer
FRE
Funkt. Raumeinheiten
STR Straßen
GEM Gemeindegrenzen
TIF
Technische Infrastruktur
GEO Geologie
VEG Vegetat. Einheiten
GEW Gewässer
WEG Wassereinzugsgebiete
Während der Digitalisierung könnte ein Coverage dann z.B. STR_A1_DIG heißen, nach der Fehlerbereinigung STR-A1_CLE und das fertige und kontrollierte Resultat STR_A1. Weitere Bearbeitungsschritte
könnten sich dann in den in Tabelle 3-2 vorgeschlagenen Namen wiederspiegeln.
Tabelle 3-2. Namenskonventionen für Bearbeitungsschritte
BUF
Bufferung
UNG Ungenerate
TRA
Transformation
GEN Generate
59
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.1.4. Kartenmaterial vorbereiten
Im nächsten Schritt sollte man das Kartenmaterial auf die Digitalisierung vorbereiten. Dafür ist es hilfreich, den voraussichtlichen Umfang des Projektes zu kennen. Möglichen Zuwachs sollte man schon zu
diesem Zeitpunkt einplanen.
3.2.1.4.1. Karten ggfs. auf anderes Material übertragen
Daten, die noch nicht in elektronischer Form vorliegen (z.B. weil sie noch von Hand aufgenommen wurden oder aus anderen Gründen nur auf Papier verfügbar sind) müssen für das GIS verwendbar gemacht
werden. Sie werden in der Regel mit einem Digitalisiertablett erfaßt. Je nachdem, aus welchem Material
die Vorlage besteht, kann sich diese durch äußere Einflüsse (Luftfeuchtigkeit etc.) bis zu mehreren Millimetern zusammenziehen oder ausdehnen und dadurch den RMS-Fehler vergrößern, daher sollten die
Karten vor Beginn der Arbeit ggfs. auf ein stabiles Material, z.B. Mylar oder Astralon kopiert werden.
* LN: heisst das Astralon?
Die Vorbereitung für die eigentliche Digitalisierung beinhaltet das Beschaffen einer geeigneten Arbeitsvorlage (Maßstab, Aktualität). Die relevanten Informationsebenen müssen auf stabile, verzugsunempfindliche Transparentfolien (Astralon) übertragen werden. Eine solche Folie wird auf dem Digitalisierbrett
befestigt und das eigentliche Digitalisieren kann beginnen. Um später die einzelnen Kartenschnitte problemlos zusammenfügen zu können, sollte man sich zuvorrechtzeitig über eine konsistente Vergabe von
ID’s für die TIC-Punkte 2 klar werden. Dies ist besonders bei Projektgruppen mit mehreren Bearbeitern
wichtig, aber auch wenn man alleine mehrere angrenzende Blattschnitte bearbeitet, erspart man sich später
viel unnötige Arbeit, wenn solcher „Zuwachs“ bereits vorher berücksichtigt wird.
3.2.1.4.2. TICs bestimmen und markieren
TICs markieren Punkte, für die die genaue Lage im Gradnetz bekannt ist. Es ist also sinnvoll, auf der
Karte solche Punkte auszuwählen, die an den Schnittpunkten des Gitternetzes liegen. Auf der Karte sollte
man die entsprechenden Punkte vermerken und zugleich eine Tabelle mit diesen IDs und den dazugehörigen Koordinaten anlegen. Diese wird später für die Überführung des Coverages von Digitalisierbrett- in
Realweltkoordinaten benötigt.
Für sämtliche Karten werden markante Punkte (meist in den Ecken der Kartenblätter oder an Gitternetzschnittpunkten) gesucht, für die die exakten Koordinaten feststehen. Für diese werden nun eindeutige
Nummern vergeben, wobei es sinnvoll ist, ein solches Raster für eine Reihe von Kartenblättern zu planen (siehe Abbildung 3-2 ). Insbesondere bei größeren Projekten ist ein sogenanntes Mastertic-Coverage
unumgänglich.
60
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-2. Kartenübersicht mit TICs
Bei genauerer Betrachtung der Abbildung fällt vielleicht auf, das die Nummern im unteren Teil nicht
fortlaufend sind. Falls das Untersuchungsgebiet noch in die angrenzenden Kartenblätter ausgedehnt werden soll, kann man so noch weitere Karten in das Schema einbinden. Grundsätzlich ist aber die einzige
Bedingung, dass die TIC-IDs eindeutig sein müssen, also jeweils nur einmal vergeben werden dürfen.
3.2.1.4.3. unklare Stellen markieren
Bei der Digitalisierung können verschiedene Fälle auftreten, in denen Startpunkte oder Schnittpunkte
nicht eindeutig sind. In solchen Fällen (vgl. Abbildung 3-3) ist es sinnvoll, diese Punkte vor dem Digitalisieren festzulegen und auf der Karte zu markieren, z.B. Schnittpunkte von zwei Linien, die sich im
spitzen Winkel schneiden oder den Startpunkt bei Inselpolygonen ohne markante Kanten.
Abbildung 3-3. Vorbereitung des Kartenmaterials: nicht eindeutige Start- und Schnittpunkte festlegen
* TODO LN: ausformulieren, einordnen
Schnittpunkte von Linien in spitzem Winkel (Node festlegen)
Start-Nodes bei Inselpolygonen
bei Bildschirmdigitalisierung analoges Vorgehen
3.2.1.4.4. Richtung der Linien festlegen
In manchen Fällen spielt die Richtung einer Linie eine Rolle, so z.B. wenn ein Flußnetz modelliert werden
soll. Eine falsche Fließrichtung eines Flußabschnittes müßte erst aufwändig in den Ausgangsdaten korri-
61
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
giert werden. Wenn gar das gesamte Flußnetz ohne Rücksicht auf die Fließrichtung digitalisiert wurde, ist
der Aufwand enorm hoch, dies wieder zu korrigieren. Es empfiehlt sich also, bereits vor der Digitalisierung solche Überlegungen in die Planung mit einzubeziehen, auch wenn zu diesem Zeitpunkt z.B. noch
keine Netzwerkanalyse geplant ist.
3.2.2. Geometriedaten
3.2.2.1. Digitalisierung
Das Eingabegerät für Koordinaten wird mit dem Befehl coordinate mouse digitizer keyboard
festgelegt bzw. geändert.
In der Regel ist das Eingabegerät auf mouse gestellt, sinnvoll z.B. für Auswahl und Editieren am Bildschirm. Für die Eingabe von Papierkarten wählt man digitizer. Falls Koordinaten anhand vorliegender Werte eingegeben werden sollen, kann man das Eingabegerät auch auf keyboard setzen. Dies dürfte
aber eher die Ausnahme sein, bei größeren Koordinatenmengen erledigt man dies sinnvollerweise über die
ASCII-Schnittstelle generate.
3.2.2.1.1. Toleranzen
Bevor man mit dem Digitalisieren der Kartenelemente beginnt, sollte man noch die folgenden Voreinstellungen für ARCEDIT anpassen: Nodes, d.h. Anfangs- und Endpunkte von Linien (Arcs) werden ab einem
bestimmten Abstand voneinander „zusammengeschnappt“, d.h. wenn ein neuer Node innerhalb der nodesnap-Distanz zu einem anderen Node liegt, werden die beiden zusammengezogen. Die Voreinstellung
muß gegebenenfalls geändert werden. Diese Einstellungen sind jedoch von den Einheiten der Coverages
abhängig - so sind hier bei der Digitalisierung mit dem Digitalisierbrett völlig andere Werte erforderlich als beim Editieren von Coverages in Real-world-Koordinaten am Bildschirm, denen ein Rasterbild
hinterlegt wurde.
Beim Erstellen eines Coverages wird eine Anzahl von Toleranzgrenzen gesetzt. So z.B. bei der Festlegung
der Genauigkeit der Tic-Koordinaten, beim Digitalisieren und Editieren, oder wenn zwei Nodes nachträglich zusammengeschnappt werden. Damit wird also schon während der Erstellung eines Coverages auf die
Genauigkeit der gesamten Analyse Einfluß genommen. Andererseits ist das Editieren großer Coverages
ohne gewisse Toleranzen zur Automatisierung einzelner Editiervorgänge kaum möglich.
Diese Toleranzen werden in eigenen Dateien gespeichert. Sie haben die ARC/INFO-Dateiendung tol bei
einfacher und par bei doppelter Genauigkeit.
Folgende Begriffe werden immer wieder in Optionen vieler Editier- und Analysebefehle auftauchen:
3.2.2.2. Fuzzy Tolerance
Diese Toleranz definiert den kleinsten Abstand zwischen Arc-Koordinaten in einem Coverage, d.h. die
minimale Distanz zwischen zwei Punkten (sowohl Nodes als auch Vertices). Die Werte müssen größer
Null sein. Es existiert folgende Rangfolge:
62
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Zuerst gilt die Toleranz aus der TOL-Datei des Coverages. Existiert diese nicht und liegen die Extremwerte des Coverages (Boundary) zwischen 1 und 100 wird automatisch ein Fuzzy Tolerance Wert von
0.002 (inch) eingesetzt. Sind die Werte in der BND-Datei größer als 100, so wird die maximale Weite der
BND-Werte durch 10000 dividiert.
3.2.2.3. Grain Tolerance
Bei Interpolation eines Linienzuges in der Ebene durch Splines gibt die Grain Tolerance die Entfernung
zu den äquidistanten Interpolationspunkten an.
3.2.2.4. Weed Tolerance
Die Weed Tolerance gibt die minimale Entfernung zwischen den Vertices eines Arcs an. Als Voreinstellung
wird 1/1000 der maximalen Ausdehnung (Höhe oder Breite) der BND verwendet. Sie findet z.B. beim
Ausdünnen von Arcs (z.B. bei Generate) Verwendung.
Nun können die Werte für die unterschiedlichen Toleranzen eingegeben werden. Diese werden zusammen
mit dem Coverage gespeichert und bei späteren Editiersitzungen des Coverages wieder aufgerufen. Mittels
der „Fadenkreuzknöpfe“ in der Mitte des Fensters kann z.B. die Node Snap Distance mit der Maus auf
dem Grafikfenster durch Aufziehen eines Kreises eingestellt werden (rechte Maustaste).
* TODO AZ: zu Editiertoleranzen (Snap) vgl. auch Dipl. Gernot + Abb.
Arcedit:
Arcedit:
Arcedit:
Arcedit:
Arcedit:
Arcedit:
editdistance 10
weedtolerance 4
nodesnap closest 1
arcsnap closest 1
intersectarcs all
add
/* Arc hinzufuegen, ab hier wie gehabt
Die Toleranzen werden in einer .tol-Datei mit dem jeweiligen Coverage gespeichert. intersectarcs z.B.
muß jedoch immer zu Beginn einer Editiersitzung neu eingegeben werden 3.
Arcedit: nodesnap closest .05
Alternativ dazu kann man diese Entfernung auch über den Puck oder die Maus einstellen
Arcedit: nodesnap closest *
und anschließend den so eingestellten Wert abfragen:
Arcedit: show nodesnap
CLOSEST,0.0399999991059
Jetzt sollten wir noch die angezeigten Informationen anpassen, damit wir auch die neu digitalisierten
Elemente sehen können und dann das Element, das eingegeben werden soll, bestimmen:
Es existieren mehrere Toleranzen, die z.B. das Aneinanderschnappen zusammengehöriger, aber ungenau
digitalisierter Nodes o.ä. innerhalb eines gewissen Fangradius (Snap Distance) erlauben. Diese können
individuell angepaßt werden. Das Environment-Properties-Fenster erscheint bei Betätigung von Edit Env
in der linken unteren Ecke des Edit-Fensters.
63
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
* LN: naechsten Abschnitt ausformulieren, an richtiger Stelle einbauen
Toleranzen festlegen tolerances (?) grain weedtolerance nodesnap arcsnap snapenvironment duplicatearcs
3.2.2.4.1. Editfeature festlegen
3.2.2.4.2. Digitalisierbrett
Zunächst muß das Digitalisierbrett für ARC/INFO initialisiert werden. Dazu muß das Digitalisierbrett
eingeschaltet werden, bevor ARC/INFO gestartet wird.
idefix> arc
Nun wird ARC/INFO für die grafische Fensteroberfläche und anschließend für das Digitalisierbrett eingerichtet. Eingaben (und Auswahl) auf der bearbeiteten Karte erfolgen nun alle über das Digitalisierbrett/Puck. Soll zwischendurch etwas mit der Maus bearbeitet werden, so gibt man coordinate mouse
ein, sobald man damit fertig ist wieder coordinate digitizer.
Arc: &TERMINAL 9999
/* ARC/INFO oeffnet nun bei Bedarf Fenster
/* fuer die Grafikausgabe von Arc-Modulen
Anschließend ARCEDIT starten und neues Coverage erzeugen:
Arc: arcedit /* ae (Abk.)
Das Digitalisierbrett muß nun noch für ARC/INFO eingerichtet werden. In diesem Beispiel gehen wir
von einem Calcomp Drawing Board III aus, das an die erste serielle Schnittstelle angeschlossen ist. Für
andere Installationen sind diese Werte entsprechend der Dokumentation abzuändern.
unter Solaris
Arcedit: digitizer 9100 /dev/ttya
unter Windows NT/2000
Arcedit: digitizer 9100 com1
Das weitere Vorgehen ist wieder plattformunabhängig:
Die vorgegebene Einstellung erwartet die Eingabe von einzelnen Punkten über den Digitalisierpuck (auch
Digitalisierlupe). Eine weitere Möglichkeit ist der Stream-Modus, bei dem man eine Linie entlangfährt
und das Digitalisierbrett in festgelegten Abständen Punkte einfügt. Wir beschränken uns auf den Punktmodus, der weniger fehleranfällig und zugleich besser zu kontrollieren ist.
Arcedit: coordinate digitizer
Arcedit: create ticcov
Soll ein bereits existierendes Coverage weiterbearbeitet werden, entfällt natürlich der create-Schritt. Für
coordinate digitizer wird in diesem Fall das Coverage angegeben:
Arcedit: coordinate digitizer zu_bearbeitendes_coverage
64
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Man wird dazu aufgefordert, mindestens vier Tics eingeben. Diese werden für alle weiteren Kartentransformationen als Kontrollpunkte benötigt.
Unter EditTools
Edit lassen sich auch die Einstellungen zum Digitalisieren menügesteuert angeben.
Die Bedeutung der Schaltflächen und Optionen entspricht dabei den unten beschriebenen Befehlen für die
Kommandozeile. Zusätzlich ist das Konfigurieren des Digitalisiertabletts über die Menüs Set Digitizer
Device und Digitizer Port Options möglich. Die Einstellungen sind bei Bedarf beim Systemadministrator zu erfragen.
Abbildung 3-4. Eingabemethode auswählen (Set Coordinate Entry Device)
Abbildung 3-5. Initialisierung des Digitalisierbretts
Dazu gibt man zunächst auf der numerischen Tastatur der Digitalisierlupe die Tic-ID ein. Mit der Taste A
auf der Digitalisierlupe wird die Eingabe bestätigt. Bei der Eingabe sollte man versuchen, die markierten
Punkte genau zu treffen, da dies für die Registrierung der Karte von entscheidender Bedeutung ist.
creating /TICCOV
Digitize a minimum of 4 tics (from digitizer).
Signal end of tic input with Tic-ID = 0
Tic-ID: 1 A A
Tic-ID: 2 A A
...
Tic-ID: 8 A A
Tic-ID: 0 A
Sobald man die Eingabe der Tics mit den Tasten 0 und A auf dem Puck beendet hat, wird man aufgefordert,
eine erste Kartengrenze zu digitalisieren:
65
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Enter initial boundary
Define the box (from digitizer)
Dazu zieht man mit dem Puck von unten links nach oben rechts ein Rechteck auf, das etwas größer als
die Fläche der zu digitalisierenden Karte ist. Anfangs- und Endpunkt werden markiert, indem man jeweils
eine beliebige Taste auf dem Puck drückt.
Dadurch hat man nun eine INFO-Datei ticcov.bnd erzeugt, die die Minimal- und Maximalkoordinaten für diese Karte enthält. Diese Koordinaten werden in Digitalisierbrett-Koordinaten (in der Regel in
Zoll) gespeichert und sind als x/y-Werte rechts neben dem Pan/Zoom-Menu im ARCEDIT-Grafikfenster
sichtbar.
Die Tic-Karte ist damit erstellt und sollte erst einmal gespeichert werden:
Arcedit: save
Saving changes for /TICCOV
BND replaced into /TICCOV
Die bisherige Arbeit kann man dann überprüfen. Dazu sagt man ARC, welche Informationen angezeigt
werden sollen:
Arcedit: drawenvironment tic id /* setzt die Zeichenumgebung
Arcedit: draw /* baut die Grafikanzeige neu auf
Jetzt sollten im ARCEDIT-Fenster die digitalisierten Tics erscheinen.
3.2.2.4.3. Digitalisieren am Bildschirm
Es ist auch möglich, die Kartengrundlage als Bitmap in ARCEDIT anzuzeigen, damit dann mit der Maus
direkt am Schirm digitalisiert werden kann. Die Vorlagen können sich dann nicht mehr durch Umwelteinflüsse ändern. Durch eine stärkere Vergrößerung der Vorlage ist genaueres Digitalisieren möglich (wenn
die Rastergrafik über eine ausreichende Auflösung verfügt, je nach Vorlage um 200-300 dpi). Der vergleichsweise kleine Ausschnitt, der auf dem Bildschirm dargestellt werden kann, macht das Digitalisieren
größerer Vorlagen jedoch wieder aufwendiger. Zudem ist nicht immer ein Scanner in der Größe der Vorlage vorhanden, sodaß auch hier erst umständlich mehrere Teile gescannt werden müssen. Ein Vorteil
gescannter Karten liegt noch darin, daß es leichter zu beurteilen ist, wie weit die digitalisierten Karten
von der Vorlage abweichen, da die digitalisierten Vektorlinien hier direkt über der Vorlage liegen (oder
eben nicht ...).
Um am Monitor von einer Rasterkarte zu digitalisieren, beginnen wir auch mit dem Erstellen einer TICTabelle. Handelt es sich nur um wenige Karten mit entsprechend wenigen TICs, so können wir einfach
mit create mastertic ein neues, noch leeres TIC-Coverage erstellen.
In INFO können wir dann jeweils TIC-ID, XTIC und YTIC eingeben.
Das so erstellte TIC-Coverage wird nun noch in das in das Koordinatensystem der Rasterkarten transformiert und kann dann als Vorlage für die verschiedenen Ebenen genutzt werden: create neuescover
mastertic erstellt ein neues Coverage, das alle TICs bereits enthält. Nun können für die einzelnen Rasterbilder die sogenannten World Files mit register und rectify erstellt werden.
Handelt es sich um ein größeres Projekt, bei dem die TICs regelmäßig wiederkehrende Gitternetzschnittpunkte sind, so kann man sich viel Arbeit ersparen, wenn man die Koordinaten zunächst berechnet und
dann über generate als TIC-File importiert:
66
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
#!/usr/bin/perl
# tics.pl - gibt Koordinaten im ARC/INFO GENERATE-Format aus
# Diese Werte anpassen
$tic=1;
# erste TIC-ID
$gx=-6;
# erster X-Wert
$gy=50;
# erster Y-Wert
$zgx=2;
# letzter X-Wert
$zgy=56;
# letzter Y-Wert
$incr=1/6;
# Gitternetzabstaende (10 Minuten = 1/6 Neugrad)
$ursprung=$gx;
# Ursprung merken
while ($gy le $zgy) {
while ($gx le $zgx) {
print "$tic,$gx,$gy\n";
$tic ++;
$gx += $incr;
}
$gy += $incr;
$gx =$ursprung; # X-Wert auf den Ursprung zuruecksetzen
}
print "END\n";
# Generate will wissen, wann die Datei endet
Die Ausgabe dieses Programms kann man dann in eine Datei umleiten:
idefix> perl tics.pl > tics.gen
Über die generate-Schnittstelle kann dann das TIC-Coverage erzeugt werden:
Arc: generate mastertics
Copyright (C) 1982-2000 Environmental Systems Research Institute, Inc.
All rights reserved.
GENERATE Version 8.0.2 (Tue Feb 22 08:01:14 PST 2000)
Generate: input tics.gen
Generate: tics
Creating tics with coordinates loaded from tics.gen
Generate: quit
Zur Kontrolle sehen wir die so erzeugte Datei noch einmal kurz an:
Arc: list mastertics.tic
Record IDTIC
XTIC
1
1
-6.000
2
2
-5.833
3
3
-5.667
4
4
-5.500
5
5
-5.333
6
6
-5.167
YTIC
50.000
50.000
50.000
50.000
50.000
50.000
67
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Mit diesem TIC-Coverage können nun die einzelnen Rasterbilder interaktiv mit register registriert werden
und anschließend (bei größeren Projekten im Batch-Modus) mit rectify die World Files erstellt werden
(Header-Dateien, die Informationen zu Skalierung und Drehung der georeferenzierten Bilder speichern)
* LN: Scherung auch??
Falls kein Digitalisierbrett vorhanden ist oder Daten schon im Rasterformat vorliegen bzw. eingescannt
werden können, besteht die Möglichkeit, auch ohne zusätzliche Digitalisier-Hardware direkt am Monitor
mit der Maus zu digitalisieren. Dazu müssen die Rasterdaten zunächst georeferenziert werden. Um eine Vorlage am Monitor digitalisieren zu können, muß sie zunächst eingescannt werden. Dabei wird ein
Bild als Vorlage optisch abgetastet und die verschiedenen Farbwerte in digitale Form umgesetzt. Zu unterscheiden sind die Farbtiefe (in Bit, d.h. die maximale Anzahl darstellbarer Farben) und die Auflösung
in der Einheit dpi dots per inch), die angibt, wieviele Punktinformationen pro Flächeneinheit gespeichert
werden. Als Ergebnis erhält man eine Rastergraphik, d.h. ein digitales Bild, das in einem der üblichen
Rastergraphikformate gespeichert werden kann. Im professionellen Bereich ist z.B. TIFF verbreitet, aufgrund der Allgegenwart des WWW sind heute GIF und JPEG besonders bekannt.
* AZ: wird in V8 png unterstuetzt?
Wie in Abschnitt erwähnt, können verschiedene Rastergrafikformate in ARC/INFO eingelesen und dargestellt werden. Insbesondere können sie auch in ein ARC/INFO-eigenes GRID umgewandelt werden,
wodurch weitere Analysemöglichkeiten erschlossen werden.
3.2.2.5. Georeferenzieren von Rastergraphiken mit register und rectify
Bilddateien, i. d. R. eingescannte Karten, müssen erst an Coverages mit Digitizer- bzw. Real-worldKoordinaten angepaßt werden. Dazu werden mehrere Punkte, deren Lage sowohl auf dem Bild als auch in
dem Coverage bekannt sind, verbunden, um so das Bild mit Informationen über dieses Koordinatensystem
zu versorgen.
Wir werden in diesem Beispiel ein bereits digitalisiertes Coverage mit den Umrissen der Insel Gomera mit dem eingescannten Bild der Vorlage hinterlegen, sodaß wir weitere Informationen der Karte am
Bildschirm digitalisieren können. Dazu rufen wir zunächst das Programm register mit den benötigten
Parametern auf.
Arc: usage register
/* Befehlsoptionen ansehen
Usage: REGISTER <image> {cover} {cover_color} {band | COMPOSITE}
{red_band} {green_band} {blue_band} {ARC | POINT | TIC | ALL}
Für unsere Zwecke reicht erst einmal:
Arc: register gomera gomera 4 composite 1 2 3
/* unterstuetzte Dateiformate
/* werden ohne Angabe der Endung erkannt
Es erscheinen mehrere Fenster: image, cover und overlay sowie eine Dialogbox, die aber zunächst noch
nicht interessiert. Wir müssen jetzt zunächst in den beiden kleinen Fenstern (image und coverage) einen
annähernd deckungsgleichen Bereich auswählen. Dazu sollten wir diese Fenster erst einmal vergrößern.
Mit der linken Maustaste können wir nun die momentan angezeigte Box verschieben, mit der mittleren
68
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Maustaste können wir sie in der Größe verändern. Die Größe der Auswahl wird dabei etwas unkonventionell verändert, mit etwas Übung versteht man das Prinzip aber schnell. Wenn man nun mit der rechten
Maustaste in eines der beiden kleinen Fenster klickt, werden die beiden Ausschnitte vergrößert übereinandergelegt. Wenn die Ausschnitte genau genug gewählt sind, sodaß man Punkte sowohl auf dem Rasterbild
wie auch auf dem Vektor-Coverage erkennt, können wir sogenannte Links einfügen, die für die spätere
Transformation dienen. Der Anfang eines solchen Links wird auf dem zu registrierenden Bild markiert
(linke Maustaste), das Ziel kann dann entweder über die Tastatureingabe von absoluten Koordinaten oder
einen weiteren Klick mit der linken Maustaste markiert werden. Dabei müssen die Links immer in der
gleichen Weise gesetzt werden, nämlich vom Soll-Punkt (in unserem Fall auf der eingescannten Karte)
zum bekannten Punkt auf dem Vektorcoverage. Hat man einige Links hinzugefügt, kann man durch einen
Klick auf Register die bisherige Transformation überprüfen, ggfs. Links löschen und noch weitere hinzufügen. Mit lock image wird die bisherige Transformation im Overlay-Fenster gezeigt. Ist sie weitgehend
deckungsgleich, kann man nun durch Save Transformation ein sogenanntes Worldfile erzeugen, mit dem
im nächsten Schritt mit rectify das georeferenzierte Bild erzeugt wird.
* TODO LN: Worldfile genauer definieren
Das Digitalisieren am Monitor unterscheidet sich nicht grundsätzlich von der gleichen Tätigkeit am Digibrett. Einige Unterschiede gibt es aber doch: Wenn eine Karte neu erstellt wird, sind die Bildschirmkoordinaten im Edit-Fenster normalerweise völlig anders als die des Bildes (1 Pixel = 1 Einheit?) Die
Auflösung der eingescannten Karte bestimmt also, wo sie auf dem Bildschirm dargestellt wird. Mit einem
kleinen Trick kann man vermeiden, daß man lange nach dem Bild suchen muß. Zunächst muß man dazu
die Größe des Bildes, das im ArcEdit-Fenster hinterlegt werden soll, in einem Raster-Grafikprogramm
bestimmen. Das kann z.B. das Programm sein, mit dem man die entsprechenden Vorlagen eingescannt
hat.
Dann müssen für das „Roh-“, d.h. nicht georeferenzierte Coverage, die TICs erzeugt werden. Das kann
entweder in INFO geschehen (siehe unten) oder noch schneller mit coordinate keyboard und add (siehe
Online-Hilfe zu coordinate).
Für unser Beispiel haben wir eine Bildgröße von 1919 x 1683 Pixel herausgefunden. Man muß nun zunächst ein entsprechendes coverage erzeugen und die TICs über INFO eingeben.
Arc: create gomera.tic
Arc: list gomera.tic
/* leeres TIC-coverage erzeugen
/* die Datei enthaelt noch keine Werte
Record IDTIC XTIC YTIC
Dieses neu erstellte Coverage ist vorerst noch leer, deshalb öffnen wir es mit INFO.
* TODO LN: Hinweis auf Grossschreibung in INFO (oder Umstellung auf Tables?)
Arc: info
/* ab hier erst einmal Grossschreibung
INFO EXCHANGE CALL
06/05/1998 13:31:08
INFO 9.42 11/11/86 52.74.63*
Copyright (C) 1994 Doric Computer Systems International Ltd.
All rights reserved.
Proprietary to Doric Computer Systems International Ltd.
ENTER USER NAME> ARC
ENTER COMMAND > sel gomera.tic
69
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
DATAFILE NOT FOUND! LOOK ALIKES ARE (IF ANY) GOMERA.TIC, GOMERA.BND,
(Das war für die, die das mit der Großschreibung nicht geglaubt haben ...)
ENTER COMMAND > SEL GOMERA.TIC
4 RECORD(S) SELECTED
ENTER COMMAND > ADD
5
IDTIC> /* hier wuerden wir IDs und zugehoerige x/y-Werte
/* vergeben, aber da wir einfach RETURN
/* gedrueckt haben, wird nichts hinzugefuegt
0 RECORD(S) ADDED
Jetzt verlassen wir INFO wieder:
ENTER COMMAND > Q STOP
Ab hier gilt wieder normale Kleinschreibung.
* TODO LN: wo gehoert das Beispiel gleich wieder hin???
/* arcedit.aml
/* richtet Arbeitsumgebung beim Start von ArcEdit ein
display 9999 3
mape ponet
linescale mapscale 60000
ec sedloc
bc ponet 7
be arc point
ef arc
image engl_rlg composite 1 2 3
setdrawsymbol 67 4
setsymbol edit 67 2
de all
draw
Arc: usage rectify
/* Optionen des Befehls ansehen
Usage: RECTIFY <in_image> <out_image>
{NEAREST | BILINEAR | CUBIC} {DEFAULT | COLORMAP | NONE}
{clip_cover | BOX} {xmin} {ymin} {xmax} {ymax}
Arc: rectify gomera gomera_rec
70
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.2.6. Import/Export
Zum Einlesen von schon existierenden Daten aus anderen Formaten bzw. Datenbanken existieren diverse
Import-Werkzeuge. Hierbei muß wieder zwischen den Importfiltern für Geodaten (Vektoren, Rasterdaten)
etc. und den Sachdaten unterschieden werden. Das Arbeiten mit Sachdaten, d.h. mit den Geometrien
assoziierten Attributen wird in Kapitel Kapitel 3 behandelt.
3.2.3. Import von Vektorkoordinaten
Es existieren Schnittstellen zu den gängigsten Formaten:
Dazu gehören: DXF (Austauschformat für CAD-Daten von Autodesk), DIME (US-Behörden), TIGER
(US-Behörden, Nachfolger von DIME), DLG (Digital Line Graph), SDTS (Spatial Data Transfer Standard, US), VPF, IGES, DFAD, ETAK (Großer US-Hersteller, z.B. von Strassenatlanten), MOSS (Public
Domain), SLF, Shape (ESRI ArcView Format, ohne Topologie).
Neben dem Einlesen von Fremdformaten sind insbesondere die Befehle import und generate (bzw. ihre
Gegenstücke export und ungenerate) von Interesse. import/export sind für den Austausch zwischen
ARC/INFO-Systemen verschiedener Plattformen zuständig, während generate/ungenerate die ASCIISchnittstelle für Geometriedaten darstellen.
coord digitizer
create
tolerances
drawenv
editfeature
add
save
Wie wir bereits in den vorangegangenen Kapiteln gesehen haben, ist die Datenstruktur von ARC/INFO
relativ komplex. Da Coverages in verschiedenen Dateien in jeweils eigenen Unterverzeichnissen gespeichert werden und gleichzeitig noch Verweise auf spezielle Dateien im Info-Unterverzeichnis des jeweiligen Workspaces existieren, können die Coverages nicht einfach auf Betriebssystemebene kopiert werden.
Sollen aber Coverages (einschließlich der Sachdaten, etc.) von einem Computersystem zu einem anderen
kopiert werden, oder besteht die Notwendigkeit, Coverages in eine einzelne Datei zu packen, kann dies
mit dem Befehl export geschehen.
Command Tools (2.Hauptmenüleiste)
Conversion
From Arc
Export
Die zu exportierenden Datenquellen müssen ausgewählt und ein optionaler Komprimierungsfaktor bestimmt werden. Das gewählte Coverage wird dann als sogenannte Export-Datei herausgeschrieben. Am
sichersten - wenn auch am wenigsten Platz sparend - ist es, den Komprimierungsfaktor auf NONE zu setzen, da dann nur ein spezifisches ASCII-Format erzeugt wird. Bei voller Komprimierung wird ein binäres
Format erzeugt. Es könnte u.U. auf unterschiedlichen Zielplattformen oder Versionen (z.B. ArcCad) zu
Problemen beim Entpacken kommen4.
71
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-6. Das Export Menü
Die Größe der Austauschdatei kann durch die Angabe einer maximalen Zahl von Zeilen begrenzt werden
(z.B. um eine Übertragung auf Disketten zu ermöglichen). Passen die Daten nicht in eine einzelne so
begrenzte Datei, wird automatisch eine zweite Datei mit der Endung .e01 erstellt. Bei einem nachfolgendem Import auf dem Zielsystem werden alle diese Dateien .e00, .e01, .e02, ... zu dem ursprünglichen
Coverage zusammengesetzt.
Nicht komprimierte Exportfiles sind leidlich lesbar und das proprietäre Format ist an verschiedenen Stellen im WWW weitgehend dokumentiert.5 Der folgende Auszug eines unkomprimierten Exportfiles eines
Coverages mit Double Precision gibt einen Eindruck von diesem Format.
EXP
ARC
0 /HOME/ARC/SIEDLUNG.E00
2
1
30
1
1
9.2349997E+00 3.0851999E+01 9.0920000E+00
8.8500004E+00 3.0775000E+01 8.3660002E+00
8.3859997E+00 3.0900999E+01 9.2349997E+00
2
29
2
2
9.9569998E+00 2.9636000E+01 9.9519997E+00
1.0193000E+01 3.0811001E+01 1.0141000E+01
9.9569998E+00 2.9636000E+01
3
32
3
3
1.3917462E+01 2.9267170E+01 1.4040217E+01
1.3993000E+01 2.9134001E+01 1.4171000E+01
1.3917000E+01 2.9118999E+01 1.3846000E+01
1.3917462E+01 2.9267170E+01
1
3.0736000E+01
3.0535999E+01
3.0851999E+01
1
3.0811001E+01
2.9622999E+01
1
2.9220713E+01
2.8965000E+01
2.9160999E+01
2
3
6
.
.
.
8.9540219E-01 5.5209265E+00
1.1721338E-01 1.3128080E+00
5.9643501E-01 4.5692344E+00
SIEDL.TIC
IDTIC
4-1
14-1
XTIC
4-1
54-1
YTIC
4-1
94-1
XX
5-1
12 3
12 3
31
32
33
3
50-1
60-1
60-1
30
31
32
3 12
-1 -1-1
-1 -1-1
-1 -1-1
4
123-
72
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
1
2
3
4
2.2417999E+01
2.1438000E+01
1.8730000E+00
2.9370000E+00
3.0136000E+01
1.2678000E+01
1.3797000E+01
3.1254999E+01
EOI
EOS
3.2.4. ASCII-Schnittstelle für Vektor-Geometriedaten (GENERATE)
Das über Rechnerarchitekturen und Betriebssysteme hinweg am weitesten verbreitete Datenformat ist ASCII. Durch die Befehle generate bzw. ungenerate können die proprietären binären ARC/INFO-Coverages
in ASCII-Daten umgewandelt werden.
Es werden die vom Benutzer vergebene Kennung jedes Geometrieobjektes (ID) und die zugehörigen
Koordinaten mittels ungenerate in eine ASCII-Datei geschrieben. Für Polygone ergibt sich folgende
Struktur der ASCII-Datei.
4000
3479694.750000
5475343.500000
3479701.500000
5475354.000000
3479711.250000
5475336.500000
3479711.750000
5475360.000000
3479701.500000
5475354.000000
END
4001
3479616.750000
5475285.000000
3479609.250000
5475287.000000
3479610.750000
5475288.000000
3479610.250000
5475289.000000
3479614.750000
5475276.000000
3479609.250000
5475287.000000
END
END
Die erste Zeile beginnt mit der ID des ersten Polygons und den X- und Y-Koordinaten des dazugehörigen
Labels. Danach folgen die Koordinatenpunkte des Anfangsnodes und der einzelnen Vertices (Stützpunkte)
und nach dem Endnode6 ein END zur Markierung des Endes des ersten Polygons. In der ersten Zeile steht
die ID des Polygons, dahinter die X- und Y-Koordianten des zugehörigen Label-Punktes. Danach folgen
die Koordinatenpaare der einzelnen Vertices, bis ein END das Ende des Polygons markiert. Das erste und
letzte Koordinatenpaar jedes Polygons muß übereinstimmen und definiert den entsprechenden PseudoNode.
generate erwartet die Daten in einem geringfügig anderen Format. Liegen die Daten in einer anderen
Anordnung vor, müssen sie zunächst in diese vorgegebene Struktur gebracht werden. Dies läßt sich durch
kleine Routinen in einer beliebigen Programmiersprache (z.B. Perl 7) gut bewerkstelligen.
Die entsprechenden Dateien für Linien bzw. Punkte sehen folgendermassen aus:
315
3479701.500000,5475354.000000
3479711.250000,5475336.500000
3479691.250000,5475325.000000
3479711.750000,5475360.000000
73
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3479701.500000,5475354.000000
END
316
3479606.250000,5475347.500000
3479620.000000,5475353.500000
3479610.750000,5475337.500000
3479606.250000,5475347.500000
END
317
3479609.250000,5475287.000000
3479610.750000,5475288.000000
3479610.250000,5475289.000000
3479614.000000,5475294.000000
3479614.750000,5475276.000000
3479609.250000,5475287.000000
END
END
Bei den Liniendateien werden die Labelpunkte aus der Polygondatei nicht benötigt. Für Punktdateien
müssen nur die einzelnen Punkte mit ID und x/y-Koordinaten angegeben werden:
550
551
552
553
554
555
END
END
3479609.250000
3479610.750000
3479610.250000
3479614.000000
3479614.750000
3479609.250000
5475287.000000
5475288.000000
5475289.000000
5475294.000000
5475276.000000
5475287.000000
Das Menü zu Generate ermöglicht neben dem Einlesen der entsprechenden Features über eine Datei auch
die interaktive Eingabe der Koordinaten durch den Benutzer. Da letzteres meist recht fehleranfällig und
umständlich ist, empfehlen wir für größere Datenbestände das Einlesen über eine zuvor erstellte ASCIIDatei.
Beim interaktiven Eintragen von Werten in das Menü muß jeder Eintrag (ID, X, Y) mit Return bestätigt
werden. Sind alle Punkte, die eine Linie (oder ein Coverage) definieren sollen, in der Liste Coordinates
for the current Line/Polygon enthalten, wird diese Linie oder dieses Polygon mit Add Line oder Add
Polygon zur Liste zu erzeugender Features im Generate-Menü hinzugefügt. Wirklich erzeugt werden
diese Objekte erst, wenn man im Generate Menü OK aktiviert.
74
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-7. Das Generate Menü
Abbildung 3-8. Das Generate Menü zur manuellen Eingabe (Linien)
Verwendet man generate an der Kommandozeile, geht man folgendermaßen vor. generate eröffnet einen
interaktiven Dialog, daher sollte man sich die benötigten Informationen vorher notieren.
XXX Dialog einfuegen ...
75
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.5. DXF-Dateien
DXF ist als Industriestandardformat, welches die meisten CAD-, Kartographie- oder Grafik-Programme
erzeugen oder lesen können, von besonderer Bedeutung. Daher soll diese Variante kurz erläutert werden.
DXF ermöglicht es, verschiedene Geometrien nach unterschiedlichen Themen geordnet auf unterschiedlichen Ebenen, den sogenannten Layern, abzulegen. Diese DXF-Informationsebenen können direkt in
unterschiedliche ARC/INFO-Coverages umgesetzt werden.
CommandTools
Conversion
To Arc
DXF
Vor dem eigentlichen Umwandeln in ARC/INFO-Coverages können die DXF-Dateien graphisch angezeigt werden. Dies geschieht mittels des Knopfes ganz rechts neben der Eingabezeile für die DXFEingabedatei auf dem DXF-Conversion-Menü. Es werden dabei grundsätzlich alle Ebenen der DXFDatei auf einmal visualisiert.
Jede DXF-Informationsebene kann in der Liste Layers einzeln selektiert werden. Mit der Option ALL
werden alle Objekte der ausgewählten Ebenen übernommen. Die Option Graphics übernimmt die reine
Geometrieinformation, also Linien und Punkte der ausgewählten Ebene. Die Option Annotiation übernimmt eben diese (also textuelle Anmerkungen) und None ermöglicht das Löschen der Ebenenauswahl.
Mit der Option Everything werden alle Informationen aller verfügbarer Ebenen importiert.
Beim Einlesen werden die TICs automatisch erzeugt. Ihre X- und Y- Kordinaten entsprechen der minimalen Hülle der eingelesenen Geometriedaten. D.h. die vier Tics definieren nicht unbedingt ein Rechteck, noch müssen ihre Echtweltkoordinaten automatisch bekannt sein. Vielmehr handelt es sich um die
minimalen und maximalen X- und Y-Koordinaten der DXF-Geometriedaten. Damit kann es leicht zu
Problemen bei der Transformation in Realwelt-Koordinaten kommen, wenn die so erzeugten Coverages
mit anderen Coverages zusammengeführt (z.B. überlagert oder aneinander gesetzt) werden müssen und
die DXF-Ausgangsdaten ursprünglich noch nicht in Echtweltkoordinaten vorlagen. Man benötigt in den
DXF-Originaldaten also Punkte, deren Koordinaten in der realen Welt bekannt sind. Daher ist es am
sinnvollsten, immer wenn man nicht direkt in ARC/INFO digitalisiert zusätzliche Kreuzungspunkte, von
denen die Koordinaten bekannt sind, mitzudigitalisieren. Diese Kreuzungspunkte können dann später unter EditTools leicht in Tics umgewandelt werden. Mit diesen ist dann eine spätere Transformation in ein
gemeinsames Bezugssystem möglich.
Der Einlesevorgang von DXF-Dateien kann in dem Shell-Fenster, in dem ARCTOOLS gestartet wurde,
verfolgt werden. Im DXF-Conversion-Menü erfolgt keine Statusmeldung zum Umwandlungsprozeß.
Für den Export von DXF Dateien aus ARC/INFO werden nur der Name des zu erstellenden Datensatzes
Output DXF File und die ARC/INFO-Coverages, die als Datenquelle dienen sollen, benötigt. Weiterhin
kann die Anzahl der Nachkommastellen gewählt werden sowie angegeben werden, ob die DXF-Datei
binär oder im ASCII-Format gespeichert werden soll.
76
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-9. Konvertierung von DXF nach ARC/INFO
CommandTools
Conversion
To Arc
DXF to Arc
Bei Verwendung der Kommandozeile prüft man zunächst mit dxfinfo die vorhandenen Ebenen und importiert anschließend mit dxfarc über einen interaktiven Dialog die benötigten Ebenen. Auch hier gilt
wieder: Informationen zu einzelnen Ebenen vorher notieren.
XXX Dialog einfuegen ...
3.2.6. Weitere Schnittstellen
Einige weitere Schnittstellen gehören nicht zum Standardlieferumfang, können jedoch käuflich erworben
werden. Dies betrifft insbesondere einige für den deutschen Markt relevanten Formate, die im im folgenden kurz angesprochen werden:
3.2.6.1. ATKIS / EDBS
Die Landesvermessungsämter bieten ihre digitalen Koordinatengrundlagen heute im Wesentlichen als
ATKIS-Daten im EDBS-Format an. Diese Daten können mit dem ATKIS-Konverter AvAtkis bzw. AvAtkis Professional der Firma GDV8 in Shapefiles konvertiert werden.
Für ARC/INFO selbst existiert die sogenannte ArcEDBS Schnittstelle. Mit dieser können EDBS-Daten
nicht nur direkt (ohne den Umweg über Shape-Files) eingelesen, sondern auch exportiert werden.
3.2.6.2. SICAD
In Deutschland hat auch das aus dem CAD-Bereich stammende GIS SICAD von Siemens eine gewisse
Verbreitung. Zum Einlesen der sogenannten SQD-Dateien kann eine eigene Schnittstelle erworben werden.
77
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.6.3. Export von Vektorkoordinaten
Für die meisten Geodatenformate, die beim Einlesen unterstützt werden, existieren auch Exportfilter.
3.2.6.4. Import und Export von Rasterdaten
Die in Kapitel 3 angeführten Formate können eingelesen werden.
Diese Rasterbilder können entweder einfach als Hintergrundbild bei der Erstellung von Views hinterlegt
werden, oder aber in ein Grid umgewandelt werden, womit ihnen dann die zahlreichen Analysemöglichkeiten (Kartenalgebra) des GRID-Moduls einschließlich der Sachdatenanbindung offenstehen.
3.2.6.4.1. import
3.2.6.4.2. generate
3.2.6.4.3. shape/dxf
3.2.6.5. Fehlerkorrektur
Pseudo Nodes werden durch eine Raute dargestellt. Sie repräsentieren Nodes von in sich geschlossenen
Arcs (Inseln) oder entstehen, wenn nur zwei Arcs miteinander verbunden werden.
Abbildung 3-10. Arcs mit Dangling Nodes
3.2.6.5.1. Nodes
78
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.6.5.1.1. Dangling Nodes
zeigen mögliche Digitalisierfehler wie zu kurz oder zu lang geratene Abschnitte bei Polygonen an. Sie
werden durch Quadrate gekennzeichnet. Natürlich kann solch ein sogenannter undershoot (Arc, dessen
Endpunkt nicht mit weiterem Arc verbunden ist, sondern kurz davor endet) oder overshoot (Arc, der einen
anderen Arc schneidet und darüber hinaus weiter verläuft) auch Absicht sein, z.B. bei der Digitalisierung
von Sackgassen.
Dangling Nodes ... sind Nodes, die einen Arc nicht mit weiteren Arcs verbinden. Dies kann passieren,
wenn beim Digitalisieren ein Arc zu weit bzw. zu kurz an einen Arc herangezogen wurde (außerhalb
der snapdistance). In bestimmten Fällen können sie auch beabsichtigt sein, wenn sie nicht Teil eines
Polygons sind, sondern z.B. Sackgassen.
3.2.6.5.1.2. Pseudo Nodes
Pseudonodes sind Nodes, die eigentlich nicht erforderlich wären (weil von ihnen genau zwei Arcs ausgehen). Sie sind in der Regel unproblematisch und manchmal nötig (z.B. für lange Arcs mit sehr vielen
Vertices, da ARC/INFO Arcs mit über 499 Vertices splittet).
3.2.6.5.2. Arcs
3.2.6.5.2.1. Under/Overshoots
Undershoots und Overshoots als Spezialfälle von Arcs and Nodes wurden im Kapitel 3 schon erwähnt.
Diese Digitalisierfehler können durch die hier angegebenen Funktionen bereinigt werden. Hierbei ist jedoch große Vorsicht geboten. Man muß beachten, welche Arcs (oder anderen Features) tatsächlich ausgewählt sind und wie die Toleranzen eingestellt sind, damit nicht zu viel oder zu wenig „bereinigt“ wird
(zur Einstellung der Toleranzen vgl. unten). Fehlende Nodes bei Über-Kreuz-Digitalisierung von Arcs
können eingesetzt werden (3. Knopf). Dies wird automatisch mit dem Topologiebefehl clean bewerkstelligt. Generell gilt es bei clean erst die eingestellten Toleranzen zu überprüfen, damit keine ungewollten
Änderungen am Coverage durch das Aufeinanderschnappen von Features entstehen (s.u.). Bei wenigen
Fehlern ist es vielleicht sicherer, diese nacheinander selbst zu bereinigen, statt eine automatische Korrektur vorzunehmen.
Vgl. hierzu auch Abschnitt 4.2.11 zu dissolve und Abschnitt 4.2.12 zu eliminate unterARC.
3.2.6.5.2.2. Überschneidung ohne Node
Überschneidungen lassen sich vermeiden, wenn zu Beginn der Editiersitzung intersectarcs all gewählt
wird. Nachträglich ist dies nur mit einem Trick möglich: Zunächst müssen alle betroffenen Arcs mit
select ausgewählt werden. Nun muß man nur die ausgewählten Arcs um den Abstand 0 verschieben
(d.h. gar nicht), dann wird die geänderte Voreinstellung auch nachträglich auf die ausgewählten Elemente
angewandt.
!
Achtung!
79
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Je nach Einstellung der Toleranzen für arcsnap, nodesnap etc. kann das ungewollte Folgen für Ihre
Daten haben. Daher sollten Sie zunächst mit einer Kopie arbeiten und das Ergebnis mit anderer Farbe
dem Original hinterlegen (z.B. mit backcoverage und backenvironment. Falls dann an vielen Stellen
die neue Version „hervorblitzt“, wurden Arcs oder Nodes verschoben oder entfernt (weedtolerance).
Arc: arcedit
Arcedit: ec coverage
Arcedit: ef arc
Arcedit: intersectarcs all
Arcedit: sel {many | all}
Arcedit: move parallel 0
Arcedit: status /* zeigt momentan eingestellte Toleranzen an
3.2.6.5.2.3. Sliver-Polygone
Sogenannte Sliver-Polygone entstehen, wenn z.B. versehentlich mehrere Linien übereinander digitalisiert
werden und diese (zwangsläufig) nicht exakt übereinanderliegen. Der Raum zwischen diesen beiden Linien wird nach build bzw. clean ebenfalls zu einem Polygon. Unter ARC können diese Polygone mit dem
Befehl eliminate in einen Arc aufgelöst werden. Dazu sollte zunächst geklärt werden, wie groß diese
Polygone sind und ob es weitere gewollte Polygone in dieser Größe gibt. Trifft dies nicht zu, erzeugt man
mit eliminate ein neues Coverage:
Arc: usage eliminate
Usage: ELIMINATE <in_cover> <out_cover> {NOKEEPEDGE | KEEPEDGE}
{POLY | LINE} {selection_file} {BORDER | AREA}
Ein Coverage namens sloppycov wurde bereits mit Labels für die verschiedenen Polygone versehen.
Die Attributtabelle sieht folgendermaßen aus:
Arc: list sloppycov.pat
Record
1
2
3
4
5
6
7
8
9
AREA
-40.89763
3.83429
3.02517
2.77270
4.60107
0.00233
4.69292
2.16539
0.00203
PERIMETER SLOPPYCOV# SLOPPYCOV-ID
30.24617
1
0
10.25092
2
8
8.26677
3
10
7.09402
4
6
11.15897
5
25
2.22422
6
0
11.46455
7
18
7.02955
8
16
1.05332
9
0
Wir wissen zugleich, daß keines der Polygone, die enthalten sein sollen die ID 0 besitzt. In diesem Fall ist
das Auswahlkriterium für die Sliver-Polygone. einfach:
Arc: eliminate sloppycov cleancov
80
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Eliminating polygons in sloppycov to create cleancov
Enter a logical expression. (Enter a blank line when finished)
>: res sloppycov-ID = 0
>: RETURN
Do you wish to re-enter expression (Y/N)? n
Do you wish to enter another expression (Y/N)? n
3 features out of 9 selected.
Number of Polygons (Input,Output) =
Number of Arcs
(Input,Output) =
Creating cleancov.PAT...
9
53
6
47
Muß nach anderen Kriterien ausgewählt werden, so kann die Auswahl wie auch sonst in Arc/Info durch
andere select-Bedingungen erfolgen (resel, asel, usw.). Unter ArcEdit kann man dann das Ergebnis betrachten und die nun überflüssigen Nodes entfernen.
Arcedit: ef arc
47 element(s) for edit feature ARC
Coverage has no COGO attributes
Arcedit: sel all
47 element(s) now selected
Arcedit: unsplit none
7 pseudo node(s) removed
3.2.6.5.3. Labels
3.2.6.5.3.1. Fehler in Polygonlabels
Arc: labelerrors
listet die Labelfehler auf (Polygonnummer und Anzahl der Labels wenn sie ungleich 1 sind). Das Universalpolygon (Nr. 1) hat kein Label, dieser Fehler kann also ignoriert werden. Die so gefundenen Labelfehler
in Polygonen können dann in Arcedit ausgewählt werden.
3.2.6.6. Fehlende Labels
Fehlende Labels können in ARCEDIT digitalisiert werden. Wenn z.B. von labelerrors in ARC 2 als
Fehler ausgegeben hat, kann man dieses fehlende Label folgendermaßen ergänzen:
Arcedit:
Arcedit:
Arcedit:
Arcedit:
ef poly
sel gomera# = 2 /* Fehlerhaftes Polygon
ef label
add
Dabei sollte man darauf achten, keine doppelten Labels zu vergeben:
81
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.6.7. Doppelte Labels
Doppelte Labels müssen ausgewählt und gelöscht werden
Arcedit: ef label
Arcedit: sel
Arcedit: delete
3.2.6.8. Topologie erzeugen
Topologische Fehler erkennen und beseitigen
Nicht alle scheinbaren topologischen Fehler sind auch wirklich solche. So können z.B. überstehende Arcs
statt nichtgeschlossenen Polygonen auch nur Sackgassen o. ä. darstellen.
Sowohl Build als auch Clean generieren die Topologie und erzeugen dabei die jeweiligen Feature Attribute Tables, setzen optional Label (das sind die Punkte, an denen z.B. die ID graphisch „aufgehängt“
wird) und berechnen für die Polygone Umfang und Flächeninhalt (für Linien die Länge). Der Unterschied
zwischen den beiden Befehlen besteht darin, daß Build ein absolut fehlerfreies Coverage voraussetzt. Findet es z.B. sich überkreuzende Arcs ohne Node am Schnittpunkt, bricht build mit einer entsprechenden
Fehlermeldung ab. clean hingegen nimmt einige Korrekturen selbständig und im Rahmen der gesetzten
Fehlertoleranzen (Dangle Length, Fuzzy Tolerance etc.) vor. Sind die eingestellten Toleranzen jedoch zu
groß, können ungewollte Verzerrungen und Modifikationen des Coverages entstehen. Da in jedem Fall
das Resultat sorgfältig auf Fehler untersucht werden sollte, ist das eigenhändige „bewußte“ Editieren des
Ausgangscoverages mit anschließendem „sicherem“ build vorzuziehen. Hilfreich ist die bereits erläuterte Möglichkeit, Coverages als Hintergrundcoverages in einer anderen Farbe einzublenden. Damit treten
eventuelle Veränderungen zwischen verschiedenen Bearbeitungsständen deutlicher hervor.
Das Menü zur Erzeugung der Topologie findet sich unter CommandTools:
CommandTools
Edit
Topology
Eine zweite Möglichkeit befindet sich direkt in EditTools:
EditTools
Edit
Build
Bei clean können drei Optionen angegeben werden: Ausgabecoverage, Dangle Length und Fuzzy Tolerance. Die Dangle Length gibt an, bis zu welcher Größe überstehende Arcs (mit Dangling Nodes) entfernt
werden. Wird ein Ausgabecoverage angegeben, so wird das bereinigte Coverage unter einem neuen Namen gespeichert, ansonsten wird das aktive Ursprungscoverage entsprechend geändert. Clean führt immer
ein Intersect durch, d.h. das automatische Setzen von Nodes in die Schnittpunkte sich überkreuzender Arcs. Ist dies nicht gewünscht - z.B. bei Brücken - muß build verwendet werden.
Bei build kann das Coverage nicht umbenannt werden, sondern es wird ein entsprechender Feature Attribute Table erzeugt oder ein bestehender ersetzt. Das Verändern der IDs oder weiterer Variablen für jedes
Feature erfolgt im Table Editor unter Edit, wie im vorherigen Kapitel beschrieben. Liegt schon eine Polygonstruktur vor und soll auf diese Weise auf die PAT zugegriffen werden, ist Label als das zugehörige
Edit Feature zu wählen:
82
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.6.9. Koordinatentransformation / Projektion
Bei der Digitalisierung mit einem Digitalisiertablett überträgt dieses Koordinaten an den Computer, die
auf dessen eigenem internen Koordinatensystem beruhen. Sollen Abfragen durchgeführt werden, die
räumliche Messungen beinhalten, müssen diese in ein geographisches Koordinatensystem umgewandelt
werden. Wie schon erwähnt, dienen hierzu Tics als Referenzpunkte. Für diese müssen die Koordinaten
im geographischen Koordinatensystem gefunden und angegeben werden. Die Koordinaten der übrigen
Features eines Coverages werden auf diesen Angaben beruhend umgerechnet.
Zusätzlich muß für eine exakte Lagegenauigkeit der Koordinaten eine Projektion in die entsprechende
Kartenprojektion ausgeführt werden. Da es sich beim Digitalisiertablett jedoch um eine ebene Fläche
handelt und die Grundlage für Kartenblätter des Gauß-Krüger Systems ebenfalls ebene Flächen sind, ist in
diesem speziellen Fall nur eine Transformation des Koordinatensystems, aber keine Projektionsänderung
notwendig. Es steht eine große Anzahl an Projektionen zur Verfügung. Die Projektion eines Coverages
wird in der Datei PRJ gespeichert.
3.2.6.9.1. Transformation in das Gauss-Krüger System
transformiert.
* TODO LN: was stand hier???
Grundsätzlich gibt es mehrere Möglichkeiten, ein Coverage nach der Digitalisierung mit Digitizer-Koordinaten
in das Gauss-Krüger-System mit den Echtwelt-Koordinatenwerten zu transformieren. So könnte man
schon beim Digitalisiervorgang selbst ein entsprechendes Referenzcoverage mit den korrekten Koordinaten für die Tics verwenden. Gehen wir jedoch davon aus, daß die Digitalisierung noch ohne Echtweltkoordinaten durchgeführt wurde. Zunächst muß ein Coverage existieren, in dem nur die TICs stehen. Dieses
wollen wir TICCOV nennen. Dieses Master-TICCOV muß entsprechend editiert werden. D.h. den X- und
Y-Koordinaten der ursprünglichen Tics werden die entsprechenden X- und Y-Werte im Gauss-KrügerSystem übergeben.
Dies geschieht, indem ARCEDIT aufgerufen wird. Das TICCOV wird als Coverage geöffnet (entweder
gleich mit der Angabe Edit Feature: TIC, oder mit Change Edit Feature (im Edit-Pulldownmenü).
Dann wird im Edit Tics Menü der Knopf Table Editor gedrückt. Wenn dieser erscheint, müssen die
Tics zum Editieren gewählt werden (Feature Selection-Fenster). Dann erfolgt die Aktivierung von Edit
im Table Editor: Es öffnet sich ein Fenster, das die Tics mit ihren IDs und Koordinatenwerten enthält.
Letztere können über die Tastatur geändert werden. Die Arbeit mit dem Table Editor wurde in Kapitel
3genauer erläutert.
!
Achtung!
Die Reihenfolge der Tics muß mit derjenigen in den später zu transformierenden Coverages übereinstimmen!
Das TICCOV muß am Ende gespeichert werden.
EditTools
File
Save (as)
Damit wurde ein TICCOV erzeugt, das für eine Transformation benutzt werden kann. Das TransformFenster befindet sich unter CommandTools. (CommandTools kann von EditTools aus über das ToolsPulldown-Menü, Auswahl: Command Tools aufgerufen werden).
83
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-11. Das Transform Coordinates Menü
CommandTools
Edit
Coordinates
Transform
In die erste Zeile muß das Coverage, das transformiert werden soll, eingetragen werden (ein Druck auf
die rechte Maustaste öffnet einen Dateiauswahldialog). In die zweite Reihe kommt das oben erzeugte
TICCOV (auf demselben Weg).
!
Wichtig
Das Resultats-Coverage erhält den Namen des hier angegebenen Coverages!
Dies bedeutet, daß das TICCOV vorher umbenannt werden muß. Sonst werden alle Informationen aus
dem zu transformierenden Coverage dort hineingeschrieben und es ist nicht mehr als Referenzcoverage für
die Transformation eines weiteren Coverages geeignet. Sollen nur die Tics und Projektionsinformationen
eines Coverages übernommen werden, kann man dies im Kommando-Fenster durch die Eingabe von:
create vorlagecoverage nurtics erreichen.
3.2.7. Andere Projektionen
In vielen Projekten ist das Arbeiten mit Daten aus unterschiedlichen Quellen und damit unterschiedlichen
Koordinatensystemen und Kartennetzentwürfen notwendig. Um diese Daten gemeinsam analysieren zu
können, müssen sie in ein einheitliches Bezugssystem überführt werden.
Die reine Transformation bei affinen Netzentwürfen wurde oben erläutert. Bei diesen wird vorausgesetzt,
daß ein rechtwinkliges Koordinatensystem verwendet wird. Bei kleinmaßstäbigen Karten, bei denen der
Netzentwurf beachtet werden muß, bedarf es einer zusätzlichen Projektion der Tics und weiterer vorbereitender Arbeiten, wie dem Ausmessen der Kartenvorlage und Updaten der Tics.
Bei der Projektion können mitgelieferte Kartenprojektionen zum Einsatz kommen, es ist jedoch auch möglich, eigene Projektionen mittels verschiedener Parameter zu definieren. 9 Erst nach all diesen Schritten
kann das projezierte Coverage transformiert werden.
Im nachfolgenden Beispiel sind als Datengrundlage Daten des Digital Chart of the World (DCW) vorhanden. Deren Inhalt soll nun mit einer älteren10 Karte im gleichen Maßtstab verglichen werden. Dazu
muß zunächst ermittelt werden, welche Projektionen den beiden Quellen zugrunde liegen. Für den DCW
konsultiert man hierzu das mitgelieferte Data Dictionary. Auf der Papierkarte sind die erforderlichen
Informationen direkt vermerkt 11.
84
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Tabelle 3-3. DCW layers
Publikationsdatum:
1993
Quelle:
Operational Navigational Charts
redaktioneller Stand:
?
Maßstab:
1:1.000.000
Projektion:
Geographisch
Einheiten:
Dezimalgrad
Datum:
WGS84
Tabelle 3-4. WORLD 1: 1.000.000, Edition 3-GSGS
Publikationsdatum:
1956
Quelle:
Ordnance Survey Quarter Inch to One Mile
redaktioneller Stand:
1946-48 (with corrections)
Projektion:
Transverse Mercator
Einheiten:
Meter
Datum:
OGB_B (Ordnance Survey of Great Britain 1936)
Spheroid:
Airy
scale factor at central meridian 1.00000000
longitude of central meridian
2 0 0.000
latitude of origin
49 0 0.000
false easting (meters)
400000.00000
false northing (meters)
-100000.00000
Mit diesen Informationen kann man nun in ARC/INFO die Projektion der Daten in das neue System
vornehmen:
projectcompare NONE PARTIAL FULL
projectdefine interaktive Eingabe der Projektionsinformationen eines Coverage/Grid/TIN
project Umwandlung eines Coverage etc. in anderes Koordinatensystem
projectcopy Die Projektionsinformation eines Coverage etc. wird in ein anderes Coverage etc. kopiert
(und ggfs. bisher existierende Datei .prj überschrieben)
Eine Projektionsdatei für das obige Beispiel sähe so aus:
INPUT
PROJECTION GEOGRAPHIC
UNITS DD
DATUM EUR_G
PARAMETERS
OUTPUT
PROJECTION TRANSVERSE
UNITS METERS
DATUM OGB_B THREE
PARAMETERS
85
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
1.00000
2 0 0.000
49 0 0.000
400000
-100000
END
* TODO LN: ergaenzen?
Beispiel: Mit dieser soll ein vorhandenes Coverage projeziert werden. Der besseren Übersicht wegen
haben wir vorher ein neues Workspace angelegt, das die Daten in der neuen Projektion enthalten soll.
project cover clline eng_pro/clline ponetpro.prj
* TODO AZ: Prj-Datei? Abb?
3.2.8. Sachdaten
Wie wir im Kapitel Kapitel 1 gesehen haben, ist die Kopplung von räumlichen Geometrien und Attributdaten unterschiedlichster Art eines der Hauptcharakteristika von Geoinformationssystemen. Die Verknüpfung beider Welten geschieht in ARC/INFO über sogenannte Feature Attribute Tables. Es wurde
angedeutet, daß hier neben einer systeminternen ID, die durch das #-Zeichen gekennzeichnet wird, eine
vom Benutzer zu vergebende Kennungsnummer - die sogenannte Cover-ID - für jedes Raumobjekt vergeben werden kann. Es handelt sich bei dieser ID jedoch nicht um einen zwingendermaßen eindeutigen
Schlüssel im Sinne relationaler Datenbanken, d.h. Duplikate sind möglich. Es ist jedoch sehr zweckmäßig jedem Raumobjekt auch benutzerdefiniert eine eindeutige Nummer zuzuordnen, um eine individuelle
Behandlung zu ermöglichen. Das Aggregieren der Objekte zu Gruppen von Raumobjekten (Features) ist
immer durch die Verwendung weiterer Variablen möglich.
Beim Gebrauch der Hilfe oder Handbücher muß beachtet werden, daß für INFO-Datenbanken und relationale Datenbanken im Englischen manchmal eine unterschiedliche Terminologie Verwendung findet:
In INFO-Dateien entsprechen die Records den Rows in relationalen Datenbanken. Die Columns in letzteren stimmen wiederum mit den Items in INFO-Dateien überein. Gemeint sind jeweils Reihen und Spalten,
d.h. Tupel (also Beobachtungen) und Variablen (vgl. Abbildung 3-12.
Abbildung 3-12. Terminologie für Datenbanken
record
row
attribute
column
item
tupel
Es existieren zwei Möglichkeiten, Sachdaten mit Geometrien zu verknüpfen. Die erste wurde schon kurz
angesprochen - die jeweiligen Feature Attribute Tables (FAT, bei Punkten oder Polygonen also die PAT,
bei Arcs die AAT) werden einfach um weitere Items, also Spalten oder Variablen erweitert. Diese einfache
und schnell realisierbare Variante besitzt aber auch Nachteile, nämlich fehlende Flexibilität und die Vermengung von Benutzerdaten mit Systemdaten. Außerdem ist keine Normalisierung möglich. Die zweite
Möglichkeit besteht im Verknüpfen (Join/Relate) von anderen Tabellen - einerseits Info-Tables, anderer-
86
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
seits externer Datenbanktabellen - mit den Feature Attribute Tabellen über ein geeignetes, d.h. in beiden
Tabellen vorkommendes Attribut. Beide Varianten werden hier vorgestellt.
3.2.9. Die INFO-Datenbank
Die Datenbank INFO hat ihre Ursprünge in den 70er Jahren und ist für heutige Verhältnisse eine etwas
gewöhnungsbedürftige Datenbank. Daher sind in ARCTOOLS einige AML-Makros integriert, die den
Umgang mit den in INFO gespeicherten Sachdaten vereinfachen sollen. 12
Zunächst gibt es jeweils die Auswahlmöglichkeit Manage Info-Files in den Arc Pulldownmenüs zur
konsistenten Verwaltung derselben. Dies ermöglicht wie bei Coverages oder den anderen Datentypen von
ARC/INFO das konsistente Kopieren, Umbenennen, Löschen etc. von Info-Tabellen. Dazu gibt Abbildung
XXX einen Überblick. Weiterhin sind in CommandTools einige der wichtigsten Befehle verfügbar.
3.2.9.1. Hinzufügen von Attributen
Mit AddItem können neue Variablen definiert werden. Wie erwähnt, müssen neue Variablen jeweils hinter
der Variablen Cover-ID stehen.
Es existieren verschiedene Datentypen, die neben dem Namen der zu erstellenden Variablen (und natürlich der Ursprungs- und der Zieldatei) angegeben werden müssen. Daran gekoppelt sind Angaben über
Länge des Speicherplatzes und der Darstellung sowie gegebenenfalls Anzahl der Dezimalstellen. Weitere
Angaben zu den Datentypen folgen weiter unten.
Nicht mehr benötigte Variablen werden durch DropItem aus der Tabelle gelöscht. Damit wird die gesamte
Spalte gelöscht. Der Name der Datei wird standardmäßig beibehalten, es kann optional jedoch auch ein
neuer Name angegeben werden, damit die Daten nicht völlig verloren sind.
Abbildung 3-13. Das Add Items Menü
CommandTools
Edit
Info Tables
Add Item
87
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
CommandTools
Edit
Info Tables
Drop Item
3.2.9.2. Erstellen eigener INFO-Tabellen
Oftmals ist es notwendig, in ARC/INFO eigene Tabellen zu erzeugen, z.B. um darin Sachdaten abzulegen.
Aber auch für Lookup-Tables oder Symbol-Tabellen bei der Visualisierung werdensogenannte INFOTables verwendet. Es gibt mehrere Wege, zu dem Menü zu gelangen, das die Definition einer INFOTabelle ermöglicht. Insbesondere findet sich diese Möglichkeit unter Command Tools:
CommandTools
Edit
Info Tables
Define Table
Hier muß der Name der zu erstellenden Tabelle eingegeben werden. Danach kann nacheinander der Typ
mehrerer Attribute festgelegt werden.
Dazu sind jeweils folgende Angaben notwendig:
Item name
Item type
Name des Attributes
Datentyp des Attributes
Item width
Decimals
Breite der für die Variable vorgesehenen Spalte
Anzahl der Dezimalstellen (falls möglich).
Folgende Datentypen stehen zur Auswahl:
B
Binary Integer (2 oder 4 Byte lange) ganze Zahl
F
I
Floating Number (2 oder 4 Byte lange Dezimalzahl
Integer Ganzzahl mit 1 Byte pro Stelle. Maximal 16 Stellen
B
C
Number Dezimalzahl mit 1 Byte pro Stelle. Maximal 16 Stellen
D
Date Datum: TT/M/JJ oder TT/MM/JJJJ. Intern: JJJJ/MM/TT.
Character Zeichen (z.B. Buchstaben) bis max. 320 Zeichen
3.2.9.3. Einlesen von ASCII-Tabellen
In den CommandTools gibt es außerdem die direkte Möglichkeit, ASCII-Dateien in INFO-Tabellen einzulesen. Dazu muß zunächst über Define die Struktur einer INFO-Tabelle definiert werden. Dies wurde
im vorangehenden Abschnitt angesprochen. Wichtig ist, daß die ASCII-Datei eine mit der Zieldatei verträgliche Struktur aufweist (richtige Feldtypen und -längen). Mit init erstellt man eine neue INFO-Datei,
mit append hängt man Daten an eine bestehende an. 13
88
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-14. Das ASCII Table to INFO Menü
CommandTools
Edit
Info Tables
Add from ASCII
3.2.9.4. Bearbeiten von INFO-Dateien
Um Attribute in einer INFO Tabelle zu bearbeiten, muß man zunächst im Edit Info Table Menü im ersten
Feld eine INFO-Datei angegeben werden (ein Klick mit der rechten Maustaste im Info-File-Feld öffnet
einen Dateiauswahldialog). Es wird die Liste der in dieser INFO-Datei verfügbaren Variablen in der Item
List angezeigt. Mittels der Pfeile können nun die Variablen ausgewählt werden, die editiert werden sollen,
indem sie in die zweite Liste geschoben werden. Wird diese Auswahl mit Apply bestätigt, erscheint ein
Table-Editor Menü, wie es im Kapitel 3 abgebildet ist.
Edit
CommandTools
Info Tables
Edit Table
Die Funktionalität und Handhabung entspricht dem dort Beschriebenen.
Zusätzlich können mit dem Menü Dropfeatures für ein Coverage die zu einem bestimmten Feature-Typ
gehörigen Attribute gelöscht werden.
CommandTools
Edit
Info Tables
Drop Features
3.2.9.5. Erstellen von Indizes
Ein Index auf ein Attribut ermöglicht einen schnelleren Zugriff auf die Attributdaten, wenn nach den Werten dieser Variablen gesucht wird. Damit ist ein Index vor allem ein Mittel zur Steigerung der Performance
bei Anfragen an das System.
Indizes sind besonders für solche Variablen sinnvoll, über die häufig Suchanfragen durchgeführt werden.
Wenn z.B. oft anhand der Werte der Variablen Flußtyp gesucht wird, sollte diese Variable einen Index
erhalten. Bei Änderung der Werte muß auch der Index neu aufgebaut werden.
3.2.9.6. Berechnung neuer Variablen
Neue Variablen können auch durch Berechnung aus existierenden Attributen und Konstanten gewonnen
werden. Das Item Calculator Menü ermöglicht einfache Berechnungen, ohne daß ein Export in andere
Programme wie z.B. eine Tabellenkalkulation oder Statistikprogramme notwendig wird.
89
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.9.7. Verknüpfen mehrerer Tabellen
Es muß bei der Verknüpfung zwischen zwei Tabellen zwischen einem Join (physische Speicherung) und
einem Relate (temporäre, logische Verknüpfung) unterschieden werden. Ein Join fügt zwei Tabellen dauerhaft und physisch in eine einzige Tabelle zusammen, während Relates nur logische Verknüpfungen
zwischen zwei Tabellen darstellen, die beide an ihrem Ort verbleiben, jetzt aber nach außen wie eine Tabelle erscheinen. Ein Relate ist damit flexibler und dynamischer und daher für häufig sich ändernde Daten
und Tabellen in externen Datenbank-Systemen geeignet. Bei jedem Connect zu der externen Datenbank
werden die Tabellen neu verknüpft. Dadurch ist die virtuelle Resultattabelle immer auf dem neuesten
Stand, auch wenn sich die Ausprägungen in einer Tabelle verändert haben. Allerdings sind Relates etwas
weniger performant, da die Tabellen bei jedem Starten des Relate neu verknüpft werden müssen.
Zwei INFO-Dateien können durch Join in eine einzige Datei zusammengefügt werden. Standardmäßig
enthält die Resultatdatei denselben Namen wie die Input-Datei. Dies kann selbstverständlich geändert
werden. Es muß ein sogenanntes Relate Item gewählt werden, über das verknüpft wird. Dieses muß in
beiden Dateien identisch existieren. In der Regel werden dies ein FAT und eine Attributdatei mit weiteren
Variablen sein.
Schließlich wird noch das Attribut angegeben, hinter dem die neuen Items angefügt werden sollen. Bei
Feature Attribute Tables darf generell frühestens hinter der Cover-ID des Eingabe-Coverages ein neues
Feld eingefügt werden.
Die möglichen Argumente bei einer zeilenorientierten Eingabe lauten:
in_info_file
Tabelle, an die die neuen Variablen angehängt werden
join_info_file
out_info_file
Tabelle, die an die erste angehängt wird
Ergebnistabelle
relate_item
start_item
Schlüsselfeld, das in beiden Tabellen identisch ist
Attribut, hinter dem die neuen Sachdaten eingefügt werden.
Es existieren drei Optionen für die Verknüpfung.
Linear
Ordered
Link
Beide Tabellen können unsortiert sein. Für jeden Item-Wert der ersten Tabelle wird
jede Zeile der zweiten Tabelle durchsucht, bis der entsprechende Eintrag gefunden ist.
Diese Option ist relativ langsam.
Das Join_info_file muß aufsteigend nach dem Relate_Item sortiert sein.
Beide Tabellen können unsortiert sein. Das korrespondierende Feld des Joininfo_file ist
die Recordnummer. Damit ist keine Suche notwendig, womit diese Option am
schnellsten ist.
3.2.10. Anbindung externer Sachdaten
ARC/INFO kann mit drei Datenbankstrukturen umgehen:
•
Feature Attribute Tables
•
sonstige INFO Datenfiles
90
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
•
Relationale Datenbank-Managementsysteme (RDBMS)
ARC/INFO verfügt standardmäßig über Schnittstellen zu verschiedenen RDBMS. Dazu zählen Oracle,
Ingres, Informix, Sybase, Rdb.
Die relationalen Datenbanken sind als eigenständige Produkte im Gegensatz zu den beiden erstgenannten
nicht direkt in ARC/INFO integriert, können aber mit dem DATABASE INTEGRATOR eingebunden
werden (vgl. Online-Hilfe).
3.2.11. Anbindung an eine Oracle Datenbank
Es folgen einige Informationen zur Verwendung von Oracle mit ARC/INFO: Oracle ist ein weit verbreitetes kommerzielles relationales Datenbank-Management-System (RDBMS), das für verschiedene Plattformen verfügbar ist.
Wenn eine Verbindung zu Oracle aufgebaut werden soll, müssen zunächst die erforderlichen Umgebungsvariablen gesetzt werden. Dies ist von der lokalen Installation abhängig und wird durch entsprechende
Skripte erreicht.
Nun kann man ein Relate (unter Manage Relates) zu Oracle erzeugen, indem man die Datenbank mittels
DBMS Connect anspricht und sich bei ihr als Benutzer anmeldet.
Manage Relates
Relate
DBMSConnect
Um eine Verknüpfung einer Tabelle in Oracle mit einer Tabelle in INFO zu erzeugen, muß in Oracle eine
Tabelle mit entsprechender Struktur exisitieren, d.h. eine Tabelle mit einer Variablen mit entsprechendem
Typ zum Erzeugen eines Joins.
Eine erste Möglichkeit, in Oracle eine Tabelle zu erzeugen, besteht darin, nach der Initialisierung der
Oracle-Umgebung in einem Terminal direkt das zu Oracle gehörende Programm sqlplus zu starten und
dort die entsprechenden Tabellen mittels SQL-Statements anzulegen. Sqlplus ist die zeilenorientierte
Standard-Benutzerschnittstelle zu Oracle.
Es folgt ein kleines Beispiel in SQL (Stuctured Query Language14) zum Erzeugen einer Tabelle mit dem
Namen MYTABLE und den Variablen SCHLUESSELID, EINEVARIABLE und PFLICHTEINGABE in
Oracle:
CREATE TABLE MYTABLE
SCHLUESSELID INTEGER NOT NULL,
EINEVARIABLE CHAR(40),
PFLICHTEINGABE INTEGER NOT NULL;
Mittels SQL könnten dann die Daten mit folgender beispielhafter Anweisung in sqlplus eingegeben werden.
INSERT INTO MYTABLE VALUES (1, ’Buchstaben’, 200);
Wie man an den folgenden Menüeinträgen von CommandTools sieht, ist in der aktuellen Version von
ARC/INFO auch mittels ARCTOOLS das Absetzen von SQL-Statements zu einer verknüpften Datenbank, bzw. das Anzeigen von dort abgelegten Tabellen oder Variablen, etc. möglich.
* TODO LN: Abbildung Menueeintraege
91
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Es können INFO-Tabellen direkt in Tabellen des angebundenen DBMS umgewandelt, d.h. in das DBMS
eingelesen werden. Dies funktioniert auch umgekehrt, wobei die Variablentypen in die in INFO verfügbaren Typdefinitionen umgesetzt werden.
3.2.11.1. DBase-Dateien (DBF)
Im PC-Bereich liegen Daten oft im dBase-Format (*.DBF) vor, bzw. können leicht in dieses konvertiert
werden, da sehr viele PC-Datenbanken oder Tabellenkalkulationen dBase-Dateien verarbeiten können.
Damit steht neben ASCII eine recht universell einsetzbare Schnittstelle zu Sachdaten aus der PC-Welt zur
Verfügung. Insbesondere verwendet ARCVIEW für Windows dBase als Tabellenformat. Die Befehle zum
Im- bzw. Export von dBase-Tabellen in ARC/INFO sind nicht in ARCTOOLS integriert, sondern müssen
in der ARC-Kommandozeile aufgerufen werden.
* stimmt das noch fuer V 8?
3.2.11.1.1. Import von dbase-Tabellen mit dbaseinfo
Importiert dBase-Tabellen in das Datenbanksystem INFO.
Arc: usage dbaseinfo
DBASEINFO <dbase_file><info_file> {DEFAULT | DEFINE}
3.2.11.1.2. Export von dbase-Tabellen mit infodbase
Exportiert INFO-Tabellen aus ARC/INFO als dBase-Tabelle
Arc: usage infodbase
INFODBASE <info_file><dbase_file> {DEFAULT | DEFINE}
Da INFO weitergehende Definitionen von Spalten unterstützt als dBase, kann es hier zu Veränderungen
in der Datendefinition kommen. So werden Spaltennamen auf max. 10 Zeichen gekürzt oder Leerzeichen
durch „_“ ersetzt. Falls die ersten 10 Zeichen einer Variablen nicht eindeutig sind, müssen die Namen
entsprechend abgeändert werden. Sollen Daten an ARCVIEW weitergegeben werden, sollte man dies
also schon bei der Definition der Attributtabellen berücksichtigen.
3.2.11.2. INFO
92
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.2.11.3. Tables
3.2.11.4. externe DB
3.2.12. Speichern einer Sitzung als Makro
Die gesamte Edit-Sitzung kann auch als AML-Makro abgespeichert werden. Dazu gibt es einen MakroRecorder, der die einzelnen durchgeführten Befehle mitprotokolliert und im Klartext einschließlich ihrer
Optionen in einer ASCII-Text-Datei speichert. Dies ermöglicht die bequeme Automatisierung von Standardaufgaben, indem wiederkehrende Befehlsfolgen als Makro ausgeführt werden können. Die Datei kann
in einem normalen Texteditor bearbeitet werden, um das Makro allgemein nutzbar zu machen oder an spezielle Bedürfnisse anzupassen. Es können z.B. Variablen für Dateinamen automatisch vergeben oder als
Argument beim Aufruf des Makros übergeben werden.
Neben der reinen Wiedergabe einer Abfolge von Befehlen beinhaltet die Arc Macro Language Elemente
höherer Programmiersprachen wie Bedingungen oder Schleifen, sodaß man auch selbständig Programme
erstellen kann. Eine Einführung in die Programmierung mit AML bietet Kapitel 8.
* LN: ab hier alte Fassung, muss noch einsortiert werden!
Sollen mehrere verschiedene Informationsebenen von dieser Vorlage digitalisiert werden, so bietet es sich
an, die Vorlage entprechend oft zu kopieren. Neben dem schon vorgestellten Befehl copy ist in diesem
Fall auch create zu verwenden, wenn man ein Vorlagecoverage für Tics und Boundary angibt:
Arcedit: usage create
Usage: CREATE <out_cover> {tic_bnd_cover}
Arcedit: create bodendig ticcov
Creating coverage bodendig
The edit coverage is now NUTZDG01
Use COORDINATE DIGITIZER DEFAULT to orient NUTZDG01 if required.
In das neue Coverage werden dabei nur die TICs und die Kartenbegrenzung (Boundary) übernommen. So
brauchen die TICs nicht jeweils neu digitalisert werden. Das Kartenblatt muß auch erst dann neu registriert
werden, wenn es zwischenzeitlich vom Digitalisierbrett abgenommen und neu befestigt wurde.
Andere Einflüsse, die die Registrierung beeinflussen und erneut erforderlich machen können sind Schwankungen der Temperatur und Luftfeuchtigkeit, durch die sich das Material (insbesondere Papier) ausdehnen
oder zusammenziehen kann. Da dies nicht zwangsläufig einheitlich für die gesamte Fläche passiert, ist zu
überlegen, ob die Karte vorher auf ein verformungsstabileres Material übertragen werden soll. Aber auch
die Übertragung von Hand und anschließende Digitalisierung eröffnet natürlich neue Fehlerquellen.
Um mit dem Vorgang der erneuten Registrierung einer Karte vertraut zu werden, lösen wir nun zunächst
die Karte vom Digitalisierbrett und befestigen sie erneut. Die Karte wird sich nun zwangsläufig nicht mehr
an der gleichen Stelle wie zuvor befinden. Dadurch, daß man nun erneut die Tics mit dem Puck anfährt,
erhält das Programm die Möglichkeit, die veränderte Lage relativ zur ursprünglichen Digitalisierung zu
berücksichtigen. Der Grad der Übereinstimmung spiegelt sich im Root Mean Square (RMS)-Fehler wider.
Arcedit: coordinate digitizer default
93
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Digitize a minimum of 4 tics (from digitizer).
Signal end of tic input with Tic-ID = 0
Tic-ID:
Tic-ID:
...
Tic-ID:
Tic-ID:
1AA
2AA
8AA
0A
Scale (X,Y) = (1.000,1.000) RMS Error (dig,map) = (0.002,0.002)
Der RMS-Fehler zeigt das Ausmaß der Übereinstimmung von ursprünglichen und neuen Koordinatenpunkten an. Je niedriger er liegt, desto genauer war die Digitalisierung (oder Transformation). Er sollte
unter 0.004 liegen, bei weniger genauen Vorlagen darf er auch etwas größer sein.
Falls der Fehler zu hoch liegen sollte, muß man die Karte erneut registrieren bis der RMS-Fehler in einem
akzeptablen Bereich liegt:
Arcedit: coordinate digitizer ticcov
Abbildung 3-15. Digitalisieren von Arcs und Polygonen
* TODO LN: Abbildung korrigieren ...
Arcedit: drawenvironment arc node labels ids
Arcedit: editfeature arc /* ef (Abk.)
0 element(s) for edit feature ARCS
Arcedit: add
--------------------Options-------------------1) Vertex 2) Node 3) Curve
4) Delete vertex 5) Delete arc 6) Spline on/off
7) Square on/off 8) Digitizing Options 9) Quit
(Line) User-ID: 401 Points 0
94
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
0 arc(s) added to /HOME/ARC/NUTZDG01
Arcs sind aus mindestens zwei Nodes (Anfangs- und Endpunkten) und bei Bedarf zusätzlichen Vertices
(Hilfspunkten) zusammengesetzt (vgl. digi) (A-C)). Man beginnt eine Linie mit einem Node (Taste 2 )
und folgt dem Verlauf der Linie entlang und gibt dabei für jede Richtungsänderung der Linie eine 1 für
einen Stützpunkt (Vertex) auf dem Puck ein. Der Endpunkt wird wiederum mit einer 2 gesetzt. Man kann
nun eine weitere Linie digitalisieren oder die bisherigen abspeichern. Pro Linie sind maximal 499 Vertices
möglich, bei einer größeren Anzahl wird die Linie automatisch getrennt und eine neue Linie begonnen.
Je nachdem, was digitalisiert wird, bietet es sich an, die IDs gleich mit Werten zu belegen, z.B. der Höhe
in Metern über NN bei Höhenlinien. Dazu gibt man nach add zunächst 8 für die Digitalisieroptionen ein,
dann kann man z.B. mit der Taste 3 auf dem Puck das automatische Hochzählen der IDs bei neuen Linien
verhindern. Dies ist dann hilfreich, wenn man mehrere Einzelobjekte mit der gleichen ID eingeben muß.
Dann betätigt man noch einmal Taste 8, um dann mit Taste 1 die neue User-ID festzulegen. Nun kann man
mit Taste 2 wieder einen neuen Arc beginnen.
-------------------------DIGITIZING OPTIONS------------------------1) New User-ID 2) New Symbol 3) Autoincrement OFF
4) Autoincrement RESUME 5) Arctype line 6) Arctype box
7) Arctype circle 8) Arctype centerline 9) Quit
Dazu wählen wir im ARCEDIT-Fenster den Bereich aus, der bearbeitet werden soll:
PAN/ZOOM
Extent
3.2.12.1. Editieren der Datengrundlage
3.2.12.1.1. Korrektur angrenzender Coverages
3.2.12.1.2. Anpassen von Elementen
Zusammenschnappen
3.2.13. INFO-Dateien anlegen
* Noch einbauen: Erzeugen der Topologie ggfs. Import/Export Transformation / Projektion (Vorbereitung der) Eingabe von Attributwerten
95
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.3. Sachdaten hinzufügen/bearbeiten
3.3.1. Tabellen erzeugen
Bevor wir eine Tabelle erstellen können, müssen wir zunächst festlegen, welche Daten darin abgelegt werden sollen, damit wir einerseits nicht unnötig Speicherplatz verbrauchen und andererseits alle benötigten
Werte darin speichern können. INFO speichert seine Daten in Zeilen mit fester Feldlänge. Wurde also
beispielsweise ein Textfeld mit einer Länge von 20 Zeichen definiert, so wird dieser Platz für jeden Datensatz gebraucht, unabhängig davon, ob dieses Feld mit einem Wert belegt ist. Daher beginnen wir mit
einer kurzen Zusammenstellung der wichtigsten Datenformate in INFO. Weitere Informationen finden
sich in der Online-Hilfe zu define.
Feldtyp
interne Länge
Beschreibung
B (binär)
1-4 bytes
Zahl, die als binärer Integer gespeichert
wird
Zeichenkette mit fester Länge
C (Zeichenkette) 1-4096 bytes
D (Datum)
8 bytes
F (Fließkomma) 4-8 bytes
I (Integer)
1-16 bytes
Internes Datumsformat: JJJJMMTT. Das
Ein- und Ausgabeformat ist vom Benutzer
definierbar.
Als Fließkomma gespeicherte Zahl
Integer. Es sind keine Kommastellen
zulässig. Info speichert Integer als
Zeichenketten
Beim Erstellen der Tabelle muß man beachten, daß keine von ARC/INFO verwendeten Dateiendungen
verwendet werden dürfen (z.B. .aat, .pat, .tic, .bnd, .tat, .txt, .nat, .add usw.).
Wir rufen dazu zunächst Info auf:
Arc: info
INFO EXCHANGE CALL
01/07/1998 06:07:13
INFO 9.42 11/11/86 52.74.63*
Copyright (C) 1994 Doric Computer Systems International Ltd.
All rights reserved.
Proprietary to Doric Computer Systems International Ltd.
US Govt Agencies see usage restrictions in Help files
ENTER USER NAME>ARC
Dort erstellen wir für die Bodennutzung eine neue Datei namens bonutz.dat und definieren ihre Feldeigenschaften. Die Felder haben alle feste Längen:
ENTER COMMAND >DEFINE BONUTZ.DAT
ITEM NAME, WIDTH [OUTPUT WIDTH] TYPE [DECIMAL PLACES] [PROT.LEVEL]
1
ITEM NAME>BO_NUTZ_TR-ID
Die Länge gibt an, mit wieviel Bytes pro Datensatz dieses Feld angelegt wird:
96
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
ITEM WIDTH>4
ITEM OUTPUT WIDTH>5
ITEM TYPE>B
5
ITEM NAME>BN-CODE
ITEM WIDTH>3
ITEM OUTPUT WIDTH>3
ITEM TYPE>I
8
ITEM NAME> /* einfaches Return beendet den Dialog
ODD RECORD LENGTH ROUNDED UP TO EVEN
Die richtige Eingabe der Feldeigenschaften kann über items kontrolliert werden.
ENTER COMMAND > ITEMS
DATAFILE NAME: BONUTZ.DAT
07/01/1998
2 ITEMS: STARTING IN POSITION
COL
1
5
ITEM NAME
BO_NUTZ_TR-ID
BN-CODE
1
WDTH OPUT TYP N.DEC
4
5 B
3
3 I
-
ALTERNATE NAME
Nun wählen wir die Datei aus, um sie zu bearbeiten:
ENTER COMMAND >SEL BONUTZ.DAT
0 RECORD(S) SELECTED
Wir möchten die bisher noch leere Tabelle mit Datensätzen füllen:
ENTER COMMAND >ADD
1
BO_NUTZ_TR-ID>0
BN-CODE>0
2
BO_NUTZ_TR-ID>1
BN-CODE>100
3
BO_NUTZ_TR-ID>2
BN-CODE>200
4
BO_NUTZ_TR-ID>3
BN-CODE>300
5
BO_NUTZ_TR-ID> /* einfaches Return zum Beenden der Eingabe
4 RECORD(S) ADDED
Das Ergebnis können wir in INFO überprüfen:
ENTER COMMAND >LIST
$RECNO
BO_NUTZ_TR-ID BN-CODE
1
0
0
2
1
100
97
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3
4
2
3
200
300
ENTER COMMAND >Q STOP
Die Inhalte der INFO-Dateien können auch in ARC betrachtet werden:
Arc: list bonutz.datcommand>
Record BO_NUTZ_TR-ID BN-CODE
1
0
0
2
1
100
3
2
200
4
3
300
3.3.2. Attributdateien über joinitem verbinden
Die fertige externe Tabelle können wir nun mit joinitem an die Attributtabelle anhängen:
Arc: usage joinitem
Usage: JOINITEM <in_info_file> <join_info_file> <out_info_file>
<relate_item> <start_item> {LINEAR | ORDERED | LINK}
Mit unseren Beispieldaten sähe dies folgendermassen aus:
Arc: joinitem bo_nutz_tr.pat bonutz.dat bo_nutz_tr.pat bo_nutz_tr-id bo_nutz_trid
Joining bo_nutz_tr.pat and bonutz.dat to create bo_nutz_tr.pat
Mit angefügtem Feld aus der Datentabelle sieht die Polygonattributtabelle nun so aus:
Arc: list bo_nutz_tr.pat
Record
AREA
PERIMETER BO_NUTZ_TR# BO_NUTZ_TR-ID BN-CODE
1
-0.034
0.865
1
0
0
2
0.000
0.178
2
2
200
3
0.006
0.960
3
1
100
4
0.000
0.149
4
3
300
5
0.000
0.112
5
4
400
[...]
36
0.000
0.042
36
3
300
37
0.000
0.038
37
4
400
3.4. Relate erzeugen
Um ein Relate zu definieren, erzeugen wir zunächst eine externe Tabelle, auf die über relate zugegriffen
werden soll:
98
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Arc: info
INFO EXCHANGE CALL
01/07/1998 12:08:37
INFO 9.42 11/11/86 52.74.63*
Copyright (C) 1994 Doric Computer Systems International Ltd.
All rights reserved.
Proprietary to Doric Computer Systems International Ltd.
ENTER USER NAME>ARC
ENTER COMMAND >DEFINE BONUTZ.LUT
ITEM NAME,WIDTH [OUTPUT WIDTH],TYPE [DECIMAL PLACES] [PROT.LEVEL]
1
ITEM NAME>BN-CODE
ITEM WIDTH>3
ITEM OUTPUT WIDTH>3
ITEM TYPE>I
4
ITEM NAME>NUTZUNGSART
ITEM WIDTH>14
ITEM OUTPUT WIDTH>15
ITEM TYPE>C
18
ITEM NAME> /* einfaches Return zum Beenden
ODD RECORD LENGTH ROUNDED UP TO EVEN
ENTER COMMAND >SEL BONUTZ.LUT
0 RECORD(S) SELECTED
Diese Tabelle füllen wir nun mit Werten:
ENTER COMMAND >ADD
1
BN-CODE>100
NUTZUNGSART>Weideland
2
BN-CODE>200
NUTZUNGSART>Oedland
3
BN-CODE>300
NUTZUNGSART>verlassen
4
BN-CODE>400
NUTZUNGSART>Sonderkulturen
5
BN-CODE>500
NUTZUNGSART>Ackerbau
6
BN-CODE>600
NUTZUNGSART>Forstwirtschaft
DATA TOO WIDE FOR ITEM /* unsere maximale Breite: 14 Zeichen
NUTZUNGSART>Forst
7
BN-CODE>700
99
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
NUTZUNGSART>bebaut
8
BN-CODE> /* Return
7 RECORD(S) ADDED
Relates sind zunächst nur temporär und können interaktiv angelegt werden. Sollen sie in einer späteren
Sitzung wiederhergestellt werden, so müssen sie als Info-Datei gespeichert werden.
Arc: list bonutz.lut
Record BN-CODE NUTZUNGSART
1 100
Weideland
2 200
Oedland
3 300
verlassen
4 400
Sonderkulturen
5 500
Ackerbau
6 600
Forst
7 700
bebaut
Arc: relate add
Relation Name: bodnutz
Table Identifier: bonutz.lut
Database Name: info
INFO Item: bn-code
Relate Column: bn-code
Relate Type: ordered
Relate Access: rw
Relation Name: /* Return, falls kein weiteres Relate folgt
Arc: relate list
Relate Name:
BODNUTZ
Table:
bonutz.lut
Database:
info
Item:
BN-CODE
Column:
bn-code
Relate Type:
ORDERED
Relate Access:
RW
Diese Verbindung sollte man dann abspeichern:
Arc: relate save relations
1 Relates saved to file relations
Damit ist dieses Relate auch zwischen den Sitzungen in einer Info-Datei abgespeichert.
Nun kann man zum Beispiel unter ArcPlot eine Liste ausgeben, die die Datensätze der beiden Tabellen
temporär zusammenführt.
Arc: arcplot /* oder kurz: ap
Copyright (C) 1982-1997 Environmental Systems Research Institute, Inc.
All rights reserved.
ARCPLOT Version 7.1.1 (Thu Feb 6 23:26:50 PST 1997)
Arcplot: list bo_nutz_tr poly bn-code bodnutz//nutzungsart
Record bn-code bodnutz//nutzungsart
100
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
1
0
2 200
3 100
4 300
5 400
6 700
7 500
8 400
9 700
10 400
...
34 200
35 700
36 300
37 400
38 700
39 700
***************
Oedland
Weideland
verlassen
Sonderkulturen
bebaut
Ackerbau
Sonderkulturen
bebaut
Sonderkulturen
Oedland
bebaut
verlassen
Sonderkulturen
bebaut
bebaut
* TODO LN: Unterkapitel mergen / Reihenfolge
3.5. Erstellen der Geometrie/Rohdaten in ARCEDIT
3.5.1. Grundfunktionen
EditTools stellt verschiedene Funktionen des ARCEDIT-Moduls zur Verfügung, die z.B. zum Erstellen
und Editieren von Coverages und den zugehörigen beschreibenden Daten benutzt werden können.
Das Hauptmenü enthält neben Help fünf Pulldownmenüs. Das erste heißt Arctools und enthält ebenso
wie File grundsätzliche Funktionen und erscheint daher in MapTools und CommandTools in sehr ähnlicher Form. Daher werden die Einträge des ArcTools-Pulldownmenüs nur an dieser Stelle ausführlich
beschrieben:
Commands...
Change workspace...
ermöglicht interaktiv die Verwendung von ARCEDIT-Kommandos (in
den anderen Menüs die Befehle der entsprechenden Module)
wechselt das Workspace
Manage Coverages...
verwaltet Coverages
Manage Info Tables...
Relates...
verwaltet INFO-Tabellen
entsprechen virtuellen Joins zu Tabellen. Damit lassen sich
Zusatzinformationen in- oder externer Datenbanken verfügbar machen.
Tool browser...
Zeigt Kurzbeschreibung, Hilfe und Quelltexte von AML- oder
Menu-Files an.
Quit
beendet Edit Tools.
* TODO LN: Abbildung dazu?
In dem Pulldownmenü File befinden sich die üblichen Befehle wie das Erstellen eines neuen Coverages
oder einer neuen Datentabelle mit New..., bzw. das Öffnen schon existierender mit Open... Mit Remove... werden die entsprechenden Coverages oder INFO-Tabellen ohne Speichern der Veränderungen vor
101
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
dem letzten Save... oder Save as... geschlossen.
Das Kopieren, Umbenennen und Löschen von Coverages und Workspaces darf nur in ARC/INFO und
nicht auf Betriebssystemebene erfolgen, damit die entsprechenden Angaben der zu jedem Workspace
gehörigen Dateien im INFO-Verzeichnis korrekt mitgeführt werden. In diesen sind nämlich z.B. die Pfadangaben zu den Coverage-Dateien gespeichert. Diese Funktionen stehen auf der Kommandozeilenebene
mit copy, rename, kill und copyworkspace zur Verfügung. Unter ARCTOOLS findet man die entsprechenden Befehle sowohl in EditTools als auch in MapTools oder GridTools unter Handling Coverages.
Die CommandTools stellen unter Edit folgende Befehle über Menüeinträge bereit:
* TODO LN: Abbildung
Topology ...
•
Build features
•
Eliminate
•
Dissolve
•
Region clean
•
Region dissolve
•
Drop features
•
Create labels
•
Centroid labels
•
Renumber nodes
* TODO LN: Abbildung
Coordinates ...
•
Transform coverage
•
Project coverage
•
Define projection
* TODO LN: Abbildung
INFO tables ...
•
Add from ASCII
•
Add items
•
Alter item display
•
Calculate
•
Define table
•
Drop items
•
Drop features
•
Edit tables
102
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
•
Extract items
•
Index items
•
Join items
•
Redefine items
•
Rename items
* TODO LN: Abbildung
External DBMS ...
•
Connect
•
Column info
•
Show tables
•
SQL statement
•
SQL builder
•
INFO -> DBMS
•
DBMS -> INFO
* TODO LN: Abbildung
Image ...
•
Rectify
•
Register
* TODO LN: Abbildung
Cogo ...
•
New COGO coverage
•
Add COGO items
•
Arcs to COGO arcs
•
Calculate legal
•
Cover to COGO cover
•
Remove COGO items
•
Convert field data
•
Create COGO covers
EditTools
ArcTools
Manage Coverages /Coverage Manager
Werden nur Coverages eines bestimmten Feature Types gewünscht, können diese ausgewählt werden. Dabei ist zu beachten, daß ein Coverage selbst ein Unterverzeichnis ist und deshalb zwei Spalten erscheinen,
in denen die Namen der Verzeichnisse gleich sind. Wird ein Coverage gewählt, kann auch der Inhalt des
zugehörigen INFO-Feature-Tables aufgelistet werden (List Table), oder seine Struktur durch Item Info
(= Variablendefinition) angezeigt werden.
103
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Zunächst erläutern wir anhand von bereits bestehenden Coverages die Grundfunktionen von ARCEDIT
bzw. ARCTOOLS. Bevor wir in ARCEDIT wechseln, orientieren wir uns in ARC über die vorhandenen
Daten:
Arc: listworkspaces
/* ARC/INFO-Arbeitsverzeichnisse anzeigen
List of workspaces at location: /DATA/MONTANA
Available workspaces
-------------------ADMIN
GARFIELD
Arc: listcoverages
Workspace:
/DATA/MONTANA
EX3
Available Coverages
------------------FORESTTOWN
INDTOWN
TOWNS
LANDUSE
LUTOWNS
Items cover
Der nach oben zeigende Pfeil in der linken oberen Ecke wechselt in das nächsthöhere Verzeichnis.
workspace ..
Die entsprechenden ARC-Kommandos lauten copy, rename, describe und kill. Die Syntax für die Kommandozeile liefert wie erwähnt usage Befehl.
EditTools
ArcTools
Manage Coverages /Coverage Manager
Rename
Usage: RENAME <old_geo_dataset> <new_geo_dataset>
Das folgende PopUp Fenster erscheint z.B. wenn man ein Coverage auswählt und dann die Schaltfläche
Describe drückt.
EditTools
ArcTools
Manage Coverages
Coverage Manager
Describe
104
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-16. Das Describe Coverage Popup Menü
3.5.2. Öffnen eines Coverages
Zunächst muß das Coverage geöffnet und dabei die zu editierende Feature Class angegeben werden.
Dies geschieht durch
EditTools
File
Open Coverage
Das Menü Das Select an Edit Coverage erscheint.
105
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-17. Select an Edit Coverage Menü
Existiert noch kein zu bearbeitendes Coverage, kann auch ein völlig neues erstellt werden (siehe weiter
unten und vergleiche Kapitel Kapitel 3).
3.5.3. Darstellung der Editiergrundlage
Unter Display werden die in Draw Environment... angegebenen Feature classes durch Draw... auf
dem Bildschirm dargestellt. Mit Back Environment... können noch weitere Coverages oder z.B. ein
(Satelliten-)Bild als Hintergrund unterlegt werden (z.B. um die Orientierung während des Editierens zu
erleichtern).
EditTools
Display
Draw Environment (General)
Sollen beispielsweise zusätzlich die Dangling Nodes angezeigt werden, muß
Dangle
Apply
Cancel
gewählt werden. Cancel läßt dabei nur das Menü wieder verschwinden.
Das Aussehen (Farbe, Größe,...) der editierten Feature Types kann durch Change symbolset... geändert
werden. Dies ist ebenso wie die Zoom-Werkzeuge Pan Zoom... ein auch in anderen Tools MapTools) an
verschiedenen Stellen auftauchender Menüpunkt.
106
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-18. Das Change Symbolset Menü
EditTools
Display
Change Symbolset
3.5.4. Hintergrundcoverages und -bilder
Als Hintergrundbilder können Coverages des Gebietes (backcoverage) oder Pixelgraphiken wie Satellitenbilder (backimage) angegeben werden. Bedingung ist jeweils, daß eine Georeferenzierung über Tics
vorliegt, die dem zu bearbeitenden Coverage entspricht. Hintergrundcoverages dienen nur der Orientierung und können nicht editiert werden. Allerdings können die Features in Hintergrundcoverages als
Schnappobjekte dienen, auf deren Koordinaten die editierten Objekte des Hauptcoverages zusammenschnappen.
Die Standardeinstellung für Hintergrundgraphiken ist ein Grauwertbild. Der Integer-Wert gibt an, welches
Band eines Multiband-Bildes selektiert wird. Es besteht aber auch die Möglichkeit, mehrere Farbbänder
von Satellitenbildern gleichzeitig anzuzeigen. Dazu wird Composite gewählt. Hier kann bestimmt werden, welches Band im roten, grünen oder blauen Kanal visualisiert wird. Bei Coverages werden wie
beim General Draw Environment auch die jeweiligen Features einzeln aktiviert oder deaktiviert.
* TODO LN: Abb.
EditTools
Display
Draw Environment (Back)
Mit New... können jeweils weitere Hintergrundcoverages oder -bilder über einen Dateiauswahldialog
ausgewählt werden.
EditTools
Display
EditTools
Display
Back Object Environment (Image)
Back Draw Environment (Image)
Add Image
3.5.5. Auswahl der zu editierenden Elemente
Die eigentlichen Editierbefehle finden sich im Edit Menü. Mit Change Edit Feature... muß zunächst
die zu editierende Feature Class bestimmt werden. Je nach Wahl derselben erscheint unter Feature
Edit Menu... ein passendes Edit... Menü. Auf deren Handhabung gehen wir später ein.
EditTools
Edit
Change Edit Feature
107
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.5.5.1. Graphische Auswahl
Durch Graphic selection ... kann man das aktuelle Eingabemedium für Koordinaten (z.B. Maus oder
Digitizer) zur Auswahl der am Schirm verfügbaren Features benutzen.
EditTools
Edit
EditTools
Graphical Selection
Edit
Graphical Selection
More
Die durch die Abfrage ausgewählten Features werden in Abhängigkeit von der Wahl der Optionen (New,
Add to, Subset, Remove) zu einer Menge schon ausgewählter Features hinzugefügt (Add to), oder bilden eine Untermenge schon gewählter Features (Subset). Mit New wird eine völlig neue Menge von
Features ausgewählt, während Remove die neu gewählten Features von einer vorherigen Auswahl entfernt.
3.5.5.2. Logische Auswahl
Sollen die Features dagegen durch logische Verknüpfungen selektiert werden, kann dies durch Attribute
selection... geschehen. Dazu müssen natürlich Variablen mit Ausprägungen vorhanden sein. Die zugehörige Attributtabelle (Feature Attribute Table) wird bei der Erzeugung der Topologie (vgl. Build, Clean)
erstellt. Im Prinzip können beliebig komplexe logische Abfragen als Auswahlkriterium spezifiziert werden. Als Operanden dienen die Attribute im Feature Attribute Table oder direkt eingegebene numerische
Werte.
Edit
EditTools
Logical Selection
Als logische Operatoren sind gleich (eq), ungleich (ne), größer(gleich) (gt), kleiner(gleich) (lt) und für
Text (Characterstrings, Zeichenketten) Enthaltensein (CN, contain), Nichtenthaltensein (NC, not contain)
oder IN für Enthaltensein in einer Menge numerischer Konstanten oder Charakterstrings verfügbar.
Durch die Boolschen Operatoren Und (AND), Oder (OR) und Exklusives Oder (XOR) können zusammengesetzte Abfragen formuliert werden.
3.5.6. Editieren oder Erzeugen eines Coverages
Zunächst muß das Coverage unter Angabe der zu editierenden Feature Class geöffnet werden.
Dies geschieht durch:
EditTools
File
Open Coverage
Das Menü Select an Edit Coverage erscheint.
Existiert noch kein zu bearbeitendes Coverage, kann ein neues erstellt werden. Die Eingabe der Features
kann dann wie unter Digitalisieren oder Digitalisieren am Bildschirm beschrieben geschehen. Zunächst
benötigt das Coverage einen Namen. Der Feature Typ muß gewählt werden. Optional ist ein Source Coverage anzugeben, von dem die Geometrieinformationen übernommen werden. Wichtig ist das Erstellen
der Tics. Standardmäßig werden sonst die TIC-Ids 1 bis 4 und die Eckkoordinaten 0,0 bis 1,1 vergeben.
Im Add Tics Menü können nun beutzerdefinierte Kennummern (IDs) und Koordinatenwerte für die mindestens vier Tics eingeben werden. Dies kann numerisch über die Tastatur oder graphisch per Maus oder
Digitizer geschehen.
108
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.5.7. Editieren von Arcs
Wurde ein zu editierendes Coverage (Editcoverage) erstellt oder ausgewählt, erscheint für die Feature
Class Arc das Edit Arcs and Nodes Menü. Für die entsprechenden anderen Feature Classes erscheinen
ähnliche Menüs, die weiter unten gezeigt werden.
Zum Einfügen neuer Arcs wird Add gewählt. Nun kann am Bildschirm mit der Maus digitalisiert werden
(analog zum Arbeiten mit Puck am Digitalisierbrett). Die Umsetzung der Digitalisierpucktasten auf die
Maus-Tastatur-Kombination wird in Abbildung amausdig veranschaulicht.
Abbildung 3-19. Erweiterte Maustastenbelegung zum Digitalisieren
Mit dem rechten Mausknopf (auf dem Digitizer-Puck die Taste 2) wird der Anfangsnode an einer gewünschten Stelle in dem angezeigten Coverage gesetzt. Mit dem mittleren Mausknopf (Taste 1 auf dem
Digitalisierpuck) setzt man den Verlauf des Arcs durch Festlegen der Vertices (vgl. Kapitel 3) als Zwischenpunkte fest. Das Ende des Arcs wird wiederum durch Druck des linken Mausknopfes festgelegt. Nun
kann an anderer Stelle ein erneuter Anfangsnode gesetzt werden. Der Add-Vorgang wird durch Eingabe
einer 9 auf der Tastatur (oder strgrechte Maustaste) beendet, wie es auch im Shell- oder DOS-Fenster
(unter NT) (ab jetzt einheitlich Kommando-Fenster genannt) angegeben ist.
Beim Digitalisieren mittels eines Digitizers läuft im Prinzip der gleiche Vorgang ab - der Text im KommandoFenster ist der gleiche. Wichtig ist, daß sich bei der Eingabe der im Kommando-Fenster beschriebenen
Optionen (z.B. 9 für Ende), die Maus auf dem Zeichenbildschirm befinden muß, um wirksam werden zu
können. Bei sämtlichen folgenden ARCEDIT-Funktionen sollte der Text im Kommando-Fenster genau
beachtet werden, da mehrmals Tastatureingaben erwartet werden.
Edit Tools
File
Open/New Coverage
Der gesamte Editiervorgang besteht aus einem Wechselspiel zwischen den Auswahl-Menüs (logische bzw.
graphische Selektion) und dem eigentlichen Edit-Menü, in dem die Editierbefehle ausgewählt werden und
dem graphischen Editieren im Graphikfenster. Zusätzlich wird an einigen Stellen die Tastatur zur Eingabe
von Optionen verwendet (z.B. die 9 zum Beenden eines Editiervorganges im Graphikfenster). Je nach
Befehl müssen entweder nur eines, genau zwei oder beliebig viele Features ausgewählt sein damit er
angewendet werden kann.
Der zweite Knopf Delete im Menü wird nach demselben Prinzip benutzt. Durch ihn werden die angewählten (Feature Edit Menü) Arcs gelöscht.
Besonders wichtig ist der dritte Knopf in der obersten Reihe OOPS. Er macht nach und nach bis zum
letzten Speichern (Save) je einen früheren Bearbeitungsschritt rückgängig. Damit werden Transaktionen
109
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
durch das Speichern eines Zustands vom Benutzer realisiert.
3.5.7.1. Verschieben und Kopieren von Arcs
Die zweite Reihe von Schaltern, Duplicate und Move verschiebt (die beiden letzten Schalter) Arcs, bzw.
läßt den ursprünglichen Arc an seiner Stelle und kopiert einen zweiten an die gewählte Stelle. Die Pfeilrichtung auf den Knöpfen deutet an, ob diagonale oder nur Parallelverschiebungen zur Seite erlaubt sind.
Die meisten der komplexeren Editierfunktionen dieses Menüs benötigen zum Gebrauch etwas Erfahrung,
die am besten durch häufiges Probieren gewonnen wird. Durch etwas Kreativität ist fast jedes gewünschte
Resultat erreichbar.
3.5.7.2. Editieren von Nodes
Ähnliches gilt für die Nodes. Es sind jeweils die bei den einzelnen Funktionen erscheinenden Optionen
im Kommandofenster zu beachten. Beispielsweise erfolgt das Verschieben eines Knoten über dessen Selektion und einer nachfolgenden Eingabe der Ziffer 4 über die Tastatur. Erst dann kann der Zielpunkt
des Knotens mit der Maus angeklickt werden. Die Ziffer 4 kann auch über gleichzeitiges Drücken der
Shift-Taste und der der mittleren Maustaste aktiviert werden (vgl. Abbildung 3-19).
Abbildung 3-20. Das Edit Menü
Zum Einfügen eines neuen Knotens (Node) muß ein Arc gewählt sein. Dann kann der 1. Knopf unter Edit
Nodes gedrückt und schließlich die Position des einzufügenden Arcs angeklickt werden.
Das Herausnehmen eines überflüssigen Knotens ist nur möglich, wenn bestimmte Einstellungen im EditEnvironment-Fenster entsprechend eingestellt sind. Hier muß bei Unsplit Item OFF gewählt werden,
da das Herausnehmen nur möglich ist, wenn die beiden selektierten Arcs dieselbe ID (allgemeiner: die
gleichen Ausprägungen bzgl. der aktiven Variablen) aufweisen.
110
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
3.5.7.3. Weitere Editierfunktionen
Weitere Editierfunktionen finden sich im Menü More Arc Editing, das erscheint, wenn im Menü Edit
Arcs and Nodes auf die Schaltfläche More Arc Editing gedrückt wird.
EditTools
EditTools
Region
File
File
Open Edit Coverage (Arc)
Open Edit Coverage (Arc)
Edit Arcs and Nodes
Edit Arcs and Nodes
More Arc Editing
More Arc Editing
Create
Abbildung 3-21. Das More Arc Editing Menü
Wird im Menü More Arc Editing auf die Schaltfläche Create Region gedrückt, kann mit dem folgenden
Menü eine Region Subclass definiert werden. Dazu wird der neue Subclass Name in das entsprechende
Feld eingetragen und eine ID angegeben. Apply überträgt den Namen in die Subclass-Liste.
3.5.7.4. Ändern der Geometrie
Weiterhin gibt es verschiedene Möglichkeiten die Eigenschaften eines Arcs zu verändern. Unter Modify
Shape befinden sich z.B. Funktionen, um eine Kurve zu vereinfachen, d.h. zu glätten, indem überflüssige
Zwischenpunkte (Vertices) aus dem Arc herausgenommen werden. Dies wird z.B. bei Generalisierungen,
zur Verminderung des Speicherbedarfs oder der Erhöhung der Geschwindigkeit verwendet. Es können
selbstverständlich auch zusätzliche Vertices eingefügt werden.
3.5.7.5. Editieren von Vertices
Unter More Arc Editing finden sich die Schaltflächen für die entsprechenden Befehle zum Editieren von
Vertices. Es besteht die Möglichkeit, diese einzeln zu verschieben, zu löschen oder hinzuzufügen.
3.5.7.6. Drehen und aneinanderschnappen
Die Schaltfläche Rotate and Snap auf dem Menü Edit Arcs and Nodes öffnet das Menü Rotate
and Snap, in dem einzelne Arcs rotiert werden können, in dem vor allem aber auch verschiedene Möglichkeiten bestehen, um interaktiv Nodes aufeinander, bzw. Arcs und Nodes etc. aufeinander schnappen
zu können, indem z.B. Radien angegeben werden, innerhalb derer z.B. benachbarte Nodes aufeinanderschnappen und verschmelzen sollen.
111
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-22. Optionen beim Node to Arc Snapping
EditTools
File
Open Edit Coverage (Arc)
EditTools
File
Open Edit Coverage (Arc)
Arc (Nove & Snap)
Edit Arcs& Nodes
Edit Arcs& Nodes
Rotate and Snap
Rotate & Snap
Node-
Statt wie sonst (siehe oben) werden die Optionen nicht über das Standard-Eingabefenster (die Shell)
abgefragt, sondern es wird ein eigenes PopUp-Fenster angezeigt. Der Effekt und die über die Tastatur
einzugebenden Optionen sind dieselben).
3.5.8. Editieren anderer Feature Classes
Die anderen Feature Classes eines Coverages haben ihre eigenen Edit ... Menüs, wobei die Funktionalität
sehr ähnlich, aber meist eingeschränkter ist. Typische Befehle sind das Hinzufügen, Löschen, Kopieren,
Verschieben etc. ausgewählter Geometrieelemente. Ausserdem können mittels des Table Editors die zugehörigen Attribute inspiziert und verändert werden. Man gelangt zu den einzelnen Menüs in EditTools
entweder indem man ein Coverage mit der entsprechenden Feature Class und der korrespondierenden
Option öffnet, oder in
Edit
EditTools
Change Edit Feature
die aktuelle Feature Class eines geöffneten Coverages ändert.
Außerdem besteht meist die einfache Möglichkeit, die aktuelle Auswahl in ein anderes Coverage (Put to
Cover) zu speichern oder aus einem anderen Coverage Objekte zu laden (Get from Cover).
EditTools
File
Open EditCover/New Cover
EditTools
File
Editor
Edit
Open EditCover/New Cover
Change Edit Feature
Change Edit Feature
Label
Label -Edit Label
Table
EditTools
Env
File
Open EditCover/New Cover
Change Edit Feature
Label -Edit Label
112
Edit
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-23. Das Arc Environment Menü
EditTools
Open EditCover/New Cover
EditTools
Open EditCover/New Cover
EditTools
Open EditCover/New Cover
Change Edit Feature
Change Edit Feature
Change Edit Feature
Tics
Tic -Edit Tics
Table Editor
Poly
Wie schon ausgeführt, werden nur die Koordinaten für die Feature Classes Arc, Label Point, Annotation,
Tic, Link und Coverage Extent explizit gespeichert. Im Gegensatz dazu werden Polygons, Routes und
Sections topologisch definiert.
In vielen Anwendungen ist ist die Genauigkeit der Koordinaten von besonderer Bedeutung. Die Koordinaten können entweder als einfach-genaue reelle Zahlen mit sechs oder sieben signifikanten Stellen oder
solchen mit doppelter Genauigkeit, normalerweise 13 bis 14 Stellen, benutzt werden.
Bei der Durchführung einer GIS-Analyse muß der Frage der Datenqualität besondere Beachtung geschenkt werden. Maßstabsfragen, Digitalisiergenauigkeit und viele weitere Punkte spielen eine Rolle.
Sie können das Ergebnis erheblich beeinflussen. Verschiedene, sich summierende Fehlerquellen können
die Genauigkeit und damit die Aussagekraft von Daten stark vermindern (vgl. Kapitel 1). Es muß daher
überprüft werden, ob durch Speicherung der Koordinaten in doppelter Genauigkeit eine objektiv nicht
gegebene Genauigkeit vorgetäuscht wird, wenn die Auflösung der einzelner Datenquellen weit darunter
liegt.
Edit Arcs
EditTools
Nodes
Edit Environment
Mit dem Tracing Environment wird die Umgebung für das Vektorisieren von Grids eingestellt.
EditTools
Edit Arcs and Nodes
Trace Environment
3.5.9. Vergabe von Kennummern
Im Folgenden wird kurz das Editieren der zu einer Geometrie gehörigen Attribute erläutert.
Sollen für einzelne ausgewählte oder alle Features (im Beispiel hier: Arcs, entsprechendes gilt aber auch
für die anderen Feature Types) Attribute verändert werden, so kann im Edit Arcs and Nodes Menü (bzw.
dem entsprechenden Edit Menü für die anderen Feature Typen (z.B. Polygons, Tics) auf den Schalter
Table Editor unter der Überschrift Attributes gedrückt werden. Falls schon Attribute für den jeweiligen
Feature-Typ existieren, erscheint das Menü Table Editor. Abbildung 3-24 zeigt das entsprechende Menü
für einen Arc Attribute Table (AAT).
113
Edit
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Abbildung 3-24. Das Table Editor (AAT) Menü
Wenn stattdessen eine Warnung erscheint, muß zuvor noch die Topologie - und damit die entsprechende
Tabelle - erzeugt werden (vgl. Kapitel 3).
Zunächst müssen über die bekannten Auswahlverfahren (z.B. graphische Selektion) die zu bearbeitenden
Features (hier Arcs) in die aktuelle Auswahlliste aufgenommen werden.
Nun können im Table Editor Menü über List die Ausprägungen der Attribute der ausgewählten Features
(hier Arcs) angezeigt werden.
OpenCoverage
EditTools
Edit Arcs and Nodes
Table Editor
List
Der Schalter Edit erlaubt es, die Werte dieser Sachattribute zu editieren. Ausgenommen sind die vom
System errechneten Attribute, wie z.B. die Länge. Dies kann z.B. dazu genutzt werden, den einzelnen
Arcs benutzerdefinierte IDs oder sonstige Variablenausprägungen interaktiv zuzuweisen.
EditTools
Open Coverage
Edit Arcs and Nodes
Table Editor
Edit
Dabei wird zunächst der Arc (um im Beispiel zu bleiben) mit der niedrigsten internen ID aktiviert. Seine
Variablen (Items in der AAT) stehen damit zum Verändern zur Verfügung und er wird im Grafikfenster
gelb hervorgehoben, sodaß man sieht, welchen Arc man gerade bearbeitet. Mit der return-Taste springt
man zum nächsten Arc und kann diesen bearbeiten. So können der Reihe nach alle Arcs (allgemeiner Features) in der aktuellen Auswahlliste editiert werden. Add macht die Änderungen in der Tabelle wirksam.
Bei calc kann nur ein einzelner Wert pro Variable eingegeben werden. Allen gerade ausgewählten Features
wird mittels calc der gleiche Wert zugewiesen.
EditTools
OpenCoverage
EditArcs & Nodes
Table Editor
Calc
Wie schon erwähnt, können die anderen Feature Types über entsprechende Table Editor Menüs editiert
werden.
EditTools
Edit
Change Edit Feature
Es kann jeweils nur auf die gerade selektierten Elemente zugegriffen werden, d.h. gegebenenfalls sind
zuvor alle auszuwählen.
* Vgl. Kapitel graph./logische Selektion
* LN: bis hier alte Fassung - einsortieren!
Weiterführende Literatur:
ESRI, 1995, Understanding GIS. The ARC/INFO Method, Cambridge: GeoInformation International.
Michael Zeiler, 1999, Modeling Our World: The ESRI Guide to Geodatabase Design, Redlands: ESRI.
114
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
Fußnoten
1. Die Feldnamen dürfen maximal 10 Zeichen lang sein (längere werden abgeschnitten) und keine
Punkte oder Bindestriche enthalten (werden in einen Unterstrich umgewandelt).
2. Referenzpunkte im Coverage, für die die Koordinaten bekannt sind
3. Oder in die Datei arcedit.aml im aktuellen Verzeichnis oder .arcedit im Homeverzeichnis
eingegeben werden, die jeweils beim Start von ARCEDIT ausgeführt werden.
4. So kann z.B. das Import-Tool von ARCVIEW 3.1 nur unkomprimierte Exportfiles importieren.
5. Zwei Beispiele hierfür findet man unter http://www.ccwr.ac.za/~lynch2/arc_e00.html" (http://www.ccwr.ac.za/~lynch
oder eine aktualisierte Version unter http://pages.infinit.net/danmo/e00/docs/v7_e00_cover.html)" (http://pages.infini
Dies ist jedoch nur von Interesse, wenn man für eine eigene Anwendung eine Im- oder Exportschnittstelle
zu ARC/INFO erstellen will/muß.
6. Der Endnode ist je nach angegebener Option beim generate-Befehl identisch mit dem Anfangspunkt.
Dies wird für den Import bei manchen Kartographie-Programmen benötigt.
7. http://www.perl.org/
8. http://www.gdv.com/
9. Hilfestellung zu Projektionen bieten z.B. Snyder, John. P. (1994): Map Projections: A Working Manual. (USGS Professional Paper 1395), 3. Auflage und die die WWW-Seiten von A. Voser unter
http://www.geocities.com/CapeCanaveral/1224/mapref.html.
10. In diesem Fall war tatsächlich der Stand zu dieser Zeit von Interesse - unsere Kartensammlung verfügt
auch über aktuelleres Material :)
11. Falls die erforderlichen Informationen auf der Karte fehlen, sind sie möglicherweise an anderer Stelle
dokumentiert, beispielsweise in einem Begleitband zum Kartenwerk oder auf den schon oben erwähnten Mapref WWW-Seiten von A. Voser. Sind gar keine Informationen verfügbar, so müssen verschiedene Varianten probiert werden, bis man eine weitgehende Deckung mit den vorhandenen Daten
erreicht (indem man z.B. eine eingescannte und registrierte Karte als Hintergrund darstellt und die
Linien der projezierten Daten darüberlegt und auf Übereinstimmung prüft).
12. Alternativ gibt es noch das Modul TABLES, welches einen etwas vereinfachten Zugang zu INFO
bereitstellt.
13. XXXX unterschiedliche Beschränkungen von INFO und Tables beachten ...
14. Ein Tutorial zu SQL kann unter http://www.dcs.napier.ac.uk/~andrew/sql/ oder http://sqlcourse.com
aufgerufen werden.
115
Kapitel 3. Erstellen der raumbezogenen Datengrundlage
116
Kapitel 4. Räumliche Analyse in ARC und mit
CommandTools
Zu den wichtigsten geometrischen Analysefunktionen eines Vektor-GIS gehören Flächenverschneidungen
und das Generieren von Pufferzonen. Andere Funktionen beziehen sich dagegen auf Linienstrukturen
(Pfadanalyse, Dynamic Segmentation).
* TODO AZ: ergaenzen: Potential etc.
4.1. Geographische Analyse
ARC/INFO stellt eine große Fülle von Analysemethoden zur Verfügung. Im Rahmen dieser Einführung
können wir diese nicht alle ausführlich vorstellen. Für ausgefallenere Anwendungen verweisen wir auf
die ausführliche Online-Hilfe und die mit dem Programm mitgelieferte Literatur. ARC/INFO verfügt über
eine große Fülle von Befehlen und Analysemethoden. Diese können im Rahmen einer solchen Einführung selbstverständlich nicht in allen Einzelheiten behandelt werden. Für eine Übersicht über die grundsätzlichen Analysemöglichkeiten sei auf die einschlägigen Lehrbücher verwiesen. Die dort angegebenen
schematischen Übersichten stellen jedoch meist Idealvorstellungen dar, die kaum ein kommerzielles GIS
vollständig erfüllen wird. Dies gilt besonders für den akademischen Bereich, da hier immer ausgefallenere und spezialisiertere Analysemethoden gewünscht werden. Im Vergleich zu anderen GIS-Produkten ist
ARC/INFO vor allem im Analysebereich ein recht mächtiges Programm.
* TODO: konkrete Literaturhinweise (BILL 1999 ...)
Die Einbindung eigener Programme einer beliebigen Programmiersprache ist über die Skriptsprache AML
(Arc Marcro Language) möglich. Seit der Version 7.2 (ODE, Open Developers’ Environment) ist auch
der Aufruf von ARC/INFO-Funktionen mittels anderer Programmiersprachen über ODE möglich. Darauf
können wir hier nicht eingehen.
Folgende Schritte sind für die räumliche Analyse erforderlich:
•
Auswahlkriterien definieren
•
Reihenfolge der Auswahl festlegen
•
in ARC/INFO-Befehle übersetzen (Handelt es sich um eine einmalige Operation oder ist eine Automatisierung über Skripte sinnvoll? Ist es sinnvoll oder notwendig, ein neues Coverage zu erstellen?)
•
In MapTools, ARCPLOT oder ARCVIEW anzeigen und gegebenenfalls die Auswahl weiter einschränken
oder neue Kriterien festlegen
Anhand unserer Beispieldaten und schematischer „Idealcoverages“ werden wir nun die wichtigsten Analysemöglichkeiten in den vektororientierten Modulen von ARC/INFO vorstellen. Die verwendeten Daten
und eventuell erforderliche Vorarbeiten werden in Abschnitt 4.5.2 beschrieben.
117
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2. Verschneidungsoperationen und Bufferbildung
In vielen Fällen wird GIS mit dem Schichtenmodell gleichgesetzt. Dies ist im Hinblick auf aktuelle
Entwicklungen bei objektorientierten GIS zwar eine unzulässige Einschränkung des Begriffs GIS, zeigt
aber die Bedeutung dieses Konzepts. ARC/INFO verfügt über verschiedene Möglichkeiten der überlagerung und Verschneidung unterschiedlicher Informationsebenen. Es besteht ein grundsätzlicher Unterschied zwischen darstellender und topologischer Überlagerung. Ist die darstellende Überlagerung auch
in Kartographieprogrammen möglich, so bleibt die topologische Überlagerung Geographischen Informationssystemen vorbehalten. Man kann natürlich auch in ARC/INFO eine fast beliebige Anzahl einzelner
Informationsebenen (des gleichen Gebiets) grafisch Übereinanderlegen, etwa so, wie wenn man einzelne
Klarsichtfolien mit gemeinsamen Passpunkten (den TICs entsprechend) übereinanderlegen und projezieren würde. Die Attributdaten der einzelnen Coverages bleiben getrennt von der Geometrie, die wir als
Ergebnis erhalten.
Im Gegensatz dazu werden bei einer topologischen Verschneidung die bisherigen Geometrien und Attributdaten durch verschiedene Operationen miteinander verbunden bzw. neu erstellt und man erhält so eine
neue Informationsebene mit entsprechend neuer Topologie.
Als wichtigste Befehle sind union, intersect, identity und erase zu nennen. Diese Programme kann man
entweder direkt an der Kommandozeile ausführen oder über entsprechende AMLs in den Command
Tools, Analysis aufrufen.
In ARCTOOLS geben die Symbolabbildungen in den Menüs Hinweise auf die Wirkungsweise der jeweiligen Befehle. Eine ausführliche Diskussion der Befehle, die auch die Wirkung auf die Attributtabellen
berücksichtigt, findet man in der Online-Hilfe ARCDOC.
Die verschiedenen Befehle sind (mit Einschränkungen) jeweils für die unterschiedlichen Kombinationen
der Feature Typen verfügbar.
CommandTools macht eine Reihe unterschiedlicher Befehle verfügbar, die nicht direkt in die Themenkreise „Erzeugen der Koordinatengrundlage“ (EditTools) oder „Visualisierung“ (MapTools) fallen. Dazu
gehören vor allem Befehle zur Analyse, aber auch die Behandlung von Sachdaten, Erzeugung der Topologie, Kartenprojektion und Transformation, Import / Export, Geocoding oder 3D-Funktionalität. Dieser
Tool-Picker kann ebenfalls in MapTools unter dem Menüpunkt Analysis und in EditTools unter dem
Menüpunkt Edit aufgerufen werden.
Bei Anklicken desselben erscheinen zwei Fenster mit mehreren Pull-Down Menüs, die teilweise weitere
Seitenmenüs enthalten, aus denen dann die eigentlichen Funktionen gewählt werden können. Für jede
dieser Funktionen öffnet sich beim Anwählen jeweils mindestens ein Fenster, in welchem die verwendeten Coverages oder Datenquellen angegeben werden können. Die verschiedenen Optionen der einzelnen
Befehle können dort meist durch Buttons o.ä. angewählt werden. Insbesondere soll auf den Help-Button
hingewiesen werden, in dem die Funktionsweise und die Optionen der jeweiligen Funktion erklärt werden.
Mit diesem erhält man eine Hilfe zum Bedienen der Auswahlmöglichkeiten des jeweiligen ARCTOOLSFensters. Dies hat mit der allgemeinen ARC/INFO-Online Hilfe ARCDOC zunächst nichts zu tun. Letztere kann gleichzeitig daneben gestartet werden, um dem Benutzer mit Information zu den zugrundeliegenden Konzepten oder der zeilenorientierten Befehlssyntax und Funktionalität zu dienen.
Es folgt eine Übersicht der Menüeinträge unter Analysis in den CommandTools von ARCTOOLS
Overlay ...
•
Areaquery
118
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
•
Identity
•
Intersect
•
Point-node
•
Union
•
Update
Map Sheets ...
•
Append
•
Clip
•
Erase
•
Mapjoin
•
Split
Proximity ...
•
Buffer
•
Buffer regions
•
Near
•
Point distance
•
Thiessen
Extract ...
•
Form letters
•
Area Query
•
Region Query
•
Select
•
Select Regions
Tabular ...
•
Frequency
•
Report Writer
•
Summary statistics
DynSeg ...
•
Event Source env
•
Event transform
•
Event overlay
119
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
•
Event dissolve
•
Event pullitems
•
Route/Poly overlay
Geocoding ...
•
Standardize file
•
Create address cover
•
Update address cover
•
Address errors
•
Match addresses
•
Scoring Rules
Surface ...
•
Contour
•
Line of sight
•
Profile
•
Visibility
•
Cut fill
•
Volume
Animation ...
•
MPEG encoder
•
MPEG player
Auf Dynamic Segmentation, Extract und Geocoding kann in diesem Rahmen nicht weiter eingengangen
werden. 3D Oberflächen (Surface...) und Animationen werden in Kapitel 7 besprochen.
In Folgenden werden wir die wesentlichen Vektor-Verschneidungsoperationen anhand von Beispielen und
Übungen erläutern.
4.2.1. Union
Durch die union-Operation werden zwei Coverages miteinander verbunden. Alle Elemente beider Coverages bleiben im Ergebniscoverage erhalten. Schneiden sich Linien bzw. Polygone, so werden an den
Schnittpunkten neue Nodes eingefügt und gegebenenfalls neue (kleinere) Polygone gebildet, die eine eigene Topologie besitzen. Die Optionen join oder nojoin geben an, inwieweit die Attribute der PAT in
das Ergebnis-Coverage übertragen werden sollen. Bei join werden alle weitergegeben, bei nojoin nur die
coverage#. über relate können weitere Attribute in anderen Dateien ausgewählt werden. Die Ausgangscoverages bleiben unverändert erhalten.1
120
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Abbildung 4-1. Das Union Menü
CommandTools
Analysis
Overlay
Union
Usage: UNION <in_cover> <union_cover> <out_cover>
{fuzzy_tolerance} {JOIN | NOJOIN}
4.2.1.1. Polygoncoverage
?
Übung
Zu einer Karte, die als Coverage vorliegt (in_cover), sollen aus einem zweiten Coverage (union_cover)
Flächen hinzugefügt werden. Das Ergebniscoverage (out_cover) enthält die Flächen beider Coverages. Dort, wo sich Elemente beider Coverages überdecken, werden an den Schnittpunkten
Nodes eingefügt und so neue Polygone erstellt. Besitzen die neuen Polygone die gleichen Attributwerte wie benachbarte Polygone, so ist es möglich, die Grenzen zu diesen mit dissolve zu
entfernen und so wieder größere Flächen mit einheitlichen Attributwerten zu erhalten.
in_cover
union_cover
out_cover
i_poly
op_poly
outunion
Arc: union i_poly op_poly outunion
121
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Unioning i_poly with op_poly to create outunion
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outunion.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
Verschneiden Sie die Coverages climveg und natparks unter Verwendung des Befehls union
und erläutern Sie das Ergebnis. Beachten Sie die Attributtabelle des Ausgabecoverages. Hat
die Reihenfolge der Coverages (in_cover, union_cover) einen Einfluß auf das Ergebnis?
Coverages:
indianres, natparks
Arc-Befehle:
union, list, describe, arcplot
ArcPlot-Befehle: mapextent, arcs
Vorgehensweise: Lesen sie zunächst den Eintrag zu union in der Online-Hilfe ARCDOC. Führen Sie die
union-Operation mit beiden Coverages durch. Betrachten Sie dann mit list die
resultierenden Attributtabellen (Hinweis: die Polygonattributtabelle endet auf .pat).
4.2.2. Identity
Es werden zwei Coverages angegeben, das sogenannte In-Coverage, das vollständig übernommen wird,
sowie das sogenannte Identity-Coverage, das eine Polygon-Topologie besitzen muß. Vom Identity-Coverage
werden nur diejenigen Features übernommen, die sich mit den Features des In-Coverages überschneiden.
Abbildung 4-2. Das Identity Menü
CommandTools
Analysis
Overlay
Identity
Usage: IDENTITY <in_cover> <identity_cover> <out_cover>
{POLY | LINE | POINT} {fuzzy_tolerance}
{JOIN | NOJOIN}
122
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2.2.1. Punktcoverage
Beispiel 4-1. Baumbestand
Für einen Forstbezirk existiert ein Punktcoverage, das alle Bäume von über 2m Höhe beinhaltet (in_cover).
Die Forstverwaltung besitzt ebenfalls Karten der einzelnen Flurstücke, die den jeweiligen Zeitpunkt der
Bepflanzung der verschiedenen Flächen enthalten (identity_cover). Als Ergebnis einer identity-Operation
mit diesen beiden Coverages erhält man ein Punktcoverage, welches alle Baumstandorte aus dem Eingabecoverage enthält. Als Attributwert erhalten sie zusätzlich die ID der Polygone des identity_covers,
in das sie fallen. Aus dem Ausgabecoverage (out_cover) ist jetzt das Alter der einzelnen Bäume zu entnehmen.
in_cover
identity_cover
out_cover
i_point
op_poly
identpt
figs/i_pointmap
figs/op_polymap
figs/outidptmap
Arc: identity i_point op_poly identpt point
Producing identity of i_point with op_poly to create identpt
Overlaying points...
Creating identpt.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
Verschneiden Sie die Coverages largcity und natparks unter Verwendung des Befehls identity und beschreiben Sie die Wirkungsweise des Befehls anhand des Ergebnisses.
Coverages:
Arc-Befehle:
largcity, natparks
identity
Vorgehensweise:
123
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2.2.2. Liniencoverage
Beispiel 4-2. Tarifgrenzen für ÖPNV-Netz
Nach einer Neuordnung des Nahverkehrs in einem Verkehrsverbund sollen für das gesamte öPNV-Netz,
das in einem Coverage mit Linien für Straßen- und Schienenverkehr (in_cover) zusammengefaßt wurde,
die Tarife vereinheitlicht werden. Dazu werden Tarifgrenzen festgelegt und diese in einem Polygoncoverage (identity_coverage) festgehalten. Die einzelnen Polygone dieses Tarifgrenzencoverages enthalten nun
als Attributwert die Tarifregion. Verschneidet man nun mit dem Befehl identity den Netzplan mit dem
Tarifgrenzencoverage, so werden an den Tarifgrenzen Nodes in die Linien des Verkehrsnetzes eingefügt.
Das out_cover enthält so neben den ursprünglichen Informationen des Liniennetzes die Zugehörigkeit der
Streckenabschnitte zu den einzelnen Tarifzonen.
in_cover
identity_cover
out_cover
i_line
op_poly
outidentli
figs/i_linemap
figs/op_polymap
figs/outidlimap
Arc: identity i_line op_poly outidentli line
Producing identity of i_line with op_poly to create outidentli
Sorting...
Intersecting...
Assembling lines...
Creating outidentli.AAT...
** Item "FNODE#" duplicated, Join File version dropped **
** Item "TNODE#" duplicated, Join File version dropped **
** Item "LPOLY#" duplicated, Join File version dropped **
** Item "RPOLY#" duplicated, Join File version dropped **
** Item "LENGTH" duplicated, Join File version dropped **
?
Übung
Verschneiden Sie die Coverages river und natparks unter Verwendung des Befehls identity.
Wie wirkt der Befehl auf Geometrie und Attributwerte?
Coverages:
river, natparks
124
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Arc-Befehle:
identity
Vorgehensweise:
4.2.2.3. Polygoncoverage
Beispiel 4-3. Nunavut
Das in_cover enthält die Außengrenzen des neuen Territoriums Nunavut, das am 1. April 1999 aus dem
bisherigen Nordwest-Territorium entsteht. Ein Polygoncoverage des Nordwest-Territoriums, das die bekannten Erzlagerstätten enthält (identity_cover), soll mit Hilfe des Befehls identity auf die Ausdehnung
des neuen Territoriums Nunavut zurechtgeschnitten werden. Die neue Karte (out_cover) enthält die Informationen der größeren Karte, allerdings nur für die uns interessierende Region.
Hierbei werden die Polygone des In-Coverages in kleinere Einheiten unterteilt.
in_cover
identity_cover
out_cover
i_poly
op_poly
outidentpy
Arc: identity i_poly op_poly outidentpy
Producing identity of i_poly with op_poly to create outidentpy
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outidentpy.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
125
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Verschneiden Sie die Coverages indianres und natparks unter Verwendung des Befehls identity
und erläutern Sie die Wirkungsweise im Unterschied zu union. Beachten Sie dabei auch wieder
die Wirkung auf die Attributtabellen.
Coverages:
indianres, natparks
Arc-Befehle:
identity
Vorgehensweise:
4.2.3. Intersect
intersect erstellt ein neues Coverage, indem es die Elemente zweier Coverages übereinanderlegt. Das Ergebniscoverage enthält nur diejenigen Teile der Elemente, die in Input und Intersect-Coverage die gleichen
Flächen abdecken. Jedes Element im Ergebniscoverage erhält die Attribute der Polygone des IntersectCoverages, in die es fällt.
Abbildung 4-3. Das Intersect Menü
CommandTools
Analysis
Overlay
Intersect
Usage: INTERSECT <in_cover> <intersect_cover> <out_cover>
{POLY | LINE | POINT} {fuzzy_tolerance}
{JOIN | NOJOIN}
4.2.3.1. Punktcoverage
Beispiel 4-4. Brunnenstandorte und Altlasten
Das Eingabecoverage (in_cover) beinhaltet alle Brunnenstandorte in einem Landkreis als Punktinformation. Die Attributtabelle enthält neben interner ID (COVER#) und User-ID (COVER-ID) weitere Attributfelder zu Brunnentyp, Bohrtiefe, Wasserleistung, Alter, Wasserqualität. Ein weiteres Coverage enthält
Polygone aller Flächen, die aufgrund ihrer früheren Nutzung als Industrie- oder Lagerflächen altlastenverdächtig sind. Nutzt man das Altlastencoverage nun als intersect_cover, so erhält man mit intersect als
Ergebniscoverage (out_cover) ein Punktcoverage, das alle Brunnenstandorte enthält, die sich auf möglicherweise kontaminiertem Untergrund befinden. Diejenigen Brunnen aus dem Eingabecoverage, die sich
nicht auf altlastenverdächtigen Flächen befinden, erscheinen nicht im Ergebniscoverage.
126
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
in_cover
intersect_cover
out_cover
i_point
op_poly
outintpt
Arc: intersect i_point op_poly outintpt point
Intersecting i_point with op_poly to create outintpt
Overlaying points...
Creating outintpt.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
Bestimmen Sie mit Hilfe des Befehls intersect die Orte, die innerhalb von National Forests
liegen. Wem gehören die entsprechenden Waldstücke? (Hinweis: Beachten Sie die Erklärungen
zu den Attributtabellen in den Metadaten.) Wo liegen die Unterschiede in der Wirkungsweise zu
identity und union?
Coverages:
Arc-Befehle:
towns, natforest
intersect
Vorgehensweise:
4.2.3.2. Liniencoverage
Beispiel 4-5. Krötenwanderung
Von einem Straßennetz (in_cover) sollen diejenigen Streckenabschnitte ermittelt werden, die durch Feuchtgebiete (enthalten im Coverage intersect_cover) verlaufen und so verstärkt von Krötenwanderungen betroffen sind. Mit intersect erhält man ein Liniencoverage (out_cover), das nur die gesuchten Abschnitte
enthält, die in die Feuchtgebiete aus dem intersect_cover fallen. Mit den so erhaltenen Informationen kann
man nun z.B. die Zahl der aufzustellenden Warnschilder und die Länge des notwendigen Schutzzaunes
ermitteln.
127
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
in_cover
intersect_cover
out_cover
i_line
op_poly
outintli
figs/i_linemap
figs/op_polymap
figs/outinlimap
Arc: intersect i_line op_poly outintli line
Intersecting i_line with op_poly to create outintli
Sorting...
Intersecting...
Assembling lines...
Creating outintli.AAT...
** Item "FNODE#" duplicated, Join File version dropped
** Item "TNODE#" duplicated, Join File version dropped
** Item "LPOLY#" duplicated, Join File version dropped
** Item "RPOLY#" duplicated, Join File version dropped
** Item "LENGTH" duplicated, Join File version dropped
**
**
**
**
**
4.2.3.3. Polygoncoverage
Beispiel 4-6. Erosionsgefahr
Zu einem Untersuchungsgebiet existiert ein digitales Geländemodell und eine Karte der landwirtschaftlichen Nutzung. Aus dem Geländemodell wurden verschiedene Neigungstypen anhand ihrer Hangneigung
klassifiziert. Für diese Untersuchung wurden alle Polygone, die eine Hangneigung von mehr als 10 Prozent aufweisen ausgewählt und in ein eigenen Coverage geschrieben (in_cover). Ein weiteres Coverage
enthält diejenigen Flächen, auf denen Mais oder Zuckerrüben angebaut werden (intersect_cover). Mit
intersect erhält man diejenigen Flächen, die zugleich eine Hangneigung von mehr als 10 Prozent aufweisen und auf denen obengenannte Produkte angebaut werden. Als Ergebnis erhält man die besonders
erosionsgefährdeten Flächen.
in_cover
intersect_cover
out_cover
i_poly
op_poly
outintpy
figs/bsp1
figs/bsp2
figs/bsp_intersect
128
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Arc: intersect i_poly op_poly outinpy
Intersecting i_poly with op_poly to create outinpy
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outinpy.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
Verschneiden Sie die Coverages indianres und natparks unter Verwendung des Befehls intersect. Erläutern Sie die Funktionsweise von intersect anhand dieses Beispiels.
Coverages:
indianres, natparks
Arc-Befehle:
intersect
Vorgehensweise:
4.2.4. Clip
Diejenigen Elemente eines Input-Coverages werden ausgewählt, die vollständig innerhalb der Aussengrenzen eines anderen Coverages (Clip-Coverage) liegen, der Befehl wirkt also wie ein Plätzchenausstecher. Bei dem Clip-Coverage muß es sich immer um ein Polygon-Coverage handeln. Die Außengrenzen
der Polygone dieses Coverages definieren die Begrenzung, jenseits derer die Features des sogenannten
Input-Coverages abgeschnitten werden. Es kann aus den unterschiedlichsten Feature-Typen ausgestanzt
werden.
129
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Abbildung 4-4. Das Clip Menü
CommandTools
Analysis
Map Sheets
Clip
Usage: CLIP <in_cover> <clip_cover> <out_cover>
{POLY | LINE | POINT | NET | LINK | RAW}
{fuzzy_tolerance}
4.2.4.1. Punktcoverage
Beispiel 4-7. Gefährdete Standorte von geschützten Pflanzen
Aus einer Kartierung mit Punktmarkierungen für das Vorkommen bestimmter Orchideenarten (in_cover)
sollen diejenigen Elemente ausgewählt werden, die sich auf Bauerwartungsland (clip_cover) befinden.
Die gefährdeten Standorte finden sich dann im Ergebnis-Coverage out_cover.
in_cover
clip_cover
out_cover
i_point
op_poly
outclippt
Arc: clip i_point op_poly outclippt point
Clipping i_point with op_poly to create outclippt.
Overlaying points...
Creating outclippt.PAT...
?
Übung
Verschneiden Sie die Coverages indianres und towns unter Verwendung von clip. Erklären Sie
die Wirkung des Befehls clip anhand dieses Beispiels. Wo liegen die Unterschiede zu identity?
130
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Coverages:
indianres, towns
Arc-Befehle:
clip
Vorgehensweise:
4.2.4.2. Liniencoverage
Beispiel 4-8. Naturschutzgebiet
Diejenigen Abschnitte eines Wegenetzes, die durch ausgewiesene Naturschutzgebiete verlaufen, sollen
ausgewählt werden.
in_cover
clip_cover
out_cover
i_line
op_poly
outclipli
Arc: clip i_line op_poly outclipli line
Clipping i_line with op_poly to create outclipli.
Sorting...
Intersecting...
Assembling lines...
Creating outclipli.AAT...
?
Übung
Verschneiden Sie die Coverages natparks und highway unter Verwendung von clip.
Coverages:
natparks, highway
Arc-Befehle:
clip
Vorgehensweise:
131
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2.4.3. Polygoncoverage
Beispiel 4-9. Landnutzung einer Gemeinde
Die Landnutzung innerhalb der Grenzen einer Gemeinde soll aus einem größeren, anhand einer Luftbildauswertung ermittelten Datenbestand herausgelöst werden.
in_cover
clip_cover
out_cover
i_line
op_poly
outclippy
Arc: clip i_poly op_poly outclippy
Clipping i_poly with op_poly to create outclippy.
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outclippy.PAT...
?
Übung
Verschneiden Sie die Coverages indianres und natparks unter Verwendung von clip.
Coverages:
Arc-Befehle:
indianres, natparks
clip
Vorgehensweise:
4.2.5. Erase
Entfernt diejenigen Elemente eines Input-Coverages, die innerhalb der ausgewählten Polygone des EraseCoverages liegen.
132
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Erase wirkt wie das Gegenstück zu Update oder Clip. Hier werden jedoch die Features des Input Coverages, die von den Flächen des Erase Coverages überdeckt werden, gelöscht - quasi „ausradiert“. Das
Erase-Coverage muß ebenfalls Polygontopologie besitzen.
Entsprechend zu Clip gibt es sechs Möglichkeiten der Wahl von Feature Typen. Die jeweiligen GeometrieObjekte und ihre Attribute werden gelöscht.
Abbildung 4-5. Das Erase Menü
CommandTools
Analysis
Map Sheets
Erase
Usage: ERASE <in_cover> <erase_cover> <out_cover>
{POLY | LINE | POINT | NET | LINK | RAW}
{fuzzy_tolerance}
4.2.5.1. Punktcoverage
Beispiel 4-10. Kahlschlagflächen
Aus einem Eingabe-Coverage mit Baumstandorten sollen Kahlschlagsflächen herausgeschnitten werden.
in_cover
erase_cover
out_cover
i_point
op_poly
outerpt
Arc: erase i_point op_poly outerpt point
Erasing i_point with op_poly to create outerpt
133
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Overlaying points...
Creating outerpt.PAT...
?
Übung
Verschneiden Sie die Coverages largestcity und natforest unter Verwendung von erase.
Coverages:
Arc-Befehle:
largestcity, natforest
list, erase
Vorgehensweise:
4.2.5.2. Liniencoverage
Beispiel 4-11. Schienennetz
Aus einem Schienennetz-Coverage sollen diejenigen Bereiche herausgeschnitten werden, die von einem
Mitbewerber übernommen werden.
in_cover
union_cover
out_cover
i_line
op_poly
outerli
Arc: erase i_line op_poly outerli line
Erasing i_line with op_poly to create outerli
Sorting...
Intersecting...
134
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Assembling lines...
Creating outerli.AAT...
?
Übung
Erstellen Sie mit erase ein Straßencoverage, aus dem die Straßen entfernt wurden, die durch
Nationalparks verlaufen.
Coverages:
Arc-Befehle:
listcoverages list reselect clip
Vorgehensweise:
4.2.5.3. Polygoncoverage
Beispiel 4-12. Landbedeckung
Das Stadtgebiet, aus dem sämtliche Wasserflächen herausgenommen werden, ergibt die Landfläche.
in_cover
union_cover
out_cover
i_poly
op_poly
outerpy
135
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Arc: erase i_poly op_poly outerpy
Erasing i_poly with op_poly to create outerpy
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating outerpy.PAT...
?
Übung
Entfernen Sie aus dem Coverage mit der Klimaxvegetation (climveg diejenigen Flächen, die in
irgendeiner Form unter Schutz stehen fishwildl, natforest, natparks.
Coverages:
Arc-Befehle:
climveg, fishwildl, natforest, natparks
erase
Vorgehensweise:
4.2.6. Update
Ersetzt den Teil eines Input-Coverages der durch das Update-Coverage abgedeckt wird. Beide Coverages
müssen Polygon-Topologie besitzen. Die Optionen lauten: poly (Polygone und PAT werden aktualisiert)
und net (auch Arcs und AAT werden aktualisiert), außerdem keepborder (Außengrenze des Update Coverage wird nach Einfügen in das Input Coverage gespeichert) oder dropborder (wird weggelassen).
Abbildung 4-6. Das Update Menü
CommandTools
Analysis
Overlay
Update
Usage: UPDATE <in_cover> <update_cover> <out_cover>
{POLY | NET} {fuzzy_tolerance}
{KEEPBORDER | DROPBORDER}
136
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Beispiel 4-13. Aktualisierung von Karten
Die Grundlage für einen Teil einer Karte wurde aktualisiert und neu digitalisiert. Dieser Teil soll nun den
veralteten Teil auf der Karte ersetzen.
in_cover
update_cover
out_cover
i_poly
upd_poly
updpy
Arc: update i_poly upd_poly updpy
Updating i_poly with upd_poly to create updpy
Comparing i_poly and upd_poly items ...
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Creating updpy.PAT...
?
Übung
Ersetzen Sie im Coverage a die in b enthaltenen Flächen.
Coverages:
Arc-Befehle:
listcoverages list reselect clip
Vorgehensweise:
4.2.7. Split
Teilt ein Coverage entsprechend einem Split-Coverage in mehrere. Die Auswahl erfolgt anhand der ange-
137
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
gebenen Attributwerte.
Abbildung 4-7. Das Split Menü
CommandTools
Analysis
Map Sheets
Split
Usage: SPLIT <in_cover> <split_cover> <split_item>
{POLY | LINE | POINT | NET | LINK | RAW}
{fuzzy_tolerance}
Beispiel 4-14. Kreisgrenzen
Coverage mit Landesgrenzen wird in Einzelcoverages mit Kreisgrenzen geteilt.
in_cover
split_cover
out_cover(s)
op_poly
i_poly
teil2
figs/op_polymap
figs/i_polymap
figs/teil2
138
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Arc: list i_poly.pat
Record
AREA
1
-42.000
2
10.500
3
10.500
4
10.500
5
10.500
PERIMETER I_POLY# I_POLY-ID
26.000
1
0
13.000
2
2
13.000
3
3
13.000
4
4
13.000
5
5
Arc: split op_poly i_poly i_poly-ID poly
Fuzzy tolerance will be calculated or set from the TOL file
When done entering coverages type END or a blank line.
Enter the 1st coverage: teil2
Enter item value: 2
Enter the 2nd coverage: teil4
Enter item value: 4
Enter the 3rd coverage:
Done entering coverage names (Y/N)? y
Do you wish to use the above coverages (Y/N)? y
Filtering polygons and sorting...
Intersecting...
Building Split Table...
Splitting...
?
Übung
Teilen Sie das Coverage landuse anhand der in counties enthaltenen Flächen in mehrere
Coverages.
Coverages:
landuse, counties
Arc-Befehle:
list split
Vorgehensweise:
139
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2.8. Mapjoin
ARC/INFO-Coverages repräsentieren einen Kartenausschnitt. Soll ein Gebiet analysiert werden, das größer als ein solches Coverage ist, muß aus zwei oder mehr Einzelcoverages ein neues Coverage zusammengesetzt werden. Diese Aufgabe leistet der Befehl Mapjoin für Polygon- oder Netzwerkcoverages
(mit Polygonen und Arcs). Die Attributdateien werden dabei durch einen Join verbunden und die Topologie wiederhergestellt. Mittels der Option Template kann ein Coverage gewählt werden, dessen Feature
Class die Feature Classes angibt, die verknüpft werden sollen.
mapjoin und append können bis zu 500 Coverages gleichzeitig zusammenfügen. Diese werden nacheinander in der Zeile Input Coverages gewählt und erscheinen nach Return in der sich darunter befindlichen
Liste.
Mit Delete selected können ausgewählte Coverages aus der Sammlung gelöscht werden. Selbstverständlich muß für das neu entstehende Coverage ein Name unter Output coverage angegeben werden.
Die Option unter Calculate ID offsets bestimmt, ob die IDs für das neu entstehende Coverage beibehalten
oder neu durchnumeriert werden sollen.
Abbildung 4-8. Das Mapjoin Menü
CommandTools
Analysis
Map Sheets
Map Join
Usage: MAPJOIN <out_cover>
{feature_class...feature_class | template_cover}
{NONE | FEATURES | TICS | ALL} {clip_cover}
140
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Beispiel 4-15. Teildigitalisierungen zusammenfassen
Verschiedene Teilbereiche eines Gebietes wurden von verschiedenen Personen digitalisiert und sollen jetzt
zusammengeführt werden.
in_cover
in_cover
out_cover
op_poly
i_poly
teil2
figs/op_polymap
figs/i_polymap
figs/teil2
?
Übung
Verbinden Sie die durch split geteilten Coverages durch mapjoin wieder zu einem Coverage.
Coverages:
Arc-Befehle:
listcoverages list reselect clip
Vorgehensweise:
4.2.9. Append
Append funktioniert ähnlich wie Mapjoin. Es vereinigt Coverages in ein Einzelcoverage, ohne jedoch
die Topologie neu zu erstellen, d.h. build oder clean ist erforderlich, bevor das Coverage weiterverwendet
werden kann.
Dies ist oft der sicherere Weg, da das Resultat unter der Kontrolle des Bearbeiters bleibt und damit jeder
Schritt nachvollzogen werden kann.
append verfügt über eine größere Auswahl zusammenfügbarer Feature Classes. Es können bis zu 500
Coverages auf einmal zusammengefügt werden.
141
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Abbildung 4-9. Das Append Menü
CommandTools
Analysis
Map Sheets
Append
Usage: APPEND <out_cover>
{NOTEST | template_cover | feature_class...feature_class}
{NONE | FEATURES | TICS | ALL}
Beispiel 4-16. Landkreis
Gemeindegrenzen wurden einzeln digitalisiert und georeferenziert und sollen jetzt ein ein Coverage mit
den Gemeindegrenzen des gesamten Landkreises überführt werden.
union_cover
union_cover
union_cover
teil2
teil4
teil2u4
figs/teil2
figs/teil4
figs/teil2u4
Arc: append teil2u4
Enter Coverages to be APPENDed (Type END or a blank line when done):
=====================================================================
Enter the 1st coverage: teil2
Enter the 2nd coverage: teil4
Enter the 3rd coverage:
Done entering coverage names (Y/N)? y
Do you wish to use the above coverages (Y/N)? y
Appending coverages...
?
Übung
Verbinden Sie die durch split geteilten Coverages durch append wieder zu einem Coverage
und erstellen Sie die Topologie neu.
Coverages:
Arc-Befehle:
listcoverages list reselect clip
Vorgehensweise:
142
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.2.10. Reselect
Wählt Elemente eines Coverages nach den vorgegebenen Kriterien aus und schreibt diese Untermenge in
ein neues Coverage. Zur Auswahl der Objekte werden logische Ausdrücke angegeben. Die gerade aktuellen Ausdrücke müssen in der Liste Current Expressions stehen. Das Erstellen neuer Auswahlkriterien
wird durch das Logical Expression-Menü erleichtert, das durch Drücken der 3-Taste (rechte Maustaste)
in dem Eingabefeld erscheint. Für das Ergebniscoverage muß ein neuer Name angegeben werden.
Abbildung 4-10. Das Reselect Menü
CommandTools
Analysis
Extract
Select
Usage: RESELECT <in_cover> <out_cover> {in_feature_class}
{selection_file} {out_feature_class}
Beispiel 4-17. Ackerflächen nach Besitzern
Ein Coverage mit Ackerflächen soll in Einzelcoverages für jeden Besitzer aufgeteilt werden.
in_cover
reselected
ganz
teil
figs/teil2u4
figs/teil4
143
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Arc: reselect ganz teil
Reselecting POLYGON features from GANZ to create TEIL
Enter a logical expression. (Enter a blank line when finished)
>: reselect ganz-id in {3,4}
>:
Do you wish to re-enter expression (Y/N)? n
Do you wish to enter another expression (Y/N)? n
2 features out of 5 selected.
Reselecting polygons...
Number of Polygons (Input,Output) =
5
3
Number of Arcs
(Input,Output) =
12
7
Creating TEIL.pat...
6 unique nodes built for /DATA/TEIL
?
Übung
Fügen Sie die Coverages a und b zusammen und erzeugen Sie die Topologie neu.
Coverages:
Arc-Befehle:
listcoverages list reselect clip
Vorgehensweise:
4.2.11. Dissolve
Durch Dissolve werden benachbarte Flächen verschmolzen, wenn die Attribute beider Polygone dieselben
Ausprägungen aufweisen.
Abbildung 4-11. Das Dissolve Menü
CommandTools
Edit
Topology
Dissolve
144
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Usage: DISSOLVE <in_cover> <out_cover> <dissolve_item | #ALL>
{POLY | LINE | NET | REGION.subclass}
Beispiel 4-18. Nahtlose Kartenübergänge
Durch mapjoin aneinandergefügte Coverages weisen durch die Kartengrenzen noch Grenzen zwischen
Polygonen mit identischen User-IDs auf. Diese werden durch dissolve aufgelöst.
union_cover
union_cover
diss_poly
dissd4
figs/diss_poly
figs/dissd
Arc: dissolve diss_poly dissd diss_poly-ID
Dissolving diss_poly by diss_poly-ID to create dissd
Creating dissd.PAT format...
Creating dissolve table...
Dissolving...
Number of Polygons (Input,Output) =
5
Number of Arcs
(Input,Output) =
9
Creating dissd.PAT...
3
3
4.2.12. Entfernen von Restflächen mit Eliminate
Bei der Verschneidung nicht vollständig deckungsgleicher Linien können kleine Restflächen - sogenannte
Sliver Polygons - entstehen2.
Diese können mit der Funktion eliminate entfernt werden. Dies kann über den maximalen Flächeninhalt
oder die Kantenlänge gesteuert werden, die ein Polygon mindestens besitzen muß, um als vollwertiges
Polygon anerkannt zu werden, und der Funktion Eliminate nicht zum Opfer zu fallen.
Eliminate löst ausgewählte Polygone auf, indem sie sie den benachbarten Polygonen mit der größten
gemeinsamen Grenze zuschlägt.
Unter CommandTools erfolgt die Auswahl der Lösch-Kriterien im Logical Expression Builder, den man
durch Druck der rechten Maustaste im Feld Logical Expression erhält.
145
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Abbildung 4-12. Das Eliminate Menü
CommandTools
Edit
Topology
Eliminate
Usage: ELIMINATE <in_cover> <out_cover> {NOKEEPEDGE | KEEPEDGE}
{POLY | LINE} {selection_file} {BORDER | AREA}
Beispiel 4-19. Doppelt digitalisierte Linien
Beim Digitalisieren von Polygonen wurde eine Linie versehentlich zweimal übereinander digitalisiert.
Nach der erneuten Erstellung der Topologie sind dadurch zahlreiche Mini-Polygone entstanden. Diese
werden anhand der Größe ihrer Fläche ausgewählt und den jeweiligen Nachbarpolygonen zugeschlagen.
4.3. Entfernungsberechnungen
4.3.1. Buffer: Erzeugung von Pufferzonen
Eine der bekanntesten Analysefunktionen eines GIS ist die Pufferbildung (Buffering). Das zugehörige
Fenster findet sich in CommandTools unter Analysis. Mit diesem lassen sich Pufferzonen eines bestimmbaren Radius um Flächen, Linien, Punkte oder Nodes generieren. Dadurch wird als Ergebnis ein neues
Coverage erzeugt, welches logischerweise Polygonstruktur, d.h. auch schon Topologie aufweist.
146
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
!
Wichtig
Die Pufferzonen in der Ergebnistabelle werden geometrisch und über die Attributwerte definiert. Dazu
dient das Feld INSIDE in dem Ausgabecoverage: Ein Wert von 100 besagt, daß die Fläche innerhalb
des Puffers liegt, ein Wert von 0 bezeichnet außerhalb liegende Flächen. Bei der weiteren Auswertung bzw. Visualisierung von Ergebnissen muß daher gegebenenfalls erst der Puffer mit reselect
ausgewählt werden.
Usage: BUFFER <in_cover> <out_cover> {buffer_item}
{buffer_table} {buffer_distance}
{fuzzy_tolerance} {LINE | POLY | POINT | NODE}
{ROUND | FLAT} {FULL | LEFT | RIGHT}
Beispiel 4-20. Pufferzone um Schnellstraßen
Es sollen Flächen identifiziert werden, die bis zu 250 m von einer Schnellstraße entfernt sind.
* TODO LN: Abbildungen dazu mit 0, 100 Werten, verschiedenen Optionen (round, flat)
Coverages:
Arc-Befehle:
Vorgehensweise:
Arc: buffer railroads rail3000 # # 3000
Buffering ...
Sorting...
Intersecting...
Assembling polygons...
Creating new labels...
Finding inside polygons...
Dissolving...
Building nodes...
Creating rail3000.PAT...
Statt der Angabe einer einfachen Pufferdistanz ist auch die Verwendung eines sogenannten BufferTable
möglich. In diesem befindet sich eine Spalte mit der Buffervariablen. Diese muß einer der Variablen in
der AttributeTable des Input-Coverages entsprechen. Jeder Ausprägung derselben ist eine Pufferdistanz
zugeordnet. Diese trägt den obligatorischen Namen DIST. Dadurch können unterschiedliche Weiten der
Pufferzonen um Raumobjekte mit unterschiedlichen Variablenausprägungen erzeugt werden.
Falls eine Variable des Input-Coverages direkt als Distanzwert dienen soll, kann diese mittels Buffer Item
angegeben werden.
Als weitere Option kann angegeben werden, ob die Puffer einseitig (Links/Rechts) oder beidseitig um die
Arcs erzeugt werden sollen. Außerdem wird durch die Optionen Round oder Flat angegeben, wie die
Enden behandelt werden sollen (abgerundet oder flach abgeschnitten).
147
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
4.4. Entfernungsberechnungen
Die folgenden Befehle finden sich nach Auswahl von Proximity im Analysis-Pulldownmenü der Command Tools.
4.4.1. Near
Der Befehl Near wird benutzt, um die Entfernung jedes Punktes in einem Coverage zu dem nächsten Arc
(oder Point oder Node) eines zweiten Coverages zu berechnen. Damit können beispielsweise Attribute eines Punkt-Features dem nächstgelegenen Arc zugeschrieben werden, oder umgekehrt. Ein Anwendungsbeispiel sind Adressenbereiche für Straßenabschnitte.
* TODO LN: Kommandozeilenversion, Abbildung
Near ist für drei Feature Classes und damit mit folgenden Optionen anwendbar:
LINE
Die Entfernung von einem Punkt zu einem Arc wird berechnet. Diese wird als neuer Item zusammen mit
der internen Nummer (Name#) des nähesten Arcs im Near-Coverage standardmäßig in die PAT des Input
Coverages geschrieben.
POINT
Die Entfernung zwischen zwei Punkten (in den beiden unterschiedlichen Coverages) wird berechnet und
(genauso wie bei LINE) mit der internen ID in die PAT des Input Coverages geschrieben.
NODE
Die Entfernung zwischen Punkten und Nodes wird bestimmt. Diese wird wieder zusammen mit der internen ID des nächstgelegenen Nodes im Near Coverage der PAT des Input Coverages hinzugefügt.
Weiterhin kann ein maximaler Suchradius angegeben werden (Search Radius). Liegt das nächstgelegene
Feature nicht innerhalb dieser Distanz, wird es nicht dem Ergebnis-Coverage hinzugefügt.
Schließlich kann der Defaulteintrag der internen ID des nächsten Punktes dahingehend erweitert werden,
daß auch seine X- und Y-Koordinaten mitgespeichert werden. Dies bewirkt die Auswahl des LocationKnopfes. No Location behält die Standardeinstellung.
Als Output Coverage muß ein neuer Name für das neu zu erstellende Coverage angegeben werden.
4.4.2. Entfernungsmatritzen zwischen Punkten
Die Funktion Point-Distance errechnet Entfernungstabellen zwischen den Punkten und den Nodes der
entsprechenden Punkt- bzw. Node-Coverages.
4.4.3. Thiessen-Polygone
Die Funktion thiessen berechnet aus einem Punktcoverage Polygone, indem um jeden Punkt Grenzlinien
mit maximal möglichem Abstand gezogen werden. D.h. jeder Punkt auf einem Geradenstück zwischen
zwei der sogenannten Thiessen-Polygone ist von dem Mittelpunkt des entsprechenden Polygons gleich
148
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
weit entfernt. Die ursprünglichen Punkte dienen also als Mittelpunkte zu erzeugender flächenmaximaler
Polygone.
Diese Analysemethode geht davon aus, daß bei einer zweidimensionalen Verteilung von Punkten die beste
Annäherung an andere Punkte durch den nächstgelegenen Punkt erfolgt. D.h.: Alle Punkte, die in dem
entstandenen Polygon liegen, sind wahrscheinlich eher durch dem Punkt im Zentrum des Polygons gut
repräsentiert, als mit jenen in den benachbarten Polygonen. Burrough, 1998, 114f. diskutiert die Nachteile
dieser Methode. Sie eignet sich vor allem für qualitative (nominale) Daten.
* TODO LN: Abbildung dazu: Punkte, Thiessen-Polygone (evtl. Delaunay-Dreiecke grau dahinterlegen)
Usage: THIESSEN <in_cover> <out_cover> {proximal_tolerance}
Arc: thiessen largcity citythiess
Loading points from coverage largcity...
Triangulating...
Creating Thiessen structure...
Constructing arc/polygon topology ...
Generating polygon attributes ...
4.4.4. Abschlußübung
Zum Abschluß dieses Kapitels erhalten Sie noch einmal die Möglichkeit, den Umgang mit den vorgestellten Analysewerkzeugen zu üben. Es ist durchaus möglich, daß Sie auf verschiedenen Wegen zum Ziel
gelangen.
Benutzen Sie für diese Übung die Coverages für den gesamten Staat Montana. Sie müssen diese dazu
nicht in Ihr Verzeichnis kopieren. Es reicht aus, jeweils den kompletten Pfad zu einem Verzeichnis mit
Leseberechtigung anzugeben.
Arc: intersect /data/towns /data/landuse lutowns point
Intersecting /data/towns with /data/landuse to create lutowns
Overlaying points...
Creating lutowns.PAT...
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
** Item "AREA" duplicated, Join File version dropped **
** Item "PERIMETER" duplicated, Join File version dropped **
?
Übung
Ein Investor möchte eine Restaurantkette Fried Green Tomatoes eröffnen und dazu geeignete
alte Bahnhöfe in Montana finden. Er wendet sich an Sie, um ihm dabei behilflich zu sein. Wir
149
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
gehen in diesem Fall (hypothetisch) davon aus, daß jeder Ort, der auf einer Bahnlinie liegt über
einen Bahnhof verfügt (oder früher darüber verfügt hat) und daß alle Bahnhöfe in Orten mit unter
700 Einwohnern inzwischen aufgegeben wurden (und somit potenziell zur Verfügung stehen).
Markterhebungen haben ergeben, daß potenzielle Kunden in mittleren bis größeren Städten zu
finden sind und diese bereit sind, bis zu 12 km von ihrem Heimatort zurückzulegen. Reisende
auf den Interstate-Highways würden einen Umweg von bis zu 8 km auf sich nehmen.
Um die Auswahl einzuschränken gelten also folgende Kriterien:
• maximal 12 km (Luftlinie) von einem Ort mit mindestens 3000 Einwohnern
• ODER maximal 8 km (Luftlinie) von einem Interstate Highway entfernt
Welche Orte sollte sich der Investor näher ansehen? Wie viele Schulen gibt es an diesen Orten?
Konzentrieren Sie sich für diesen Aufgabenteil auf die Analyse. Die ansprechende Darstellung
in einer Karte stellen wir in Kapitel 6 vor.
4.5. Weitere Werkzeuge - Die Productivity Tools
Die Produktivity Tools umfassen eine Sammlung weiterer Funktionen in ARCTOOLS unter:
MapTools
View
Produktivity Tools
Zu diesen Productivity Tools zählen Kommandos, die in früheren Versionen nur von der Kommandozeile
aus aufzurufen waren und jetzt eine graphische Benutzeroberfläche erhalten haben, oder die ab der Version
7 tatsächlich neu hinzugekommen sind, wie die später erläuterten Animations-Tools.
Abbildung 4-13. Das Productivity Tools Menü
4.5.1. Geokodieren von Adressen
Abbildung 4-14. Das Productivity Tools Menü
150
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
Besonders für marktwirtschaftliche Aufgabenstellungen ist das sogenannte Geokodieren (Geocoding),
nämlich das Zuweisen von Adressen, bzw. Adressbereichen zu digitalen Kartengrundlagen, insbesondere
Strassenabschnitten), von immenser Bedeutung. Dies gilt für fast alle Firmen, die große Adressenbestände
angesammelt haben und nun z.B. analysieren wollen, wo ihre Kunden überhaupt herstammen und welche
Charakteristika deren Nachbarschaften aufweisen. Dies kann dazu dienen, das Standortnetz der Filialen
zu optimieren, oder um Werbemaßnahmen gezielter durchführen zu können. Gerade in den letzten Jahren
hat die Bedeutung des sogenannten Geomarketing deutlich zugenommen.
* TODO AZ: paar Takte zu Geocoding
4.5.2. Auswahl anhand von Attributdaten mit reselect
Als Datenmaterial für Analyseübungen stehen Daten über den Nordwesten der USA (EPA-Region 8) im
ARC/INFO-Exportformat unter folgender Addresse zur Verfügung:
http://www.epa.gov/region8/maps/gisdata.html
Da die Daten für den gesamten Bundesstaat zu umfangreich sind, müssen wir zunächst das Untersuchungsgebiet auf jeweils eine oder mehrere Counties beschränken 3. Dazu bedienen wir uns des ARCBefehls reselect.
Anhand ihrer IDs werden die Counties aus dem Staaten-Coverage ausgewählt und in in ein Einzelcoverage
geschrieben, das jeweils nur die Grenzen des einzelnen County enthält. In Verbindung mit clip können
wir nun aus den verschiedenen Montana-Coverages die uns interessierenden Counties herausschneiden.
Coverages:
Arc-Befehle
counties
listcoverages, list, reselect, clip
Vorgehensweise Attributtabelle zu Coverage counties ansehen, IDs heraussuchen, mit reselect
gesuchte Polygone auswählen und in neues Coverage im eigenen Arbeitsverzeichnis
schreiben, mit clip alle Coverages auf County-Ausdehnung zurechtschneiden.
Zunächst ermitteln wir mit Hilfe der Attributtabelle die IDs der uns interessierenden Counties:list
Arc: list /home/arc/montana/counties.pat
1
AREA
= ************
PERIMETER
= 3152173.000
COUNTIES#
=
1
COUNTIES-ID
=
0
NAME
=
FIPS
=
0
ACRES
=
0
SQMILES
=
0.00
COVNAME
=
2
AREA
= ************
PERIMETER
=
513007.500
COUNTIES#
=
2
COUNTIES-ID
=
1
NAME
= LINCOLN
FIPS
=
53
151
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
ACRES
SQMILES
COVNAME
=
2351827
= 3674.73
= LINCOLN
3
AREA
PERIMETER
COUNTIES#
COUNTIES-ID
NAME
FIPS
ACRES
SQMILES
COVNAME
= ************
=
284337.750
=
3
=
2
= SHERIDAN
=
91
=
1091958
= 1706.18
= SHERIDAN
Mit Hilfe dieser Information wählen wir die interessierenden Polygone aus und erstellen ein neues Coverage mit diesem Inhalt.4
reselect counties count4 poly
Reselecting POLYGON features from COUNTIES to create COUNT4
Enter a logical expression. (Enter a blank line when finished)
>: reselect counties-ID = 4
>:
Do you wish to re-enter expression (Y/N)? n
Do you wish to enter another expression (Y/N)? y
>: aselect counties-ID = 18
>:
Do you wish to re-enter expression (Y/N)? n
Do you wish to enter another expression (Y/N)? n
2 features out of 58 selected.
Reselecting polygons...
Number of Polygons (Input,Output) =
58
3
Number of Arcs
(Input,Output) =
244
15
Creating COUNT4.pat...
Creating COUNT4.AAT...
15 unique nodes built for /HOME/LNUECKER/MONTANA/COUNT4
Wenn wir nun noch einmal die Polygon-Attributtabelle ansehen, erscheinen nur noch die beiden ausgewählten Polygone (und natürlich das Universalpolygon).
Arc: list count4.pat
1
AREA
PERIMETER
COUNT4#
COUNT4-ID
NAME
FIPS
ACRES
SQMILES
COVNAME
2
AREA
PERIMETER
= ************
=
906912.062
=
1
=
0
=
=
0
=
0
=
0.00
=
= ************
=
457402.219
152
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
COUNT4#
COUNT4-ID
NAME
FIPS
ACRES
SQMILES
COVNAME
=
2
=
4
= GLACIER
=
35
=
1943478
= 3036.68
= GLACIER
3
AREA
PERIMETER
COUNT4#
COUNT4-ID
NAME
FIPS
ACRES
SQMILES
COVNAME
= ************
=
449509.844
=
3
=
18
= MCCONE
=
55
=
1716828
= 2682.54
= MCCONE
1
Mit Hilfe des Befehls clip können jetzt die einzelnen Coverages auf County-Format verkleinert werden.
Arc: usage clip
Usage: CLIP <in_cover> <clip_cover> <out_cover>
{POLY | LINE | POINT | NET | LINK | RAW}
{fuzzy_tolerance}
Je nach Featuretyp des in_cover muß line, point oder poly angegeben werden.
Arc: clip /home/arc/montana/river count4 c4river line
Clipping /home/arc/montana/river with count4 to create c4river.
Sorting...
Intersecting...
The specified tolerance 0.09994255 is below the minimum resolution for this
data - intersections will be detected with a tolerance of 0.20553636 instead.
Assembling lines...
Creating /HOME/ARC/MONTANA/C4RIVER.AAT...
Overlaying annotation...
Dies wiederholt man nun für alle Coverages:
FWSLPL (poly) ab29 (Fish and Wildlife Service Lands)
AUTOBLN (line) rd16 (Highways)
IRPL (poly) ab9 (Indian Reservations)
LANDNPL (poly) lu23 (Major Land Uses)
CVPL (poly) lu26 (Climax Vegetation)
STPT (point) ct4 (Largest City in each County)
OPT (point) ct107 (Montana Cities and Towns)
STPL (poly) ct2 (Montana Cities)
BEZPL (poly) ab42 (1995 Legislative Districts)
GITTERLAT (poly) cf2 (1 degree lat./long grid)
FISHWILDADM (poly) ab44 (Fish, Wildlife and Parks Regions)
WALDPL (poly) ab13 (National Forests with Ownership)
153
Kapitel 4. Räumliche Analyse in ARC und mit CommandTools
NATPARKPL (poly) ab28 (National Park Service Lands)
HYDPOL (poly) hd47 (Surface Water Supply Index)
EISENBLN (line) rr5 (Railroads ca. 1965)
HYDPLLN (poly,line) hd49 (Simplified Hydrography)
EINZUGPLLN (poly, line) hd52 (River Basins)
BEVDPL (poly), ab135 (Population Density by Block Group)
Zusätzlich liegen auf County-Basis Daten zur Verteilung der Bevölkerungsgruppen vor.
Weiterführende Literatur:
Peter A. Burrough und Rachael A. McDonnell, 1998, Principles of Geographical Information Systems,
Oxford: OUP.
Graeme F. Bonham-Carter, 1994, Geographic Information Systems for Geoscientists: Modelling with GIS,
Oxford: Pergamon/Elsevier.
Stewart Fotheringham und Peter Rogerson, 1994, Spatial Analysis and GIS, London: Taylor & Francis.
Fußnoten
1. In der Voreinstellung JOIN bleiben die Attributwerte der Ursprungspolygone erhalten. Wählt man nur
diejenigen Polygone aus, die in der entsprechenden User-ID einen Wert ungleich 0 besitzen, kann
man das ursprüngliche Coverage rekonstruieren. Dieser Befehl kann nur auf zwei Polygoncoverages
angewandt werden.
2. Diese können auch bei fehlerhafter Digitialisierung entstehen, wenn z.B. eine Linie zweimal übereinander digitalisiert wird und zwangsläufig nicht genau aufeinander zu liegen kommt.
3. Gilt für einen späteren Teil der Übung
4. Der reselect-Befehl existiert in ähnlicher Form auch in anderen ARC/INFO-Modulen. Es ist z.B. in
ARCPLOT möglich, nur einen Teil der Elemente eines Coverages auszuwählen und anzuzeigen, ohne
das Coverage selbst zu ändern oder ein neues erstellen zu müssen.
154
Kapitel 5. Netzwerkanalyse
Netzwerke sind durch Linien verbundene Systeme, entlang derer Bewegungen von Menschen, Materialien, Informationen etc. stattfinden. Linienhafte Prozesse lassen sich in Geographischen Informationssystemen modellieren bzw. simulieren
5.1. Netzwerkanalyse - Tourenplanung
Zunächst sollen die Grundlagen der Tourenplanung kurz angerissen werden. Routenplanung hat im Allgemeinen eine möglichst gute Einbindung vorgegebener Zielpunkte in eine zusammenhängende Reiseroute 1
einer Person zum Ziel. Grundlagen für die computergestützte Routenfindung sind dabei:
• Streckennetz als topologisches Vektormodell
• attributierte Streckenabschnitte
• Algorithmen zur mathematischen Ermittlung der kürzesten Wege
• Bedingungen für die Anwendung der Algorithmen auf das Streckennetz
Im Bereich Tourenplanung können drei Grundfragen unterschieden werden:
5.1.1. Kürzester Weg
Das Problem des kürzesten Weges (engl. „shortest path“) liegt allen Ansätzen zugrunde, die zurückzulegende Wegstrecke bezüglich der Wegkosten zu optimieren versuchen. Für die Wahl des kürzesten Weges
müssen die Alternativstrecken, die zwei oder mehrere Orte miteinander verbinden, bewertet und verglichen werden.
5.1.2. Gravitation
Das Problem der Gravitation betrifft die Suche nach dem nächstgelegenen Objekt einer bestimmten Objektart oder den Objekten einer Art innerhalb eines definierten Abstandes zum Ausgangspunkt. Eine Frage
könnte also lauten: „Wo ist der nächste Briefkasten?“ oder „Welches sind die am nächsten gelegenen Restaurants?“
5.1.3. Traveling-Salesman-Problem (TSP)
Das TSP als kassisches Problem der Informatik beinhaltet die Ausgangsfragestellung für die Tourenplanung. Es handelt sich hierbei um die Ermittlung einer Besuchsroute durch eine durch Verkehrswege
verbundene, gegebene Menge von Zielorten. Start und Ziel sind identisch, die einzelnen Routen bilden
also eine Tour. Zielsetzung ist die Minimierung der zurückgelegten Entfernung (GRUPP 1987).
155
Kapitel 5. Netzwerkanalyse
In der Regel basiert die Bewertung einer Strecke auf den durch sie verursachten Wegkosten. Diese basieren meist auf der Streckenlänge oder Zeit (als Quotienten aus Entfernung und Geschwindigkeit). Diese
Wegkosten müssen aber in Abhängigkeit der Fragestellung modifiziert werden.
Auf Grundlage solcher Routenalgorithmen wurde z.B. im Deep Map Projekt Programme zum Vorschlagen indiviueller Besichtigungstouren für Touristen entwickelt (Zipf und Röther 2000). Für den Benutzer dieser Module werden Strecken berechnet, die in Abhängigkeit individueller Angaben bezüglich des
Verkehrsmittels, der zur Verfügung stehenden Zeit und persönlicher Präferenzen unterschiedlich ausfallen und auch die zu besuchenden Zielorte (Sehenswürdigkeiten auswählen). Eine Streckenbewertung für
touristische Belange muß dabei Faktoren berücksichtigen, die von den für die Routenplanung üblichen
Kriterien abweichen. Die Anforderung „kürzeste Strecke“ wird dabei durch „geringste individuelle Wegkosten“ als Maß für „attraktivste Strecke“ ersetzt. In realen Situationen sind Distanz oder Zeit nicht die
einzigen Größen, wenn es darum geht, die für den Benutzer passende Tour zu ermitteln. So sind neben
„harten“ Attributen wie Streckenlänge und benötigte Zeit, sowie die aus ihnen zu ermittelnden ökonomischen, ökologischen und sonstigen Kosten auch „weiche“ Streckeneigenschaften denkbar, die sich eher
an subjektiven Eindrücken orientieren.
5.1.4. Netzwerkanalysen mit den Productivity Tools
Unter der Kategorie Network befindet sich eine ganze Sammlung von Tools, die das Arbeiten mit Netzwerken sowie deren Analyse erleichtern. Dazu gehören Pathfinding oder Allocation Modeling. Unter
der Option Location-Allocation befindet sich ein eigenes Pulldownmenü mit einer ganzen Reihe von
weiteren Verzweigungen (vgl. Abb.).
Abbildung 5-1. Das Productivity Tools Menü, Type = Network und das Location-Allocation-Pulldownmenü
Ab Version 7.0 enthält ARC/INFO solche ArcTools-Menüs, die den Benutzer z.B. bei der Suche nach
kürzesten oder kostengünstigsten Strecken unter Einbeziehung verschiedener Orte in einem Netzwerk
unterstützen. Anwendungsbeispiele finden sich in der Logistik, Tourenoptimierung oder ähnlichem. Das
PathfindingTool kann zwei Dinge finden:
Einen Path, das ist die kürzeste (oder abhängig von einer Variablen am wenigsten aufwendige) Strecke in
einem Netzsystem oder eine Tour. Letzteres wäre der effizienteste Weg zu mehreren Orten oder Haltestellen.
Was wird für die Streckenfindung benötigt?
Zunächst benötigt man ein Network Link Coverage, das als Link Thema im aktiven View gespeichert
wird. Dieses Link-Thema enthält außer der Information über den Pfad zum Network Link Coverage
die Variable Item, die den Widerstand auf dem Netzwerk definieren soll. Optional können noch Tabellen
angegeben werden, die die Abbiegevorschriften definieren (Turn Table) oder Variablen, die Barrieren
(Barriers) angeben.
156
Kapitel 5. Netzwerkanalyse
Alle diese Informationen bestimmen die Kosten oder den Widerstand, der aufzubringen ist, wenn man
sich durch das Netzwerk fortbewegt. Beispiele wären finanzielle Kosten (z.B. Fahrpreise im öPNV, Geschwindigkeitsbeschränkungen oder einfach die Entfernung).
* TODO LN/AZ: erweitern
Weiterführende Literatur:
N. N., 2001, N.N., N.N..
Fußnoten
1. Die Begriffe Route und Tour werden in der Literatur nicht einheitlich verwendet. Im Allgemeinen
versteht man unter einer Route die Wegstrecke zur Verbindung zweier oder mehrerer Punkte, wobei
der Zielpunkt nicht gleich dem Ausgangspunkt ist. Eine Tour hingegen bezeichnet eine Rundreise, die
im Allgemeinen der Besichtigung oder des Besuches mehrerer Objekte dient und zum Ausgangspunkt
zurückführt. In diesem Sinne sollen die Begriffe Route und Tour im folgenden verwendet werden.
Eine Tour kann in ihre einzelnen Routen und diese wiederum in Abschnitte zerlegt werden. Ziel der
Tour ist, im Gegensatz zur Route, nicht das Erreichen des Zielpunktes, sondern vielmehr der Besuch
der auf dem Weg liegenden Objekte. Wird von der Optimierung ganzer Fuhrparks gesprochen, ist von
Tourendisposition (BARTELME, 1994) die Rede.
157
Kapitel 5. Netzwerkanalyse
158
Kapitel 6. Visualisierung
ARC/INFO bietet verschiedene Möglichkeiten zur Ausgabe von Analyseergebnissen, sei es auf dem Bildschirm, auf Papierkarten oder in Form animierter Bildsequenzen. Auch hier kann die Auswahl von Features über die Attributtabellen eingeschränkt werden.
In ARC/INFO gibt es mehrere Möglichkeiten zur Visualisierung von Analyseergebnissen. Neben der
Bildschirmausgabe spielt die Ausgabe auf Papierkarten immer noch eine große Rolle.
ARCTOOLS ermöglicht die interaktive Kartenerstellung. Einzelne Elemente werden über Menüs und
Dialogboxen ausgewählt. Verschiedene Kartenlayouts sind vordefiniert und können verwendet werden.
Die Karten werden in der Regel am Bildschirm entworfen.
ARCPLOT wird dagegen über die Kommandozeile oder zuvor erstellte AMLs bedient. So ist es möglich,
das Erscheinungsbild der Karten sehr genau festzulegen und eine große Zahl ähnlicher Karten, bei denen
sich nur einzelne Variablen ändern, ohne Benutzereingriff erstellen zu lassen. Die Karten werden in der
Regel vorher entworfen. Hilfreich ist es hierbei, das Layout vorher auf kariertem Papier einzuzeichnen, um
die so ermittelten x- und y-Werte direkt in das Makro bzw. an der Kommandozeile eingeben zu können.
* TODO AZ: verstaendlicher formulieren
6.1. Kartenerstellung mit ARCPLOT
6.1.1. Ausgabemedium
Mit dem Befehl display trifft man die Auswahl des Ausgabemediums (Bildschirm, verschiedene Dateiformate). Für die Kartenausgabe empfiehlt es sich, das Layout zunächst am Bildschirm zu entwickeln
und erst dann in ein Ausgabeformat umzuändern. Es ist auch möglich, nur einzelne Kartenelemente als
Dateien zu exportieren und diese dann in anderen Graphikanwendungen einzubinden.
Befehl
Ausgabe
display 9999
(graphischer) Bildschirm
display 1040
display 1040 2
Graphics File (gra)
Encapsulated PostScript (eps)
6.1.2. Angaben zur Kartengröße
Um die Größe des Ausgabemediums und die Verhältnisse der einzelnen Kartenelemente zueinander festzulegen, müssen verschiedene Maße voreingestellt werden. Dazu dienen die folgenden Befehle:
mapextent
Ausschnitt aus der Karte, der angezeigt werden soll (kann ganzes Coverage sein oder
Ausschnitt, der in Koordinaten angegeben wird)
159
Kapitel 6. Visualisierung
pageunits
Vorgabewert ist Zoll, deshalb sollte hier cm angegeben werden, um DIN-Formate
komfortabler eingeben zu können.
pagesize
maplimits
Die Größe des Kartenblattes in pageunits
Die Ausdehnung des momentan aktiven Kartenausschnittes
mapunits
mapscale
Karteneinheit
Maßstab der Karte in Karteneinheiten
mapposition
mapinfo
Ausrichtung der Karte innerhalb der maplimits
Gibt momentane Einstellungen in Arcplot aus
Die wichtigsten Kartenparameter werden in Abbildung 6-1 wiedergegeben. display bezeichnet die komplette Anzeige, also in der Regel das Fenster mit der Graphikausgabe. pagesize zeigt das zur Verfügung
stehende Papierformat an, während mapextent einen rechteckigen Bereich für die Ausgabe von Karten
reserviert. Der Kartenbereich, der dargestellt werden soll, wird mit maplimits definiert und muß etwas
kleiner als die Werte für mapextent sein, falls Beschriftungen von Punktsignaturen über den Bereich der
Karte hinausgehen, ansonsten kann er identisch sein.
Abbildung 6-1. Wichtige Kartenparameter
6.1.3. Auswahl von Signaturen und Farbskalen
Je nach Ausgabegerät (Bildschirm, Plotter, Farb- oder Schwarzweißdrucker) gibt es daran jeweils angepaßte Signaturendateien, die über einen Symbolschlüssel angesprochen werden können. Die Signaturdateien enthalten bis zu 999 Symbole. Es ist auch möglich, eigene Signaturdateien zu erstellen.
Folgende Befehle kommen zum Einsatz:
textfont
textquality
legt die Schriftart für das aktuell gültige Textsymbol fest
sollte auf kern gesetzt werden - so werden die Abstände zwischen verschiedenen
Buchstabenkombinationen besser angepaßt.
textsize
move
Fontgröße in Punkt
Position des folgenden Elements
160
Kapitel 6. Visualisierung
text
Text, der an der durch move festgelegten Position erscheinen soll. Die Ausrichtung
wird mit cc usw. angegeben.
shadeset
Auswahl der Flächensignaturendatei. Kann mehrmals gewechselt werden, es ist jeweils
das zuletzt angegebene Shadeset maßgebend.
lineset
Auswahl der Liniensignaturendatei
markerset
shadesymbol
Auswahl der Punktsignaturendatei
Legt aktuelles Flächensymbol fest
linesymbol
markersymbol
Legt aktuelles Liniensymbol fest
Legt aktuelles Punktsymbol fest
textsymbol
Legt aktuelles Textsymbol fest
6.1.4. Ausgabe von Coverage-Elementen
arcs
Zeichnet die (ausgewählten) Arcs eines Coverages mit der gerade gültigen
Liniensignatur
nodes
polygons
Zeichnet die Anfangs- und Endpunkte von Arcs mit der Aktuellen Punktsignatur
(Winkel kann angegeben werden)
Zeichnet die Polygonaußengrenzen mit der aktuellen Liniensignatur
labels
points
Zeichnet die Polygonlabels mit der aktuellen Punktsignatur
Zeichnet Punkte mit dem aktuellen Punktsymbol
tics
arclines
Zeichnet die Tics mit einem speziellen Symbol
Zeichnet die Linien eines Coverages mit verschiedenen Signaturen (z.B. entsprechend
Attributwert)
labelmarkers
pointmarkers
Zeichnet Polygonmarkierungen mit Polygonsignaturen für Attributwerte
Zeichnet Punktelemente mit Punktsignaturen entsprechend den Attributwerten
polygonshades
Färbt Polygone den Attributwerten entsprechend ein
polygontext
Gibt den Inhalt eines Attributfeldes als Text aus
6.1.5. Benennung von Coverage-Elementen
Attributinformationen der auf der Karte ausgegebenen Geometrieelemente können als Text ausgegeben
werden.
arctext
polygontext
Beschriftet Arcs mit Attributwerten
Setzt Text aus Attributtabelle zur Kennzeichnung in Polygonflächen
pointtext
tictext
Markiert Punktelemente mit Text aus Attributtabelle
Setzt Text aus Attributtabelle neben Tic-Signaturen
nodetext
pointtext
Beschriftet Nodes entsprechend ihren Attributwerten
Beschriftet Punkte entsprechend ihren Attributwerten
161
Kapitel 6. Visualisierung
6.1.6. Eingrenzen der Auswahl (ARCPLOT)
Im Gegensatz zu reselect unter ARChandelt es sich in ARCPLOT nur um eine temporäre Auswahl, die die
darunterliegenden Coverages selbst nicht verändert. Mit writeselect und readselect läßt sich die Abfrage
speichern. Dabei wird nur die Abfrage selbst gespeichert, nicht aber ihr Ergebnis.
reselect
Wählt anhand eingegebener Kritereien eine Teilmenge aus dem aktuellen Coverage aus
aselect
Fügt der momentanen Auswahl nach vorgebenenen Kriterien ausgewählte Elemente
hinzu
unselect
writeselect
Entfernt nach angegebenen Kriterien Teile der momentan ausgewählten Menge
Speichert die Abfragekriterien
readselect
Greift auf gespeicherte Abfragekriterien zurück.
6.1.7. Kartographische Elemente hinzufügen
Zu einer vollständigen Karte gehören neben der reinen Geometrieinformation noch weitere Elemente wie
eine Legende, Kartentitel, Maßstabsangaben und ggfs. Nordpfeile. Diese Elemente lassen sich mit den
folgenden Befehlen realisieren.
line
Zeichnet Linie
draw
box
Verbindet letzten Endpunkt mit neuem Endpunkt
Zeichnet Rechteck
circle
patch
Zeichnet Kreis
Zeichnet gefülltes Rechteck
spot
shade
Zeichnet gefüllten Kreis
Zeichnet gefülltes Polygon (aus mindestens 3 und maximal 500 Punkten)
text
textfile
Gibt Text aus (Position muß zuvor mit move festgelegt werden)
Gibt Textdatei aus (Position muß zuvor mit move festgelegt werden.
marker
keyarea
Gibt das momentane Punktsymbol aus.
Legt Bereich fest, in dem die Legende erscheinen soll
keymarker
keyline
Zeichnet eine Legende für Punktsignaturen
Zeichnet Legende für Liniensignaturen
keyshade
Zeichnet Legende für Polygonsignaturen
6.1.8. Ausgabe auf Papier oder in Dateien
Soll das Ergebnis nicht nur einmalig am Bildschirm ausgegeben werden, so kann es mit den folgenden
Befehlen gespeichert und in andere Grafik- bzw. Druckerformate exportiert werden.
display 1040
gibt Dateien in .gra-File aus (Default). Zusätzlich ist auch die Ausgabe in Postscript
oder verschiedene Grafikformate möglich.
162
Kapitel 6. Visualisierung
map
erstellt eine Kartendatei, die wieder ausgegeben werden kann
plot
Zeichnet .gra-Files etc. neu.
In der folgenden Übung sollen verschiedene ARC-Befehle der letzten Sitzungen wiederholt werden und
das Ergebnis mit ARCPLOT ausgegeben werden. Verwenden Sie den usage-Befehl und die Online-Hilfe
von ARC/INFO, um die genaue Befehlssyntax für die einzelnen Befehle herauszufinden. Verwenden Sie
die AML-Beispieldateien als Ausgangsmaterial (bsplot0.aml und bsplot1.aml). Fügen Sie in das Makro
Kommentare (/*)ein, die die einzelnen Befehle näher erläutern.
Erstellen Sie eine Karte der Größe DIN A3 aller Counties, bei der die County-Polygone entsprechend ihrer ID
eingefärbt werden (shadeset colornames.shd) und die County-Namen in den Polygonen angegeben werden
(polygontext.
Erstellen Sie sich (auf Papier) eine Tabelle mit den LUC (Landuse Codes) aus landuse und der entsprechenden
Beschreibung. Erstellen Sie ein Keyfile und geben Sie neben der Karte auch eine Legende an.
* TODO LN: Keyfile erstellen
Erstellen Sie eine Karte eines der folgenden Counties: Flathead, Lincoln, Madison, Garfield, Yellowstone, Beaverhead. Die Karte soll folgende Informationen enthalten: Eisenbahnnetz (schwarz), Straßennetz (rot), Flüsse
(blau), Waldflächen (hellgrün). Beachten Sie die Reihenfolge, in der die einzelnen Elemente auf dem Bildschirm
bzw. der Karte dargestellt werden. Fügen sie den Maßstab sowie eine Legende hinzu, einen Nordpfeil nur dann,
wenn die Karte nicht nach Norden ausgerichtet ist.
Bestimmen Sie für die Counties der vorangegangenen Übungsaufgabe diejenigen Flächen, die als mostly
cropland klassifiziert wurden (landuse). Erstellen Sie eine Karte aller Flächen, die die beiden obigen Bedingungen erfüllen und maximal 800 m von einem Fluß entfernt liegen.
Erstellen Sie eine Karte, die die Ergebnisse der Suche nach Restaurantstandorten präsentiert. Zur Orientierung
sollten Sie neben den Standorten (markerset template.mrk, markersymbol 1022) folgende Informationsebenen
einfügen: highways, railroads, hydrogr, natforest. Wählen Sie sinnvolle Farben und Liniensignaturen aus und
beachten Sie dabei die Zeichenreihenfolge (Strassen sollen z.B. nach Wald gezeichnet werden und nicht umgekehrt)
Dokumentieren Sie jeweils die einzelnen Arbeitsschritte und erstellen Sie ein AML-Makro, das eine Karte
im Format A4 produziert.
Eine Möglichkeit, die Karte aus der obigen Übung zu produzieren, sähe so aus:
Wir beginnen mit einem Kommentar, der vom Programm ignoriert wird, uns aber später auf einen Blick
den Zweck des Makros in Erinnerung ruft.
/* karte.aml
/* erzeugt A4-Karte von Garfield County, Montana
163
Kapitel 6. Visualisierung
Um wiederkehrende Eingaben zu vermeiden bzw. das Makro schnell für ein anderes County umschreiben
zu können, ist es sinnvoll, wiederkehrende Werte mit Variablen zu belegen. Variablen müssen definiert
werden, bevor man sich auf sie beziehen kann. Einen Sonderfall stellt die Direktive &args dar, die als
erster Befehl im Programm erscheinen muß. Jedes Wort nach &args wird zur Variablen.
Ruft man nun das Programm wie folgt auf
Arc: &run karte.aml garfield
so wird die erste Variable hinter &args mit dem Wert garfield belegt.
Arc: &args cover1
Da wir das Programm von ARCaufgerufen haben, wechseln wir in ARCPLOT.
&station 9999
arcplot
Falls wir dieses Makro schon benutzt haben, existiert möglicherweise bereits eine Map Composition mit
dem gleichen Namen. Das Programm würde in diesem Fall mit einer Fehlermeldung abbrechen. Daher
prüft dieser Programmteil, ob bereits eine Map Composition existiert und löscht diese gegebenenfalls. Die
Variable cover1 wird jeweils gegen den beim Programmaufruf angegebenen Name ersetzt.
&if [exists %cover1%map -directory] &then
&do
killmap %cover1%map
&type %cover1%map wurde geloescht
&end
Jetzt können wir eine neue Map Composition erstellen.
map %cover1%map
Wir wollen die Karte zunächst am Bildschirm betrachten. Deshalb geben wir als Display zunächst den
Bildschirm an.
Wenn wir unsere Karte auf einem Postscript-Drucker ausgeben wollen, müssen wir die Zeile display
9999 3 mit einem Kommentarzeichen versehen und dafür die Kommentare vor den zwei folgenden Zeilen
entfernen. Das Makro verwendet dann die 1040-Variante von display. Den Name der Ausgabedatei geben
wir in der nachfolgenden Zeile an.
display 9999 3
/* display 1040 2
/*%cover1%.eps
Jetzt legen wir einige Voreinstellungen für unsere Karte fest.
mape %cover1%
/* Kartenausdehnung
shadeset color.shd /* Farbtabelle fuer Polygone festlegen
lineset color.lin
/* Farbtabelle fuer Linien festlegen
pageunits cm
/* Masseinheit der Seite
pagesize 29.7 21
/* Seitengroesse A4
maplimits 1 1 28.7 20 /* Maximale Kartenausdehnung
box 0.9 0.9 28.8 20.1 /* Rahmen um Karte
164
Kapitel 6. Visualisierung
mappos cen cen
mapunits meters
mapscale 750000
textset font.txt
textsymbol 6
textquality kern
textsize 8 pt
/*
/*
/*
/*
/*
/*
/*
Karte soll zentriert dargestellt werden
Meter als Einheit
Masstab
Schrifttabelle
Schriftart
Schriftsatzqualitaet
Textgroesse
Nun können wir die Polygone, die dargestellt werden sollen auswählen.
resel %cover1% poly %cover1%-id ne 0
Die so eingeschränkte Auswahl für das beim Aufruf angegebene Coverage wird so beim nächsten Zeichenbefehls für dieses Coverage wirksam:
polygonshades %cover1% %cover1%-id
Nur die über reselect ausgewählten Polygone werden gezeichnet. Die Farbe wird aus dem Attributwert
luc ermittelt.
Die übrigen Elemente werden komplett gezeichnet, die Farbe können wir direkt angeben:
arclines hydrogr 5
arclines railroads 7
arclines highways 13
arcs %cover1%
Schließlich benötigen wir noch die kartographischen Elemente:
/* Kartentitel
textsize 24 pt
move 5.5 18.3
Text ’Fried Green Tomatoes - Locations’ cc
/* Legende
textsize 12 pt
keyarea 2 15 8 17.5 /* legt Bereich fuer die Legende fest
keyseparation 0.2 0.2
Die eigentlichen Legenden werden mit Hilfe externer Keyfiles erstellt. Dabei sollte man darauf achten,
daß am Dateianfang und Dateiende je eine Leerzeile enthalten sind.
keyshade keyshade.key
keyline roads.key nobox
Das Keyfile roads.key kann eine einfache ASCII-Textdatei sein. Sie hat folgendes Format:
.12
Interstate
.15
Highway
.17
Regional Road
.19
165
Kapitel 6. Visualisierung
Local Road
textsize 14 pt
move 18.6 22
text ’1:750.000’
Wir können ARCPLOT verlassen und das Ergebnis mit gv betrachten oder auf einem Postscript-Drucker
ausgeben.
q
gv %cover1%.eps&
6.2. Ausgabe mit MapTools
6.2.1. Erzeugen von Themes und Views
Ein View zeigt ein oder mehrere Themes geographischer Daten, welche denselben Raumausschnitt mittels unterschiedlicher Daten beschreiben. Dabei ist ein Theme eine Ansammlung geographischer logisch
zusammengehöriger Objekte, wie sie für Coverages, Tins, Grids o.ä. erstellt wurden, d.h. ein Oberbegriff
für letztgenannte Elemente.
Zu den mit einem View abgespeicherten Daten gehören neben den aktiven Themes, oder der Kartengröße (Map Extent) beispielsweise noch die zur Darstellung der einzelnen Objekte und Ausprägungen etc.
benutzten Zeichen.
6.2.1.1. Erstellen / öffnen eines Views
Wie gewohnt wird ARCTOOLS gestartet und
Map Tools
OK
gewählt. Das MapTools-Fenster erscheint.
Abbildung 6-2. Das Map Tools Hauptfenster
Zunächst benötigen wir das unter View erscheinende Pull-Down-Menü. Ein neuer View wird mit New...
erstellt (dies wird im nächsten Abschnitt (Editieren eines Views) sinngemäß erläutert).
166
Kapitel 6. Visualisierung
Abbildung 6-3. MapTools mit View Pulldownmenü
Mit Open unter dem View-Pulldownmenü wird ein schon existierender _view (vor Version 7: .view) Datei
geladen. Der View wird (nach gewisser Zeit) zusammen mit dem Theme Manager auf dem Bildschirm
dargestellt. In letzterem wird in der Draw List das aktive Theme benannt. Sind mehrere Themes vorhanden, werden mit Draw alle aufgeführten (in der angezeigten Reihenfolge) dargestellt (mit Draw choice nur
das unterlegte Theme). Mittels der >>-Pfeile können die Themes in die Draw List aufgenommen werden
und umgekehrt. Die Reihenfolge bei Draw kann dementsprechend durch die xx-Pfeile verändert werden.
Auf den in der Themes-Liste gewählten Themes werden mit den darunter befindlichen Knöpfen verschiedene Operationen wie Erstellen, Editieren, Löschen oder Kopieren von Themes ausgeführt.
Abbildung 6-4. Der Add New Theme Manager
Abbildung 6-5. Das Theme Manager Menü
6.2.1.2. Editieren eines Views
Nach Wahl des Edit...-Knopfes bzw. nach
MapTools
View
New
erscheint je nach gewähltem Theme und Feature Class das entsprechende Properties- Menü - z.B. das
Polygon Coverage Properties -Fenster, in dessen ersten beiden Zeilen das Theme mit Name und Pfad
angegeben wird. Die übrigen Einträge machen Angaben zur Darstellungsweise der benutzten Symbole
etc.
Zur Veränderung der Polygonumrandung muß das Polygon outlines Feld gewählt werden. Es sind nur
die in einem bestimmten Lineset gespeicherten Gestaltungsmöglichkeiten verfügbar. Werden andere gewünscht, muß ein neuer Lineset gewählt bzw. erstellt werden.
167
Kapitel 6. Visualisierung
Die Wahl eines neuen Lineset geschieht genauso wie bei den Shadesets für die Füllmuster der Polygone,
in dem nach Betätigen des Knopfes Advanced... erscheinendem Fenster. In diesem kann mit Symbolset... aus verschiedenen Dateien, in denen die unterschiedlichen Farbreihen und Muster gespeichert sind,
gewählt werden.
Die Namenskonvention ist Name.SHD (Shadeset) für Polygonfüllmuster, Name.LIN (Lineset) für die die
Linienarten enthaltende Datei sowie Name.MRK (Markerset) für Punktsymboldateien, sogenannte Markersets.
In der Map-Liste hat man unter Preferences die Möglichkeit, die Line-, Marker- oder Shadesets für eine
Kartenkomposition jederzeit zu ändern.
Abbildung 6-6. Das Polygon Coverage Properties Menü
6.2.1.3. Klassenbildung u. Farbzuweisung (View-/Legendenerstellung)
Der Discrete Legend Editor hat den Zweck, die Legende für die spätere kartographische Umsetzung in
einer Map zu definieren, d.h. den unterschiedlichen Variablenausprägungen geeignetet zu klassifizieren
und diesen Klassen Farben und Namen zuzuordnen. D.h. es wird schon hier die Legende für eine spätere
kartographische Darstellung in einer Map definiert. Zuächst muß dazu die darzustellende Variable unter
Attribute (rechte Maustaste über dem Strich drücken) ausgewählt werden. Dann kann sie mit Classify...
nach verschiedenen Methoden klassifiziert werden.
Abbildung 6-7. Discrete Legend Editor (Bsp. für Linien-Coverages
Die Werte der Klassengrenzen tauchen in der Value-Meaning Scrollingliste des Discrete Legend Editor
Menüs auf. Nun können den Klassen Farben zugeordnet werden:
•
Unterlegen einer Klasse durch Anklicken in der Value-Meaning Scrollingliste dunkel
•
Wählen einer Farbe in der rechten Scrollingliste
•
Eintragen eines Klassennamen in das Feld Meaning, wie er später in der Legende erscheinen soll
•
Bestätigen durch den Add-Button (bzw. Update, falls schon Zuweisungen existieren).
168
Kapitel 6. Visualisierung
Abbildung 6-8. Das Classification - Menü
Die Bedeutung der Werte (Meaning), d.h. die Klassennamen werden an die entsprechende Stelle in der
Value-Meaning Scrollingliste geschrieben. Nach OK werden die Zuweisungen in einer LookupTable
(*.lut) gespeichert. Auf diese wird von nun an immer zugegriffen, wenn dieser View visualisiert wird.
Später bei der Kartenerstellung werden die Klassennamen in der Legende aufgeführt. Selbstverständlich
muß der View zuvor gespeichert werden.
View
MapTools
Save (as)
Zusätzlich besteht unter
MapTools
View
Save as Macro
die Möglichkeit, die View-Definition direkt als AML-Makro zu speichern. Dieses AML kann man gegebenenfalls leicht editieren oder erweitern oder Namen durch Variablen austauschen. Der Vorteil hierbei
ist, daß man das Ergebnis schon vorher gesehen hat. So kann man den Nordpfeil interaktiv an eine passende Stelle rücken oder die Wirkung von Farbe überprüfen. Der Dialog unterscheidet sich nur durch das
standardmäsige Setzen der Namenserweiterung .aml.
Abbildung 6-9. Der Save File as Macro Dialog
6.2.1.4. Variablenausprägung als Text
Im Polygon Coverage Properties Menü kann mittels Text... auch die Ausprägung einer Variaben zusätzlich zu einer eventuellen Choropletendarstellung als Text in die Polygone (bzw. an die Linien oder Punkte)
gesetzt werden. Die Darstellung des Textes kann editiert werden. Im erscheinenden Coverage Text Properties Fenster wird die Variable (Attribute), deren Ausprägungen angezeigt werden soll, gewählt. Ebenso
sind die entsprechenden Fonts, Farben, Größen etc. festzulegen. Bei den Größenangabe der Fonts ist zu
beachten, daß dies explizite Werte sind, die bei einer Größenveränderung der Karte nicht automatisch
angepaßt werden, sondern einzeln geändert werden müssen. Standardmäßig wird nur der Text innerhalb
eines Polygons angezeigt, der auch vollständig in dieses paßt.
Standardmäßig sind alle Variablen, die in der .PAT (.AAT, .NAT) zu Verfügung stehen für Zeichen- oder
Analyseoperationen aktiviert. Sie müssen nur noch ausgewählt werden.
169
Kapitel 6. Visualisierung
Abbildung 6-10. Das CoverageText Properties Menü
6.2.2. Weitere Hilfsmittel beim Umgang mit Views
6.2.2.1. Zoomen
Durch Wahl von Pan/Zoom... im View-Menü erscheint das abgebildete Fenster. Durch diese Zoom-Tools
kann die Ausschnittgröße verändert werden. Ihre Wirkung kann spielerisch erlernt werden. Dabei kann
dieselbe Funktion mehrmals hintereinander ausgeführt werden. Durch den rechten Mausknopf wird die
Funktion abgebrochen.
Abbildung 6-11. Das Zoom Menü
6.2.2.2. Abfragewerkzeuge
Im View-Pulldown-Menü existiert der Button Tools... . Dieser aktiviert Hilfsmittel die, ein gewähltes
Polygon identifizieren, über die zu ihm gehörigen Variablenwerte Auskunft geben, das Zoom-Fenster
öffnen oder räumliche oder logische Selektierungsmöglichkeiten ermöglichen.
Durch das Snapshot-Tool können schnell Arbeitskarten ausgedruckt werden. Dieses wird durch Mausdruck auf den Kamera-Schaltfläche im Tools-Fenster aktiviert.
Abbildung 6-12. Das Tool Menü
Es müssen die Ausgabegröße (Output size) -standardmäßig sind Inches vorgesehen - und das ZielDateiformat angegeben werden.
170
Kapitel 6. Visualisierung
Weitere Optionen geben an, ob um die Seite ein einfacher Rahmen gezeichnet wird (Include border
around page), und ein über ArcTools außer Angabe des Textes nicht weiter formatierbarer Titel (links
oben) hinzugefügt wird.
Die Dateien wird entweder gespeichert oder kann direkt an einen installierten Drucker gesendet werden
(Send to output using).
Es ist also keine ganz freie Definition der Papiergröße oder gar die Einbeziehung zusätzlicher weiterer
Elemente möglich. Hierzu ist das Erstellen einer Karte, d.h. eines Map Layouts unter
MapTools
Map
notwendig. Dies wird im nächsten Kapitel genauer erklärt.
Abbildung 6-13. Das Snapshot Menü
6.3. Kartenerstellung
Bisher wurde die Erzeugung von Views dargestellt. Nun soll das Ergebnis der Analysearbeit kartographisch umgesetzt, d.h. in einer vollständigen Karte dargestellt werden. Views dienen hier der Wiedergabe
des eigentlichen thematischen Karteninhaltes. Im Gegensatz zum View kann eine Karte (Map) jedoch
weitergehende Gestaltungsmerkmale beinhalten. Mit MapTools wurde ansatzweise eine Kartographiesoftware in ARC/INFO integriert. Diese soll einige Arbeitsschritte wie das Erstellen von Legenden, Maßstäben, Windrosen, Beschriftungen, etc. erleichtern. Dabei wird die Ausstattung von spezialisierten Kartographieprogrammen jedoch nicht erreicht. Darüber hinaus gehende Gestaltungsmöglichkeiten bietet die
zeilenorientierte Arbeitsweise in ARC/INFO, die wegen ihrer Mächtigkeit aber auch sehr komplex ist.
Auf der Grundlage von AML haben Drittanbieter weitere spezialiserte Kartographiemodule geschaffen,
die bei Bedarf zusätzlich erworben werden können.
Eine weitere Möglichkeit besteht darin, die Karte mittels des Produktes ARCVIEW von ESRI zu erstellen,
das für die unterschiedlichsten Plattformen (Windows, Unix, Macintosh) verfügbar ist. Da schon diverse
Publikationen zu ARCVIEW existieren, wollen wir auf diese Möglichkeit in diesem Rahmen nicht näher
eingehen. Es sollen nur kurz die Vor- und Nachteile gegenübergestellt werden.
Vorteile von ARCVIEW
•
preisgünstiges Desktop-System für viele Platformen.
•
auch unter Standard-PCs zu verwenden, daher für einen breiten Personenkreis interessant (es kann
parallel an der Kartenerstellung mit Avenue gearbeitet werden, ohne ARC/INFO-Lizenzen zu nutzen).
•
Für Anwender mit Windows-Erfahrung verhältnismäßig einfach zu bedienen.
171
Kapitel 6. Visualisierung
•
Durch die objektorientierte Makrosprache Avenue anpaß- und erweiterbar. Die Automatisierung von
Arbeitsabläufen ist dadurch möglich.
•
Vorgabe von Default-Layouts für die Kartengestaltung ist möglich.
•
Leichter Import von Geometie- und Sachdaten aus ARC/INFO in ArcView.
•
Sachdaten werden in der Regel in DBF-Dateien gehalten, so daß andere Windows-Applikationen diese
leicht mitbenutzen können.
Nachteile
•
ArcView hat einen geringeren Funktionsumfang als ARC/INFO.
•
Sachdaten und Geometrien werden in der Regel aus ARC/INFO exportiert, d.h. sie liegen damit u.U.
doppelt vor - mit all den Problemen der Integrität, Sicherung und Aktualisierung.
•
In ARC/INFO erstellte Views sind nicht verwendbar.
Wir werden im Folgenden die Kartenerstellung mit den MapTools erläutern, da diese in ArcTools integriert sind und mittlerweile auch schon ohne die zeilenorientierte Befehlseingabe sehr unfangreiche
Möglichkeiten bieten. Außerdem kann man die in ARC/INFO schon erstellten Views direkt verwenden.
Zum erlernenen von ArcView verweisen wir auf die entsprechenden Fachbücher.
Aus den früher erstellten Views soll nun eine komplette Karte (d.h. mit kartographischen Elementen wie
Legende, Nordpfeil, Titel etc.) erstellt werden. Es können selbstverständlich mehrere Views (mit jeweils
mehreren Themen (Themes) in einer Karte gemeinsam dargestellt werden.
Diese Karte kann letztendlich in ein Grafikformat umgewandelt werden, das eine Hardcopyausgabe per
Drucker oder die Weiterverarbeitung in einer Graphiksoftware (z.B. Adobe Illustrator, Corel Draw) ermöglicht. Dies wird in Kapitel Kapitel 6 erläutert.
Die folgenden Arbeitschritte werden zunächst alle unter den Folgemenüs des Pulldownmenüpunktes Map
in MapTools ausgeführt.
Zur Erstellung einer neuen Karte muß hier
MapTools
Map
New...
gewählt werden. Zunächst wird das grobe Layoutschema festgelegt, also das Format, Größenangaben,
oder die Anordnung der Kartenelemente zueinander.
Bei Drücken des Schaltknopfes Custom... können einige Angaben zur Seitengröße etc. frei definiert
werden.
Abbildung 6-14. Das Map Menü
Layout Properties
Templates
OK
172
Kapitel 6. Visualisierung
Abbildung 6-15. Das Map Template Menü
Abbildung 6-16. Seiteneigenschaften: Das Page Properties Menü
Nun ist zwar eine untitled.lyt-Datei definiert, jedoch enthält sie noch keinerlei kartographische Elemente, sondern nur „Reservierungen“ für diese. Doch erscheinen der Map Object Manager sowie das
Add new Object Menü schon auf dem Bildschirm.
Es empfiehlt sich, statt eines vorgefertigten Templates, eigene Layoutschablonen zu erstellen. Grundsätzlich sollte in einem Projekt eine Template.lyt Datei erstellt werden, in der die immer wiederkehrenden
Kartenelemente und ihre Position gespeichert sind und nur durch den jeweils benötigten View aktualisiert werden brauchen. Dies erleichtert das automatisierte Erstellen einer großen Anzahl von Karten mit
einheitlicher Gestaltung.
6.3.1. Der Map Object Manager
Durch Add New Object können die Objekte View (der eigentliche Karteninhalt), scalebar (Maßstab),
text strings (Zeichenketten), text file (ganze Textblöcke aus normalen Textdateien), North arrow (Nordpfeil), oder einfache gestalterische Elemente wie Rechtecke mit oder ohne Füllung, Linien, Kreise etc.
nacheinander in die Karte aufgenommen werden und durch Wahl der Schaltfläche Edit nachträglich verändert werden. Es ist möglich mehrere Elemente gleichen Types zu verwenden. Dazu müssen ihnen bei
dem Erstellen mit New oder Copy zur Identifizierung neue Namen verliehen werden.
Abbildung 6-17. Der Map Object Manager
173
Kapitel 6. Visualisierung
Abbildung 6-18. Das Add New Object Menü
6.3.2. Einstellung der Zeichenumgebung
Zur genaueren Positionierung der einzelnen kartographischen Objekte kann ein Hilfsgitter mittels Snap
to grid... über die Kartenfläche gelegt werden. Ist in diesem Fenster zusätzlich Grid Snap aktiviert, wird
das gerade bearbeitete Objekt dem der Maus nächstgelegenen Gitterpunkt zugeordnet. Der Abstand der
Gitterpunkte kann hier ebenfalls bestimmt werden.
Abbildung 6-19. Das Snap to Grid Menü
Mit Preferences... im Map-Menü können wiederum wie bei den Views im View-Menü die StandardFarbreihen (Shadesets, Linesets,...) bestimmt werden. Ebenfalls im Map-Menü befindet sich unter
Page setup... die Möglichkeit, die Kartengröße zu verändern. Dabei muß berücksichtigt werden, daß
dadurch alle Kartenobjekte betroffen werden. Wenn es sich wie bei Textfonts um absolute Werte handelt,
werden diese nicht automatisch angepaßt. Eine Auswahl von DIN-Seitengrößen wird durch Wahl von cm
als Pageunits ermöglicht. Standardmäßig sind die amerikanischen Seitengrößen in Zoll vorgegeben.
6.4. Hinzufügen neuer Kartenobjekte
Die Fenster, die beim Hinzufügen der einzelnen Kartenobjekte erscheinen, ähneln sich und sind durch
eigenes Probieren relativ leicht handzuhaben. Deshalb werden an dieser Stelle nur das grundsätzliche
Vorgehen und Besonderheiten einiger wichtigster Kartenelemente beschrieben.
Das beim erstmaligen Aufruf eines bestimmten Objektes (Add new object) erscheinende PropertiesFenster ist mit dem beim Editieren (Edit... im Map Object Manager) erscheinenden identisch.
MapTools
Map
New/Open Map
Map Object Manager
Add New Object
View
6.4.1. View
174
Kapitel 6. Visualisierung
Wählt man View als den wichtigsten Teil einer Karte aus, so erscheint das View Properties-Menü. Mit
Druck des rechten Mausknopfes in dessen zweiter Zeile -- unter View file -- erscheint wie gewohnt der
Dateidialog zum Suchen einer *.view-Datei.
In der ersten Zeile des Menüs mit der Bezeichnung identifier wird der Typ des kartographischen Objekts
eingetragen. Dieser Name kann vom Benutzer frei geändert werden. Dies macht wie erwähnt dann Sinn,
wenn mehrere Objekte des gleichen Typs benutzt werden (z.B. Textstring, Box,...). Einen ersten Eindruck
vermittelt ein Preview.
Abbildung 6-20. Das View Properties Menü
Nun kann die Position des Views angepaßt werden. Dabei bestehen die Möglichkeiten, dies automatisch erledigen zu lassen, konkrete Eckkoordinaten des View origin anzugeben, oder nach Betätigen des
Fadenkreuz-Knopfes bei Auto Scale, einfach mit der Maus am Bildschirm das gewünschte Fenster aufzuziehen. Mit view origin kann dieser in eine der vier Ecken der Karte oder ins Zentrum gerückt werden.
Der errechnete Maßstab wird unter Scale angezeigt. Er kann editiert werden, was selbstverständlich auf
die Darstellungsgröße des Views Auswirkungen hat. Schließlich können mit Line properties Farbe und
Gestaltung der Gebietsgrenzen verändert werden, sofern sie mit Umrandung (Outline) dargestellt werden
sollen. Basierend auf dem aktuellen Kartenmaßstab und der Einheit wird die gegenwärtige Seitengröße
unter Current Pagesize angegeben, ebenso die Needed Pagesize, d.h. die minimale Größe zur Darstellung des gesamten Views. Die zum Schluß gewählten Einstellungen von Scale (Maßstab) und Unit
(Maßeinheit) werden später beim Editieren des Maßstabes benötigt. Man sollte sie sich daher unbedingt
notieren. Nach einem letzten Preview werden die Einstellungen mit OK festgehalten (noch temporär, d.h.
Speichern ist nötig).
MapTools
View
Save as...
6.4.2. Legende
Zur Erstellung einer Legende muß im Add New Object Menü key gewählt werden.
Add New Object
key
Abbildung 6-21. Das Key Properties Menü
175
Kapitel 6. Visualisierung
Im erscheinenden Key Properties Fenster wird zunächst der entsprechende View gewählt. Die Lage und
Größe der gesamten Legende kann unter Limits angegeben werden (vgl. oben). Weitere Optionen sind
Größe der Rechtecke mit den Farbzuweisungen (width und height), ihr Abstand zueinander (spacing),
das Aussehen ihrer Umrandung (box(ed)) und des Textes. Die jeweiligen Größen können für die Legenden der drei Darstellungstypen (für die verschiedenen Themes eines Views), Flächen (Shade), Linien
(Line) und Punktsymbole (Marker) einzeln gewählt werden. Sämtliche Legendenelemente für einen Key
müssen aber in der zuerst aufgezogenen Limits-Box Platz finden.
Werden mehrere Views (sinnvollerweise nebeneinander und nicht direkt übereinander) dargestellt, kann
selbstverständlich für jeden eine eigene Legende gezeichnet werden. In diesem Fall erscheint unter View
nach Betätigen der rechten Maustaste eine Auswahlliste mit den gerade aktuellen Views.
6.4.3. Maßstab
Ein Maßstab wird mit Wahl von
scalebar
Add New Object
angelegt. Im Scale Bar Properties- Menü müssen nun die bei der Einbindung des Views in die Karte
gewählten Maßstabs- und Einheiten-Werte (Scale, Units) angegeben werden. Plazierung und Wahl der
Linien- und Textoptionen erfolgen entsprechend wie unter View beschrieben. Weitere Gestaltungsmöglichkeiten sind die Unterteilung des Maßstabes in Intervalle, sowie die dargestellte Länge. Diese wird
durch die Angabe des Wertes bei End definiert.
Wird der Maßstab unverhältnismäßig dick und mit großer Beschriftung gezeichnet (unter Bar Height: und
Text...) kann es zu einer ungewollten Überlagerung der Angabe der Maßstabsgröße und des Maßstabes
selbst kommen, da die Anpassung des Abstandes der einzelnen Elemente zueinander offensichtlich nicht
fehlerfrei funktioniert.xxxxxxx
Abbildung 6-22. Das Scalebar Properties Menü
6.4.4. Nordpfeil
Unter
Add New Object
North Arrow
erscheint ein Menü aus dem man sich eine passende Windrose oder Pfeilsymbol auswählen kann. Dies
geschieht duch Anklicken des gewünschten Exemplars in der linken Auswahlliste. Die Auswahl erscheint
dann im rechten Graphikfeld. Nicht nur Ort, Größe und Farbe können definiert werden, sondern auch der
Winkel. Standardmäßig zeigt die Nordspitze senkrecht zum oberen Kartenrand.
176
Kapitel 6. Visualisierung
Abbildung 6-23. Das North Arrow Properties Menü
6.4.5. Text, Rahmen, Grafik etc.
Abbildung 6-24. Das Text String Properties Menü
Das Einfügen zusätzlicher Kartenelemente wie Text (text) für Titel, Quellenangaben etc., einen Rahmen
um die gesamte Karte oder ihrer Teile mittels Neatline, etc. bereitet nach Durchführung der bisher beschriebenen Schritte sicherlich keine grundsätzlichen Schwierigkeiten mehr. Sinnvolle Objektarten sind
Textblöcke aus Textdateien, Postscript- oder ARC/INFO-Graphiken (Images) z.B. für Logos etc. oder
rechteckige Flächen (Primitives: Shaded Boxes), die sich beispielsweise gut für farbige Hintergrundgestaltung eignen.
Unter der Schaltfläche Symbol properties... verbirgt sich folgendes Menü mit weitreichenden Gestaltungsmöglichkeiten für Text.
Abbildung 6-25. Das Text Symbol Properties Menü
Abbildung 6-26. Das More Text Symbol Properties Menü
177
Kapitel 6. Visualisierung
Als weitere Kartenelemente sind eine ganze Reihe von Graphikprimitiven wie Linien, Punktsymbole
(Marker), Rechtecke oder Polygone als Map Objects verfügbar. Das Menü für Rechtecke mit Flächenfarben (Box Fill) sieht folgendermaßen aus:
Abbildung 6-27. Das Shaded Box Properties Menü
Hier könen mittels Shade properties die Füllfarben der Rechtecke bestimmt werden. Zusätzlich sind
dann mittels CUSTOM... noch völlig freie Farbdefinitionen möglich. Dabei ist zu beachten, daß die
Ausgabe der Farben am Bildschirm und auf einem Drucker oft unterschiedlich ausfällt. Daher sollten
geeignete ShadeSets definiert werden. Es existiert die Option full page, mit der das gesamte Kartenblatt
gefüllt wird.
Bei fast allen Menüs besteht die Möglichkeit, mittels Preview die Veränderungen vorab anzusehen, bevor
sie mit OK entgültig übernommen werden.
Es können verschiedene ShadeSets gewählt werden, in denen die Farb- und Musterausprägungen für
Flächenfüllungen gespeichert sind (ebenso gilt dies für Line-Sets bei Linien oder MarkerSets für Punktsymbole). Zusätzlich besteht über den letzten Eintrag CUSTOM... der jeweiligen Scrolling-Liste die
Möglichkeit, eigene Symbole und Farben zu definieren. Die Definition einer benutzerdefinierten Farbe
erfolgt über das abgebildete Custom Color Properties Menü.
Abbildung 6-28. Das Shade Properties Menü
Abbildung 6-29. Das Custom Color Properties Menü
6.4.6. Erstellen von Diagrammen in Karten
Außerdem gibt es die Möglichkeit direkt aus INFO-Tabellen Graphiken und Diagramme (Balkendiagram-
178
Kapitel 6. Visualisierung
me, oder Punktplots etc.) zu erstellen. Dafür existieren die Diagrammtypen Point, Bar, Line und Shade.
Die Einstellungen werden im Graph Properties Menü vorgenommen.
Add New Map Object
Graph
Es muß eine Info-Tabelle als Datenquelle gewählt werden und in der Karte ein Rechteck aufgezogen
werden, in dem das Diagramm positioniert werden soll.
Abbildung 6-30. Das Graph Properties Menü
6.4.7. Speichern der Karte
Sobald Sie mit der Kartengestaltung zufrieden sind, kann im ursprünglichen MapTools Menü die Karte
gespeichert werden.
File
MapTools
Save... bzw. Save as...
Die Endung _lyt (in den Versionen vor Version 7 .lyt) wird zur Kennzeichnung eines Kartenlayouts an
den Namen angehängt.
Unter:
MapTools
Tools
Properties
zeigt ein Popup-Menü einige Metainfomationen wie das Erstallungsdatum, den Berarbeiter oder verwendete Farbreihen zu der aktuellen Karte an und erlaubt es, Bemerkungen hinzuzufügen.
Abbildung 6-31. Das Layout Properties Menü
6.5. Drucken einer Karte
Wurde eine Karte in ARCTOOLS erstellt und als Map Layout (_lyt) gespeichert, kann diese sehr leicht
in ein weiteres Grafikformat umgewandelt werden. Hierzu zählen das ARC/INFO-eigene Graphics FileFormat (.gra), das als Grundlage für weitere Druckoptionen dient oder verschiedene Industriestandards
wie (Encapsulated) Postscript, CGM (Computer Graphics Metafile) oder Adobe Illustrator. Außerdem
179
Kapitel 6. Visualisierung
werden diverse druckerspezifische Formate (Calcomp, HPGL,...) unterstützt. Wichtig dabei ist, sich über
gewisse Plattformabhängigkeiten der verschiedenen Formate kundig zu machen, bzw. über die Unterschiede einzelner Versionen der Formate.
Wurde eine Karte z.B. in eine Postscript-Datei geschrieben, kann diese direkt an einen Potscript-fähigen
Drucker gesendet werden, entsprechendes gilt natürlich für HPGL oder RTL.
Unter UNIX funktioniert dies z.B. mit dem Befehl: lpr -Pdruckername dateiname.ps, wobei -Pdruckername
die gewünschte Druckerwarteschleife darstellt, unter DOS mit: copy Dateiname.ps lpt1 (wenn an
LPT1 ein Postscriptdrucker angeschlossen ist).
Eine ARC/INFO-(Encapsulated) Postscript-Datei (encapsulated) beginnt mit
%!PS-Adobe-2.0 EPSF-1.2
%%Creator: ARC/INFO Version 7.1.1
und endet mit
%%EOF
Dies kann man sich z.B. in einem Texteditor anzeigen lassen.
Unter Unix bedient man sich der Kommandos head und tail.
Folgendermaßen gelangt man zu den entsprechenden Menüs:
Map
MapTools
MapTools
Map
Create Metafile
Plotting...
Im Menü Plotting utilities kann z.B. direkt ein an den Rechner angeschlossener und konfigurierter Drucker
gewählt werden oder der Ausdruck gegebenenfalls rotiert werden, wenn z.B. im Querformat gedruckt
werden soll.
i
Tip: Bitmaps in Karten
Beim Erstellen von Karten, die Bitmaps beinhalten, können die Druckdateien schnell sehr groß werden und so eventuell gar nicht gedruckt werden. Um dies zu vermeiden und dennoch eine hohe
Druckauflösung zu erreichen, sollte man die Auflösung von in Karten enthaltenen enthaltenen Bitmaps
(z.B. bei display) auf die Hälfte bis ein Viertel der Auflösung des Ausgabegerätes reduzieren, z.B.
bei einem 600-dpi-Plotter auf 200 dpi. Dies reicht in der Regel immer noch für eine Wiedergabe
ohne auffällig große Pixel. Die Auflösung der Vektorgraphik bleibt davon unberührt. Wichtig ist hierbei
nicht die tatsächliche Auflösung der Bitmaps sondern die Einstellung der Option Resolution beim
display-Befehl.
6.6. ArcPress
180
Kapitel 6. Visualisierung
Abbildung 6-32. Die Metafile Format und Plotting Utilities Menüs
Weiterführende Literatur:
Hilary M. Hearnshaw und David J. Unwin, 1994, Visualization in Geographical Information Systems,
Chichester: John Wiley.
Alan M. Maceachren und D. R. Fraser Taylor, 1994, Visualization in Modern Cartography, Oxford: Pergamon/Elsevier.
Heidrun Schumann und Wolfgang Müller, 2000, Visualisierung: Grundlagen und allgemeine Methoden,
Berlin, Heidelberg: Springer.
181
Kapitel 6. Visualisierung
182
Kapitel 7. Geländemodelle
ARC/INFO stellt verschiedene Möglichkeiten zur Verfügung, digitale Höhenmodelle zu erstellen und zu
visualisieren oder zur Visualisierung mit anderen Produkten zu exportieren.
* TODO AZ: schmissigere Einfuehrung, BILDER
7.1. Erzeugung eines Triangulated Irregular Networks als
Datengrundlage
Eine beliebte, da relativ realitätsnahe (z.B. im Vergleich zu Quadraten als) Modellierungsform Basis für
ein Höhenmodell, ist die sogenannte unregelmäsige Dreiecksvermaschung (Triangular Irregular Network
- TIN).
Weitere Möglichkeiten von 3D-Datenmodellen in ARC/INFO sind die in Kapitel Kapitel 3 beschrieben
Module GRID und LATTICE. Zum Erstellen eines Geländemodells als TIN müssen Sie in Command
Tools unter
Conversion
Surface
Tin Builder
auswählen. Das Tin Builder Menü erscheint.
Als Formate für Oberflächen unterstützt ARC/INFO TINs und Lattices. TINs können aus verschiedenen
Datenquellen erzeugt werden (Punkt-, Linien, Flächen-coverages, d.h. zunächst müssen die Ursprungsdaten in ein Coverage umgewandelt werden), direkt wird das DEM (Digital Elevation Model) -Dateiformat
unterstützt (Im- und Export). Weiterhin können aus den ARC/INFO-Datentypen Grid und Lattice TINs
generiert werden. Da fast alle Bilddaten in ein Grid überführt werden können, stehen sehr viele Optionen
zur Erzeugung von TINs zur Verfügung. Als Grundlage einer Oberfläche für einen 3D-View können auch
direkt Lattices oder Grids verwendet werden.
Abbildung 7-1. Das TIN Builder Menü
Der Name des zu erzeugenden TINs muß bei Output Tin angegeben werden. Unter Add: können die
unterschiedlichen Datenquellen angegeben werden:
•
Coverages
•
Lattices
•
Generate (Schnittstelle für ASCII-Daten, vgl. Kapitel Import)
183
Kapitel 7. Geländemodelle
Die korrespondierenden Menüs erscheinen nach dem Betätigen der entsprechenden Schaltfläche und sind
in den nachfolgenden Abbildungen dargestellt.
Als Source identifier kann für jede Datenquelle ein Name angegeben werden. Diese erscheint im Tin
Builder Menü dann in der Liste Source identifiers. Edit ermöglicht das Verändern der Parameter schon
eingebundener Datenquellen und mit Delete wird die Datenquelle aus der Liste der für dieses zu erzeugende TIN vorgesehenen Datenquellen (source identifiers) gelöscht.
Die eigentliche Datenquelle (Pfad und Datei) wird jeweils in den Eingabefeld unter dem Source Identifier
angegeben (bzw. erhält man mit der rechten Maustaste in diesem Feld wie üblich einen Dateiauswahldialog). Es werden dabei jeweils nur die Feature Typen angezeigt, die durch die Optionsschaltflächen (je
nachdem: Point, Line, Poly, ...) ausgewählt wurden. Unter Surface Feature Types wird dann die zur
Erstellung der Oberfläche zu verwendende Variable (Keyword oder ID angegeben. Der Pfeil ermöglicht
die Auswahl einer Variablen in einem Popup-Fenster, daneben sind weitere Angaben zur Oberflächendefinition möglich.
Abbildung 7-2. Das TIN Source Menü
Abbildung 7-3. Das TIN Source Menü (Generate)
Abbildung 7-4. Das TIN Source Menü (Lattice)
Das folgende Menü erscheint, wenn unter TIN Coverage Source Identifier Menü die Schaltfläche Expression betätigt wird.
TIN
TIN
Cover Source
Cover Source
Expression
Expression
Select by Attribute
Select by Attribute
Weiter ist es durch Betätigen der Schaltfläche Properties im TIN Builder Menü u.a. möglich, einen
Überhöhungsfaktor (Zvalue) für das zu erstellende TIN anzugeben. Diese Angaben zusammen definieren
184
Kapitel 7. Geländemodelle
das zu erzeugende TIN und werden unter dem bei Tin-Identifier angegebenen Namen gespeichert. Dort
können sie mittels Open auch zum späteren Edititeren wieder geladen werden.
Abbildung 7-5. Das TIN Properties Menü
Erst ein Apply unten links auf dem TIN-Builder-Menü erzeugt das TIN aus den gewählten Datenquellen
mit den entsprechenden Parametern.
7.1.1. Umwandeln von TINs in Lattices
ARC/INFO erlaubt weitestgehend das Konvertieren von internen Datensätzen in ein anderes unterstütztes
Format. Im Rahmen von 3D-Daten sind natürlich TINs und Lattices nahe verwandt, so daß eine Umwandlung möglich ist. Das Umwandeln von TINS in Lattices geschieht im Tin to Lattice Menü. Dieses
befindet sich unter:
Conversion
CommandTools
Surface
Tin to Lattice
Hier muß neben dem zu verwendenden TIN-Datensatz und dem Namen des zu erstellenden Lattices die
Zellgröße des für die Erstellung des Lattices zu verwendenden Gitternetzes (Grid) angegeben werden.
Abbildung 7-6. Das TIN to Lattice Menü
7.1.2. Export von 3D-Daten
Unter
CommandTools
Conversion
Surface
finden sich noch weitere Konvertierungstools, die alle nach einem ähnlichen Schema funktionieren, und
daher hier nicht gesondert erklärt werden sollen.
Hierzu zählen z.B.:
•
Tin to Coverage
•
Tin to Region
185
Kapitel 7. Geländemodelle
•
Tin to Grid
•
Tin to VRML (vgl. nächsten Abschnitt)
•
aber auch Lattice to DEM (Digital Elevation Model) und umgekehrt.
Abbildung 7-7. Das Export from ARC / TINs and Lattices Menü
7.1.3. Umwandlung von TINs in VRML
Als Beispiel soll der Export von 3D-Geländemodellen aus TINs (Triangular Irregular Network) in das
VRML 1.0 -Format dargestellt werden (VRML = Virtual Reality Modelling Language). Leider existiert
dafür zunächst noch kein Import-Filter. TINs werden dabei als das VRML-Konstrukt „IndexedFaceSet“
exportiert und mit einer höhenabhängigen Standardfarbbelegung von grün über braun bis weiß (alternativ:
Graustufen) versehen. Vom gespeicherten TIN ausgehend ist die Angabe eines Überhöhungsfaktors für
die Z-Koordinate möglich.
Es werden die reinen TIN Daten exportiert. D.h. der komplette Export eines 3D-Views einschließlich
überlagerter Satellitenbilder oder Vektorinformationen in ARC/INFO selbst ist noch nicht vorgesehen.
Hier hilft der ArcView 3D Spatial Analyst weiter. Aber da sich die vorliegende Einführung auf ARC/INFO
konzentrieren will, werden wir auf die Möglichkeiten dieses Produktes nicht weiter eingehen.
Abbildung 7-8. VRML-3D Geländemodell von Heidelberg
Im TIN to VRML Conversion Menü muß wie üblich das Input Tin angeben und ein Name für die zu
erzeugende VRML-Datei (Output world file) mit der Dateiendung .wrl für „world“ bestimmt werden.
Als Optionen kann neben den beiden Standardfarbskalen Color oder Grey wiederum nur ein optionaler
Überhöhungsfaktor angegeben werden.
186
Kapitel 7. Geländemodelle
Abbildung 7-9. Das TIN to VRML-Menü
7.1.4. Virtuelle 3D Welten mit VRML
GIS-Programme wie ARC/INFO verfügen zwar über die Möglichkeit 3D-Geländemodelle darzustellen
und sogar Videos von virtuellen Durchflügen durch diese Geländemodelle zu erzeugen, doch sind damit zwei Nachteile verbunden: Entweder werden alle Rohdaten und Zugang zur Software benötigt, dann
können nach einiger Einarbeitungszeit Darstellungen des Geländemodells aus fast beliebiger Perspektive
gewonnen werden. Dadurch ist der mögliche Benutzerkreis jedoch stark eingeschränkt.
Verzichtet man auf die Interaktivität, so kann das Geländemodell auf vorgegebenen Flugrouten in einem
Video dargestellt werden. Da diese Videos aus dem weltweiten Internet geladen werden können und keine
Einarbeitung in die Bedienung erfolgen muß, stehen sie einem sehr breiten Publikum zur Verfügung. Der
Betrachter hat aber keinen Einfluß mehr darauf, welche Auschnitte des dargestellten Geländes in welcher
Auflösung präsentiert werden.
* TODO LN: Verweis auf Abschnitt zum Erstellen von 3D-Mpeg-Videos
VRML ermöglicht dagegen sowohl die plattformunabhängige Bereitstellung der virtuellen Welten im
WWW, als auch die Interaktivität mit dem Betrachter, da er sich in der dargestellten Welt beliebig dreidimensional bewegen kann. Die Erstellung eines einfachen VRML-Geländemodells ist durch die beschriebenen Exportmöglichkeiten in Arc/Info sehr einfach. Komplexer wird es, wenn auch Gebäude o.ä. als
VRML-Objekte erzeugt werden sollen.
Als Zusatzprodukt zu ARCVIEW wird von ESRI der sogenannte ARCVIEW 3D-Analyst angeboten. Mit
diesem sind auch VRML-Export von 3D-Objekten wie Häusern als Quader, bessere Farbzuweisungen etc.
möglich.
In ARC/INFO selbst existiert noch keine VRML-Schnittstelle für geometrische Objekte wie Gebäude.
Daher müssen die VRML-Dateien von Hand (bzw. über ein Makro) erzeugt werden. Ein mögliche Vorgehensweise wird skizziert:
Zunächst werden die Grundrisse einiger Gebäude digitalisiert. Diese Daten wurden aus ARC/INFO als
ASCII-Datei mittels Ungenerate exportiert und dann die entsprechenden VRML-Befehle hinzugefügt.
Dabei wurde das VRML-Konzept des Extrusionskörpers gewählt. D.h. die Gebäudegrundrisse werden
entlang einem zu definierenden Vektor extrudiert und mit einer Boden- und Deckelplatte versehen. Damit ist eine schematische Darstellung der Gebäude möglich. Realistischere Darstellungen (z.B. Dächer
etc.) wären deutlich aufwendiger zu realisieren (z.B. über TINs). Als weitere Schritte in Richtung realistischerer VR-Welten ist der Einsatz von Texturen oder die Animation einzelner Objekte in VRML zu
realisieren. Es gibt diverse VRML-Autorenwerkzeuge, die bei diesen Aufgaben unterstützen. Eine gute
Zusammenstellung bietet im WWW das Web3D Repository unter
http://www.web3d.org/vrml/vrml.htm
187
Kapitel 7. Geländemodelle
Abbildung 7-10. Ausschnitt einer VR-Welt der Heidelberger Altstadt direkt aus ARC/INFO
Insgesamt scheinen die ersten Resultate mit VRML erfolgversprechend zu sein und ermuntern zu weiteren
Versuchen. VRML stellt ein geeignetes Medium sowohl für offene interaktive Informationssyteme (Stadt,
Tourismus, Umwelt, ...), als auch für Lehrzwecke oder die Präsentation komplexer Forschungsergebnisse
dar. Durch die Einbeziehung von Animation einzelner Objekte, als auch deren Farbe können bis zu 5
Dimensionen gleichzeitig dargestellt werden. Durch diese Eigenschaften bietet es sich als Erweiterung
bisheriger statischer Computerkartographie oder GIS an. Entsprechende erste Beispiele lassen sich im
WWW leicht finden. Gewisse Probleme bereiten die Geschwindigkeit komplexerer VRML-Welten und
die Handhabung kartographischer Projektionen. Das erstere Problem verringert sich mit dem Aufkommen
leistungfähigerer preiswerter 3D Graphikkarten und Prozessoren und das zweite Problem wird durch die
Arbeitsgruppe Geo-VRML des VRML-Consortiums angegangen.
7.2. 3D-Visualisierung
Es soll kurz die Vorgehensweise zur Erstellung von 3D-Ansichten (3D Views) in ARC/INFO skizziert
werden: Zunächst muß ein neuer View angelegt werden.
MapTools
View
NEW
(vgl. Erzeugung von 3D-Views in Kapitel 7) Alternativ, kann dort natürlich auch ein existierender 2DView durch Open geladen werden. Damit dieser View dreidimensional dargestellt werden kann, muß ein
Geländemodell hinzugeladen werden. Dazu muß in
MapTools
View
der Menüeintrag Load Surface gewählt werden. Es erscheint das Surface Properties Menü.
Abbildung 7-11. Das Surface Properties Menü
Die Standard-Einstellung des Oberflächentyps (Surface Type) der Dreiecke ist FLAT (also zweidimensional). Es gibt neben TIN noch die Möglichkeit, ein Lattice als Datenquelle für Oberflächen auszuwählen.
Wir wählen TIN und geben im Feld Surface den Pfad zu einem vorher erstellten TIN an (Rechte Maustaste in der Eingabezeile des Menüs liefert Auswahlmenü).
188
Kapitel 7. Geländemodelle
Mit Surface Resolution kann bestimmt werden, wieviele Punkte entlang der längsten Achse zur Interpolation benutzt werden sollen. Je größer die Zahl, desto feiner die Interpolation, aber auch desto höher
die Rechenzeit. Als Interpolationsmethode ist meist Linear vorzuziehen, da Smooth eine erheblich höhere Rechenzeit benötigt und die Resultate je nach Auflösung der Grunddaten kaum unterschiedlich sind.
Lediglich für High-End-Visualisierungen oder begrenzte Ausschnitte ist Smooth die angebrachtere Variante.
Der Zfactor gibt den Überhöhungsfaktor in die dritte Dimension (ausgehend von den TIN-Daten) an. OK
aktiviert die Einstellungen. Nun kann eine Oberfläche über das Geländemodell gefaltet und angezeigt werden. Doch hierzu muß noch eben diese Flächeninformation mit den Raumobjekten, die über das Geländemodell gefaltet (drapiert) werden soll, ausgewählt werden. Möglich ist dies mit allen 2D-Datentypen, die
ARC/INFO kennt - von Coverages der unterschiedlichen Typen (Linien, Polygone, Punkte), über einfache
Gitternetze (Mesh), hin zu Satellitenbildern, Grids oder den Triangulationsdaten (Tin) selbst.
* TODO AZ: Bsp. fuer verschiedene Varianten
7.2.1. Erstellen und Anzeigen des dreidimensionalen Themas
Die verschiedenen Kanäle eines Satellitenbildes oder aber Vektorinformationen aus Coverages sowie eigentlich alle 2D-Datentypen, die in einem View visualisiert werden können, können auch über das zuvor
geladene Geländemodell gelegt werden.
Das Beispiel eines Mehrkanal-Satellitenbildes wird im folgenden ausgeführt:
Unter Add New Theme in Categories Grid auswählen und unter Theme classes Grid composite (da
mehrere Bänder). Es erscheint der Grid Composite Property Sheet.
Add New Theme
Categories: Grid
Theme classes: Grid composite
Abbildung 7-12. Der Grid Composite Property Sheet
Nun muß angegeben werden, in welchem Farbmodell (RGB = Rot-Grün-Blau versus HSV Hue-SaturationValue und CMYK = Cyan-Magenta-Gelb-Schwarz) die Satellitenkanäle interpretiert werden sollen. Für
jede Farbe muß also ein Grid ausgewählt werden, welches die Farbinformation des jeweiligen Satellitenbandes enthält (rechte Maustaste). Die Grids müssen natürlich zuvor georeferenziert, d.h. auch in ein einheitliches Koordinatensystem gebracht worden sein und dieselbe Gebietsgröße abdecken. Informationen
dazu finden sich unter Register Images. Außerdem muß das Geländemodell dasselbe Koordinatensystem (und Gebietsgröße) besitzen.
Die Beschreibung des Transformierens von Coverages in unterschiedliche Koordinatensysteme findet sich
im Kapitel 3. Falls die Koordinaten der Rohdaten nicht schon im richtigen Bezugssystem vorliegen, müssen bei einem Geländemodell zunächst die Ausgangsdaten vor der Erzeugung des TINs durch den Tin
Builder (vgl. vorherige Abschnitte) in das gewünschte Zielsystem transformiert werden.
189
Kapitel 7. Geländemodelle
Eine andere (einfache) Option wäre es, ein einfaches Gitternetz über die Oberfläche zu legen. Dazu muß
im Add new Theme Menü als Theme Class: Mesh (unter der Category: Tin) selektiert werden. Es
erscheint das Mesh Properties Menü:
Abbildung 7-13. Das Mesh Properties Menü
Hier können verschiedene Darstellungstypen als Parameter bestimmt werden:
Fishnet
Lines along X
gekreuztes Gitternetz
Linien entlang der x bzw. Y Achse
Diagonal
Diagonale Linien (quer zu Seitenkanten)
Ebenso kann die Anzahl der darzustellenden Linien eingegeben werden.
Einerseits ist es möglich eine einheitliche Farbe für das gesamte Mesh auszuwählen (unter Symbol); es
kann jedoch auch ein Attribut des gewählten TINs farbig angezeigt werden. Variablen, die immer für ein
TIN errechnet werden, und damit auf alle Fälle zur Auswahl stehen, sind:
elevation
slope
Höhe
Hangneigung
aspect
Hangrichtung
Die genaue Farbdarstellung kann durch zusätzliche Optionen oder Farbtabellen (Lookup-Tables) spezifiziert werden.
Mit OK landet das Mesh in der Themes-List des Themes Manager und muß noch in die Draw-Liste
geschoben werden (mittels des Pfeiles nach Rechts). Zum Anzeigen muß man schließlich Draw anwählen.
Abbildung 7-14. 3D-Mesh
Es existieren weitere interessante Parameter und Befehle beim Erstellen der 3D-Views. Dazu zählen Optionen wie SCENEFOG für die Simulation von Nebel, SCENEHAZE für die Simulation atmosphärischer Dunsterscheinungen, und SCENESKY mit dem die Farbübergänge für den Hintergrund bestimmt
werden können. Die entsprechenden Parameter sind in der Online-Hilfe für das Modul ARCPLOT (bzw.
TIN) dokumentiert.
190
Kapitel 7. Geländemodelle
7.2.2. Orientierung des Geländes
Vom View-Pulldown-Menü ausgehend wird mit Orient camera... die Position des Betrachters, also der
Blickwinkel verändert. Preview stellt zunächst die Standardwerte dar. Mit den Pfeilen kann nun die Position verändert werden. Deren Wirkung wird mit Preview überprüft. Default stellt den Anfangszustand
wieder her. Stärkere Effekte werden durch die Direct input...- und Preferences...- Menüs erreicht.
Abbildung 7-15. Das Camera Orientation & Advanced Camera Orientation Menü
Abbildung 7-16. Das Camera Preferences Menü
7.2.3. Virtuelle Durchflüge durch Geländemodelle
Zu den weitergehenden Funktionen zählt die Möglichkeit, Animationen virtueller Flüge durch Geländemodelle zu erzeugen und diese Simulation als MPEG-Video auszugeben.
Dabei werden auf einer frei definierbaren Flugroute Bilder des vom virtuellen Flugzeug aus sichtbaren
dreidimensionalen Geländeausschnitts erzeugt und diese dann in eine Mpeg-Datei kodiert. Mpeg-Videos
können auf fast allen Betriebssystemen abgespielt werden, sofern ein geeigneter Mpeg-Player (die Software zum Abspielen dieser Videos) installiert ist. Der Mpeg-Encoder von ARC/INFO unterstützt offenbar
z.Zt. nur MPEG-1 mit 8-bit Farben, was u.U. zu Problemen mit einigen Windows Mpeg-Viewern führen
kann. Es existieren jedoch auf allen Plattformen Viewer, die die erzeugten Videos korrekt wiedergeben.
Insbesondere existieren Plug-Ins für WWW-Browser wie Netscape, die dies ermöglichen. Somit steht
auch einer Einbindung solcher Computervideos in WWW-Seiten nichts mehr entgegen (außer der Dateigröße oder Copyright-Bestimmungen).
Videos von virtuellen Flügen über Heidelberg und den angrenzenden Odenwald stehen beispielsweise auf
der WWW-Homepage des Geographischen Institutes der Universität Heidelberg unter folgender Adresse
zur Verfügung:
http://www.geog.uni-heidelberg.de/wisogeo/edv/flights.html.de
191
Kapitel 7. Geländemodelle
Abbildung 7-17. Einzelbild aus einem der Videos
Grundlage der Videos ist ein digitales Geländemodell. Aus den digitalisierten Höhenlinien des Gebietes wurde ein TIN erzeugt, auf das drei Bänder von Landsat-TM Satellitenaufnahmen als Composite
Grid projiziert wurden. Die drei Bänder repräsentieren dabei die Werte des RGB-Farbmodells. Zusätzlich
wurden in den verschiedenen Videos weitere digitalisierte Vektorinformationen (z.B. Strassennetz, Stadtteilgrenzen, etc.) als zusätzliche Informationsebenen über das Satellitenbild gelegt. Es können jeweils
verschiedene Überhöhungsfaktoren angegeben werden.
7.2.3.1. Definition der Flugparameter durch den Flight Path Generator
Der Flight Path Generator automatisiert die wesentlichen Schritte bis zur Erzeugung des fertigen digitalen Videos. Das entsprechende Menü befindet sich unter:
MapTools
View
ProductivityTools
Flight Path Generator
Abbildung 7-18. Das Productivity Tools Menü (Type = Animation)
Es muß zunächst ein View mit Geländemodell (3D) geladen werden (vgl. vorhergehende Kapitel).
Der View wird im Plot-Fenster zweidimensional dargestellt und man kann mit der Maus (zu verwenden
wie ein Digitizer, vgl. Kapitel 3) Punkte, sogenannte Critical Points, absetzen, die den 2D-Verlauf der
Flugbahn definieren. Dies beendet man mit der vom Digitalisieren bekannten Taste 9. Die Flugroute wird
in ARC/INFO insgesamt durch die Angabe von Raumpunkten (x-y-z-Koordinaten), die das virtuelle Flugzeug auf alle Fälle berühren muß, definiert. Der Verlauf der Flugroute zwischen diesen Stützpunkten wird
interpoliert. Nach dem Setzen der 2D-Punkte muß also zu jedem der Critical Points noch die Höhe (der
Z-Wert) angegeben werden. Dazu klickt man den Punkt in der Liste der Critical Points an und editiert die
Angabe Elevation im nebenan befindlichen Feld.
Abbildung 7-19. Das Flightpath Menü und Optionen Menü
192
Kapitel 7. Geländemodelle
MapTools
View
ProductivityTools
Flight Path
Bei der Angabe der Flughöhen ist darauf zu achten, daß das virtuelle Flugzeug nicht unter die Oberfläche des Geländemodells gerät, da dies zu Fehlermeldungen führt. Dies kann durch die Wahl der Option
Relative bei der Spezifikation der Flugroute vermieden werden, da die Z-Werte nun als Höhe über der
3D-Oberfläche und nicht als absolute Höhenangabe interpretiert werden.
Entsprechend einer wählbaren Inter-Frame-Distance wird die Entfernung zwischen zwei zu generierenden Einzelbildern des Geländemodells angegegeben. Wenn alle verwendeten Daten für das Gauß-KrügerSystem georeferenziert wurden, entspricht die eingegebene Zahl hier der Einheit Meter. Unterschiedliche
Angaben bewirken dabei eine Veränderung der scheinbaren Fluggschwindigkeit. Zu große Distanzen bewirken eine unnatürlich ruckartige Flugsimulation, während zu kleine Distanzen sehr viele Bilder generieren. Letzteres führt einerseits zu immens großen Datenmengen andererseits aber auch zu einer flüssigeren
Wiedergabe.
Abbildung 7-20. Das Flyby Viewing Options Menü
Da der „virtuelle Pilot“ in einem solchen 3D-Flug z.B. bei einem Steigflug standardmäßig in den (weniger
interessanten) Himmel (oder auf den Rand des verfügbaren Datensatzes) schauen würde, können als zusätzliche Parameter die horizontale und vertikale Blickrichtung (horizontal / vertical viewing) bezüglich
der Flugbahn spezifiziert werden.
Abbildung 7-21. Das Flight Frame Generator Menü
Nun wird die Flight-Table (*.flt) erstellt. Diese wird in den danach als nächstes am Schirm erscheinenden Menü eingelesen und die übrigen Parameter abgefragt. z.B. wird die Dimensionierung des Videos
(Höhe und Breite auf dem Bildschirm) in Pixel oder das verwendete Bildformat angegeben.
Nach der Bestätigung der Einstellungen durch OK fragt ARC/INFO, ob die Einzelbilder (snapshots) erzeugt werden sollen. Die Berechnung der Einzelframes im Batch-Modus bringt Geschwindigkeitsvorteile,
da die explizite Visualisierung jedes Frames am Bildschirm bei der Erzeugung entfällt. Ansonsten kann
die Berechnung der Einzelbilder (Frames) plus die anschließende Kodierung des Mpeg-Videos bei realen
Daten sehr leicht mehrere Stunden beanspruchen.
193
Kapitel 7. Geländemodelle
Abbildung 7-22. Das Mpeg-Encode Menü
Statt langwierig einen komplexen Flugpfad zu definieren, besteht auch die etwas einfachere Möglichkeit
einen einfachen Rundflug auf einer Kreisbahn auszuwählen. Hierzu muß man nur den Mittelpunkt und Radius des Kreises eingeben, bzw. diesen interaktiv mit der Maus setzen, indem man auf den "Fadenkreuz"Knopf drückt und den Kreis auf der Kartengrundlage aufzieht. Die übrigen Parameter (Inter-frame distance, Elevation, Roll, Viewing options) entsprechen der Situation bei einem allgemeineren Flugpfad.
Ausnahme ist, daß natürlich nur eine bestimmte Höhe (Elevation) sowie die Drehung des Flugzeuges um
die Längsachse (Roll) für den gesamten Rundflug angegeben werden kann. Es ist sinnvoll, die Wirkung
der Parameter bei einem konkreten Datensatz an sehr kleinen Beispielen und kurzen Flügen auzuprobieren, da sonst u.U. sehr lange auf ein Ergebnis gewartet werden muß, das dann doch wieder verworfen
wird.
Abbildung 7-23. Der Circular Flight Path Generator
7.2.3.2. Abspielen der Videos
In ARC ist ein MPEG-Player integriert, der das Abspielen der erzeugten (oder anderer) MPEG-Videos
(mit 8-Bit Farbtiefe) ermöglicht. Als einzige Option ist hier das endlose Anspielen des Videos (Looping)
möglich, es existieren aber sowohl unter Windows wie unter Unix zahlreiche frei erhältliche Wiedergabeprogramme für MPEG-Videos.
Abbildung 7-24. Der interne MPEG-Player
194
Kapitel 7. Geländemodelle
7.3. 3D Analyse
7.3.1. Interpolieren von Höhenlinien
Statt aus Höheninformationen wie z.B. digitalisierten Höhenlinien eine Dreiecksvermaschung zu generieren, ist auch der umgekehrte Weg möglich: Statt die Höhenlinien in ein TIN umzuwandeln, besteht die
Möglichkeit aus TIN-Daten oder Lattice-Punkten Höhenlinien zu interpolieren. Das entsprechende Menü
findet sich in
CommandTools
Conversion
Contour
Mit der rechten Maustaste können im Feld Input Surface Model die Eingabedaten (Tin oder Lattice)
gewählt werden. Für das zu erzeugende Coverage muß ein Name eingetragen werden (Output Line Coverage).
Abbildung 7-25. Das Surface Menü
Abbildung 7-26. Das Contouring Tool Menü
Durch das Contour Intervall wird der gewünschte Abstand der Höhenlinien bestimmt. Die Seed Contour gibt die Basis an, von der aus die Höhe der anderen Höhenlinien (sowohl ober- als auch unterhalb
errechnet werden). Der Default-Wert ist 0.0.
Die Höhenwerte der Linien werden der unter Contour Value angegebenen Variable zugewiesen. Der
Default-Name dieser Variablen ist Contour.
Die Weed Tolerance bestimmt einen Grenzwert (Threshold) zur Ausdünnung von Linien während der
Generierung der Höhenlinien. Default ist das 0.001-fache der Länge der längsten Seite der Input Surface.
Der Z-factor bestimmt den optionalen Überhöhungsfaktor.
Um zum Beispiel von Ausgangsdaten in Meter Ergebnishöhendaten in Feet zu erhalten, müßte der Faktor
3.288 gewählt werden. Der Smoothness Factor beeinflußt die Weichheit der Interpolation der Höhenlinien bei Tins. 1 bedeutet eine lineare Interpolation. Werte zwischen 2 und 10 erzeugen weichere Kurven.
Der Defaultwert 1 (linear) ist die schnellste Option.
195
Kapitel 7. Geländemodelle
7.3.2. 3D-Sichtbarkeitsanalysen
Für Sichtbarkeitsanalysen muß als Eingabeformat für die 3D-Daten der Datentyp Grid benutzt werden.
D.h. vorher müssen gegebenenfalls vorliegende Daten aus einem anderen Format (TIN, Lattice, DEM
etc.) in ein Grid umgewandelt werden. Das Ergebnis kann als Polygon-Coverage oder Grid ausgegeben
werden (Visibility output).
Als Sampling-Methode kann zwischen den Optionen Frequency oder Observers gewählt werden:
Frequency
Jedem Ausgabeort wird als Zahl zugewiesen, wie
oft dieser gesehen werden kann.
Observers
Jedem Ausgabeort wird die ID des Observerortes
zugewiesen, von dem aus der Ort gesehen werden
kann.
Abbildung 7-27. Das Visibility Menü
7.3.3. Volumen unter einem 3D-Modell berechnen
Zum Berechnen des Volumens unter einem Gelände muß schlicht ein Geländemodell (TIN) angegeben
werden. Das entsprechende Menü erhält man in Command Tools unter:
Command Tools
Analysis
Surface
Volume
Abbildung 7-28. Das Volume Calculation Menü
Optional kann das Ergebnis in eine Datei ausgegeben werden oder es erscheint als Popup-Menü.
TIN
ZMIN
ZMAX
DATUM
AREA
VOLUME
UNITS
= /AFS/GEOG.UNI-HEIDELBERG.DE/HOME
=
145.500
=
850.500
=
0.000
=
220915904.00000
= 66463449088.00000
= Meters
196
Kapitel 7. Geländemodelle
ZUNITS
ZFACTOR
= None
=
1.000
Das Volumen beträgt also 66463449088 m3.
7.3.4. Veränderung von 3D-Oberflächen verfolgen
Sollen die Unterschiede zwischen zwei 3D-Modellen eines Gebietes von unterschiedlichen Zeitpunkten
bestimmt werden, ermöglicht dies das Menü Cut and Fill. Anwendungsbeispiele sind z.B. das Modellieren eines Bergsturzes oder die Bestimmung der Auswirkungen von Bauarbeiten (Bauaushub oder Aufschüttung) mit Hilfe eines Geländemodells. Es werden dabei ein Lattice und ein Polygon-Cover erzeugt.
Die Höhen-Werte (Z-Values) des Output Lattice stellen dabei den Änderungsbetrag der Cut-And-FillOperation (also, z.B. der Bauarbeiten) dar. Negative Z-Werte deuten die Gebiete des Before Lattice an,
die aufgefüllt wurden, während positive Werte für Abtragungen stehen.
Abbildung 7-29. Das Cut & Fill Calculation Menü
Das Output Cover, dessen Koordinaten in double precision (vgl. Kapitel 3) gespeichert werden, enthält
diejenigen Gebiete als Polygone, die als Auffüllungsbereich, oder Abtragungsgebiet errechnet wurden.
In der PAT wird eine Variable mit dem Namen CF-CODE erzeugt, deren Werte die Regionen mit Cut,
Fill, No Change oder NODATA identifizieren. Der Höhenmaßstab kann durch Änderung des Zvalues
angepaßt werden.
Weiterführende Literatur:
N. N., 2001, N.N., N.N..
197
Kapitel 7. Geländemodelle
198
Kapitel 8. Die Makro-Programmierung mit AML
AML ist eine in ARC/INFO integrierte Skriptsprache, mit deren Hilfe einzelne Programmbefehle zu
Batch-Programmen zusammengefügt werden können, um wiederkehrende Aufgaben zu automatisieren.
Darüber hinaus ist es möglich, die Ausführung von ARC/INFO-Anweisungen von Bedingungen abhängig zu machen, innerhalb des Programmes über Variablen auf Dateinamen, Coverage-Elemente etc. zuzugreifen und schließlich sogar eine komplette grafische Benutzerschnittstelle für eine auf ARC/INFO
basierende Anwendung zu programmieren.
8.1. Was ist AML
Ein Beispiel für eine grafische Oberfläche ist ARCTOOLS, welches einen Großteil von ARC/INFO über
eine Fensteroberfläche zugänglich macht, jedoch sind auch zahlreiche von der Kommandozeile aufzurufende Unterprogramme von ARC/INFO als AML realisiert. Auf der anderen Seite ist es auch möglich,
eine abgespeckte Oberfläche mit eigenen Menüs und Kommandos für eine ganz spezielle Aufgabe zu
programmieren, die sämtliche nicht benötigte Funktionalität vor dem Endanwender verbirgt.
Im Rahmen dieser Einführung können wir nur einen kurzen überblick über die Möglichkeiten dieser
Makrosprache geben, die ausreichen sollte, wiederkehrende Aufgaben zu automatisieren. Von diesem
Grundstock aus kann man dann selbst seine Programmierkenntnisse vertiefen. Empfehlenswert ist in diesem Zusammenhang das Buch von ESRI zu AML1.
8.2. Wie funktioniert die Arc Macro Language
Jedes ARC-Kommando, egal, ob es von Hand eingegeben wurde oder von einem Makro an das Programm gesendet wurde, wird vom AML-Prozessor interpretiert, bevor es an das gerade aktive ARC/INFOProgramm (ARC, ARCPLOT etc.) weitergegeben wird. Im Falle eines Makros werden ARC/INFO keine
Anweisungen, Funktionen oder Variablen zugeführt, sondern diese ausgewertet und deren Interpretation
dann an ARC/INFO selbst zur Ausführung weitergegeben.
8.3. Wie erzeuge ich ein AML-Programm
Es gibt zwei Möglichkeiten, ein AML zu erzeugen. Wenn man bereits weiß, wie das Makro aussehen soll,
kann man es direkt in einen Texteditor eingeben und dann mit der Endung .aml abspeichern. Die Endung
wird (zumindest unter Unix) nicht vom Programm benötigt, ist aber sinnvoll, um AML s von anderen
Dateien unterscheiden zu können.
Als Texteditor ist jeder Editor geeignet, der Dateien ohne versteckte Steuerzeichen editieren und als
ASCII-Text abspeichern läßt. Insbesondere unter Unix bietet sich hier Emacs 2 an, da hierfür eine spezielle AML-Umgebung3 existiert, die z.B. Schleifen und Bedingungen in AML-Programmen übersichtlich einrückt und verschiedene Eingabeerleichterungen zur Verfügung stellt. Es existiert aber auch eine
NT-Version dieses Editors.
199
Kapitel 8. Die Makro-Programmierung mit AML
display 9999 2
arcedit
editcover river
drawenvironment arc node error
editfeature arc
nodesize dangle .2
nodecolor dangle 2
nodesize pseudo .15
nodecolor pseudo 5
draw
&return
Aufgerufen werden AMLs von der Kommandozeile eines ARC/INFO-Programmes. Die ausführliche Variante sieht so aus:
Arc: &run meinaml.aml
Die Dateiendung wird nicht unbedingt benötigt:
Arc: &run meinaml
Und selbst das läßt sich noch abkürzen:
Arc: &r meinaml
Man könnte natürlich auch noch kürzere Programmnamen vergeben ...
Die zweite Möglichkeit besteht darin, Eingaben an der Kommandozeile von ARC/INFO-Programmen
mitprotokollieren zu lassen, etwa wie ein Makrorekorder unter Windows. So sieht man das Ergebnis jedes
Einzelschrittes sofort. Um ein sogenanntes Watch-File zu erzeugen, müß am Prompt
Arc: &watch
gefolgt von einem Dateinamen eingegeben werden. Alle nun eingetippten Befehle werden in der angegebenen Datei abgespeichert, bis man die Aufnahme mit
Arc: &watch &off
beendet. Anhand unseres ersten Beispiels wollen wir kurz die Arbeitsweise demonstrieren:
Die gespeicherte Datei river.wat hat folgenden Inhalt:
Alle eingegebenen Befehle stehen in der Datei in |> <| mit dem jeweiligen Programmprompt davor.
Dieses Watch-File kann jetzt entweder mit
Arc: &runwatch vegetation.wat
ausgeführt werden oder mit
Arc: &cwta vegetation.wat vegetation.aml
(conv_watch_to_aml) in ein AML-Programm umgewandelt werden. Das Ergebnis-AML muß allerdings
noch in einem Editor nachbearbeitet werden:
arcedit
200
Kapitel 8. Die Makro-Programmierung mit AML
display 9999 2
arcedit
editcover river
drawenvironment arc node error
editfeature arc
nodesize dangle .2
nodecolor dangle 2
nodesize pseudo .15
nodecolor pseudo 5
draw
&watch &off
So sollte zum Beispiel jedes AML mit einer &return-Direktive beendet werden, damit das Programm
wieder die Kontrolle an die Tastatur zurückgibt. Die bisherige letzte Zeile (&watch &off) wird nicht
benötigt. Es empfiehlt sich auch, Kommentare einzufügen, damit andere Nutzer des Programmes die
Wirkungsweise verstehen können - oder man selbst nach mehreren Monaten noch weiß, wozu genau
dieses Programm eigentlich überhaupt gut war. Alles, was in einer Zeile hinter der Zeichenfolge /* steht,
wird als Kommentar angesehen und nicht interpretiert. Unsere bearbeitete Datei könnte dann so aussehen.
/* river.aml
/* 12.03.01
/*
/* legt Zeichenumgebung und editfeature arc fuer river fest
display 9999 2
arcedit
editcover river
drawenvironment arc node error
editfeature arc
nodesize dangle .2
nodecolor dangle 2
nodesize pseudo .15
nodecolor pseudo 5
draw
&return
8.3.1. Vereinfachungen bei der Programmierung
8.3.1.1. Zeilenumbruch
Falls eine Befehlszeile länger als eine Zeile im Editor ist, so muß der Rechner wissen, dß die Befehlszeile
in der nächsten Zeile fortgeführt wird. Wird dies nicht markiert, so meldet der Rechner einen Fehler und
beendet das AML vorzeitig mit einer Fehlermeldung.
Arc: build [-getcover * -poly ~
Arc: �
Die Tilde (~) gibt an, daß die Eingabe in der nächsten Zeile fortgeführt wird und erst an deren Ende
ausgeführt wird.
201
Kapitel 8. Die Makro-Programmierung mit AML
8.3.1.2. Mehrere Aktionen in einer Zeile
Mehrere Aktionen in einer Zeile werden durch Semikola getrennt.
Arcedit: ef arc; sel many; delete
Jeder einzelne Befehl muß normalerweise in einer Zeile stehen. Jedoch können mehrere Befehle durch
Semikola (;) getrennt in einer Zeile hintereinander stehen. Sie werden wie einzelne Zeilen behandelt und
entsprechend nacheinander abgearbeitet.
8.3.1.3. Erweiterungen
Wird mit mehreren Coverages gearbeitet, die entsprechend benannt wurden, braucht nicht jedes Coverage einzeln ausgeschrieben zu werden. Die anzufügenden Zeichen werden in geschweiften Klammern
zwischen Ausrufezeichen gesetzt und jeweils an den vorhergehenden Namen angehängt:
Arcplot: mapextent boden {!1 2 3!} geologie
wird interpretiert als:
Arcplot: mapextent boden1 boden2 boden3 geologie
oder
Arcplot: mapextent {!laub nadel misch!}wald
wird zu:
Arcplot: mapextent laubwald nadelwald mischwald
8.3.1.4. Zeilenwiederholung
Wird auf mehrere Coverages die gleiche Befehlsfolge angewandt, so muß nicht für jedes Coverage eine
eigene Zeile eingegeben werden. Die Namen der Coverages können in normale Klammern und Ausrufezeichen gesetzt werden.
Arcplot: arcs (!waelder fluesse boden besitzer!) noids
entspricht:
Arcplot:
Arcplot:
Arcplot:
Arcplot:
arcs
arcs
arcs
arcs
waelder noids
fluesse noids
boden noids
besitzer noids
Angaben in Klammern und Ausrufezeichen \verb*/(! !)/ werden wie einzelne Zeilen im Input interpretiert.
202
Kapitel 8. Die Makro-Programmierung mit AML
8.3.1.5. Zeichenketten und Sonderzeichen
Zeichenketten mit Leer- und/oder Sonderzeichen müssen in Hochkommata stehen ("), um als Gesamtheit
interpretiert zu werden, z.B.:
"Heidelberg_Boden"
"Klima Teilbereich Niederschlag"
"Heidelberg_Schloss1.001"
"Stock=****"
8.3.1.6. Operatoren
Es gibt eine Vielzahl von Operatoren, um verschiedene Operationen wie Addition, logisches UND, NICHT,
IST GLEICH usw. auszuführen.
•
Arithmetische ()
•
Logische ()
•
Relationale ()
Operatoren müssen in Leerzeichen eingeschlossen sein, damit es keine Fehlermeldung gibt, außer wenn
+ oder - als Vorzeichen verwendet werden.
8.4. AML-Elemente
AML verfügt über Anweisungen, Variablen und Funktionen.
8.4.1. Variablen
Variablen sind Mittel zum Speichern von dynamischen Informationen.
In der AML-Programmiersprache gibt es folgende Variablentypen:
•
Zeichenfolgen (Character Strings)
•
Ganzzahlige Werte (Integer)
•
Fließkommazahlen (Real)
•
Boole’sche Ausdrücke (Wahr, Falsch)
•
Ausdrücke, die die obengenannten Typen verknüpfen
8.4.1.1. Setzen von Variablen
Mit &setvar werden Variablen gesetzt, die Kurzschreibweise hierfür lautet: &sv. Es gibt drei untereinander austauschbare Möglichkeiten, Variablen zu setzen:
203
Kapitel 8. Die Makro-Programmierung mit AML
&sv incover := landnutzung
&sv incover = landnutzung
&sv incover landnutzung
Der Variablenname darf dabei nicht länger als 32 Zeichen sein. Im Programm selbst werden Variablen
dann am Prozentzeichen "‘\verb/\%/"’ erkannt, das den Variablennamen umgibt. Nur bei der Deklaration stehen die Variablen nicht zwischen zwei Prozentzeichen. Haben wir also weiter oben die Variable
\verb/incover/ mit einem Wert belegt, so können wir uns weiter unten im Programm darauf beziehen:
build %incover%
Die Variablen werden nicht als Typ deklariert, sondern es wird festgelegt, welche Reichweite die jeweiligen Variablen besitzen.
Mit &sv kann nur eine Variable festgelegt werden. So wird &sv a b c = 0 als &sv a =: b c = 0 interpretiert. Alles rechts von =: wird als zusammenhängender Textstring (mit Leerzeichen) angesehen, d.h. die
Variable a enthält als Wert die Zeichenfolge b c = 0, während es keine Variablen b und c gibt.
8.4.1.2. Löschen von Variablen
Da für die Variablen Speicherplatz zugewiesen wird, empfiehlt es sich, nicht mehr gebrauchte Variablen
explizit zu löschen. Dies geschieht durch &delvar .cover oder &delvar var1 var2. Es ist auch möglich,
Platzhalter zu verwenden. So kann man z.B. alle globalen Variablen, die mit einem c beginnen, folgendermaßen löschen:
&dv .c*
8.4.1.3. Lokale und globale Variablen
Der Unterschied zwischen den Typen besteht in der jeweiligen Reichweite der Variablen.
8.4.1.3.1. Lokale Variablen
Lokale Variablen gelten nur in dem AML, in dem sie gesetzt wurden, können also auch nur innerhalb
dieses AMLs verändert werden. Lokale Variablen speichern Informationen, die nicht in anderen AMLProgrammen benötigt werden, z.B. Zählvariablen.
Alle lokalen Variablen werden gelöscht, wenn das AML beendet wird. In zwei verschiedenen AMLProgrammen können also Variablen den gleichen Namen erhalten, sofern sie nur lokal definiert sind.
8.4.1.3.2. Globale Variablen
Die Reichweite der globalen Variablen geht über ein einzelnes AML hinaus. Sie gelten für alle AMLProgramme der laufenden ARC/INFO-Session. Sie werden in der Regel benutzt, um Informationen zwischen AML-Programmen auszutauschen. Die Variablen werden so lange gespeichert, bis sie gelöscht
werden oder die Programm-Session beendet wird.
204
Kapitel 8. Die Makro-Programmierung mit AML
Abgesehen von ihrer Reichweite verhalten sich lokale und globale Variablen identisch.
Globale Variablen werden folgendermaßen definiert:
&sv .cover 0 strassen
wobei der vorangestellte Punkt wichtig ist, da er die Variable als global markiert.
Aufgerufen werden sie entsprechend:
build %.cover% line
Zum besseren Verständnis soll dies noch einmal an zwei AMLs erläutert werden:
/* bsp1.aml
/*
/* Wirkung von lokalen und
/* globalen Variablen
&sv VAR = strassen
&sv .VAR2 = 16
&r bsp2.aml
&s VAR1 = %.VAR4%
&ty %.VAR2%
&return
und
/* bsp1.aml
/*
/* Wirkung von lokalen und
/* globalen Variablen
&sv VAR = strassen
&sv .VAR2 = 16
&r bsp2.aml
&s VAR1 = %.VAR4%
&ty %.VAR2%
&return
Die Variable VAR1 ist lokal und VAR2 ist global. VAR3 nimmt nach Aufruf von bsp2.aml den Wert von
\verb/VAR2/ an. \verb/VAR3/ ist lokal und wird nach Beendigung von bsp2.aml gelöscht. \verb/VAR4/
205
Kapitel 8. Die Makro-Programmierung mit AML
ist global und gibt ihren Wert an bsp1.aml ab. Sie wird erst gelöscht, wenn sie zerstört wird oder die
ARC/INFO-Session beendet wird.
8.4.1.4. Variablenverkettungen
Mit &s kann man Variablen verknüpfen, z.B.:
Zeichenketten
mit
Zeichenketten
Integer mit
Integer
&s path := /home/lnuecker/montana
Integer mit
Character
&s a:= 2
&s counter:= %counter% -1
Integer mit
&s beta := 2 + ne 2
Logical
Integer mit Real &s z := 2 + 3,1415
8.4.1.5. Indexvariablen
Um zu zeigen, daß Variablen in einem direkten Zusammenhang stehen, kann man sie mit einem gleichen
Namen und einem sich ändernden Index versehen.
&s
&s
&s
&s
&s
&s
cover1
cover2
cover3
cover4
cover5
cover6
:=
:=
:=
:=
:=
:=
landnutzung
geologie
strasse
fluesse
klima
boden
Da nur der Index verändert wird, bietet sich folgende Variablendefinition an:
&s cover%nummer% = landnutzung
In nummer wird gespeichert, welchen Wert cover annimmt. Hier hat nummer den Wert 1 und cover den
Wert landnutzung.
Möchte man wissen, welchen Wert cover hat, bedient man sich der [value]-Funktion. &type [value
cover\%nummer\%] gibt bei einer mit 4 belegten Variable nummer das Ergebnis von [value cover4]
aus. Auf dem Bildschirm wird daher fluesse ausgegeben.
8.4.1.6. Anzeigen von Variablen und deren Werten
Befehl
zeigt an
&listvar (&lv,
&l)
globale, lokale und Programmvariablen und deren Werte
206
Kapitel 8. Die Makro-Programmierung mit AML
Befehl
zeigt an
&listglobal
globale Variablen und ihre Werte
(&lg)
&listlocal (&ll) lokale Variablen und ihre Werte
&listprogram
(&lp)
Programmvariablen und ihre Werte
Wenn kein Variablenname angegeben ist, werden alle Variablen aufgelistet. Ein * kann als Wildcard benutzt werden.
Wenn der Name der Variablen bekannt ist, meldet
&lv .cover
z.B. zurück:
GLOBAL .COVER LANDNUTZUNG
d.h. eine globale Variable namens .cover ist mit dem Wert landnutzung belegt.
8.4.1.7. Übertragen von Argumenten/Variablen
Mit der Anweisung &args können Variablen schon beim Aufruf des AML-Programms über dem Programm mitgegebene sog. Argumente mit Werten besetzt werden. Dies bietet sich z.B. an, wenn ein AML
erstellt wurde, das je eine Informationsebene in Kartenform ausgeben soll. Der Coveragename kann nun
als Argument mitgegeben werden, ohne daß das Programm für jeden Aufruf neu modifiziert werden muß.
Vereinfacht könnte das AML so aussehen:
/* karte.aml
&args cover1 cover2 /* Vorder- und Hintergrund
/* beim Aufruf mitgeben
arcplot
mape %cover%
arclines %cover1% 2 /* Hintergrund in rot ausgeben
arclines %cover2% 4 /* Vordergrund in blau ausgeben
Beim Aufruf werden die Variablen gegen die mitgegebenen Argumente ersetzt und die entsprechenden
Coverages ausgegeben.
Werden weniger Variablen beim Programmaufruf angegeben als vom Programm erwartet, erhalten die
entsprechenden Werte von &args einen leeren Textstring ("") als Inhalt.
Angenommen, wir rufen unser obiges Beispiel folgendermaßen auf:
&r karte.aml fluesse
erhalten wir für unser Programmbeispiel folgende Variablenbelegungen:
207
Kapitel 8. Die Makro-Programmierung mit AML
cover1 = fluesse
cover2 = ""
Es werden nur so viele Variablen mit Werten belegt wie sie durch &args erwartet werden. Werden mehr
Argumente mitgegeben, verfallen die restlichen. Dies läßt sich durch :rest verhindern. In diesem Fall
werden alle übrigen Argumente der letzten &arg-Variablen als zusammenhängender String übergeben.
Nehmen wir an, &args wurde wie folgt definiert:
&args feld wald wiese:rest
Aus der Eingabe:
&r mein.aml mais tanne klee mohn
ergibt sich folgende Variablenbelegung:
feld = mais
wald = tanne
wiese = klee mohn
8.4.1.8. Reservierte Variablen
Diese Variablen wurden vom Programm selbst gesetzt und dürfen daher auch nicht vom Anwender als
Variablenname für eigene Variablen verwendet werden oder mit eigenen Werten belegt werden. Eine
ausführliche Liste ist in der Online-Hilfe ArcDoc oder dem AML User’s Guide unter &describe zu finden.
8.4.1.8.1. Coverage-/Grid-/Tin-Variablen
Diese Variablen enthalten Informationen über einzelne Coverages oder andere Geodatensätze (z.\,B.: wurde Topologie erzeugt?) Sie beginnen jeweils mit drei Buchstaben, z.B. DSC, gefolgt von einem $-Zeichen
und dem zu beschreibenden Aspekt, z.B. DSC$COVER für den Namen eines Coverages.
Mit der Variable DSC$QEDIT läßt sich prüfen, ob ein Coverage editiert wurde:
&args cover
&describe %cover%
&if %DSC$QEDIT%
&then
build %cover%
&else &type Das Coverage wurde nicht editiert
&return
8.4.1.8.2. Cursorposition (PNT$)
Diese Variablen werden für die graphische Eingabe benutzt, z.B. beim Digitalisieren und liefern Informationen über den Cursor (welche Maustaste wurde gedrückt, an welcher Stelle des Schirms befindet sich
der Cursor?)
208
Kapitel 8. Die Makro-Programmierung mit AML
8.4.1.8.3. AML-Status-Variablen (AML$)
Informationen über den aktuellen Zustand des AMLs können über diese Variablen abgefragt werden, z.B.:
hat der Anwender das AML-Programm durch eine nicht vorhergesehene Eingabe zum Absturz gebracht?).
AML$SEV liefert beispielsweise folgende Informationen über den Erfolg einer Operation für die zuletzt
abgearbeitete Zeile. Dabei haben die Rückmeldungen folgende Bedeutung:
0
1
kein Fehler
Warnung
2
Fehler
AML$MESSAGE speichert jeweils die letzte Warnung oder Fehlermeldung, AML$MENUKEY den letzten Ta-
stendruck.
8.4.1.8.4. Programmvariablen
Im Unterschied zu lokalen und globalen Variablen werden diese Variablen vom Programm selbst vereinbart, nicht vom Benutzer. Jede dieser Variablen fängt mit einem : an. Es handelt sich um nur lesbare
Variablen, d.h. sie können nicht anders belegt werden.
Wenn ARC/INFO gestartet wird, wird eine Variable :program angelegt.
&if %:program% = arc
&then
&describe %cover%
...
&else &system arc describe %cover%
In diesem Fall wird &describe direkt ausgeführt, wenn das aktuell laufende Programmodul ARC ist,
andernfalls wird über die shell eine neue ARC/INFO-Instanz gestartet und im Anschluß der describeBefehl darin aufgerufen.
8.4.2. Funktionen und Anweisungen
AML stellt neben Variablen Funktionen (functions) und Anweisungen (directives) zur Verfügung.
AML bietet ein breites Spektrum an Funktionen, die zum Teil auch schon Menüs und Auswahlfelder
bieten, z.B.:
•
Aufforderung zur Benutzereingabe (ja/nein, Dateiname, Arc/Polygon etc.)
•
Anzeigen einer Liste mit Auswahlmöglichkeit
•
Zeichenketten-Manipulationen (z.B. Ausgabe in Großbuchstaben)
•
Überprüfen der Existenz von Dateien, Coverages etc.
209
Kapitel 8. Die Makro-Programmierung mit AML
Funktionen stehen immer in eckigen Klammern ([ ]). Auch sie können soweit abgekürzt werden, wie sie
noch eindeutig sind.
Anweisungen dienen z.B. dazu, Variablen zuzuweisen oder den Programmablauf je nach Erfüllung von
Bedingungen oder Entscheidungen des Anwenders zu steuern.
Verschiedene Anweisungen (z.B. &sv oder &if ... &else) haben wir bereits oben im Abschnitt zu Variablen kennengelernt. Anweisungen sind niemals selbst ein Programm, sondern weisen das AML an,
Operationen durchzuführen. Sie beginnen immer mit einem & (kaufmännisches und, Ampersand). Die
Anweisungen können in ihrer Buchstabenfolge soweit abgekürzt werden, wie sie von anderen Anweisungen eindeutig identifizierbar bleiben.
8.4.2.1. Anzeigen einer Liste mit Auswahl
AML bietet eine breite Palette von Befehlen, die Listen erzeugen. Alle diese Befehle fangen mit [GET
...] an, z.B.: build [getcover * all] poly
Mit [getcover] wird eine Liste aller (-all) vorhandenen Coverages angezeigt. Mit * wird vom Benutzer
ein Coverage ausgewählt.
Es existieren folgende Auswahlfunktionen:
•
getchar
•
getchoice
•
getcover
•
getfile
•
getgrid
•
getitem
•
getlibrary
•
getsymbol
•
getunique
•
gettin
8.4.2.2. Existenzüberprüfung von Objekten
Oft werden in ARC/INFO Coverages und Attributtabellen verändert. Die Funktion [exists] prüft, ob alle
Objekte, die benötigt werden, auch existieren. [exists] gibt eine Boolesche Variable zurück, die entweder
.true (wenn das Objekt vorhanden ist) oder .false (wenn es nicht vorhanden ist) ist. Diese Funktion
wird meist im Zusammenhang mit einer &if-Anweisung gebraucht.
&if [exists strassen -cover]
&then
&ty "Das Coverage existiert"
&else
&ty "Das Coverage existiert nicht"
210
Kapitel 8. Die Makro-Programmierung mit AML
8.4.2.3. Erhalten von Attributinformationen
Mit [listitem] und [iteminfo] kann man Informationen über Items (Spalten) in Coverages oder in INFOFiles erhalten.
Mit [listitem] kann man alle Items oder einzelne Items, z.B. vom Typ character auflisten.
Mit [iteminfo] erhält man die genaue Beschreibung eines Items.
Arc: <command>&sv</command> items := [listitem strassen -line -char]
Arc: <command>&ty</command> items
NAME CLASS
Items wird einer Liste aller Character-Items des Coverages gleichgesetzt. Das Ergebnis ist dann name und
class
Arc: &ty [iteminfo strassen -line name -def]
25,25,C,0
Hiermit kann z.B. die Datentypdefinition eines items abgefragt werden. In diesem Fall wäre das Ergebnis
eine Ein- und Ausgabeweite von jeweils 25 Zeichen, das Feld wäre als Zeichenkette (character) definiert
und hätte keine Dezimalstellen.
8.4.2.4. Anzeigen der momentanen Einstellungen
Mit [show] kann man sich gesetzte Definitionen anzeigen lassen. Die Funktion liefert real, integer, character und boolesche Werte.
[show
liefert die Werte der momentanen Kartengröße.
mapextent]
[show program] gibt den Name des derzeit laufenden Programms aus.
[show graphic] zeigt an, ob das gerade laufende Programm mit Graphikfunktion implementiert ist oder
nicht
[show&menu] zeigt die Position eines Digitalisiermenüs an
Die [show]-Funktion liefert alle Definitionen, die möglich sind. Es ist darauf zu achten, daß die Funktion
mit ihren Parametern aus dem richtigen Modul heraus aufgerufen wird (z.B. ARCEDIT, ARCPLOT, ARC
etc.), sonst funktioniert die Abfrage nicht.
211
Kapitel 8. Die Makro-Programmierung mit AML
8.4.2.5. Verschachtelte Funktionen
So viele Funktionen wie benötigt werden können auch verschachtelt werden.
Arc: &sv xmin := [extract 1 [show mapextent]]
extract übergibt den ersten Wert der [show]-Funktion an die Variable xmin. Dasselbe Beispiel könnte
auch so aussehen:
Arc: &ty [iteminfo strassen -line [extract 1[listitem strassen -line -char]] def]
8.4.2.6. Entscheidungen und Bedingungen
8.4.2.6.1. IF-THEN (Wenn ... dann)
Die Anweisung nach &then wird nur ausgeführt, wenn die Bedingung hinter &if zutrifft, also den Wert
.true annimmt.
&if [getchar ’Buchstabe eingeben’] = A
&then
&r a.menu
Wenn A eingegeben wird, wird das Menümakro a.menu ausgeführt.
Mehrere Entscheidungen können auch verschachtelt werden.
&describe %cover%
&if [exists %cover% -poly] and &DSC$EDIT
&then
build %cover% poly
Existiert also ein Polygoncoverage, dessen Geometrie bearbeitet wurde, wird ein build ausgeführt, um die
Topologie neu zu konstruieren. Der Befehl in der letzten Zeile ist dabei wieder ein normaler ARC-Befehl.
Existiert jedoch kein Polygoncoverage, so bricht das Makro an dieser Stelle mit einer Fehlermeldung ab.
Besser ist es so:
&if [exists %cover% -poly]
&then
&do
&describe %cover%
&if %DSC$EDIT%
212
Kapitel 8. Die Makro-Programmierung mit AML
&then
build %cover% poly
&end
Hier wird durch die vorherige Prüfung auf Existenz des Coverages verhindert, daß das Makro an dieser
Stelle abbricht.
8.4.2.6.2. IF-THEN-ELSE (Wenn ... dann ... sonst)
Es gilt zu beachten, daß jedem &else ein dazugehöriges &if vorangehen muß. Das vorhergehende Beispiel
ließe sich wie folgt erweitern:
&if [exists %cover% -poly]
&then
&do
&describe %cover%
&if %DSC$EDIT%
&then
build %cover% poly
&else
&ty ’Auf dieses Coverage muss kein build angewandt werden’
&end
&else
&ty ’Das Polygoncoverage %cover% existiert nicht’
Um mehr als zwei Auswahlmöglichkeiten zu erhalten, können die Bedingungen verschachtelt werden.
Dabei ist darauf zu achten, daß nur soviel wie nötig und nicht soviel wie möglich verschachtelt wird, da
hierunter die übersichtlichkeit leidet. Hierzu zwei Beispiele:
&if [response ’Sind sie ein Gallier (y/n)?’] eq y
&then
&if [response ’Spinnen die Roemer (y/n)?’] eq y
&then
&ty ’Sie sind ein Gallier!!!’
&else
&ty ’Na, na, na, Sie sind wohl ein Roemerfreund?’
&else
&ty ’Vorsicht vor den Galliern, Roemer!’
oder
&s zahl = [response ’Geben Sie eine Zahl ein’ 0]
&if [type %zahl%] lt 0
213
Kapitel 8. Die Makro-Programmierung mit AML
&then
&if %zahl% ge 0
&then
8.4.2.6.3. SELECT-WHEN (Wähle ... wenn)
Verschachtelte Anweisungen werden schnell unüberschaubar. Mit select ... when bietet AML eine Alternative hierzu.
Betrachten wir zunächst eine Auswahl über verschachtelte &if ... &else Konstruktionen:
&if [show editfeature] = arc
&then
&menu arc.menu
&else
&if [show editfeature] = tic
&then
&menu tic.menu
&else
&if [show editfeature] = label
&then
&menu label.menu
&else
&if [show editfeature] = node
&then
&menu node.menu
&else
&ty ’Kein Menue fuer dieses Feature vorhanden
übersichtlicher läßt sich dies mit &select realisieren:
&select[show editfeature]
&when arc
&menu arc.menu
&when tic
&menu tic.menu
&when label
&menu label.menu
&when node
&menu node.menu
&otherwise
&ty ’Kein Menue fuer dieses Feature vorhanden’
&end
214
Kapitel 8. Die Makro-Programmierung mit AML
Wenn &select ausgeführt wird, prüft der Makroprozessor die &when-Anweisungen der Reihe nach durch.
Trifft eine Bedingung zu, so wird der nachstehende Menübefehl ausgeführt. Trifft keine der &whenBedingungen zu, so wird die Anweisung nach &otherwise ausgeführt, daher sollte spätestens hier ein
Befehl stehen, der in jedem Fall ausgeführt werden kann, da sonst ein AML-Fehler auftritt.
Die &select-Anweisung muß mit einer &end-Anweisung beendet werden.
Soll in einem &when-Fall bei verschiedenen Bedingungen der gleiche Befehl ausgeführt werden, können
iese in einer Zeile, durch Kommata getrennt, eingegeben werden. Ausgeführt werden kann jedoch immer
nur ein Statementbefehl hinter &when. Sollen hier mehrere Befehle ausgeführt werden, so ist es besser,
sie in einen &do ... &end-Block einzubetten:
&select [username]
&when digitize
&r digitize.aml
&when edit, plot, verify
&do
&s wahl := [getchoice Plot; Edit; Verify -prompt ’Wahl eingeben’]
&r %choice%.aml
&end
&when manage
&r manage.aml
&otherwise
&ty ’Sie haben keine Berechtigung, ein Programm zu starten’
&end
8.4.2.6.4. GOTO
Mit &goto kann man an eine beliebige Stelle im Programm springen. Die Zeile, in die gesprungen werden
soll, beginnt mit &label.
&if [response ’Wollen Sie aufhoeren (y/n)?’] eq y
&then
&goto save
...
...
&label save
save
quit
Durch &goto-Anweisungen geht die übersicht über den Programmablauf schnell verloren. Es sollte nur
als Notlösung eingesetzt werden. Generell ist von der Verwendung von &goto abzuraten und es existiert
wohl nur noch als Zugeständnis an hartnäckige BASIC-Programmierer ...
215
Kapitel 8. Die Makro-Programmierung mit AML
8.4.2.7. Schleifen
Abläufe, die sich in gleicher Form für verschiedene Elemente wiederholen, können zur Vereinfachung in
verschiedene Schleifen eingebunden werden und dort nacheinander abgearbeitet werden.
8.4.2.7.1. Zählschleifen (&DO ... &TO ... &BY ... &END)
Bei einer bekannten Anzahl von Durchläufen, z.B. beim Lesen oder Eingeben von Daten, kann man
Zählschleifen benutzen. Die Zählvariable wird hierbei nach jedem Durchgang um einen festgelegten Wert
erhöht bzw. erniedrigt.
&do i := 1 &to 11 &by 2
list %cover%%i%.pat
&end
Zählschleifen können auch mit einer Bedingung versehen werden.
&do i := 1 &to 11 &by 1 &while %num% ne 11
<statement ... statement>
&end
Die Schleife wird beendet, wenn die definierte Zahl der Durchläufe erreicht ist.
8.4.2.7.2. WHILE-Schleifen
Für while-Schleifen wird die Abbruchbedingung vor dem Beginn der Schleife festgelegt.
&sv continue = .true
&do
&while %continue%
&r machdies.aml
&s [query ’Neue Operation (y/n)?]
&end
Solange die Bedingung für continue wahr ist, wird die Schleife ausgeführt 4. Erst bei .false, d.h. wenn
man ein n eingibt, wird sie beendet. Wenn continue .false wird, wird die Schleife jedoch noch einmal
durchlaufen. Soll dies nicht geschehen, so muß die Abbruchbedingung hinter &while geschrieben werden.
&sv continue = .true
&do
&while [query ’Neue Operation (y/n)?’]
&end
216
Kapitel 8. Die Makro-Programmierung mit AML
8.4.2.7.3. UNTIL-Schleifen
Bei until-Schleifen muß die Abbruchbedingung nicht vor Beginn der Schleife definiert werden.
&do
&unitl %done%
&r machdas.aml
&sv [query ’Ende der Operation (y/n)?’]
&end
Die Schleife wird immer fragen, ob die Operation noch einmal durchgeführt werden soll. Wenn der logische Ausdruck .true ist, wird die Schleife beendet.
8.4.2.7.4. LIST-Schleifen
Eine solche Schleife führt für jedes Element einer Liste die Operationen innerhalb dieser Schleife durch.
Die Schleife kann auch mit &while und &until eine Abbruchbedingung erhalten, so daß die Schleife
nicht für die ganze Liste durchgeführt wird. Das Beispiel zeigt eine Schleife, die überprüft, ob zu einem
Coverage die dazugehörigen INFO-Files existieren.
&sv cover = [response ’Coveragenamen eingeben:’]
&do
ext &list pat aat tic bnd
&if [exists &cover%.%ext% -info]
&then
&ty Info-Datei %cover%.%ext% ist vorhanden
&end
8.4.2.7.5. REPEAT-Schleifen
Diese Schleife sollte am Ende mit &until oder &while beendet werden. Macht man das nicht, muß man
sie mit &return beenden, da wir sonst eine Endlosschleife produzieren.
&do kreis = 1
&repeat %kreis% + 1 &until %done%
&r berechnung.aml
&if [response ’noch einmal (y/n)?] eq n
&then
&sv done = .true
&end
217
Kapitel 8. Die Makro-Programmierung mit AML
8.4.2.7.6. Verschachtelte Schleifen
Bei verschachtelten Schleifen wird zuerst die innerste Schleife komplett abgearbeitet, dann die nächstäußere, bis die äußerste Schleife durchlaufen wurde. Im folgenden Beispiel belegen wir eine 3x3-Matrix mit
Zahlen.
&do
8.4.2.8. Routinen (Module)
AML-Routinen entsprechen Modulen oder Prozeduren in anderen Programmiersprachen. Sie werden für
häufig wiederkehrende Abläufe, etwa zur Fehlerbehandlung oder bei Bedingungen, benutzt. Sie können
komplexe &do-Blöcke ersetzen. Entweder werden diese Teile separat in einem eigenen AML abgelegt
oder sie stehen am Ende des Programmes in einem separaten Block. Stehen sie am Ende des Programmes,
bezeichnet man sie als Routinen. Andernfalls kann man sie als Bibliotheken betrachten.
Routinen sind Unterprogramme innerhalb eines AML-Makros. Der Hauptteil des Programmes muß mit
&return beendet werden, sonst werden die Routinen ausgeführt, obwohl sie möglicherweise im Hauptprogramm gar nicht aufgerufen wurden.
Mit &call ruft man Routinen vom Hauptprogramm her auf. Routinen beginnen mit &routine. Mit &stop
oder &return hören sie auf. Folgt auf das &return kein &inform, &warning oder &error, so springt
die Routine an die Stelle des Hauptprogramms zurück, von der aus das Unterprogramm aufgerufen wurde
und führt den nächsten Befehl aus. Folgt dagegen eine der drei vorgenannten Anweisungen, wird das
AML beendet.
/* meinedit.aml - startet ArcEdit
/* mit dem angegebenen Coverage, feature
/* und station-file
&args cover feature station
&if [null %station%]
&then
&do
&s fehlertyp = keindisplay
&call usage
&end
&if not [exists %cover% -cover]
&then
&do
&s fehlertyp = coverfehler
&call usage
&end
&if [keyword %feature% anno arc label link node tic] le 0
&do
&s fehlertyp = falschelem
218
Kapitel 8. Die Makro-Programmierung mit AML
&call usage
&end
...
...
&return /*Ende des Hauptprogramms
&routine usage
/* zeigt Fehler und korrekte Syntax an
&select %fehlertyp%
&when keindisplay
&ty ’Fehler bei Angabe des Station-Files’
&when coverfehler
&ty ’Coverage existiert nicht’
&when falschelem
&ty ’Feature muss anno, arc, label, link, node oder tic sein’
&end
...
...
&return &inform usage: meinedit <cover> <feature_class> <station_file>
Das Programm wird nach Aufruf und Durchführung der Routine abgebrochen, da die Eingabe falsch
war. In den anderen möglichen Fällen, d.h. bei richtiger Eingabe, läuft das AML bis zum Schluß. Mit
&return wird es beendet, so daß die anschließenden Routinen ohne den &call-Aufruf nicht gestartet
werden können.
8.5. Dateien und Datenbanken
AML-Programme können nur ASCII-Dateien lesen. Mit den Funktionen [delete], [exists], [getfile], [filelist] und [open] können die üblichen Dateioperationen durchgeführt werden.
Im Beispiel wird eine Menudatei ausgewählt und deren Name an eine Variable übergeben.
&sv meinedatei = [getfile *.menu -file -noext ’Menudatei auswaehlen’]
Die AML-Funktionen erlauben es, Dateien zu erzeugen, zu löschen, Zeilen anzuhängen, Dateien zu öffnen
und zu schließen.
Die file Unit ist ein AML-Zähler, den der AML-Prozessor mit der aktuell geöffneten Datei verknüpft.
Sie ist die interne Stellverteterzahl für die Datei. Statt also den wirklichen Dateinamen zu benutzen, nimmt
der AML-Prozessor die file unit. Die aktuelle Zahl kann mit Hilfe von [open] ausgelesen und einer
Variablen zugewiesen werden. Diese Variable vertritt dann die Datei, wann immer sie gebraucht wird.
[open] stellt also die Verbindung zwischen der wirklichen Datei und der Stellvertreterzahl her.
219
Kapitel 8. Die Makro-Programmierung mit AML
&sv fileunit = [open test.dat openstat -append]
In diesem Beispiel liefert [open] die file unit, mit der die Datei test.dat im weiteren Verlauf der
AML-Session vertreten wird, an den AML-Prozessor. Gespeichert wird die File Unit in der Variablen
fileunit5. Ab diesem Zeitpunkt wird nur noch diese Variable benutzt, um Operationen mit der Datei
durchzuführen.
&s string = [response ’Zeichenkette, die angeh&auml;ngt werden soll:’]
&s writefile = [write %fileunit% %string%]
Die [write]-Funktion hängt also an die Datei, die mit der Variablen fileunit verknüpft ist, die Zeichenkette an, die in der Zeile zuvor eingegeben worden ist.
Die status variable gibt den Status einer ausgeführten Lese-, Schreib- oder Anfügeoperation an.
Diese Variable hat den Wert Null (0), wenn die Operation erfolgreich war. In den anderen Fällen, die zum
Abbruch führen, hat die erhält die Variable andere Werte. Bei den Funktionen [open] und [read] werden
Variablen an benutzterdefinierte Variablen innerhalb des Funktionsaufrufes übergeben. Daher gibt es die
status variable bei diesen beiden Funktionen nicht.
Ein record ist eine Zeile in einer Datei. Eine Zeile kann ein Leerzeichen, Zeichenketten etc. enthalten.
Zeilen können nur der Reihe nach abgearbeitet werden. Um also die zehnte Zeile einer Datei lesen zu
können, muß das Programm zuerst die vorherigen neun Zeilen lesen. Dies geschieht mit [read].
8.5.1. Öffnen einer Datei
Bevor man mit einer Datei arbeiten kann, muß diese geöffnet werden. Dies geschieht mit der Funktion
[open]. Maximal 20 Dateien können gleichzeitig geöffnet werden.
Die Syntax lautet:
Arc: usage
[open <file> <status_variable> <-read | -write | -append>]
wobei file der Name der Datei ist. Mit -read usw. wird angegeben, auf welche Weise die Datei angesprochen werden soll. Die status_variable gibt an, wie die Operation verlaufen ist. Sie kann folgende
Werte haben:
0
100
Datei erfolgreich geöffnet
keine freie file unit mehr verfügbar
101
102
Datei nicht gefunden (-read)
kann die Datei nicht öffnen (-read, -append)
220
Kapitel 8. Die Makro-Programmierung mit AML
103
kann die Datei nicht erzeugen (-write, -append)
8.5.1.1. Datei lesend öffnen (-read)
Mit der -read-Option wird eine Datei geöffnet, die nur gelesen werden kann. Wenn man also in die
Datei schreiben will, so wird das Programm einen Fehler melden und mitteilen, daß dies nicht möglich
ist. Wenn eine Datei erfolgreich geöffnet wurde, ist der Wert der status_variable Null. Folgendes
Beispiel verdeutlicht dies:
&s fileunit = [open datei openstat -r]
8.5.1.2. Datei mit Schreibberechtigung öffnen (-write)
Mit der -write-Option wird eine Datei geöffnet, die entweder beim Speichern die alte Datei überschreibt,
oder eine neue Datei unter dem gewählten Namen anlegt, sofern sie nicht vorhanden ist. Eine Datei die mit
-read geöffnet wurde kann nicht gleichzeitig mit -write geöffnet werden. Wenn die Operation erfolgreich
war, hat die Variable den Wert Null.
Bevor man mit der Datei arbeitet, sollte man prüfen, ob sie auch erfolgreich geöffnet wurde:
&if [exists %file%]
&then
&do
&s fileunit = [open datei openstat -w]
/* Pruefen, ob die Datei erfolgreich geoeffnet wurde
&if %openstat% ne 0
&then
&do
&return &inform Kann die Datei nicht oeffnen
&end
&else
/* Lesen der Datei
&end
&else
&type Die Datei %file% ist nicht vorhanden
.
.
.
&return
221
Kapitel 8. Die Makro-Programmierung mit AML
8.5.1.3. An Datei anfügen (-append)
Diese Funktion wird benutzt, um Zeilen an das Ende einer Datei anzufügen. Auch hier gibt es die Möglichkeit, diese, sofern sie noch nicht existiert, als neue Datei zu speichern. Dies kann folgendermaßen
geschehen:
&s fileunit := [open datei openstat -a]
[open] gibt eine file unit-Nummer aus, die von den anderen Operationen gebraucht wird ([read], [write]
oder [close]). Die file unit hat entweder einen Wert zwischen 1 und 20 oder den Wert 100, wenn schon
20 Dateien geöffnet sind. Der Wert der Funktion [open] hat entweder einen Wert zwischen 1 -20 oder den
Wert Null, wenn die file unit den Wert 100 hat.
8.5.1.4. Lesen einer Zeile aus einer Datei
Wenn eine Datei mit der -read-Option erfolgreich geöffnet worden ist, kann die [read]-Funktion dazu
benutzt werden, Zeilen zu lesen. Diese Funktion kann jedoch nur ganze Teile einer Zeile lesen. Einzelne
Zahlen oder strings können nicht erfasst werden. Mit [extract], [before], [after] und [substr] kann der
Nutzer auch solche Teile einer Zeile lesen.
Die Syntax der Funktion ist folgende:
Arc: usage
[read <aml_file_unit> <status_variable>]
wobei aml_file_unit/ die file unit ist, die [open] zurückgibt.
status_variable gibt an, ob die Leseoperation erfolgreich war oder nicht.
&s fileunit := [open [getfile] openstat -r]
&s linie := [read %fileunit% readstat]
Mit [getfile] erhält man eine Liste der verfügbaren Dateien. Die daraus ausgewählte Datei wird mit [open]
geöffnet. Solange die Datei nicht leer ist, wird die Variable linie auf die erste Zeile gesetzt.
Sind in der Zeile Leerzeichen vorhanden, wird der Wert von [read] in Anführungszeichen zurückgegeben.
Sind sie nicht gewünscht, so kam man dies mit [unquote] unterdrücken.
&s linie := [unquote [read %fileunit% readstat]]
222
Kapitel 8. Die Makro-Programmierung mit AML
Die maximale Länge einer Zeile darf 1024 Zeichen nicht überschreiten. Wenn Leerzeichen darunter sind,
darf die Zeile nicht mehr als 1022 Zeichen haben. Wenn die Zeile länger ist, wird sie von hinten entsprechend abgeschnitten.
Immer wenn die Funktion [read] aufgerufen wird, wird auch die status-variable neu gesetzt. Sie
kann folgende Werte annehmen:
0
Zeile wurde erfolgreich gelesen
100
101
Die file unit ist nicht zum Lesen bereit
Fehler beim Lesen
102
103
Ende der Datei
Es ist nicht möglich, die Datei wieder zu öffnen (Dateien zwischen Arc-Programmen
können geschlossen und automatisch wieder geöffnet werden)
104
Die Zeile wurde auf 1024 Zeichen abgekürzt
Die [read]-Funktion liefert nur jeweils eine Zeile. Will man mehrere Zeilen gleichzeitig ansehen, so kann
man mit Hilfe von Schleifen realisieren. Im folgenden Beispiel werden alle Zeilen der Reihe nach auf
dem Bildschirm ausgegeben, bis das Ende der Datei erreicht ist. Zuvor wird geprüft, ob die Datei auch
richtig geöffnet wurde.
&args datei
/* Fehlersuch
&if [null %datei%]
&then
&return &inform Es wurde kein Dateiname eingegeben!
&s fileunit = [open %datei% openstat -r]
&if openstat ne 0
&then
&return &error Fehler beim &ouml;ffnen der Datei
/* Lesen der Zeilen
&s zeile = [read %fileunit% readstat]
&do &while %readstat% ne 102
&type %zeile%
&s zeile = [read %fileunit% readstat]
&end
/* Schlie&szlig;en der file unit
&s closestat = [close %fileunit%]
&return
Sollen nur einige Zeilen, bzw. Bestimmte Zeilen aus der Datei gelesen werden, so bieten sich weitere
Schleifen an, um dies zu erreichen:
&args datei
/* Fehlersuch
&if [null %datei%]
223
Kapitel 8. Die Makro-Programmierung mit AML
&then
&return &inform Es wurde kein Dateiname eingegeben!
&s fileunit = [open %datei% openstat -r]
&if openstat ne 0
&then
&return &error Fehler beim &ouml;ffnen der Datei
/* Uebergehen der ersten zehn Zeilen
&do i = 1 &to 10
&s zeile = [read %fileunit% readstat]
&end
/* Lesen ab der 10. Zeile bis zum Ende
&s zeile = [read %fileunit% readstat]
&do &while %readstat% ne 102
&type %zeile%
&s zeile = [read %fileunit% readstat]
&end
/* Schlie&szlig;en der file unit
&s closestat = [close %fileunit%]
&return
Die ersten zehn Zeilen werden also nur gelesen, aber von allen anderen Operationen ausgeschlossen. Der
Benutzter bekommt es gar nicht mit, daß sie gelesen werden.
8.5.1.5. Schreiben einer Zeile in eine Datei
ähnlich wie die [read]-Funktion funktioniert auch die [write]-Funktion. Die Datei muß mit [open] geöffnet werden. Danach kann an das Ende der Datei eine Zeile angehängt werden. Die Syntax ist folgende:
Arc: usage
[write <aml_file_unit> <record>]
wobei aml_file_unit die file unit ist, die [open] zurückgibt. status_variable gibt an, ob die
Schreiboperation erfolgreich war oder nicht.
Im Unterschied zur [read]-Funktion besitzt die [write]-Funktion keine Statusvariable, die angibt, ob die
Operation beendet ist. Der Status der Operation wird aber durch die Variable, die [write] liefert, angezeigt:
0
100
Die Zeile wurde erfolgreich geschrieben
Die Datei ist nicht offen zum Schreiben
101
102
Während des Schreibens ist ein Fehler aufgetreten
Es ist nicht möglich, die Datei wieder zu öffnen (Dateien zwischen Arc-Programmen
können geschlossen und automatisch wieder geöffnet werden)
224
Kapitel 8. Die Makro-Programmierung mit AML
Die Zeile, die in die Datei geschrieben wird, kann einen Textstring, einen Wert einer AML-Variablen oder
eine Mischung beider enthalten. Wenn die Zeile Leerzeichen enthält, so muß sie in Anführungszeichen
stehen, damit [write] sie als eine zusammenhängende Zeile versteht. Die Anführungszeichen werden
jedoch nicht mitgespeichert.
Folgendes Beispiel verdeutlicht die Möglichkeiten von [write]:
&args datei
/* Fehlersuche
&if [null %datei%]
&then
&return &return Es wurde kein Dateiname eingegeben!
&s fileunit = [open %datei% openstat -w]
&if openstat ne 0
&then
&return &error Fehler beim Oeffnen der Datei
/* Schreiben einiger Zeilen in die Datei
&s writestat = [write %fileunit% KeineLeerzeile]
&s writestat = [write %fileunit% ’Mit Leerzeichen’]
/* Schreiben in die Datei mit Hilfe einer Variablen
&s zeile = in einer Variablen gespeicherte Textzeichen
&s writestat = [write %fileunit% [QUOTE %zeile%]]
/* Schreiben einer Zeile die eine Variable enthaelt
&s writestat = [write %fileunit% [QUOTE Die Zeile enthaelt %zeile%]
/* Schlie&szlig;en der file unit
&s closestat = [close %fileunit%]
&return
Nachdem das AML-Programm durchlaufen wurde, sind der Datei folgende Zeilen angehängt worden:
KeineLeerzeile
Mit Leerzeichen
Textzeichen, die in einer Variablen gespeichert sind
Diese Zeile enthaelt in einer Variablen gespeicherte Textzeichen
8.5.1.6. Schließen einer Datei
Mit [close] wird eine Datei geschlossen. Die dazugehörige file unit wird wieder frei für eine weitere
Nutzung.
[close aml_file_unit I -all]
Die Dateien können einzeln oder mit -all alle auf einmal geschlossen werden. Den Status der Operation
gibt die [close]-Funktion aus:
225
Kapitel 8. Die Makro-Programmierung mit AML
0
Datei erfolgreich geschlossen
101
102
file unit Nummer ist falsch oder existiert nicht
Die file unit ist nicht offen
Im folgenden Beispiel werden alle Dateien geschlossen:
&s closestat = [close -all]
8.5.1.7. Löschen einer Datei
Mit [delete| können Dateien, Verzeichnisse oder INFO-Dateien gelöscht werden. Eine Datei muß immer
geschlossen sein, bevor sie gelöscht werden kann.
[DELETE <file> {-FILE I -DIRECTORY I WORKSPACE I -INFO}]
Den Status der Operation gibt der Wert an, den [delete] zurückgibt:
0
Löschung erfolgreich durchgeführt
100
Kann die Datei, das Verzeichniss oder die INFO-Datei nicht löschen
Man kann z.B. eine spezielle Routine schreiben, die alle temporären Dateien löscht, bevor das Programm
beendet wird:
...
&routine exit
&if [variable unit]
&then
&do
&sv closestat [close %unit%
&if %closestat% = 0
&then
&do
&dv fileunit
&sv delstat = [delete %tmp_file%]
&end
&else
&ty Fehler beim Schlie&szlig;en der file unit %fileunit% Error~
Code: %closestat%
&end
226
Kapitel 8. Die Makro-Programmierung mit AML
8.5.1.8. Anzeigen von vorhandenen Dateien und Spalten
Während einer Arc-Session kommt es häufig vor, daß man bestimmte Objekte löschen will, eine Dateiliste
braucht usw. Dies geschieht mittels der Funktionen [filelist] und [listitem]. Diese Funktionen erlauben es,
Dateien zu erzeugen, in denen nur bestimmte Objekte aufgelistet sind.
Das folgende Beispiel erzeugt eine Datei, die alle Dateien enthält, die in diesem Verzeichnis vorhanden
sind. Dies können Systemdateien, Logdateien, ARC/INFO-Dateien usw. sein.
&s numobs = [filelist * datei.list -file]
Der * ist ein Platzhalter (wildcard), und zeigt an, daß alle Dateien ausgewählt werden sollen. Das Ergebnis
einer solchen Operation könnte folgendermaßen aussehen:
arc.aml
ae.aml
ae.menu
ap.aml
choice.menu
classify.aml
coverlist.list
digi.menu
grid.aml
log
reset.aml
studies.aml
tin.aml
tin.list
tin.menu
temp.aml
xit.menu
Meistens sollen es aber nicht alle Dateien sein, sondern nur bestimmte. Welche Dateien es sein sollen,
kann man selbst festlegen. Folgende Zeile erzeugt eine Datei, in der nur die AML-Dateien angezeigt
werden:
&s numobs = [filelist *.aml datei.list -file]
Dies zeigt dann nur noch die Dateien mit .aml-Endung im aktuellen Verzeichnis an.
Mit der -type Option können beliebige Objekte ausgewählt werden, seien es Grids, workspaces, INFODateien oder coverage-Elemente wie arc, poly etc. Die nächste Zeile zeigt ein Beispiel, um sich alle
Polygoncoverages anzeigen zu lassen. Die zweite Zeile gibt dann den Wert der Variablen an.
&s numobs = [FILELIST *.aml poly.list -cover -poly]
&lv numobs
227
Kapitel 8. Die Makro-Programmierung mit AML
Die Ausgabedatei hätte z.B. diesen Inhalt
Verkehr
Flächennutzung
Gewässer
Boden
Geologie
Klima
Niederschlag
Die Funktion [filelist] übergibt an die Variable numobs einen integer-Wert, der darüber Auskunft gibt,
ob die Operation erfolgreich war oder nicht. Wenn ja, dann zeigt die Variable an, wieviele Objekte in
die Datei geschrieben worden sind. Im obigen Beispiel hat die Variable numobs den Wert 7, da sieben
Coveragenamen in der Datei abgelegt worden sind.
Die Rückgabewerte haben folgende Bedeutung:
-2
Zu viele Objekte. Es wurde keine Datei erzeugt, da es mehr als 400 Stück sind.
-1
Konnte die Datei nicht erzeugen, da keine Schreibrechte für das Ausgabeverzeichnis
der Datei vorliegen. Es wurde keine Datei erzeugt.
0
Die Datei wurde erzeugt, bleibt aber leer. In dem Verzeichnis oder Workspace gab es
keine Objekte, die dem Suchkriterium entsprachen.
Die Datei wurde mit der Anzahl der entsprechenden Objekte erzeugt. Die Zahl gibt an,
wieviele.
größer als 0
8.5.1.9. Zugriff auf INFO-Tabellen
Alle AML-Funktionen, die ein Argument -info haben, können auf INFO-Dateien zugreifen.
[filelist] erzeugt eine Datei mit allen INFO-Dateien wie .pat, .aat oder .lut.
Die Beispielzeile erzeugt eine Datei mit allen lookup tables, die im Suchpfad liegen.
&sv numobs = [filelist *.lut lookuptables.list -full -info]
Die [exists]-Funktion erlaubt es zu prüfen, ob eine Datei vorhanden ist.
Nützlich ist die Funktion in Verbindung mit Abfragen. Nur wenn ein Coverage vorhanden ist, kann auch
mit ihm gearbeitet werden.
&if [exists boden.rel -info]
&then
relate restore boden.rel
228
Kapitel 8. Die Makro-Programmierung mit AML
Mit [delete] werden INFO-Dateien gelöscht.
&sv delstat = [delete tmp.dat -info]
In diesem Beispiel wird die Funktion dafür benutzt, alle temporären Info-Dateien zu löschen.
Mit den [get...]-Funktionen kann man auch auf Info-Dateien zugreifen.
Die -info Option von [getfile] ermöglicht es, Info-Dateien anzuzeigen. Das Beispiel zeigt, wie man eine
Lookup-Tabelle aus der Liste der vorhandenen Tabellen auszuwählen kann:
&sv table = [getfile *.lut -info]
[getitem] erlaubt den Zugriff auf einzelne Items. Das Beipiel zeigt einen Programmausschnitt, der benutzt
wird, um Polygone mit Hilfe einer Lookup-Tabelle einzufärben. Erst wird das Coverage ausgewählt, dann
das Item und schließlich die Lookup-Tabelle:
&sc coverage = [getcover * -poly ’Bitte w&auml;hlen Sie eine Coverage aus, ~
dessen Polygone eingef&auml;rbt werden sollen.’]
&sv spalte = [getitem %coverage% -poly ’Bitte waehlen Sie ein lookup ~
table item.’]
&sv lookup = [getfile * .lut -info ’Bitte waehlen sie eine ~
Lookup-Tabelle aus.’]
polygonshades %coverage% %ispalte% %lookup%
Dieses Programm beinhaltet aber keine Abfrage, ob die Werte in dem gewählten Item vom Typ Integer
sind. Sind es Real-Werte, so bricht das Programm an dieser Stelle mit einer Fehlermeldung ab. Verhindern
kann dies die Funktion [iteminfo]. Diese Funktion gibt eine genaue Beschreibung eines ausgewählten
Items aus. Die Syntax ist folgende:
Arc: usage
[iteminfo <specifier> <-type> <item> {-definition | -redefined | -indexed | -exists | fulldef}]
Die drei Optionen \verb/-redefined/, \verb/-indexed/, \verb/-exists/ geben als Rückgabewert \verb/.true/
oder \verb/.false/ aus, je nachdem, ob das Item neu definiert wurde, indiziert ist oder überhaupt existiert.
Wichtiger für uns ist jedoch \verb/-definition/, denn damit wird die genaue Definition des Items ausgegeben. Wird \verb/[iteminfo]/ z.B auf ein Item \verb/cover#/ angewandt, so erhält man \verb/4,5,B,0/.
Dabei steht 4 für die item-Breite, 5 für die output-Weite, B für den item-Typ und 0 für die Anzahl der
Dezimalstellen. Es läßt sich daran leicht überprüfen, ob ein item auch wirklich einen Integer-Wert besitzt.
229
Kapitel 8. Die Makro-Programmierung mit AML
Das Beispiel zeigt einen umfangreicheren Ausschnitt aus einem Programm. Dieser Teil dient dazu, Polygone einzufärben. Auch hier wird zunächst überprüft, ob ein Item vorhanden ist, bzw. ob das Item
Integer-Werte besitzt. Falls dies nicht der Fall ist, gibt das Programm eine Fehlermeldung aus.[iteminfo]
mit der -exists-Funktion und [getitem] mit der -integer-Option aufgerufen. Beide sorgen dafür, daß nur
Items benutzt werden, die vorhanden sind bzw. richtige Werte haben.
/* Flaechenfaerbung.aml
&sc coverage = [getcover * -poly ’Bitte waehlen Sie eine Coverage aus, ~
deren Polygone eingefaerbt werden sollen.’]
&if [query ’Wollen Sie eine lookup-Tabelle benutzen’]
&then
&sv spalte = [getitem %coverage% -poly ’Bitte waehlen Sie ein Lookup ~
Table Item.’]
&sv lookup = [getfile * .lut -info ’Bitte waehlen sie eine ~
lookup-Tabelle aus.’]
&IF not [iteminfo %lookup% -info %spalte% -exists]
&then
&return %spalte% ist nicht vorhanden [after [after %lookup !] !]
polygonshades %coverage% %spalte% vorhanden [after [after %lookup !] !]
&end
&else
&do
&sv spalte = [getitem %coverage% -poly -integer ’Bitte w&auml;hlen Sie ~
ein item aus, mit dem die Polygone eingef&auml;rbt werden sollen.’]
&if [null %spalte]
&then
&return Kein Integer-Item ausgew&auml;hlt!
polygonshades %coverage% %spalte%
&end
&return
Die Funktion [getunique] geht einen Schritt weiter. Mit ihr ist es möglich, einzelne Variablen aus einem
Item auszulesen. Dem Anwender werden also alle Records eines Items angezeigt, die den selben Wert
haben.
Das Beispiel zeigt ein Programm, das den Benutzer auffordert, eine Datei, ein Item und schließlich einen
Wert anzugeben. Danach wechselt das Programm in TABLES, wählt die Records aus und gibt dem Benutzter eine Liste der ausgewählten Records auf dem Bildschirm aus. So etwas ist dann sinnvoll, wenn
der Benutzter die Möglichkeit haben soll, selbst zu entscheiden, welche Flächen oder Linien usw.~er auswählen will. Das Programm kann also leicht verändert für viele Teile in ARC/INFO übernommen werden
(z.B. ARCEDIT, ARCPLOT).
&sv infodatei = [getfile * -info]
& sv spalte = [getitem %infodatei% -info]
&sv wert = [getunique %infodatei% -info %spalte%]
tables
select [after [after %infodatei% !] !]
reselect %spalte% = [quote %wert%]
list
230
Kapitel 8. Die Makro-Programmierung mit AML
8.6. Menüs
Menüs sind elementare Bestandteile einer graphischen Oberfläche. Durch sie wird es erst möglich auf einfache Weise Coverages zu manipulieren, Grids zu erzeugen, Variablen zu setzten, Text einzugeben usw.
Gegenüber einfachen, kommandozeilenorientierten Programmen ist jedoch zu beachten, daß bei derBereitstellung einer graphischen Oberfläche die Vereinfachung für den Anwender mit einer größeren Komplexität auf der Programmierungsseite einhergeht. Die Zahl der möglichen Eingaben zu jedem Zeitpunkt
der Programmausführung steigt mit der Zahl der Widgets und Eingabemöglichkeiten, während der Benutzer bei einem kommandozeilenorientierten Programm einfacher zur „richtigen“ Reihenfolge bei der
Eingabe „gezwungen“ werden kann.
Der gelegentliche Anwender will sich selten mit den mannigfaltigen Eingabemöglichkeiten auseinandersetzen, wenn er es über eine Grafische Oberfläche einfacher haben kann. Deshalb bietet AML eine reiche
Auswahl an verschiedenen Menüformen.
•
Pulldown menu, screen menu
•
Sidebar menu, screen menu
•
Matrix menu, screen menu
•
Key menu, key menu
•
Tablet menu, paper menu
•
Digitizer menu, paper menu
•
Form menu, screen menu
Es gibt vier Menues für die Manipulation am Bildschirm, zwei für den Einsatz mit Digitizern und eines
für die Tastatur.
Der Aufruf von Menus erfolgt durch:
&menu name.menu
oder kurz:
&m name
Wichtig ist, daß die Menus auch in der richtigen Umgebung aufgerufen werden. ARCPLOT-Befehle sollten nur in einem Menu auftauchen, das in ARCPLOT aufgerufen wird, ansonsten kommt es zwangsläufig
zu Fehlermeldungen. Die Ziffern, mit denen die menu-Datei beginnt, legen fest, welche Art Menü ausgeführt werden soll.
231
Kapitel 8. Die Makro-Programmierung mit AML
8.6.1. Pulldown Menu
Das Pulldown Menu besteht aus einem Haupt-Menubalken, der eine Anzahl wählbarer Menupunkte auflistet. Verzweigt man in eines dieser Pulldown-Menus, erscheint entweder eine weitere Liste von Optionen
(subchoices) oder es wird eine direkte Funktion sofort ausgeführt.
Das Menu-Programm besteht je Aussage (statement) aus zwei Punkten:
visible choice action
wobei die ausführbare Option (action) durch ein Leerzeichen (blank) von dem Text getrennt sein muß, der
im Pulldown Menu aufgelistet wird.
1. Zeile:
Kennummer des Menus (Pulldown = 1). Der nachfolgende Text ist ein Kommentar, der
auch mit den üblichen Zeichen (/*), an jeder beliebigen Stelle des Programmes stehen
kann.
2. bis nte Zeile: Die einzelnen Aussagen auf oberster Ebene, sowie die Aussagen auf nachfolgenden
Ebenen. Die Position (1. Spalte, 2. Spalte usw.) entscheidet, ob eine Aussage im
Haupt- oder Untermenu erscheint.
z.B.:
1 Beispiel Pulldown Menu
DRAW
UNI arcs fn
UNI-str arclines uni-str
CLEAR
QUIT
Enthalten sichtbare Menüeinträge Leerzeichen, so müssen sie zwischen Hochkommata gesetzt werden,
sonst wird das erste Wort als visible choice, das zweite als action gewertet und die restlichen Wörter fallen weg. Direkt ausfürbare Optionen wie clear und quit sind visible choice und action in
einem. Die Aussagen können sich über mehrere Zeilen erstrecken, wenn an jedem Zeilenende die Tilde
(~) benutzt wird. Dabei ist es egal, ob die Folgezeile am Zeilenanfang beginnt oder nach einem Leerzeichen.
Titel von Pulldown Menus werden beim Aufruf des Menus vergeben, z.B.
&m text.menu &stipe ’Menu zur Textmanipulation’
Der Text muß von Hochkommata eingeschlossen werden, wenn er Leerzeichen enthält.
8.6.2. Sidebar Menu
Das Sidebar-Menu ist in fast allen Punkten identisch mit dem Pulldown-Menu. Der einzige Unterschied
liegt in der Richtung der Darstellung des Menus. Beim Pulldown-Menu werden die Untermenus nach
unten aufgeklappt (=pulldown), hier werden die Unterpunkte nach der Seite aufgeklappt.
232
Kapitel 8. Die Makro-Programmierung mit AML
2 Beispiel Sidebar-Menu
DRAW
UNI arcs fn
UNI-str arclines uni-str
CLEAR
QUIT
8.6.3. Matrix Menu
Im Gegensatz zu den Pulldown- und Sidebar-Menus bietet diese Menu alle Wahlmöglichkeiten direkt an.
Es gibt keine Untermenus oder Verzweigungen. Wenn ein Button angewählt wird, wird sofort ein Befehl
ausgeführt. Das Menu passt sich automatisch so an, sodaß alle Wahlmöglichkeiten dargestellt werden
können.
Zu Beginn muß die Anzahl der Optione bekannt sein, die in diesem Menu benötigt wird. Damit vereinfacht
sich die Gestaltung erheblich. Die Position des Menus am Bildschirm kann genau festgelegt werden.
Definiert wird das Matrix-menu in der 1. Zeile, 1. Spalte mit 3 Matrix Menu. In der 2. Zeile wird die
Ausrichtung und Bildschirmposition festgelegt.
1. Zahl
0
Querformat mit links-rechts Ausdehnug
1
Hochformat mit oben-unten Ausrichtung
2. Zahl
-1
0
linksbündige Anordnung am Bildschirm
zentrierte Anordnung am Bildschirm
1
rechtsbündige Anordnung am Bildschirm
Die 3. Zeile gibt den Titel des Menus an. Soll das Menu keinen Titel keinen Titel haben, so kommt als
dritte Zeile eine Leerzeile.
Alle weiteren Zeilen bestehen wieder aus den bekannten visible choice und action, also dem angezeigten Begriff und der damit verbunden Operation. Dabei ist es egal, ob innerhalb der Zeile in der 1.
Spalte mit der Zeile begonnen wird, oder ob ein oder mehrere Leerzeichen vor der visible choice
stehen.
Die Länge der Namen die auf dem Bildschirm erscheinen sollen, sind auf 32 beschränkt. Die Anzahl der
Namen auf 100. Hinter einem Einzelbefehl dürfen nicht mehr als 4096 Zeichen stehen. In den Untermenus
können keine weiteren Verzweigungen definiert werden, es sei denn, ein weiteres AML wird aufgerufen,
in dem eine weitergehende Auswahl getroffen werden kann.
Dieses Beispiel zeigt den Einsatz eines Matrixmenus. Nach dem drücken der verschiedenen Buttons werden die Kommandos direkt ausgeführt. Im Beispiel werden verschiedene Coverages dargestellt, wenn ein
Button gedrückt wird.
/* Exmatrix.menu
3
0 0
Select a coverage to draw
Streets
ARCLINES STREET TYPE
’Bus routes’
ROUTELINES STREET BUS RT_NO
Soils
POLYGONSHADES SOILS SOIL_TYPE SOIL.LUT
233
Kapitel 8. Die Makro-Programmierung mit AML
Rivers
’Power poles’
’Chemical sites’
POLYGONSHADES RIVER RIVER_TYPE RIVER.LUT
LIST POLES.PAT INFO
POINTMARKERS CHEMSITES CLASS
8.6.4. Key Menu
Key-Menus werden benutzt, wo Kommandos eingegeben werden müssen. Diese Menüform eignet sich
für Computer, die keine Grafikfenster unterstützen. Der Benutzer wird gebeten einen Buchstaben entsprechend seiner Wahl einzugeben.
In der 1. Zeile wird wie auch bei den anderen Menus die Ziffer, in diesem Fall die vier für Key menu.
In der 2. Zeile gibt eine Ziffer an, wie viele visible choice und help text Zeilen folgen, die auf
dem Bildschirm erscheinen sollen. Dabei werden die Hilfstexte, zur Erläuterung mit einem Fragezeichen
aufgerufen, außer wenn das Fragezeichen selbst eine Option ist.
Der übrige Text im Key-Menu-Programm besteht aus jeweils einem Zeichen, das einen Buchstaben repräsentiert, der vor den Anweisungen, Kommandos oder Funktonen steht, die bei der Eingabe des Buchstabens ausgeführt werden.
4 Key menu
7
County Datenbank
Bitte geben Sie zur Auswahl einen Buchstaben an!
E - Ethnien
G - Einkommen
B - Bevoelkerung
S - Schulbildung
Q - Beenden
/* Bis hierher werden die Zeilen, die nach
/* der Sieben kommen auf dem Bildschirm angezeigt.
E &R ethnien.aml [RESPONSE Welche Ethnie?]
G &R Einkommen.aml
B &menu BEVOELKERUNG.MENU &pulldown
S &R bildung.aml
Q QUIT
8.6.5. Tablet und Digitizer Menu
Beides sind sogenannte Papiermenus, die gewöhnlich auf einem Zeichenbrett oder Digitalisiertablett angebracht werden. Der Benutzter korrespondiert mit dem Computer über die Digitalisiermaus. Der Ort an
dem die einzelnen Befehlsfelder auf dem Papier eingezeichnet ist, wird genau festgelegt. Wenn man ein
Befehlsfeld mit der Maus anklickt wird der entsprechende Befehl ausgeführt.
Bei diesem Menu ist die Planungsphase sehr wichtig, da die Befehle über Koordinaten auf dem Papiermenu positioniert werden. Daher sollte man sich das Menulayout vorher genau aufzeichnen.
234
Kapitel 8. Die Makro-Programmierung mit AML
In der 1. Zeile steht wie bei allen anderen Menus die Codeziffer für die Menuart. Fünf für Tablet Menu
und sechs für Digitizer Menu.
In der 2. Zeile legen zwei Integerwerte die Anzal der Spalten und Zeilen fest. Die Positionierung der
einzelnen Befehlsfelder erfolgt über diese Koordinaten.
Die übrigen Zeilen beschreiben die einzelnen Zellen des Menus mit ihren Optionen in der Form:
{1. Zellkoordinat} {2. Zellkoordinate} [Option] {string}
.
Jede dieser Zeilen beginnt mit der Koordinatenangabe für Spalte und Zeile der Zelle. Das 2. Koordinatenpaar dient in Verbindun mit den 1. Zellkoordinaten dazu, Zellen mit gleicher Option und eine neue Zelle
zu definieren, die all diese Zellen umfaßt. Fehlt die 2. Koordinate, ist je Zeile nur eine Zelle beschrieben.
Die Optionen nach den Koordinatenangaben bestehen aus einem Code, der festlegt, wie der Text, der
unter string eingegeben wird, genutzt wird. In Abhängigkeit von dem Code der Optionen wird der
Text entweder direkt ausgeführt, oder mit anderen Eingaben in den temporären Puffer geschrieben und
erst danach ausgeführt.
Werden die Optionen übersprungen, wird die Standardoption 3 (Texteingabe mit Return) gesetzt. Enthalten Befehle oder strings Leerzeichen, müssen sie in Hochkommata gesetzt werden. Soll beim Ausführen
einer Zelle eine Codenummer und kein Text eingegeben werden, wird dies durch ein Leerzeichen in
Hochkommata (’ ’) dargestellt.
Die Bedeutung der einzelnen Codeziffern:
0
keine Operation, wird nicht ausgeführt.
1
2
wenn mehr als ein Wort eingegeben wird, wird der Text in den Puffer geschrieben.
sind zusätzliche Optionen erforderlich, z.B. editfeature in Arcedit, werden sie in den
Pufffer geschrieben.
3
wenn die Eingabe komplett ist, werden sie nach einem automatisch angefügten return
(carriage return) in den Puffer geschrieben
eine Keyboard-/ Tastatureingabe wird erwartet.
4
5
6
7
8
die aktuelle Eingabe kann gelöscht/ bearbeitet werden, sofern sie noch nicht beendet
ist.
entspricht der backspace-Taste auf der Tastatur.
gemischte Eingabe zwischen Tastatur und Menu, Abschluß erfolgt mit Return
(return).
gemischte Eingabe, 1. Teil im Menu, der 2. Teil erfolgt über die Tastatur mit Return
(return).
Beispiel für ein solches Menu:
/* Beispiel eines Tablet Menus
5
4 4
1 1 2 EDITFEATURE
2 1 3 ARC
235
Kapitel 8. Die Makro-Programmierung mit AML
3
4
1
3
1
3
1
2
3
4
1
1
2
2
3
3
4
4
4
4
3
3
2
4
2
4
8
5
3
3
LABEL
NODE
2 3 MOVE
2 4
3 3 SELECT MAN
3 3 ADD
EDIT
SAVE
&RETURN
Wählt man z.B. EDITFEATURE an, so wird es in den Puffer geschrieben und der Rechner wartet auf
weitere Eingaben, wie ARC oder NODE, die dem Code entsprechend direkt ausgeführt werden.
8.6.5.1. Form Menu
Dieses Menu ist das bei weitem mächtigste der vier Bildschirmmenus. Es können viele verschiedene
Eingabemöglichkeiten in einem einzigen Menu kombiniert werden:
8.6.5.1.1. Input fields
Texteingabefeld, z.B. Coveragename. Das Feld kann so gestaltet werden, daß es nur bestimmte Angaben
akzeptiert; wie z.B. eine Zahl, ein Buchstabe, eine Systemdatei oder x,y - Koordinate.
8.6.5.1.2. Choice fields
Sie bieten die Möglichkeit, aus einer Anzahl von Wahlmöglichkeiten eine bestimmte auszuwählen. Z.B.
feature class wie poly, line oder point. Nur eine Option kann gewählt werden, nicht mehrere gleichzeitig.
8.6.5.1.3. Slider fields
der Schiebebalken bietet die Möglichkeit, Werte in einem definierten Intervall durch Bewegen des Balken
zu wählen. Z.B. die Fuzzy tolerance oder die Farbwerte für das RGB- oder CYM-System.
8.6.5.1.4. Button
wird gedrückt, um eine Funktion auszuführen. Ein Quit-Button wird das Kommando QUIT ausführen und
das Programm beenden.
8.6.5.1.5. Scrolling list of devices
in einem Popupmenu kann eine Auswahl getroffen werden, ohne daß die Auswahl selbst in das Input-Feld
geschrieben werden muß. Das spart Schreibarbeit, so muß nur noch die Maus benutzt werden, um eine
Wahl zu treffe.
236
Kapitel 8. Die Makro-Programmierung mit AML
8.6.5.1.6. Check box
bietet die Möglichkeit, Einstellunge wie z.B. on/ off oder ja/ nein ein und abzuschalten. Denkbar ist
aber auch eine check box, in der man die draw environment Einstellungen bestimmen kann. Was wird
dargestellt (arc, node), was nicht (tic, label).
8.6.5.1.7. Display field
zeigt aktuellen Status der Anwendung an. Kann vom Benutzer nicht manipuliert werden. Kann sich in
Interaktionen mit anderen Eingaben ändern, und dadurch das display field aktualisieren. Z.B. Ein Button
zeigt an, in welchem Programm man arbeitet, ist es Arcplot, so steht unter dem Button Arcplot, ist es
Tin so steht Tin darunter. Eine andere Möglichkeit ist in Arcedit anzuzeigen, ob eine Coverage bearbeitet
wurde, und somit neu gespeichert werden muß. So kann das display field anzeigen, daß noch gespeichert
werden muß
8.6.5.1.8. Setbutton
ein Knopf, der eine AML-Variable auf einen bestimmten Wert setzt. Er sieht wie ein button aus, kann
auch durch einen icon dargestellt werden.
Man nennt diese Elemente auch widgets.
8.6.5.2. Die Arbeitsweise eines Form Menus
Auswählen, schieben, drücken oder eingeben sind alles Interaktionen mit den Eingabemöglichkeiten.
AML ist über die Eingabemanipulationen durch das Setzen von Variablen informiert. Einfacher gesagt,
ist die Eingabemanipulation eine graphische Möglichkeit &SETVAR zu benutzen. Läuft ein AML ab,
wird jede Zeile des Programmes gelesen und vom AML-Prozessor ausgeführt. Wird dabei die Anweisung
&SETVAR entdeckt, wird die Variable gesetzt. Formmenus dagegen speichern die Eingaben in einem
Puffer, der möglicherweise an den AML-Prozessor übergeben wird. Formmenus sind quasi wie eine Leitung zwischen dem Benutzer und dem Prozessor zu verstehen, die bis zur Bestätigung die Möglichkeit
offenläßt, die Variablenbesetzung zu ändern. Erst wenn der Benutzter es will, wird die Variable auch
gesetzt.
8.6.5.2.1. Setzen von Variablen durch das Ausführen von Eingaben
Die häufigste Form der Eingabemöglichkeit ist der button. Wird er gedrückt, entspricht dies einer gleichzeitigen Bestätigung, die Variable wird übergeben.
Die zweite Methode der Ausführung kommt bei der interaktiven Nutzung von check box, choice, input
oder slider fields zur Anwendung. Wie beim button erfolgt auch hier eine direkte Eingabe bei der alle
Variablen gesetzt werden bevor eine Bestätigung erfolgt. Eine zusätzliche Return-Angabe mit einer Eingabemöglichkeit erlaubt Menus ohne buttons. Z.B. kann bei einem slider, der mit Return gekoppelt ist,
auf einen zusätzlichen button verzichtet werden, da die Wahl durch das schieben und loslassen bestätigt
wird.
In den beiden oben erläuterten Fällen werden die Variablen erst mit der Return-Sequenz übergeben. Es gibt
noch eine dritte Möglichkeit, bei der die Variablenübergabe direkt nach der Änderung der Eingabemög-
237
Kapitel 8. Die Makro-Programmierung mit AML
lichkeit übergeben wird. Es muß keine Return-Sequenz vorhanden sein. Dies wird durch den Parameter
%FORMOPT erreicht.
Ein Formmenu setzt nicht nur Variablen und übergibt Einstellungen an den Processor. Vielmehr liegt seine
Fähigkeit auch darin, sicherzustellen, daß einer Variable ein geeigneter Wert übergeben wird. Z.B. kann
eine Variable in einem slider nur einen genau festgelegten Wertbereich annehmen. Diese Fähigkeit eines
Formmenus läßt sich außerhalb der Menuebene mit der [RESPONSE ...] Funktion erreichen.
8.6.5.2.2. Wie erzeugt man ein Formmenu?
Soll das Menu zusätzlich Icons enthalten, so wird neben dem Texteditor noch ein Iconeditor benötigt (der
ARC-Befehl PLOTICON konvertiert ein Plotfile in ein Icon).
Vor dem Schreiben des Menus sollte ein Entwurf über Zweck, Form, Layout und Funktion des Menus
angefertigt werden.
Der Menutypcode 7 steht in der 1. Zeile. Alle weiteren Dateien beschreiben das Layout und die Funktionalität des Menus.Formmenus bestehen aus einem sichbaren und einem ausführenden Teil, einer field
reference und einer field definition.
Field reference ist die sichtbare Komponente und beschreibt den auf dem Bildschirm sichtbaren Teil.
Field defintion ist die ausführbare Komponente und beschreibt die Aktionen, die aus der Manipulation
dderfield reference entstehen.
Anders als bei den anderen Bildschirmmenus, stehen beide Komponenten in unterschiedlichen Zeilen des
Menus, da die field reference als Platzhalter für ein widget fungiert. Der Raum und die Anordnung der
field references steuert die Anordnung der widgets auf dem Bildschirm.
Zusätzlich zu den field refernces und field definitons, besteht die Möglichkeit Hintergrundtext in das Menu
einzufügen, der z.B. Informationen über die Funktion des Menus geben kann. Dieser Text kann im Menu
selbst nicht bearbeitet werden.
Jede field reference beginnt mit %, gefolgt vom field Namen, z.B. %cover, %class. Das %-Zeichen zeigt
an, daß es kein Hintergrundtext ist, sondern eine field reference. Dieses field kann beliebig positioniert
werden.
Field references dürfen nicht in der 1. Spalte beginnen, da diese Position für die field defintions reserviert
ist.
Field definitions beginnen in der 1. Spalte des AML-Programmes
Jede field reference hat immer eine zugeordnete field definition, die den Fieldtyp und die ART der Operationen festlegt.
Die field definitions können irgendwo innerhalb des Programmes stehen. Sinnvoll ist es aber, alle field
definitons am Ende der field references des Programmes gesammelt aufzulisten. Möglichst getrennt durch
einen Kommentar, der anzeigt, daß eben jetzt die field definitons kommen.
Die field definitions werden durch %filename festgelegt. Der Field-Name nimmt dabei immer Bezug zu
der field definition.
Dem Field-Name folgt immer eines der Schlüsselwort Button, Checkbox, Choice, Display, Input, Setbutton und Slider, die den field-Typ festlegen.
238
Kapitel 8. Die Makro-Programmierung mit AML
8.6.5.3. Form Menu Widgets (Bedienelemente)
8.6.5.3.1. Buttons
Der String, der durch einen button übergeben wird, kann ein AML starten, einen Befehl ans Betrtiebssystem übergeben, ausführen wichtiger Operationen der Anwendung
Arc: usage
<%field_name> Button {button_options} <button_name> <return_string>
Das Schlüsselwort Button legt das Feld als Button fest. Ein Button kann so programmiert werden, daß er
Hilfsfunktionen ausübt, alle Variablen auf den Ausgangswert zurücksetzt, gewährleistet, daß alle Eingabefelder vor der übergabe an den Prozessor gesetzt sind. Dies wird mit der [REQUIRED]-Funktion erreicht.
Die [APPLY]-Funktion wird erst durchgeführt, wenn die Variablen gesetzt sind. Ansonsten erscheint am
unteren Menurand eine Fehlermeldung. die Möglichkeit bietet, mit Hilfe der [CANCEL]-Funktion, das
Menu auch ohne Variablensetzung zu verlassen.
8.6.5.3.2. Check Box Fields
Dieses widget erzeugt ein Feld bei dem zwischen .true und .false gewechselt wird. Das Feld erschein
ähnlich einer Mulitple-Choice-Box mit Quadraten. Diese erhalten für den Wert .true einen Haken, für den
Wert .true ein leeres Quadrat.
Arc: usage
<%field_name> Checkbox <variable> {checkbox_options}
Soll neben dem Quadrat Hintergrundtext stehen, so wird in der Zeile der field definitions mit 5 Leerzeichen
Abstand neben dem field name das Schlüsselwort und die Variablen aufgeführt.
8.6.5.3.3. Choice Fields
Dieses Feld kommt dann zur Anwendung, wenn aus einer Auswahl nur ein Element ausgewählt werdne
darf. Nach dem Drücken des Wahlfeldes ändert sich dessen Aussehen (es sieht „gedrückt“ aus). Wenn
ein anderes Wahlfeld gedrückt wird, geht das vorher gewählte Element wieder in seine Ursprungsform
zurück.
Arc: usage
<%field_name> CHOICE variable PAIRS {choice-options} <CHOICE_text> <set_value> ... <CHOIC
oder
Arc: usage
239
Kapitel 8. Die Makro-Programmierung mit AML
<%field_name> CHOICE variable SINGLE {choice-options} <CHOICE_text> <set_value> ... <CHOI
Das Schlüsselwort choice legt das Feld als choice field fest. Bei der Single-Option ist der sichtbare Namen des Wahlfeldes identisch mit dem Namen der Variablen. Bei der Pairs-Option sind die Begriffe unterschiedlich, d.h. der Variablenname ist nicht gleich dem Namen, den man sieht.
8.6.5.3.4. Display Fields
Der aktuelle Wert einer Variablen wird am Bildschirm angezeigt. Die Variable kann Textstrings, den
Name eines Icons oder eine Symbolnummer eines symbolsets sein. Jede Änderung der Variablen wird am
Bildschirm angezeigt.
Arc: usage
<%field_name> DISPLAY <variable> <field_width> {VALUE I ICON I SYMBOL <-LINE I MARKER I -TEXT I -SHADE>}
Das Schlüsselwort display legt das Feld als display field fest.
8.6.5.3.5. Setbuttons
Setbuttons werden zum setzten von Variablen benutzt. Ihre einzige Aufgabe besteht darin, einer Variablen einen bestimmten Wert zuzuweisen, z.B. werden bei einem Menu, das sich mit dem überlagern von
Coverages beschäftigt, ausgewählte Optionen gesetzt, wie INTERSECT, CLIP, UNION usw.
Arc: usage
<%field_name> SETBUTTON {setbutton_options} <setbutton_name> >variable> <set_value>
8.6.5.3.6. Input Fields
Dieser Feldtyp erlaubt die Eingabe von Daten über die Tastatur. Der Datentyp ist von der Felddefinition
abhängig. Bei einer falschen Eingabe erscheint am unteren Rand des Menus eine Meldung, die Auskunft
über den erwarteten Datentyp gibt. Einmal bestätigt, wird die Eingabe in der AML\_Variablen zu diesem
Feld gespeichert.
Arc: usage
<%field_name> INPUT <variable> <field_width> {input_options} <type> {type_options}
240
Kapitel 8. Die Makro-Programmierung mit AML
INPUT ist das Schlüsselwort zur Festlegung als input field. Der Variablenname wird nicht von \verb/%/
umschlossen, da die Variable gesetzt und nicht darauf Bezug genommen wird.
Field width gibt an, wieviele characters eingegeben werden dürfen.
Die input options bestimmen die Eingabe:
•
Anzeigen einer Scrollingliste,
•
überschreiben, bei falscher Eingabe,
•
Setzen eines Defaultwertes,
•
Eingabezwang, damit das Menu ausgeführt wird.
Erlaubte Dateitypen für die Eingabe sind:
•
Integer
•
Real
•
Date
•
Character
•
Logical (yes, no, okay und quit) werden als Eingabe angenommen
•
x y (Koordinatenpaar, das durch ein Leerzeichen getrennt ist)
Weitere Typen, die mit der Funktion [GET] in Verbindung stehen, z.B. [GETITEM], [GETFILE],
[GETTIN] oder [GETLIBRARY]. [GETCOVER] z.B. listet bei der Eingabe von cover unter type
eine Tabelle aller Coverages auf, von denen eine Auswahl getroffen werden kann. Die Liste erscheint erst
nach dem Drücken der Help-Taste.
8.6.5.3.7. Slider Fields
Das Feld erzeugt einen Schiebebalken, mit dem eine Variable belegt wird. Ein slider field besteht aus vier
Teilen:
Ein Textfeld, in dem der Wert gesondert über die Tastatur eingegeben werden kann.
Schiebebalken, der durch das Schieben mit der Maus einen gewünschten Wert annimmt.
Das Anzeigen dieser zwei Komponenten schließt die anderen zwei mit ein. Beim Verschieben des Balkens
wird der Wert im Texteingabefeld angezeigt. Die jeweiligen Extremwerte werden an den Enden des Balkens angezeigt. Wird ein Wert größer oder kleiner als die Extremwerte eingegeben, so wird automatisch
der jeweilige Extremwert (Minimum oder Maximum) gesetzt. Slider fields sind vom Datentyp Integer
oder Real. Die graphische Darstellung ist ein horizontaler Balken.
Arc: usage
<%field_name> SLIDER <variable> <field_width> {slider_options} <type> <min_value> <max_va
Wie auch bei den anderen Menus legt hier SLIDER den Menutyp fest. Die Feldbbreite setzt sich aus
5 Spalten für das Eingabefeld und dem Minimal- sowie dem Maximalwert, zu denen jeweils eine eine
241
Kapitel 8. Die Makro-Programmierung mit AML
Einheit dazuaddiert wird, zusammen. Soll vor dem Schiebebalken eine Erläuterung stehen, wird sie in der
field reference vor dem field_name geschrieben.
Mit step in den slider options kann eine Schrittweite bestimmt werden, in der die Werte auf dem Schiebebalken erhöht oder erniedrigt werden sollen. Mit init kann dem Balken beim öffnen des Menus ein
vorgeingestellter Wert gegeben werden.
8.7. Beispieloberflächen
In diesem Kapitel folgen Beispiele für die Programmierung von Oberflächen für Arc/Info. Das erste Beispiel zeigt ein Menu für Arcplot. In der Datei layoutap.menu sind alle Befehlszeilen in einer Datei
untergebracht. In der Datei aplayout.menu werden mehrere Einzeldateien angesprochen, die dann bestimmte Teile des Menus ausführen. Die zweite Datei wirkt übersichtlicher, da hier nur die Hauptebenen
zu sehen sind. Die Unterebenen werden wiederrum in einzelnen Dateien abgearbeitet. So entsteht eine
Anzahl von Dateien, die jede für sich kurz und übersichlich ist.
Das AML ist dafür gedacht Karten zu erzeugen. Maps, Kartenblattdefinitionen, Kartenlegenden, Beschriftung, Farbtabellenzuordnung, Flächen- und Linienfestlegung oder andere Manipulationen können an einer
Coverage vorgenommen werden.
2 layoutap.menu
Coverage &SETVAR .COVER [GETCOVER * -all ’Coverageauswahl’]; mape %.COVER%
Mapcomposition
map map map1
killmap killmap mapl
’show map’ minfo
’selektieren’ msel *
gruppieren &IF [RESPONSE ’Gruppierungen nicht rueckgaengig zu machen! ~
Gruppieren? (y/n)’] EQ y &THEN ;mgroup
’rotieren’ mrotate [RESPONSE ’Rotationswinkel (+ = Gegenuhrzeigersinn)’]
verschieben mposition * *
I&ouml;schen mdelete
Kartendefinitionen
Masstab &S .SCALE [RESPONSE ’Masstabszahl’] ~
;mapscale %.SCALE%~
;mapunits meter~
;pageunits inch
Kartenlage &TY ’Position der linken unteren Kartenecke (in inch)’~
;&S .POSX [RESPONSE ’X =’] ~
;&S .POSY [RESPONSE ’Y =’] ~
;mapposition II %.POSX% %.POSY%
Kartenrahmen box *
Legende
Abst nde~
;&S .KEYH [RESPONSE ’Horizontaler Abstand K&auml;stchen - Text’] ~
;&S .KEYV [RESPONSE ’Vertikaler Abstand Textunterl&auml;nge - K stchen’] ~
;-keyseparation %.KEYH% %.KEYV%
242
Kapitel 8. Die Makro-Programmierung mit AML
K&auml;stchen~
;&S .BREITE [RESPONSE ’Breite’] ~
;&S .HOEHE [RESPONSE ’H he’] ~
;keybox %.BREITE% %. HOEHE %
Position &TY ’Position der linken oberen Ecke des Legendenblocks’~
;keyposition *
Legendenschrift Textguality proportional~
;textset uni.txt~
;&S .FONT [GETUNIQUE unitext -info schriftart ’Schriftart in uni.txt’]~
;textfont %.FONT%~
;textsize [RESPONSE ’Schriftgr e’]
Legendentext keyshade [GETFILE *.key ’Legendentext, die akt. Farbtabelle~
wird verwendet’]
Beschriftung textguality proportionalV~
;textset uni.txt~
;&S .FONT [GETUNIQUE unitext -info schriftart ’Schriftarten in~
uni.txt’] ~
;textfont %.FONT%~
;textsize [RESPONSE ’Schriftgr&ouml;&szlig;e (in Inch)’] ~
;&TY ’Position’ ;move *~
;text [RESPONSE ’Text’]
Farbtabelle
’Selbstdefinierte -’ shadeset [GETFILE *.shd ’shadesets’]
’Vorhandene -’ shadeset [GETFILE ’$ARCHOME/symbols/*.shd’ ’shadesets’]
’Neue Farbtabelle’ shadeedit
Polygone
Polygone polygons [GETCOVER * -poly]~
Fl&auml;chenf&uuml;llung &IF [EXISTS %.COVER% -poly] &THEN~
;&S .ITEM [GETITEM %.COVER% -polygon %. COVER%’. PAT’]~
;&ELSE &TY ’Keine Polygontopologie vorhanden!’~
;polygonshades %.COVER% %.ITEM%
Linien
Linienfarbe &SETVAR .FARBE [RESPONSE ’Linienfarbe’]~
;linecolor %.FARBE%
’Linien zeichnen’ arcs [GETCOVER * -all ’Liniencoverage’]
Uni-Logo~
;markerset uni.mrk~
;markersymbol l~
;markersize [RESPONSE ’Logo-Gr&ouml;&szlig;e (in inch)’]~
;&TY ’Position - Signaturmitte’~
;marker *
Iteminfo
PAT &S COV [GETCOVER * -POLY] ;items %COV% poly~
;&IF [RESPONSE ’Wollen Sie die Tabelle auflisten? (y/n)] EQ y &THEN~
;list %COV% poly
AAT &S COV [GETCOVER * -LINE] ;items %COV% line~
;&IF [RESPONSE ’Wollen Sie die Tabelle auflisten? (y/n) ] EQ y &THEN~
;list %COV% line
TIC &S COV [GETCOVER * -TIC] ;items %COV% tic~
;&IF [RESPONSE ’Wollen Sie die Tabelle auflisten? (y/n) ] EQ y &THEN~
;list %COV% tic
Vereinbarungen ~
&TY ’ ’~
243
Kapitel 8. Die Makro-Programmierung mit AML
;&TY
;&TY
;STY
;&TY
;&TY
;&TY
;&TY
;&TY
;&TY
Clear
’ Vereinbarungen ’ V
’--------------’~
’Coverage: ’ %.COVER% ’ ’ ~
’Ausdehnung: ’[show mape] ~
’Mastabszahl : ’ %.SCALE% ’ ’ ~
’Kartenlage (linke untere Ecke): x = %.POSX%’ , y =’ %.POSY% ~
’Legendenk&auml;stchen: Breite =’ %.BREITE% ’,H&ouml;he =’ %.HOEHE%~
’Abstand K&auml;stchen - Text =’ %.KEYH%~
’Abstand Textunterl&auml;nge - K&auml;stchen =’ %.KEYV%
Hier nun die zweite, übersichtlichere Variante:
2 ap layout.menu
Coverage &m covwahl.aml
Mapcomposition &m mapcom.aml
Kartendefinition &m mapdef.aml
Kartenrahmen box *
Legende &m legende.aml
Beschriftung &m schrift.aml
Farbtabelle &m farbe.aml
Polygone &m poly.aml
Linien &m line.aml
Marker &m mark.aml
MarkerNeu markeredit
Mastab &m mass.aml
Iteminfo &m item.aml
Vereinbarungen &m verbrg.aml
Clear
Reset &IF [RESPONSE ’Wollen Sie AP wirklich neu initialisieren? y/n’] EQ y~ &THEN
;reset
Ende &IF [RESPONSE ’Wollen Sie wirklich aufh&ouml;ren? y/n’] EQ y &THEN ;&return
Das zu bearbeitende Coverage wird ausgewählt:
7 coverwahl.menu
coverage
%cov
%apply
%back
%cov input .cover 40 REQUIRED cover * -all ’Select Coverage’
%apply button APPLY ; mape %.COVER%
%back button icon back.icon &return &return
Das AML dient der Erzeugung einer Mapcomposition. Maps können gelöscht, ausgewählt, gruppiert oder
rotiert werden.
244
Kapitel 8. Die Makro-Programmierung mit AML
2 mapcom.menu
map &m map.aml
killmap &m kmap.aml
’show map’ minfo
’selektieren’ msel *
’gruppieren’ &IF [RESPONSE ’Gruppierungen sind nicht r&uuml;ckg&auml;ngig zu machen!~
Gruppieren? (y/n)’] EQ y &THEN mgroup
’rotieren’ mrotate [Response ’Rotationswinkel ( + = Gegenuhrzeigersinn)’] verschieben mposition * *
I&ouml;schen mdelete
Erzeugen einer Mapcomposition.
7 map.menu
Name der Mapcomposition: %name
%apply
%back
%name input .nam 30 INITIAL map1 character
%apply button APPLY map %.nam%
%back button icon back.icon &return &return
Löschen einer Mapcomposition.
7 killmap.menu
Name der zu I&ouml;schenden Mapcomposition: %name
%apply
%back
%name input .nam 30 INITIAL map1 character
%apply button APPLY map %.nam%
%back button icon back.icon &return &return
Festlegen der Umgebung der Mapcomposition.
7 mapdef.menu
Mastabszahl: %mzahl
Mapunits:
Pageunits:
%mu
%pu
245
Kapitel 8. Die Makro-Programmierung mit AML
Wenn Pageunits auf inches, das Coverage bitte nicht drehen
Kartenlage, Position der linken unteren Ecke:
X-Position:
y-Position:
%xpos
%ypos
%apply
%back
%mzahl input .scale 10 real
%mu choice .munits single initial meters meters inches
%pu choice .punits single initial inches meters inches
%xpos input .xpos 10 real
%ypos input .ypos 10 real
%apply button APPLY mapscale %.scale%; mapunits %.munits%; pageunits %.punits%~
;mapposition ll %.xpos% %.ypos%
%back button icon back.icon &return &return
Erzeugung einer Legende für die Mapcomposition. Die Kästchen, der Legendentext und die Schrift werden Festgelegt.
7 Iegende.menu
Festlegen des Legendenlayoutes
K&auml;stchen:
%brk
Breite:
%br
H&ouml;he:
%la
Abst&auml;nde:
%ke
Horizontaler Abstand der K&auml;stchen zum Text:
%hoab
Vertikaler Abstand der Textunterl&auml;nge zu den K&auml;stchen:
%veab
Festlegen der Position der linken oberen Ecke des Legendenblockes:
%position
Legendenschrift:
Schriftschnitt: %qa
Schriftgr&ouml;&szlig;e:
Schriftart:
%sa
%sg
in inches
Festlegen der aktuellen Farbtabelle für die Legende:
%farbe
246
Kapitel 8. Die Makro-Programmierung mit AML
%apply
%back
%ke display legke 4 icon
%hoab input .KEYH 10 init .15 real
%veab input .KEYV 10 init .15 real
%brk display legbrk 4 icon
%br input .BREITE 10 init .3 real
%la input .HOEHE 10 init .2 real
%position button POSITION keyposition *
%ga choice .QUAL single init proportional constant proportional kern tightkern
%sg slider .SIZE 50 step .1 real 0 28.4 %sa input .FONT 50 scroll yes typein yes UNIQUE f
text -info~
schriftart
%farbe input .COL 10 FILE *.key
%apply button APPLY keyseparation %.KEYH% %.KEYV%; keybox %.BREITE% %.HOEHE%;~
textguality %.QUAL%; textset fh.txt; textfont %.FONT%; textsize %.SIZE%;~
keyshade %.COL%
%back button icon back. icon &return &return
%forminit &s legke legkey.icon
%forminit &s legbrk leg.icon
Zusätzlicher Text, der auf der Karte erscheinen soll, wird hier festgelegt und eingegeben.
7 schrift.menu
Schriftschnitt:
%ga
Schriftgr&ouml;&szlig;e:
Schriftart:
%sa
Texteingabe:
%apply
%sg
inches
%te
%back
%ga choice .QUA single init proportional constant proportional kern tightkern
%sg slider .SIZ 45 step .1 init I real 0 28.4
%sa input .FON 50 scroll yes typein yes UNIQUE fhtext -info schriftart
247
Kapitel 8. Die Makro-Programmierung mit AML
%te input .TEXT 50 character
%apply button APPLY textguality %.QUA%; textfont %.FON%; textsize %.SIZ%;~
move *; &r textrun.aml %.TEXT%
%back button icon back.icon &return &return
Der Text wird erzeugt.
/* textrun.aml
&ARGS string: rest
text %string%
Die Farbtabelle für die Legende wird festgelegt.
7 farbe.menu
W&auml;hlen Sie eine Farbtabelle aus: %fa
%apply
%back
%fa choice .wahl single init custom custom vordefiniert neu
%apply button APPLY &r farbrun.aml
%back button icon back.icon &return &return
Die Farbtabelle wird ausgewählt. Entweder ist sie vordefiniert oder es wird eine benutzterdefinierte Farbtabelle genommen.
/* farbrun.aml
&SELECT %.wahl%
&WHEN custom
shadeset [GETFILE *.SHD ’Shadesets’]
&WHEN vordefiniert
shadeset [GETFILE ’$ARCHOME/symbols/*.shd’ ’Shadesets’]
&OTHERWISE shadeedit
&end
Die Flächen werden gefüllt, sofern das Coverage Polygontopologie besitzt.
7 poly.menu
248
Kapitel 8. Die Makro-Programmierung mit AML
Fl&auml;chenf&uuml;llung: %fla
Item:
%sp
%apply
%back
%fla input .FLACH 15 ERROR ’Keine Polygontopologie vorhanden’~
REQUIRED cover * -poly ’Fl&auml;chenf&uuml;llung der Coverage’
%sp input .ITEM 15 item %.COVER% -polygon
%apply button APPLY ,-polygonshades %.COVER% %.ITEM%
%back button icon back.icon &return &return
Die Linienzeichenfarbe wird festgelegt, dazu noch die Liniencoverage.
7 line.aml
Linienfarbe: %lf
Coverage:
%cov
%apply
%back
%lf choice .FARBE single init 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
%cov input .LCOV 20 cover * -all ’Liniencoverage’
%apply button APPLY linecolor %.FARBE%; arcs %.LCOV%
%back button icon back.icon &return &return
Einstellungen für Markersymbole werden vorgenommen.
7 mark.menu
Markerauswahl:
%ma
Markersymbol:
%ms
Markersize:
%mz
Position:
%mp
%apply
%back
%ma
%ms
%mz
%mp
input .MA 20 init
input .MS 20 init
input .MZ 20 init
choice .MP single
fh.mrk file * -mrk
1 integer
1 real
*
249
Kapitel 8. Die Makro-Programmierung mit AML
%apply button APPLY markerset %.MA%; markersymbol %.MS%; markersize %.MZ%~
;&TY ’Position - Signaturmitte’; marker *
%back button icon back.icon &return &return
Erzeugung einer Maßstabsleiste. Die Lage, die Größe und der Maßstab können festgelegt werden.
7 mass.menu
Erzeugung einer Masstabsleiste
%m
------------------------------I
I
I
I
I
I
------------------------------%e
%z
%d
%v
%f
%s
Linke untere Ecke der Masstabsleiste in pageunits:
X-Position:
%lux
Y-Position:
%luy
Rechte obere Ecke der Masstabsleiste in pageunits:
X-Position:
%rox
Y-Position:
%roy
Schriftschnitt:
%ga
Schriftgr&ouml;&szlig;e:
Schriftart:
%sa
%apply
%m
%e
%z
%d
%v
%f
%s
input
input
input
input
input
input
input
%lux
%luy
%rox
%roy
%sg
inches
%back
.MASS 25 character
.E 5 init 0 character
.Z 5 init 200 character
.D 5 init 400 character
.V 5 init 600 character
.F 5 init 800 character
.S 10 init 1000m character
input
input
input
input
.LUX
.LUY
.ROX
.ROY
5
5
5
5
real
real
real
real
%ga choice .QUA single init proportional constant proportional kern tightkern
%sg slider .SIZ 45 step .1 init .2 real 0 28.4
250
Kapitel 8. Die Makro-Programmierung mit AML
%sa input .FON 50 scroll yes typein yes UNIQUE fhtext -info schriftart
%apply button APPLY textguality %.QUA%; textfont %.FON%; textsize %.SIZ%;~
&r massrun.aml %.LUX% %.LUY% %.ROX% %.ROY% %.E% %.Z% %.D% %.V% %.F% %.S% %.MASS%
%back button icon back.icon &return &return
Die Maßstabsleiste wird gezeichnet.
/* massrun.aml
&ARGS lux luy rox roy e z d v f s mass: rest
&s
&s
&s
&s
&s
&s
&s
&s
&s
difx = ( %rox% - %lux% )
dify = ( %roy% - %luy% )
difh = ( %luy% - ( %dify% / 2 ) )
st = ( %difx% / 5 )
mit = ( %lux% + ( %difx% / 2 ) )
ie = ( %lux% + %st% ) &s lz = ( %lux% + ( 2 * %st% ) )
Id = ( %lux% + ( 3 * %st% ) )
lv = ( %lux% + ( 4 * %st% ) )
rs = ( %rox% + %st% ) &s rd = ( %roy% + %dify% )
shadeset plotter.shd
shadesymbol 1
box %lux% %luy% %rox% %roy%
patch %lux% %luy% %le% %roy%
patch %lz% %luy% %ld% %roy%
patch %lv% %luy% %rox% %roy%
move
text
move
text
move
text
move
text
move
text
move
text
move
text
%mit% %rd%
%iriass% lc
%lux% %difh%
%e% uc
%le% %difh%
%z% uc
%lz% %difh%
%d% uc
%ld% %difh%
%v% uc
%lv% %difh%
%f% uc
%rox% %difh%
%s% uc
Auf Wunsch kann man sich items anzeigen lassen.
7 item.aml
Itemwahl: %it
251
Kapitel 8. Die Makro-Programmierung mit AML
%apply
%back
%it choice .ITEMS single PAT AAT TIC
%apply button APLLY &r itemwa.aml
%back button icon back.icon &return &return
AML, das die item-Auswahl vornimmt.
/* itemwa.aml
&SELECT %.ITEMS%
&WHEN PAT
&DO
&s cov [GETCOVER * -poly]
items %cov% poly
&IF [RESPONSE ’Wollen Sie die Tabelle auf listen? (y/n)’] EQ y &THEN
list %cov% poly
&END
&WHEN AAT
&DO
&s cov [GETCOVER * -line]
items %cov% line
&IF [RESPONSE ’Wollen Sie die Tabelle auflisten? (y/n)’] EQ y &THEN
list %cov% line
&END
&OTHERWISE
&DO
&s cov [GETCOVER * -tic]
items %cov% tic
&IF [RESPONSE ’Wollen Sie die Tabelle auflisten? (y/n)’] EQ y &THEN
list %cov% tic
&END
&END
Mit Hilfe dieses AML kann sich der Benutzter die Vereinbarungen, die er getroffen hat anzeigen lassen.
7 verbrg.aml
Vereinbarungen:
Coverage:
Ausdehnung, xmin,ymin,xmax,ymax:
Mastabszahl:
Kartenlage (linke untere Ecke) :
X-Position:
Y-Position:
Legendenk&auml;stchen:
%c
%a
%m
%kx
%ky
252
Kapitel 8. Die Makro-Programmierung mit AML
Breite:
%b
H&ouml;he:
%h
Abstand K&auml;stchen - Text:
%t
Abstand Textunterl&auml;nge - K&auml;stchen:%u
%back
%c display .COVER 30 value
%a display mapextent 60 value
%m display .SCALE 15 value
%kx display .XPOS 15 value
%ky display .YPOS 15 value
%b display .BREITE 15 value
%h display .HOEHE 15 value
%t display .KEYH 15 value
%u display .KEYV 15 Value
%back button icon back.icon &return &return
%forminit &s mapextent [show mape]
Das Vereinbarungs-Aml kann auch so aussehen:
7 vereinbarungen.menu
Vereinbahrungen:
%vel
%ve2
%ve3
%ve4
%ve5
%ve6
%ve7
%apply
%vel
%ve2
%ve3
%ve4
%ve5
%ve6
%ve7
Coverage
Ausdehnung
Mastabszahl
Kartenlage, links unten
Legendenk&auml;stchen
Abstand K&auml;stchen - Text
Abstand Textunterl&auml;nge
%back
checkbox
checkbox
checkbox
checkbox
checkbox
checkbox
checkbox
.vl
.v2
.v3
.v4
.v5
.v6
.v7
%apply button APPLY &r verein.aml
%back button icon back.icon &return &return
253
Kapitel 8. Die Makro-Programmierung mit AML
Hier das zugehörige AML-Makro:
/* verein.aml
&IF %.VI% EQ .TRUE. &THEN
&TY ’Coverage: ’%.COVER%"
&ELSE &TY ’Keine Coverage ausgew&auml;hlt’
&IF %.V2% EQ .TRUE. &THEN
&TY ’Ausdehnung: ’[show mape]
&ELSE &TY ’Keine Aussage &uuml;ber die Ausdehnung m&ouml;glich’
&IF %.V3% EQ .TRUE. &THEN
&STY ’Mastabszahl: ’%.SCALE%"
&ELSE &TY ’Der Mastab wurde nicht festgeleg’
&IF %.V4% EQ .TRUE. &THEN
&TY ’Kartenlage (linke untere Ecke) : x =’%.XPOS%’ ’Y =’ %.YPOS%
&ELSE &TY ’Die Kartenlage ist nicht definiert’
&IF %.V5% EQ .TRUE. &THEN
&TY ’Legendenk&auml;stchen: Breite =’ %.BREITE% ’, H&ouml;he %.HOEHE%
&ELSE &TY ’Die Legendenk&auml;stchen sind nicht definiert’
&IF %.V6% EQ .TRUE. &THEN
&TY ’Abstand K&auml;stchen - Text =’ %.KEYH%
&ELSE &TY ’Der Abstand K&auml;stchen - Text ist nicht festgelegt’
&IF %.V7% EQ .TRUE. &THEN
&TY ’Abstand Textunterl&auml;nge - K&auml;stchen =’ %.KEYV%
&ELSE &TY ’Der Abstand Textunterl&auml;nge - K&auml;stchen ist nicht definiert’
Für Arcedit wird hier ein zweites Beispielmenu vorgestellt. Das Menu bietet von der Zeichenumgebung,
den Toleranzen, den Editiermöglichkeiten bis hin zu einer übersicht der gewählten Parameter grundlegende Befehle im Umgang mit Arcedit. Dabei werden nur die etwas komplexeren Menupunkte in Unterprogramme verzweigt, die dann aufgerufen werden.
2 Editiermenu edit.aml
Clear Create &m create.aml
Environment
Drawenvironment &m coverage.aml
Backenvironment &m backcover.aml
Tolerances &m tolerance.aml
Editfeature &m editfeat.aml
Select
one sel
many sel many
all sel all
box sel box
Vertex
Add vertex add
Delete vertex delete
Move vertex move
254
Kapitel 8. Die Makro-Programmierung mit AML
Draw vertex draw
Edit
Add add
Extend extend
Move move
Split split
Spline spline
Delete delete
Oops oops
Show
Arc snap show arc snap
Coordinate show coordinate
Digitizer show digitizer
Drawenvironment show de
Editcoverage show editcoverage
Editdistance show editdistance
Editfeature show editfeature
Mapextent show mapextent
Nodesnap show nodesnap
Setdrawsymbol show setdrawsymbol
Weedtolerance show weedtolerance
Save save
’Save as’ save [RESPONSE ’Name des neuen Coverage’]
Quit &return
Es folgen die Unterprogramme:
Ein neues Coverage wird erzeugt. Falls es eine Bezugscoverage gibt, so kann sie als Referenz verwendet
weren.
7 create.aml
Name des neuen Coverage: %cov
Name des Bezugscoverage: %oldcov
(.BND und .TIC werden übernommen)
%apply
%back
%cov input cover 20 INITIAL ’ ’ character
%oldcov input oldcover 30 INITIAL ’ ’cover * -all
%apply button APPLY create %cover% %oldcover%
%back button icon back.icon &return &creturn
Die Zeichenumgebung für das Coverage wird festgelegt.
255
Kapitel 8. Die Makro-Programmierung mit AML
7 coverage.aml
%logo Coverage:
%cov
Drawenvironment:
%del
%de2
%de3
%de4
%de5
%de6
all on
all off
arc on
node errors
label ids
tic ids
Color (dangle):
%color
%draw
%back
%apply
%logo display .unilogo 11 icon
%cov input varl 30 ERROR ’Dies ist keine Coverage"~
REQUIRED cover * -all ’Auswahl der Editcoverage’
%del
%de2
%de3
%de4
%de5
%de6
checkbox
checkbox
checkbox
checkbox
checkbox
checkbox
.dl
.d2
.d3
.d4
.d5
.d6
%color SLIDER col 15 integer 1 15
%draw button icon draw.icon draw draw
%apply button APPLY edit %varl%; mape %varl%;~
&r drawe .ami; nodecolor dangle %co 1%
%back button icon back.icon &return &return
%forminit &sv .unilogo logouni.icon
Dieses AML setzt die Einstellungen um, die für die Zeichenumgebung festgelegt werden sollen.
/* drawe.aml
&IF %.dl% EQ .TRUE.
&THEN
de all on
&IF %.d2% EQ .TRUE.
&THEN
de all off
256
Kapitel 8. Die Makro-Programmierung mit AML
&IF %.d3% EQ .TRUE.
&THEN
de arc on
&IF %.d4% EQ .TRUE.
&THEN
de node errors
&IF %.d5% EQ .TRUE.
&THEN
de label ids
&IF %.d6% EQ .TRUE.
&THEN
de tic ids
Hier wird die Zeichenumgebung für Coverages festgelegt, die man im Hintergrund darstellen will.
7 backcover.aml
Backcoverage: %bcov
Backenvironment: %bel
%be2
%be3
%be4
%be5
%be6
%draw
%back
%bcov input varbl
%bel
checkbox
%be2
checkbox
%be3
checkbox
%be4
checkbox
%be5
checkbox
%be6
checkbox
all on
all off
arc on
node errors
label ids
tic ids
%apply
30 REQUIRED cover * -all ’Auswahl der Backcoverage’
.bl
.b2
.b3
.b4
.b5
.b6
%draw button icon draw.icon draw draw
%apply button APPLY backcoverage %varbl% 3; &r backe.aml
%back button icon back.icon &return &return
Dieses AML wählt die gewünschte Zeichenumgebung für das Hintergrundcoverage aus.
/* backe.aml
&IF %.bl% EQ .TRUE.
&THEN
be all on
&IF %.b2% EQ .TRUE.
&THEN
257
Kapitel 8. Die Makro-Programmierung mit AML
be all off
&IF %.b3% EQ .TRUE.
&THEN
be arc on
&IF %.b4% EQ .TRUE.
&THEN
be node errors
&IF %.b5% EQ .TRUE.
&THEN
be label ids
&IF %.b6% EQ .TRUE.
&THEN
be tic ids
In diesem Menu werden die Toleranzen zum Digitalisieren festgelegt.
7 tolerance.aml
tolerancedistance in coverage units
%nodesnap Nodesnap : %ns
Distance : %nodes
%arcsnap
Arcsnap : %as
Distance : %arcs
%apply
%back
%nodesnap display nodelogo 4 icon
%nodes input nodetol 10 real
%ns choice nsp single first closest
%arcsnap display arclogo 4 icon
%arcs input arctol 10 real
%as choice asp single on off
%apply button APPLY arcsnap asp arctol; nodesnap nsp nodetol
%back button icon back.icon &return &return
%forminit &sv nodelogo nodesnap.icon
%forminit &sv arclogo arcsnap.icon
Hier wird das zu bearbeitende Feature festgelegt.
/* editfeature.aml
258
Kapitel 8. Die Makro-Programmierung mit AML
Feature Class: %edf
%apply
%dismiss
%edf choice var2 Pairs Line arc Point node Polygon label
%apply button APPLY ef %var2%
%dismiss button icon back.icon &return &return
Weiterführende Literatur:
ESRI, 1994, ARC Macro Language: Developing ARC/INFO menus and macros with AML, Redlands:
ESRI.
Fußnoten
1. ESRI (1993): ARC Macro Language: Developing Arc/Info menus and macros with AML. Redlands:
ESRI
2. Näheres hierzu unter http://www.gnu.org/software/emacs/ oder bei Ihrem freundlichen Systemadministrator
3. Siehe http://www.epa.gov/docs/region10/www/amlmode.html
4. Falls der .false-Fall nicht eintritt also ziemlich lange, nämlich bis man das Programm abbricht oder
die Festplatte überläuft, weil man bei jedem Schleifendurchlauf ein 18MB-Grid schreiben läßt. Eine
gewisse Sorgfalt bei der Makroprogrammierung ist also anzuraten.
5. Man könnte sie natürlich auch mit einem beliebigen (nicht reservierten) anderen Namen bezeichnen,
der Name dient hier nur der Veranschaulichung im Beispiel.
259
Kapitel 8. Die Makro-Programmierung mit AML
260
Stichwortverzeichnis
Überlagerung, 118
darstellende, 118
topologische, 118
Aggregation, 13
ALK, 10
AML, 30
Analyse
Räumliche, 117
Analyse Pufferbildung, 146
Analyse räumlich, 117
Analyse, raumbezogene, 23
Arbeitsverzeichnis (Workspace), 59
Arc, ??, ??, 31
Arc append, 141
Arc clip, 129, 153
Arc Eigenschaften, 33
Arc eliminate, 145
Arc erase, 132
Arc identity, 122
Arc intersect, 126
Arc list, 151
Arc Macro Language, ??
Arc mapjoin, 140
Arc reselect, 143, 151
Arc split, 137
Arc update, 136
ArcCatalog, ??
ArcDoc, 49
ArcEdit, ??, 58
ArcEdit create, 93
ArcEdit draw, 66
ArcEdit drawenvironment, 66
ArcEdit register, 68
ArcEdit save, 66
ArcEdit Voreinstellungen, 62
arclines, ??
ArcMap, ??
ArcPlot, ??
ArcPlot reselect, 162
ArcPress, ??
Arcs, 33, ??
Arcs Überschneidungen von, 79
ArcScan, ??
ArcStorm, ??
arctext, ??
ArcToolbox, ??
ArcTools, 30
ArcTools starten, 46
ASCII-Dateien Import von, 88
Attributdaten, 14
Verknüpfung von, 32
Attribute, 9
Attributtabelle Feldeigenschaften, 96
Aufbau von ARC/INFO, 29
Beziehung, 13
Beziehungen
räumliche, 8
Bildschirm initialisieren, 48
buffer, 146
Buffering, 146
CAD, 3, 40
clip, 153
Cogo, ??
CommandTools Analysefunktionen, 118
Connectivity, 9
Contiguity, 9
copy, 93
Coverage, 32
Namenskonventionen, 59
Coverage Verzeichnisstruktur, ??
Coverage-ID, 33
Dangling Node, 79
Dangling Nodes, 79
DatabaseIntegrator, ??
Datenbank, 11
Datenbanken, 3, 11
Attribute, 13
Aufbau, 14
Beziehungen, 13
ER-Diagramme, 13
Fremdschlüssel, 16
Indexalgorithmen, 22
Indexmechanismen, 17
Integritätsregeln, 16
Normalformen, 17
objektrelationale, 14
Primärschlüssel, 15
raumzeitliche, 22
Referentielle Integrität, 16
relationale, 14, 14
SDE, 21
Sicht, 16
SQL, 18
261
SQL Beispiele, 18
SQL-Erweiterungen, 19
Transaktion, 15
Trigger, 15, 16
Datenbankmanagementsysteme, 12
Datenbanksystem, 12
Datengrundlagen Fehlerquellen, 25
Datengrundlagen Metadaten, 26
Datenmodell
topologisches, 8
Datenmodell extern, 12
Datenmodell intern, 12
Datenmodell konzeptionell, 12
Datenmodelle, 31
DEM, 45
Digitalisierbrett, 83
Digitalisierbrett-Koordinaten, 60
Digitalisieren Am Monitor, 68
Digitalisieren Registrierung, 65, 93
Digitalisierpuck, 64
Digitalisiertablett, 60, 64
Digitalisierung, 83
Digitalisierung vorbereiten, 61
dissolve, 144
Dublin Core, 27
Dynamic Segmentation, ??
Dynamik, 11
Ebenenprinzip, 10
EditTools, 58
Einzelkarten zusammenfügen, 140
Encapsulated Postscript, 179
Entfernungen, 148
entity, 6
Entity-Relationship-Diagramm, ??
Entity-Relationship-Diagramme, 13
Entität, 13
EPS, 179
erase, 132
feature, 6
Feature Attribute Table, 86
Feature-ID, 33
Fehler, topologische, 82
FGDC, 27
Flächendefinition, 9
Gauss-Krüger-Koordinatensystem, 83
Geländemodelle Tin, 183
Geländemodelle!VRML, 186
Generate, 73
Geocoding, 151
Geoobjekt, 6
Georeferenzierung, 68
GIS
Bestandteile, 2
Definition, 1
Einsatzgebiete, 5
Komponenten, 2
Typen, 1
Unterschied zu CAD, 3
Grid, ??, 41
Grid und TIN, Vergleich von, 45
Hilfe, ??
Image Integrator, ??
Import ASCII, 73
Import von ASCII-Dateien, 88
INFO Tabelle erstellen, 96
Informationsebenen, 118
initial boundary, 65
Inselpolygon, 61
intersectarcs, 79
joinitem, 98
Kardinalität, 13
Kartenerstellung ArcView, 171
Kartengrundlage, 58
Kartographie, ??
Koordinatensystem, 83
Label, 82
Labelfehler, 81
labelmarkers, ??
labels, ??
Lattice, 44
Layout-Konventionen, i
Librarian, ??
lineset, ??
linesymbol, ??
Linie, 31
markerset, ??
markersymbol, ??
Metadaten, 26
Modellierung, raumbezogene, 23
move, ??
Namensbeschränkungen
Annotations, 59
Coverages, 59
Route Systems, 59
Shapefiles, 59
near, 148
262
Network, ??, 156
Node, ??, 33
Nodes, 79, ??
Objektklassenprinzip, 10
ODE, ??
Open Development Environment, ??
pointmarkers, ??
points, ??
Polygon, ??
polygons, ??
polygonshades, ??
Projektion, 83
Projektplanung, 57
Pseudonodes, 79
Pufferbildung, 146
Raster, ??
Rasterdaten Georeferenzierung, 68
Realweltkoordinaten, 60
Referentielle Integrität, 16
Relate erzeugen, 98
RMS-Fehler, 60, 93
Räumliche Analyse, 117
Sachdaten, 9
Satellitenbilder, 43
Schichtenmodell, 118
Schlüsselkandidaten, 15
SDE, 21
select, 81
Sequence Number, 32
shadeset, ??
shadesymbol, ??
Signaturdateien, 160
Sliver-Polygone, 80
Snyder, John. P., 84
SQL, 18
Symbolschlüssel, 160
textfont, ??
textquality, ??
textsize, ??
textsymbol, ??
Thematik, 9
Theme, 32
thiessen, 149
Thiessen Polygone, ??
Thiessen-Polygone, 148
TIC, 60
TIC-ID, ??
TICs, 60, ??
Tin, ??, 44
Oberflächentyp, 188
Tin Breaklines, 45
TIN und Grid, Vergleich von, 45
Topologie, 8, 32, 118
Topologie in ARC/INFO, 9
topologische Fehler, 82
Transformation, ??
Trigger, 15, 16
union, 120
Universalpolygon, 9, 81
Vektor, ??, 31
Vektordaten, 32
Vergleich von TIN und Grid, 45
Verschneidung, 118
Verschneidung topologische, 118
View, 32
Visualisierung, 159
workspace, 46
263

Documentos relacionados