\chapter{EDBS Daten verarbeiten}
\label{computing_edbs_data_de}

\label{computing_edbs_data_de:grass}
\underline{von Otto Dassau}
\\
\\

\subsubsection{Aufgabenstellung}
An dieser Stelle soll der Import von ATKIS/EDBS Daten vorgestellt werden. Aufbauend auf\index{ATKIS}\index{EDBS}\nomenclature{ATKIS}{leer}\nomenclature{EDBS}{leer}
den schon seit l"angeren existierenden EDBS\_extra Reader von Claus Rinner gibt es seit
ein paar Wochen ein Import Modul, dass einzelne oder auch Gruppen von EDBS-Dateien direkt in eine Location im GRASS Vektor- bzw.\
Sites-Format importieren kann.

%\subsubsection{Beispieldaten}

%\subsubsection{Weitere Verwendung der Beispieldaten}


\section{L"osung mit GRASS}
Es wurde GRASS 5.0pre2 mit dem Paket {\em grass\_v.in.edbs.tar.gz} unter einer SuSE GNU/Linux
 Installation (7.1) verwendet.


\subsection{Das EDBS-Format}
Das Datenformat EDBS ist entwickelt worden, um eine einheitliche
Datenbankschnittstelle für Daten des ALK\index{ALK}\nomenclature{ALK}{leer} ``Automatisierte Liegenschaftskarte''
und des ATKIS ``Amtliches Topographisch-Kartographisches Informationssystem''\index{ATKIS}\nomenclature{ATKIS}{leer} 
bereitzustellen. Vergleichbar sind diese Bem"uhungen mit dem SDTS Format des 
U.S. Geological Survey für den nordamerikanischen Raum.\\ 
Da sich im GIS-Bereich bis heute keine für Deutschland allgemein gültigen 
Schnittstellenstandards durchsetzen konnten, sind die Standards hierzulande 
allerdings oft l"anderspezifisch.\\ Im Bereich \underline{ALK} wird das
EDBS-Format in Nordrhein-Westfalen, Hessen, Niedersachsen, Schleswig-Holstein, 
Berlin, Brandenburg, Bremen, Rheinland-Pfalz, Sachsen-Anhalt und 
Schleswig-Holstein verwendet\\
\underline{ATKIS}-Daten werden von allen Bundesl"andern (bis auf das Saarland) 
in EDBS-Form angeboten. In Baden-Württemberg werden Daten des 
Landesvermessungsamtes bislang im SICAD-SQD-Format oder BGRUND-Format [Baden 
1990] bereitgestellt. In Bayern steht neben dem SQD-Format das DFK- Schnittstellenformat 
zur Verfügung [Bayern 1993]; mittlerweile wird auch dort das EDBS-Format 
unterstützt. \\
Die Definition der EDBS erfolgte im Rahmen des Gesamtsystems ``Automatisierung 
der Liegenschaftskarte'' (ALK-System). Die Struktur ist textbasiert, 
vektororientiert und beinhaltet die vollständige Topologie.
\vspace{0.5cm}\\
\underline{Inhalte sind u.a.\ :}
\vspace{0.3cm}\\
- Objektnummer A999525\\
- Objektteilnummer 1\\
- Objektart 3102 (= Weg)\\
- Folie 104 \\
- Objekttyp L(inie)\\
- Labelpunkt (3418315.94,5765981.04)\\
- Entstehungsdatum 11.11.1992 sowie Anfangspunkt (3418583.34,5765292.92)\\
- Zwischenpunkt (3418644.90,5765115.08) \\
- Endpunkt (3418761.27,5765110.19)

\subsection{Der EDBS\_extra Reader}

Das Programm EDBS\_extra wurde am Institut f"ur Umweltsystemforschung der 
Universität Osnabr"uck von Claus Rinner entwickelt. \\  
Dabei handelt es sich um ein ANSI-C-Programm, das EDBS-Auftr"age mit ALK- oder 
ATKIS-Daten abarbeitet, und die darin enthaltenen Geometrie-, Topologie- und 
Sachinformationen 'lesbar' abspeichert, wobei die Geometriedaten für den 
Import mit der Funktion GENERATE von Arc/Info vorbereitet sind. Weitere 
Erl"auterungen hierzu und Informationen zum EDBS-Format sind unter
\footnote{http://www.rinners.de/edbs/} nachzulesen.

\subsection{Import von EDBS Daten nach GRASS}

Im Folgenden soll der Import von EDBS-Daten nach GRASS n"aher beschrieben
werden. Aufbauend auf den EDBS\_extra Reader gibt es ein Import Modul 
\textbf{v.in.edbs}, das diesen mit einbezieht und die im ARC/Info
(Ungenerate) Format vorliegende Datei(en) ins GRASS Vektor- bzw.\ Punktformat
importiert.\\
Dieses Import Modul ist momentan nicht in GRASS integriert, sondern liegt als
Zusatzpaket im ``Add-ons'' Bereich der GRASS-Homepage. Es befindet sich noch in der 
Testphase, und wurde bislang nur an wenigen Daten gestestet. Auf der Internetseite
\footnote{http://grass.itc.it/grass\_addons.html} ist ein Link auf das Programm 
mit einer kurzen Beschreibung vorhanden.\\
Das Modul v.in.edbs mit seinen Unterprogrammen kann auf der oben genannten Internetseite 
heruntergeladen werden. 
\vspace{0.3cm}\\
In dem Paket \textbf{grass\_v.in.edbs.tar.gz} sind die EDBS\_extra Programme \textit{edx, dom, extra\_run} 
mit den Verzeichnissen \textit{edx\_files} und \textit{dom\_files}. In diesen werden die von EDBS\_extra 
ausgelesenen Daten im ARC/Info Format abgelegt. Desweiteren enthalten sind ein Perl-Skript \textit{edbs\_split}, 
das den direkten Import der einzelnen Objektarten erm"oglicht, und das eigentliche import Modul \textit{v.in.edbs}.   
 
\paragraph{Installation von v.in.edbs}
Nach dem Download sind folgende Schritte als admin durchzuf"uhren:\\

\begin{kommando}
\begin{verbatim}

cp grass_v.in.edbs.tar.gz $GISBASE
cd $GISBASE 
gunzip grass_v.in.edbs.tar.gz
tar xfv grass_v.in.edbs.tar.gz

\end{verbatim}
\end{kommando}

Das Verzeichnis \$GISBASE entspricht dem GRASS Programmverzeichnis (meist ist dies /usr/local/grass5/). 
Danach steht das Programm unter GRASS zu Verf"ugung. Getestet wurde es bislang nur auf einem Linux Rechner, 
zur Lauff"ahigkeit auf anderen Systemen ist noch nichts bekannt.\\
\vspace{0.3cm}\\
W"ahrend des Imports der EDBS Datei wird zwischen linien-, fl"achen- und punkthaften 
Daten unterschieden. Der Import ist daher in 3 Bereiche unterteilt: 
\vspace{0.3cm}\\
1. Import von linienhaften Strukturen \\
2. Import von flächenhaften Strukturen \\
3. Import von punkthaften Strukturen 
\vspace{0.3cm}\\
Diese werden w"ahrend des Imports nacheinander durchlaufen.
\paragraph{Import von linienhaften Daten}
Gestartet wird das Modul nach der Installation mit dem Befehl:
\\

\begin{kommando}
\begin{verbatim}

GRASS:~ > v.in.edbs atkis.bsp

\end{verbatim}
\end{kommando}

Die hier verwendete Beispieldatei `atkis.bsp' ist eine frei im Internet verfügbare Musterdatei, und kann 
u.a.\ "uber die EDBS\_extra Seite von Claus Rinner erreicht werden. \\
Zu Beginn des Imports wird gefragt, ob eine einzelne oder mehrere EDBS-Dateien in die GRASS Location importiert werden sollen.
\\

\begin{kommando}
\begin{verbatim}

Does the importfile contain more than one EDBS-file? (y/n)

\end{verbatim}
\end{kommando}

Wenn mehrere EDBS-Dateien gleichzeitig in eine Location importiert werden sollen, muss vor dem Import eine Datei erstellt werden, in der die
kompletten Pfade der einzelnen zu importierenden Dateien aufgelistet sind.
\vspace{0.5cm}\\
Der Inhalt einer solchen Datei kann z.B.\ folgendermaßen aussehen:
\\

\begin{kommando}
\begin{verbatim}

/home/user/edbsdaten/beispiel.ebs
/home/user/edbs/edbs_import/atkis.bsp
.......

\end{verbatim}
\end{kommando}

Je nach Angabe wird nun die einzelne EDBS-Datei oder die aus einer Gruppe von EDBS-Dateien bestehende Importdatei eingelesen. \\ 
Danach werden die in den EDBS-Daten vorhandenen linienhaften Objekte aufgelistet. \\
Diese sind unterteilt in Objektbereiche (Siedlung, Verkehr, Vegetation, ...) und die
dazugeh"origen Objektarten (Strasse, Grenze,...).
\\

\begin{kommando}
\begin{verbatim}

EXISTING LINE OBJECT GROUPS:

SIEDLUNGEN:
VERKEHR:
3101 Strasse
3102 Weg
3105 Strassenkoerper
3106 Fahrbahn
3201 Schienenbahn
3514 Bruecke_Unterfuehrung_Ueberfuehrung
3531 Kabelleitung
VEGETATION:
4203 Hecke_Knick
GEWAESSER:
5101 Strom_Fluss_Bach
5103 Graben_Kanal
RELIEF:
GEBIETE:
7299 Grenze

import OBJEKTART or OBJEKTBEREICH? [OBJART]
[BEREICH or OBJART]

\end{verbatim}
\end{kommando}

Dabei erfolgt eine Abfrage, ob die zu importierenden Daten als
``Objektbereichs-'' oder ``Objektartkarten'' ins GRASS Vektorformat "uberf"uhrt
werden sollen.
\vspace{0.5cm}\\
\underline{Objektbereich}
\vspace{0.3cm}\\
Entscheidet man sich für den Import als Objektbereichskarten, so erhalten die
importierten Vektorkarten den Namen des jeweiligen Bereichs mit der Endung ``\_l''.
\vspace{0.5cm}\\
- siedlung\_l \\
- verkehr\_l \\
- vegetation\_l \\
- gewaesser\_l \\
- relief\_l \\
- gebiete\_l 
\vspace{0.3cm}\\
In der Karte `gewaesser\_l' sind dann z.B.\ die Objektarten Strom\_Fluss\_Bach und Graben\_Kanal enthalten.
\vspace{0.5cm}\\
\underline{Objektart}
\vspace{0.3cm}\\
Entscheidet man sich für den Import der Linienz"uge als Objektartkarten, so werden die einzelnen Objektarten (Strasse, Weg,...) 
jeweils als einzelne Vektorkarten importiert. Da hier keine "Uberschneidung der linien- und fl"achenhaften Kartennamen entsteht, 
erfolgt keine weitere Kennzeichnung, ob es sich um Karten mit Linien oder Polygonen handelt.
\paragraph{Import von flächenhaften Daten}
Bei den fl"achenhaften Daten l"auft der Import entsprechend ab. Nach einer Best"atigung werden die in der 
EDBS-Datei vorhandenen Polygone aufgelistet.\\
Auch hier wird wieder nach Objektbereiche und den darin enthaltenen Objektarten unterschieden.
\\

\begin{kommando}
\begin{verbatim}

existing POLYGON GROUPS:

SIEDLUNGEN:
2101 Ortslage
2111 Wohnbauflaeche
2113 Flaeche_gemischter_Nutzung
2114 Flaeche_besonderer_funktionaler_Praegung
2201 Sportanlage
2222 Sportplatz
2228 Campingplatz
VERKEHR:
3514 Bruecke_Unterfuehrung_Ueberfuehrung
VEGETATION:
4101 Ackerland
4102 Gruenland
4107 Wald_Forst
4108 Gehoelz
GEWAESSER:
5112 Binnensee_Stausee_Teich
RELIEF:
GEBIETE:
7101 Verwaltungseinheit

import OBJEKTART or OBJEKTBEREICH? [OBJART]
[BEREICH or OBJART]

\end{verbatim}
\end{kommando}

Es erfolgt wieder eine Abfrage, ob die zu importierenden Daten als ``Objektbereichs-'' 
oder ``Objektartkarten'' ins GRASS Vektorformat "uberf"uhrt werden sollen. 
\vspace{0.3cm}\\
\underline{Objektbereich}
\vspace{0.3cm}\\
Entscheidet man sich für den Import der Polygone als Objektbereichskarten, so erhalten die
importierten Vektorkarten den Namen des jeweiligen Bereichs mit der Endung ``\_f''.
\vspace{0.2cm}\\
- siedlung\_f \\
- verkehr\_f \\
- vegetation\_f \\
- gewaesser\_f \\
- relief\_f \\
- gebiete\_f 
\vspace{0.2cm}\\
In der Karte `vegetation\_f' sind die Objektarten Ackerland, Gruenland, Wald\_Forst und Gehoelz enthalten.
\vspace{0.5cm}\\
\underline{Objektart}
\vspace{0.3cm}\\
Entscheidet man sich für den Import als Objektartkarten, so werden diese (Ortslage, Gehoelz,...) 
jeweils als einzelne Vektorkarten importiert. Da hier keine "Uberschneidung der linien- und fl"achenhaften Kartennamen entsteht, 
erfolgt keine weitere Kennzeichnung, ob es sich um Linien oder Polygone handelt.
\paragraph{Import von punkthaften Daten}
Der Import der Punktdaten findet am Ende des Imports statt. Hierbei werden wie im vorigen Verlauf die in der EDBS
-Datei vorkommenden Punktdaten angezeigt.
\\

\begin{kommando}
\begin{verbatim}

existing POINT DATA:

3541 Mast

import point data? [Return]

Mast imported to ~/grassdata/sh_edbs/sh_edbs/site_lists/...

\end{verbatim}
\end{kommando}

Hier gibt es keine Unterscheidung zwischen Objektbereich und dazugeh"origen Objektarten. Der Import findet 
automatisch als Objektart statt.\\
Wie oben zu sehen, werden die Punktdaten, die unter GRASS als `Sites' bezeichnet werden in das Verzeichnis 
\$LOCATION/site\_lists importiert. Dieses wird, wenn es nicht schon vorhanden ist erzeugt.
\subsection{Ergebnis}
Wenn der Import der Daten abgeschlossen ist, kann man sich die Liste der nun in GRASS
befindlichen Vektorkarten mit dem Befehl `g.list.vect' anschauen.  
\\

\begin{kommando}
\begin{verbatim}

GRASS:~ > g.list vect
----------------------------------------------
vector files available in mapset sh_edbs:
Ackerland                                 Graben_Kanal  
Binnensee_Stausee_Teich                   Grenze        
Bruecke_Unterfuehrung_Ueberfuehrung       Gruenland     
Campingplatz                              Hecke_Knick   
Fahrbahn                                  Kabelleitung  
Flaeche_besonderer_funktionaler_Praegung  Ortslage      
Flaeche_gemischter_Nutzung                relief_f      
gebiete_f                                 relief_l      
gebiete_l                                 Schienenbahn  
Gehoelz                                   siedlung_f    
gewaesser_f                               siedlung_l    
gewaesser_l                               Sportanlage   
Sportplatz                                vegetation_l
Strasse                                   verkehr_f
Strassenkoerper                           verkehr_l
Strom_Fluss_Bach                          Verwaltungseinheit
vegetation_f                              Wald_Forst
Weg                                       Wohnbauflaeche
----------------------------------------------

\end{verbatim}
\end{kommando}

Die Punktdaten liegen im Verzeichnis \$LOCATION/site\_lists. Eine Liste der 
vorhandenen Sites-Daten kann mit dem Befehl `g.list.sites' ausgegeben werden.
\\

\begin{kommando}
\begin{verbatim}

GRASS:~ > g.list sites
----------------------------------------------
site list files available in mapset sh_edbs:
Mast  Verkehrsknoten  Verwaltungseinheit
----------------------------------------------

\end{verbatim}
\end{kommando}

Zur Veranschaulichung sind hier 2 Karten dargestellt, in denen alle 3 Bereiche der importierten EDBS-Daten 
(Linien, Polygone und Punkte) als Vektor- und als Rasterkarte dargestellt sind. Durch den Befehl `d.what.vect' 
bzw.\ `d.what.rast' k"onnen die Attribute der Punkte, Linien und Fl"achen abgefragt werden.
\vspace{0.5cm}\\
\begin{figure}[h]
\centering
\includegraphics[width=8cm]{handling-edbs-data/vect-edbs.eps}
\caption[Screenshoot GRASS EDBS Vektorkarte]{\label{vectmap}
GRASS Monitor mit EDBS Vektorkarte}
\end{figure}
\vspace{0.5cm}\\
In der Vektorkarte ist der Objektbereich `gewaesser\_f', die Objektart `Strasse' und die Objektart `Mast' dargestellt. 
Der X-term enth"alt die Abfrageergebnisse.
\vspace{0.5cm}\\
\begin{figure}[h]
\centering
\includegraphics[width=8cm]{handling-edbs-data/rast-edbs.eps}
\caption[Screenshoot GRASS EDBS Rasterkarte]{\label{rastmap}
GRASS Monitor mit EDBS Rasterkarte}
\end{figure}
\vspace{0.5cm}\\
In der Rasterkarte ist der Objektbereich `gewaesser\_f', die Objektart `Weg' und die Objektart `Mast' dargestellt. 
Der X-Term enth"alt die Abfrageergebnisse. Die Umwandlung der Vektordaten ins Rasterformat ist mit dem Befehl `v.to.rast' 
geschehen, und bietet durch die automatische Farbzuweisung eine bessere Visualisierung.
