%
% $Id$
%
\documentclass[12pt,german]{scrartcl}

%----------------------------------------------
% Load packages

\usepackage{a4}
\usepackage{times}
\usepackage[latin1]{inputenc}
\usepackage{fancyhdr}
\usepackage{german}
%\usepackage[marvosym]{eurofont}
%\usepackage[all, light]{draftcopy}
%\usepackage{supertabular}
%\usepackage{colortbl}
%\usepackage{epsf}
\usepackage{graphicx}
\usepackage{lastpage}
%\usepackage{proposal}


%----------------------------------------------
% Document DATE and VERSION
% set these values when releasing a new version

% Clearunderscore is a workaround when dealing with filenames with underscores.
%\def\cleanunderscore#1_#2{\expandafter #1\_#2}
%\def\RCS$#1: #2 ${\expandafter\def\csname RCS#1\endcsname{\cleanunderscore#2}}
% EDIT HERE
\def\RCS$#1: #2 ${\expandafter\def\csname RCS#1\endcsname{#2}}
\RCS$Id$
\RCS$Revision$

\newcommand{\documentdate}{12. März 2006}
\newcommand{\documentrevision}{\RCSRevision}
\newcommand{\documentversion}{0.9.7}
\newcommand{\documentID}{\RCSId}
%----------------------------------------------

%----------------------------------------------
% Document TITLE
\newcommand{\documenttitle}{WSPLGEN, Technisches Feinkonzept}


%----------------------------------------------
% Ein paar Einstellungen die das Layout beeinflussen

\paperwidth=21cm
\hoffset=-0.54cm
\textwidth=17cm

\paperheight=29.7cm
\voffset=-1.5cm
\topmargin=0cm
\headheight=1cm
\textheight=24cm

\setcounter{secnumdepth}{4}
\setcounter{tocdepth}{4}

%----------------------------------------------
% Nun gehts es wirklich los

\begin{document}

%-----------------------------------
% HEADER/FOOTER DEFINITION

% for some pages latex switches back to pagestyle plain :-(
\fancypagestyle{plain}{%
	\fancyhf{} % clear all header and footer fields
	\fancyhead[LO,RE]{\footnotesize \documenttitle\\ \leftmark}
	\fancyfoot[RO,LE]{\footnotesize S-L-F GmbH} % Author
	\fancyfoot[CO,CE]{\footnotesize \thepage/\pageref{LastPage}}
	\fancyfoot[LO,RE]{\footnotesize \documentdate
	\\\documentID}
	\renewcommand{\footrulewidth}{0.4pt}
}

% and now define pagestyle fancy
\fancyhead{} % clear all fields
\fancyhead[LO]{\footnotesize \documenttitle\\ \leftmark}

\fancyfoot{}% clear all fields
\fancyfoot[RO]{\footnotesize S-L-F GmbH} % Author
\fancyfoot[CO]{\footnotesize \thepage/\pageref{LastPage}}
\fancyfoot[LO]{\footnotesize \documentdate
\\\documentID}

\renewcommand{\footrulewidth}{0.4pt}

%
% END Header/Footer Definition
%-----------------------------------

%----------------------------------------------
% MACRO DEFINITION
%
%   \Fig{figure}{lof text}{caption} :
%			places 'figure' and
%                       writes 'caption' at the bottom with leading
%                       'Abbildung figno:'. 'lof text' is added to the list of
%                       figures.
%                       Example:
%                       \Fig{\epsfxsize30mm \epsffile{x.eps}}{the x}{the x}
%
%   \FigNoEntry{}{} :
%			same as above, no entry in figures list
%
%   \FigCaption{} :
%			line with figure caption, setting figure
%                       counter and figures list
%
%   \Tab{table}{lot text}{caption} :
%			places 'table' and writes caption on top of the table
%			with leading 'Tabelle tabno:'. 'lot text' is added to
%			the list of tables.
%****************************************************************************
%       Figure makro for graphics continously enumerated.
%

\newcounter{FigCnt}
\newcounter{TabCnt}

\newcommand{\Fig}[3]%
{
        \refstepcounter{FigCnt}
        \addcontentsline{lof}{figure}%
                {\protect\numberline{\arabic{FigCnt}}{#2}}
        \mbox{#1}

\nopagebreak
        {Abbildung \arabic{FigCnt}: #3}

}

\newcommand{\FigNoEntry}[2]%
{
        \refstepcounter{FigCnt}
        \mbox{#1}

\nopagebreak
        {Abbildung \arabic{FigCnt}: #2}

}

\newcommand{\FigCaption}[1]%
{
        \refstepcounter{FigCnt}
        \addcontentsline{lof}{figure}%
                {\protect\numberline{\arabic{FigCnt}}{#1}}

        %{Figure \thesection.\arabic{FigCnt}: #1}
}

\newcommand{\Tab}[3]%
{
        \refstepcounter{TabCnt}
        \addcontentsline{lot}{figure}%
                {\protect\numberline{\arabic{TabCnt}}{#2}}
        {Tabelle \arabic{TabCnt}: #3}
\nopagebreak
        #1

}

\hyphenation{Intevation}
% end macro definition

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcounter{schritt}
\renewcommand{\theschritt}{\Roman{schritt}}
%\makeatletter\renewcommand{\p@schritt}{Abschnitt~\thesubsubsection~}\makeatother

%-----------------------------------
% DOCUMENT SETTINGS
\pagestyle{fancy}
\setlength{\parindent}{0cm}
\setlength{\parskip}{5pt plus 2pt minus 1pt}


%-----------------------------------
% TITLE PAGE

{
	\makebox[5cm][l]{\includegraphics[height=3cm]{abbildungen/slf-logo.eps}}\hspace{5cm}\makebox[5cm][l]{\includegraphics[height=3cm]{abbildungen/intevation-logo.eps}}\\
	\makebox[5cm][l]{\tt http://s-l-f.de}\hspace{5cm}\makebox[5cm][l]{\tt http://intevation.de}
}

\vspace{4cm}

{
	\sffamily\large
	WSPLGEN (\textbf{W}asser \textbf{SP}iegel\textbf{L}agen \textbf{GEN}erator)

	\vspace{1cm}
	{
		\bfseries\huge
		Feinkonzept
	}

	\vspace{1cm}
	Version \documentversion~-~Datum: \documentdate

	Revision \documentrevision
}

\vspace{4cm}

\thispagestyle{empty}

\vfill

\begin{flushleft}
Autor WSPLGEN:\\
Ulrich Kiel $<$u.kiel@S-L-F.de$>$\\
STADT-LAND-FLUSS INGENIEURDIENSTE GmbH,\\
Auf dem Hollen 12, 30165 Hannover\\
Tel: 0511/353196-02, Fax: 0511/353196-09

\vspace{0.5cm}
Qualitätssicherung:\\
Intevation GmbH, Georgstraße 4, 49074 Osnabrück\\
Tel: 0541/33508-30, Fax: 0541/33508-59
\end{flushleft}


\newpage
% the title page ends here.
{
\tableofcontents
%
\listoffigures
%
%\listoftables
%EDIT HERE
\markboth{Inhaltsverzeichnis}{Inhaltsverzeichnis}
}
% START YOUR DOCUMENT HERE!



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
\section{Allgemeines}

Das Programm WSPLGEN erzeugt Dateien im ESRI Shape Format, um eine flächige
Darstellung der Ergebnisse eindimensionaler mathematischer Modelle zur
Berechnung von Wasserständen zu ermöglichen. Es kann das aktuelle oder
das potenzielle Überschwemmungsgebiet (Ü-Gebiet) ermittelt werden oder ein
von der aktuellen Topographie abweichendes Szenario für die Berechnungen
herangezogen werden.

Es wird als eigenständiges Programm realisiert und kann
von einer Bedieneroberfläche (Graphic-User-Interfaces, GUI)
aufgerufen werden. 

Die Eingabedaten werden in der grafischen Bedieneroberfläche definiert und
per Kommandozeilenparameter oder Parameterdatei und über verschiedene
Eingabedateien an das Programm WSPLGEN übergeben. Eine erste Überprüfung
auf Vollständigkeit und Sinnhaftigkeit sollte in der GUI erfolgen, da WSPLGEN
bei den meisten Problemen nur einen Fehler generiert oder Standardwerte benutzt,
die nicht immer den eigentlichen Willen des Benutzers wiedergeben. Beim
Verwenden von Standardwerten wird in jedem Fall eine Warnung generiert.

Wenn aus Optimierungsgründen (Speicherplatz oder Geschwindigkeit)
immer nur ein Teil des DGM bearbeitet werden kann, so kann
das Programm zwischen den einzelnen ,,Berechnungsstreifen''
abgebrochen werden, indem das Wort ,,stop'' in die Standardeingabe
von WSPLGEN geschrieben wird.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Vorgehensweise}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}
\subsection{Schritt \theschritt ~-~Auswertung der Kommandozeilenparameter}

Als erstes werden von WSPLGEN die Kommandozeilenparameter ausgewertet.
Sollte das Programm hierbei unbekannte Optionen oder ungültige
Argumente zu den Optionen finden, so wird ein Fehler generiert
(siehe Abschnitt~\ref{sec:fehlermeldungen}).
Werden Optionen mehrfach verwendet (z.B. bei der Angabe einer Option in der
Kommandozeile und gleichzeitiger Verwendung der gleichen Option in der
Parameterdatei (siehe Abschnitt \ref{subsec:param-par}), so wird
nur das erste Auftreten in der Kommandozeile berücksichtigt und eine Warnung
generiert (siehe Abschnitt~\ref{sec:fehlermeldungen}).
Die zulässigen Kommandozeilenoptionen und ihre Argumente werden im
Abschnitt~\ref{sec:param} und im Anhang~\ref{sec:parameter} beschrieben.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:einlesen}
\subsection{Schritt \theschritt~-~Einlesen der Eingabedateien}\label{subsec:schritt-einlesen}

Die wichtigsten Kommandozeilenparameter bestimmen, welche Dateien das Programm
einlesen soll und in welche Dateien es die Ausgaben schreiben soll.
Wird das Programm angewiesen eine Datei zu lesen, die nicht existiert, die
aus einem anderen Grund (z.B. ungenügende Rechte) nicht gelesen werden kann
oder die in einem unbekannten oder fehlerhaften Format vorliegt, so wird
eine Fehlermeldung generiert (siehe Abschnitt~\ref{sec:fehlermeldungen}).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{Gewässerquerprofilspuren}\label{schritt:profilspuren-lesen}

Zuerst werden die Gewässerquerprofilspuren (im folgenden oft nur kurz Profilspuren genannt)
eingelesen. Die Profilspuren müssen so lang sein, dass an ihren Enden eine Geländehöhe
im DGM vorhanden ist, die sicher höher liegt, als die Wasserstände, die den Profilspuren
zugeordnet werden sollen, dies bedeutet die Profilspuren decken die hydrologisch relevante Talaue ab.

An ,,offenen'' Bereichen (z.B. Nebengewässern oder den Modellgrenzen, verlaufen die Ergebnispolygone
auf dem Rand des digitalen Geländemodells entlang, sie werden dort also unabhängig
von der Wassertiefe geschlossen.

Zwischen dem ersten und dem letzten Punkt einer Profilspur können beliebig viele
Knickpunkte liegen, um die Profilspuren aus hydraulischer Sicht sinnvoll
festlegen zu können.

Als ein Attribut müssen die Profilspuren eine nummerische Gewässerstationierung
aufweisen, die es ermöglicht, den Profilspuren Wasserstände zuzuweisen, die für verschiedene
Stationen im Gewässer vorliegen und die es ermöglicht Wasserstände für Profilspuren zu interpolieren.

Hierbei darf die Stationierung auch negative Werte enthalten.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_profil.eps}}{Lage von drei Gewässerquerprofilen}{Gewässerquerprofile}
\end{center}

Das Format der Datei mit den Profilspuren wird in Abschnitt~\ref{subsubsec:file-profile}
genauer spezifiziert.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{Digitales Geländemodell (DGM)}\label{schritt:dgm-lesen}

Nach den Profilspuren wird das digitale Geländemodell (DGM) eingelesen, das durch seine Größe
auch gleichzeitig die maximal mögliche Ausdehnung des Ergebnisses festlegt.
Das DGM muss für die weitere Bearbeitung als vermaschtes Netz vorliegen.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_netz.eps}}{Ein ganz kleiner Ausschnitt aus einem DGM als vermaschtes Netz}{Ausschnitt eines DGM als vermschtes Netz}
\end{center}

Die verschiedenen möglichen Formate des DGM werden in Abschnitt~\ref{subsec:file-dgm}
genauer spezifiziert. Wird ein Format für das DGM gewählt, das kein vermaschtes Netz
darstellt (z.B. eine ASCII-Datei mit X,Y,Z-Tripeln), so wird nach dem Einlesen der Punkte
eine automatische Triangulierung durchgeführt (siehe Schritt~\ref{schritt:triang}
in Abschnitt~\ref{subsec:schritt-triang}). Das Ergebnis der Triangulierung
wird im Moment noch nicht gespeichert.

Muss aus Optimierungsgründen das DGM für die weitere Bearbeitung in einzelne ,,Streifen''
zerschnitten werden oder wurde durch die Auswahl der Profilspuren nur
ein bestimmter Abschnitt des DGM für die weitere Bearbeitung ausgewählt,
so wird nur der Teil des DGM im Speicher behalten, der in dem
aktuellen ,,Streifen'' liegt.

Die Berechnungsstreifen werden durch ein Polygon begrenzt,
das aus den Endpunkten der Profilspuren gebildet wird, die den
Berechnungsabschnittes bilden (z.B. von km 123+100 bis km 134+200).

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_streifen.eps}}{Bildung eines Berechnungsstreifens}{Berechnungsstreifen}
\end{center}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{Wasserstände}

Als nächstes werden die Wasserstände eingelesen, die den Gewässerquerprofilen
zugeordnet sind. Sollte einem Gewässerquerprofil kein Wasserstand
direkt zugeordnet werden können, so wird versucht, einen Wasserstand linear
aus stromauf und stromab liegenden Wasserständen zu interpolieren. Sollte
dies nicht möglich sein, weil entweder kein stromauf oder kein
stromab liegender Wasserstand definiert wurde, so wird eine Fehlermeldung
generiert (siehe Abschnitt~\ref{subsec:file-error}) und das Programm beendet.

Es kann immer nur ein Wasserstand pro Profilspur verwendet werden. Sollten doch
mehrere Wasserstände einer Profilspur zugeordnet sein, so wird nur der erste
Wasserstand verwendet und eine entsprechende Warnung generiert
(siehe Abschnitt~\ref{subsec:file-error}).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{Gewässerachse (unter Umständen optional)}

Um die Lage des Flusses innnerhalb der Profilspuren sicher ermitteln zu können,
wird auch die Gewässerachse als SHAPE-Datei eingelesen. Die Gewässerachse
wird aber nur gebracht, wenn das aktuelle Ü-Gebiet ermittelt
werden soll (vgl. Abschnitte~\ref{subsec:schritt-uebertragen} und \ref{subsec:param-gel}).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{,,Sperren'' und ,,Brüche'' (optional)}

Um sowohl ,,Brüche'' als auch den Neubau von Hochwasserschutzdämmen (,,Sperren'')
in einem Szenario simulieren zu können ohne das DGM verändern zu müssen, ist es
möglich, eine weitere Datei mit Linien im ESRI SHAPE-Format einzulesen.

In dieser Datei muss allen Polylinien ein Attribut zugeordnet
sein. Dieses Attribut bestimmt, ob es sich bei einer Linie um eine
,,Sperre'' handelt (Wert \verb;SPERRE;), also Wasser diese Linie
nicht übersteigen kann, oder ob es sich um einen ,,Bruch'' handelt
(Wert \verb;BRUCH;), also Wasser in jedem Fall entlang der
Linie transportiert wird.

,,Sperren'' bzw. ,,Brüche'' können nicht zusammen mit der Option \verb;-GEL=NOSPERRE;
verwendet werden (siehe Abschnitt~\ref{subsec:param-gel}).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:triang}
\subsection{Schritt \theschritt~-~Triangulierung (optional)}\label{subsec:schritt-triang}

Wird das DGM nicht in einem Format zur Verfügung gestellt, das ein
vermaschtes Netz repräsentiert, sondern nur unabhängige Knoten, so wird
von WSPLGEN ein vermaschtes Netz erzeugt, das die Kriterien einer
Delaunay-Triangulation erfüllt.

Hierfür werden natürlich nur die Knoten verwendet, die in der
aktuellen ,,Streifen'' sind.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:verdichten}
\subsection{Schritt \theschritt~-~Verdichtung der Wasserstände}\label{subsubsec:schritt-verdichten}

Es wird von sinnvoll geknickten Profilspuren ausgegangen, die
ein lineares Interpolieren von zusätzlichen Profilspuren zwischen
den verhandenen Profilspuren ermöglichen.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_interpolierte_profile.eps}}{Konstruktion und Lage der interpolierten Gewässerquerprofile}{Interpolierte Lage von Gewässerquerprofilen}
\end{center}

Als sinnvoller Wert für den Abstand der zu interpolierten
Profilspuren, wird der mittlere Abstand der Knoten im DGM benutzt.
Wenn das DGM also großmaschig ist, werden weniger Profilspuren interpoliert,
als wenn das DGM feinmaschiger ist.

Für jede interpolierte Profilspur wird ein Wasserstand aus den
Wasserständen ermittelt, die den Profilspuren zugewiesen wurden, die auch
für die Interpolation der Profilspuren selbst dienten.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_interpolierte_wsp.eps}}{Vorgegebene und interpolierte Wasserstände}{Interpolierte Wasserstände}
\end{center}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:uebertragen}
\subsection{Schritt \theschritt~-~Übertragung der Wasserstände auf das DGM}\label{subsec:schritt-uebertragen}

Nachdem für eine ausreichende Zahl von Profilspuren die Wasserstände festgelegt wurden,
werden die Wasserstände auf das DGM übertragen. Dabei wird versucht jedem Punkt des DGM,
einen interpolierten Wasserstand zuzuordnen, der sich aus den Wasserständen ergibt,
die den Profilspuren zugeordnet wurden, die dem DGM-Punkt am dichtesten sind.
Für die Interpolation wird das \textit{Inverse-Distance Verfahren} mit maximal
vier Punkten angewendet, wobei jeder Punkt aus einem anderen Quadranten stammen muss.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_zugewiesene_wsp.eps}}{Zuordnung der Wasserstände zu den Punkten des DGM}{Zuordnung der Wasserstände}
\end{center}

Liegen die 4 Punkte aller 4 Quadraten weiter als der Suchradius (maximaler Abstand der
interpolierten Profilspuren) vom DGM-Punkt entfernt, so wird keine Zuordnung durchgeführt.
Um die Profilspuren ausreichend zu berücksichtigen, werden wenn nötig weitere Punkte in die
Profilspuren eingefügt. Der Abstand der Punkte innerhalb einer Profilspur wird anschließend
nicht größer sein als der mittlere Abstand der Punkte des DGM.

Die Zuordnung erfolgt nur dann, wenn die Geländehöhe des DGM niedriger als der
Wasserstand ist, der zugeordnet werden soll. Auf diese Weise wird bereits eine
erste Klassifizierung in nasse oder trockene Punkte durchgeführt.

Soll statt des potenziellen Ü-Gebietes, das aktuelle Ü-Gebiet oder ein Szenario mit
,,Sperren'' und ,,Brücken' (vgl.~\ref{subsec:param-gel}) ermittelt werden,
so wird der Übertragungsprozess an der Gewässerachse begonnen und in jede Richtung
der Profilspur nur so lange fortgsetzt, bis ein Profil-Punkt eine Geländehöhe
aufweist, die höher als der zu übertragende Wasserstand ist.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_zugewiesene_wsp_aktuell.eps}}{Zuordnung der Wasserstände zu den Punkten des DGM unter Berücksichtigung der aktuellen Topographie}{Zuordnung der Wasserstände (Erzeugung aktuelles Ü-Gebiet)}
\end{center}

Wenn eine Datei mit ,,Sperren'' und ,,Brüchen'' angegeben wurde, so werden jetzt zusätzlich
noch die Polylinien, die in der entsprechenden Datei als ,,Brüche'' gekennzeichnet sind,
ausgewertet. Dazu wird für den ersten Punkt der Linie ein Wasserstand aus den umliegenden
Profilspuren wie für einen DGM-Punkt interpoliert und dieser Wasserstand entlang der gesamten ,,Bruchlinie'' 
angenommen. Anschließend wird allen DGM-Punkten, die dichter als der Suchradius von der ,,Bruchlinie''
entfernt sind, dieser Wasserstand zugewiesen, wenn ihre Geländehöhe niedriger als dieser Wasserstand ist.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_zugewiesene_wsp_bruch.eps}}{Zuordnung der Wasserstände zu den Punkten des DGM entlang einer ,,Bruchlinie''}{Zuordnung entlang einer ,,Bruchlinie''}
\end{center}

Ab diesem Schritt spielen die Profilspuren keine Rolle mehr. Es wird nur noch mit dem
DGM und den zugeordneten Wasserständen gearbeitet.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:extrapolation}
\subsection{Schritt \theschritt~-~Extrapolation der Wasserstände}\label{subsubsec:schritt-extrapolation}

Die Extrapolation der Wasserstände, die auf das DGM übertragen wurden,
erfolgt iterativ entlang der verbindenden Kanten zwischen den Knoten
des DGM (vgl. Schritt~\ref{schritt:einlesen} in Abschnitt~\ref{subsec:schritt-einlesen}).

Bei jeder Iteration werden alle Kanten bestimmt, die einen nassen Knoten und einen Knoten
ohne Wasserstand verbinden. Danach wird bei der kürzesten Kante beginnend der Wasserstand
des nassen Knoten auf den bisher undefinierten Knoten übertragen,
falls diesem inzwischen noch kein Wasserstand zugewiesen wurde.
Die Zuweisung wird auch durchgeführt, wenn die Höhe des Knoten größer als der ihm zugewiesene Wasserstand ist.
Der Knoten würde im Folgenden als trockener Knoten zählen und nicht weiter berücksichtigt werden.

Sind alle ermittelten Kanten bearbeitet, so wird diese Iteration so lange wiederholt, bis keine
Kanten mehr gefunden werden, die das geforderte Kriterium erfüllen.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_extrapolierter_wsp.eps}}{Extrapolation der Wasserstände zu den Punkten des DGM}{Extrapolation der Wasserstände}
\end{center}

Wenn eine Datei mit ,,Sperren'' angegeben wird, so werden vor dem Beginn der Extrapolation
alle Kanten des DGM entfernt, die als ,,Sperren'' gekennzeichnete Polylinien schneiden
(siehe Abschnitt~\ref{subsec:file-sperr}). Durch dieses Löschen können Wasserstände die
,,Sperre'' nicht überwinden.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_extrapolierter_wsp_sperre.eps}}{Extrapolation der Wasserstände zu den Punkten des DGM mit ,,Sperre''}{Extrapolation der Wasserstände mit ,,Sperre''}
\end{center}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:isolinien}
\subsection{Schritt \theschritt~-~Generierung der Isolinien gleicher Wasserstände}\label{subsec:schritt-isolinien}

In diesem Schritt brauchen nur die Kanten ermittelt zu werden, die einen nassen
und einen trockenen Knoten verbinden. Es wird für jede dieser Kanten der Punkt bestimmt,
an dem die Wassertiefe gleich Null ist. Alle so ermittelten Punkte werden verbunden
und ergeben die gewünschte Isolinie.

Um die gewünschten Abstufungen zu erreichen (vgl. Abschnitt~\ref{subsec:param-delta}), werden
die Geländehöhen des DGM schrittweise um die gewünschte Schrittweite \verb;<Diff>; angehoben
und die Schritte~\ref{schritt:extrapolation} und \ref{schritt:isolinien} so lange
wiederholt, bis die gewünschte maximale Wassertiefe erreicht ist. Ist die Startwassertiefe
\verb;<Von>; größer als Null, so wird dieses Anheben bereits mindestens einmal vor
Schritt~\ref{schritt:extrapolation} durchgeführt.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\refstepcounter{schritt}\label{schritt:ausgabe}
\subsection{Schritt \theschritt~-~Schreiben der Ausgabedateien}\label{subsec:schritt-ausgabe}

Nachdem intern die Polygone gebildet wurden, die die verschiedenen Wassertiefen repräsentieren,
werden sie in eine Ergebnisdatei geschrieben, die über die Kommandozeile definiert wird
(siehe Abschnitt~\ref{subsec:param-ausgabe}). Wird der Parameter nicht angegeben,
so wird die Datei \verb;WSPLGEN.SHP; erzeugt (siehe Abschnitt~\ref{subsec:param-ausgabe}).
Das Format der Ausgabedatei wird genauer in Abschnitt~\ref{subsec:file-ergebnisse} beschrieben.

Sollten es notwendig geworden sein, mehrere Beareitungsstreifen zu erzeugen, so werden die
Ausgabedateien automatisch entsprechend des Streifens benannt. Die Standardausgabedateien
heiseen dann also z.B. \verb;WSPLGEN_123100-134500.SHP; oder \verb;WSPLGEN_134000-137300.SHP;.

Werden alle Berechnungsstreifen erfolgreich erzeugt, wird versucht die Ergebnisse der
einzelnen Streifen zusammenzuführen und die eine gewünschte Ausgabedatei zu erzeugen.

Während des Laufs von WSPLGEN wird der akutelle Bearbeitungsstand kontinuierlich in die
Standardausgabe (stdout) geschrieben, so dass die GUI in der Lage ist,
ihn anzuzeigen.

Warnungen und maximal ein Fehler (da nach einem Fehler das Programm sofort beendet wird), werden in die
Standardausgabe für Fehler (stderr) geschrieben, und sollten von der GUI angezeigt werden,
so dass der Benutzer nach dem Beenden von WSPLGEN überprüfen kann,
ob alles zu seiner Zufriedenheit erledigt werden konnte oder es Probleme gegeben hat.

Eine direkte Interaktion mit dem Programm WSPLGEN ist nicht vorgesehen.
Sollte es also einen Fehler oder Warnungen gegeben haben, die der Benutzer
nicht ignorieren will, so muss er die Eingabedaten oder Parameter
ändern und einen erneuten Lauf starten. Die Meldungen sind aber
so aussagekräftig, dass sie dem Benutzer optimale Hinweise für sein
weiteres Vorgehen liefern.

Nur wenn es keinen Fehler gegeben hat, wird eine Shape-Datei erzeugt,
die in einer GUI visualisiert werden kann. 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Kommandozeilen Parameter}\label{sec:param}

Jeder Parameter beginnt mit einem Leerzeichen gefolgt von dem Zeichen '\verb;-;' und
seinem Namen. Falls dem Parameter Argumente folgen sollen, so muss als nächstes Zeichen
ein '\verb;=;' folgen. Danach kommt die durch Komma getrennte Liste der Argumente. Da das
Komma hier als Trennzeichen dient, darf es nicht ungeschützt in den Argumenten verwendet
werden. Der Schutz des Zeichens wird durch das Einschließen eines Arguments durch das
Zeichen '\verb;";' erreicht. Auch die Verwendung von Leerzeichen in Argumenten
(z.B. Pfadangaben) ist so möglich. Ein Pfad mit Leerzeichen kann z.B. so übergeben werden.

\verb;-PAR="C:\Eigene Dateien\WSPLGEN\Job.PAR";

Folgende Parameter können zur Feinsteuerung der Arbeitsweise von WSPLGEN übergeben werden:


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{PAR (Parameterdatei)}\label{subsec:param-par}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer Parameterdatei zur Definition weiterer Parameter}\\
{\bf Format}      & \multicolumn{4}{l}{-PAR=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-PAR=WSPLGEN.PAR}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Da die Eingabe von Kommandozeilen über Windows einer Längenbeschränkung unterliegt,
was in Kombination mit langen Pfadnamen leicht zu Problemen führen kann, wird auch die
Zusammenfassung aller Parameter in einer Parameterdatei vorgesehen.
Wird sie verwendet, wird zunächst die Kommandozeile weiter ausgewertet
und danach zusätzlich weitere Parameter in der Parameterdatei berücksichtigt.

In jeder Zeile dieser Datei würde dann ein Parameter stehen, der vom
Aufbau genau den Anforderungen entspricht, wie sie auch direkt auf
der Kommandozeile bestehen.

Der Name der Parameterdatei wäre dann das einzige Argument der Option \verb;-PAR;.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{DELTA (Abstufungen der Wassertiefen)}\label{subsec:param-delta}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Abstufungen der Wassertiefen}\\
{\bf Format}      & \multicolumn{4}{l}{-DELTA=$<$Von$>$,$<$Bis$>$,$<$Diff$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
				  & Von  & Float & m & 0,0 \\
				  & Bis  & Float & m & siehe unten \\
				  & Diff & Float & m & siehe unten \\
{\bf Beispiel}    & \multicolumn{4}{l}{-DELTA=1.0,2.0,0.25}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Die Option \verb;-DELTA; bestimmt, in welchen Abstufungen die Wassertiefenpolygone
generiert werden sollen, die Isolinien gleicher Wassertiefe repräsentieren.
Die entsprechenden Wassertiefen werden aus den Argumenten \verb;<Von>;, \verb;<Bis>; und \verb;<Diff>;
gebildet.

Begonnen wird mit der Wassertiefe \verb;<Von>; (die auch negativ sein darf). Danach wird die
Wassertiefe solange um den Wert von \verb;<Diff>; erhöht, bis sich eine Wassertiefe größer als \verb;<Bis>; ergibt.

Wird das Argument \verb;<Von>; ausgelassen (das Komma wird dann das erste Zeichen hinter dem Gleichheitszeichen), wird für \verb;<Von>;
der Wert 0,00 angenommen.

Wird das Argument \verb;<Bis>; ausgelassen (es gibt dann zwei Kommata hintereinander), wird der
maximale Wert der ermittelten Wasserstiefen für \verb;<Bis>; angenommen.

Wird das Argument \verb;<Diff>; ausgelassen (das Komma wird dann zum letzten Zeichen dieses Parameters),
wird für \verb;<Diff>; die auf zwei Nachkommastellen gerundete und durch 10 geteilte Differenz
zwischen \verb;<Bis>; und \verb;<Von>; angenommen.

Man kann auch ganz auf den Parameter verzichten, was dem Ausruf \verb;-DELTA=,,; entspricht.

Beispiel: \verb;-DELTA=1.0,2.0,0.25;

In diesem Beispiel werden die Isolinien für 5 verschiedene Wassertiefen
erzeugt (1,00, 1,25, 1,50, 1,75 und 2,00).

Beispiel: \verb;-DELTA=0.9,2.1,0.25;

Auch in diesem Beispiel werden die Isolinien für 5 verschiedene Wassertiefen
erzeugt (0,90, 1,15, 1,40, 1,65 und 1,90), da der nächste Schritt 2,15 größer
als 2,10 ist.

Beispiel: \verb;-DELTA=,1.0,0.25;

In diesem Beispiel werden die Isolinien für 5 verschiedene Wassertiefen
erzeugt (0,00, 0,25, 0,50, 0,75 und 1,00).

Beispiel: \verb;-DELTA=,,0.25;

Ist die größte Wassertiefe z.B. 2,345, so werden die Isolinien für 10 verschiedene Wassertiefen
erzeugt (0,00, 0,25, 0,50, 0,75, 1,00, 1,25, 1,50, 1,75, 2,00 und 2,25) erzeugt.

Beispiel: \verb;-DELTA=1.3,,;

Ist die größte Wassertiefe z.B. 2,345, so werden die Isolinien für 11 verschiedene Wassertiefen
(1,3, 1,4, 1,5, 1,6, 1,7, 1,8, 1,9, 2,0, 2,1, 2,2 und 2,3) erzeugt, da die Differenz von
2,345 und 1,3 den Wert 1,045 ergibt und damit ein Wert von 0,10 für \verb;<Diff>; verwendet wird.

Beispiel: \verb;-DELTA=,,;

In diesem Beispiel werden alle Argumente automatisch bestimmt.

Standardwert: Siehe oben


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{GEL (Einfluss von Geländeerhebungen)}\label{subsec:param-gel}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Auswahl wie Geländeerhebungen berücksichtigt werden}\\
{\bf Format}      & \multicolumn{4}{l}{-GEL=$<$SPERRE$|$NOSPERRE$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit  & \em Standardwert\\
				  & Typ   &  Flag   & Zeichenkette & SPERRE \\
{\bf Beispiel}    & \multicolumn{4}{l}{-GEL=NOSPERRE}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Die Option \verb;-GEL; bestimmt, ob die Wasserstände durch Geländeerhebungen
hindurch getragen werden sollen (\verb;NOSPERE;). Dies würde ein potenziel gefährdetes Gebiet im Hinterland
produzieren, in dem der Wasserstand in etwa den Gradienten des Flusses aufweisen würde
(keine sinnvolle Wiedergabe von eingestauten Flächen). 

Wird der Parameter mit dem Wert \verb;SPERRE; verwendet, so wird das aktuelle Ü-Gebiet ermittelt, welches
auch eingestaute Flächen enthalten kann.

Eine Kombination des Wert \verb;NOSPERRE; mit den Daten aus Abschnitt~\ref{subsec:param-lin} ist nicht
sinnvoll und sollte in der GUI verhindert werden. Wird der Parameter mit ,,Sperren'' bzw. ,,Brüchen'' angegeben
und und der Wert des Arguments des Parameters \verb;-GEL; ist SPERRE, wird eine Fehler generiert
(siehe Abschnitt~\ref{subsec:file-error}).

Wird der Parameter \verb;-GEL; nicht angegeben, so wird der Wert \verb;SPERRE; angenommen.
Es wird dann also das aktulle Ü-Gebiet oder ein Szenario ermittelt, je nachdem, ob eine
Datei mit ,,Sperren'' und ,,Brüchen'' abgegeben wurde.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{DGM (Digitales Geländemodell)}\label{subsec:param-dgm}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer DGM-Datei}\\
{\bf Format}      & \multicolumn{4}{l}{-DGM=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Erforderlich}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-DGM=DGM.XYZ}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Das Format der Daten wird von dem Programm WSPLGEN selbst erkannt und
eine Plausibilitäts\-prüfung des DGM vorgenommen.

Das DGM muss entweder ein Punktthema im SHAPE- oder ASCII-Format sein
(X,Y,Z-Tripel), ein Grid, wie es vom Spatial Analyst verwendet wird,
oder ein TIN, wie es der 3D-Analyst verwendet. Vorzuziehen wäre ein
TIN, da hier die besten Möglichkeiten bestehen, das Gelände korrekt
wiederzugeben.

Werden dem WSPLGEN nur X,Y,Z-Tripel (Punkt-SHAPE oder ASCII-Datei)
übergeben, so werden die einzelnen Punkte mit einem einfach
Triangulierungsalgorithmus vermascht.

Ein Grid, wie es vom Spatial Analyst verwendet wird, sollte die
letzte 	Wahl sein. Bedingt durch die rechteckige Form, wird die Datenmenge
schnell recht groß und Strukturen wie Deiche oder Gräben können kaum
wiedergegeben werden, da ein Grid immer nur eine rechteckige ,,Vermaschung'' unterstützt.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{PRO (Profilspuren)}\label{subsec:param-profile}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer Profilspur-Datei}\\
{\bf Format}      & \multicolumn{4}{l}{-PRO=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Erforderlich}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-PRO=WESER120-129.SHP}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Mit der Optionen \verb;-PRO; wird bestimmt, mit welcher Datei die Profilspuren
definiert werden.

Die Profilspuren werden immer als Polylinien-Thema in einer
Shape-Datei übergeben. Die Profilspuren können dabei beliebige Knicke
enthalten. Jeder Profilspur ist ein Gewässer bzw. Gewässerbereich und eine
eindeutige Stationierung zugewiesen (z.B. Weser, 120,230 oder Rheinvorland
bei Köln, 102,242). Die beiden Angaben sind notwendig, um weitere
benötigte Profilspuren selbstständig vom Programm WSPLGEN interpolieren zu können.
Der komplette Pfad der Datei mit den Profilspuren wird dem Programm
WSPLGEN mit dem Parameter \verb;-PRO; übergeben und eine Plausibilitätsprüfung der
Profilspuren vorgenommen (z.B. mittlerer Abstand der Profilspuren und
Differenz der Stationierung)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{WSP (Wasserstände)}\label{subsec:param-wsp}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer Wasserstands-Datei}\\
{\bf Format}      & \multicolumn{4}{l}{-WSP=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Erforderlich}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-WSP=HQ5-120-129.TXT}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Mit der Optionen \verb;-WSP; wird bestimmt, mit welcher Datei die Wasserstände
definiert werden, die den Profilspuren zugeordnet werden sollen.

Die Wasserstände werden als Tabelle im ASCII- oder DBF-Format übergeben.
Dabei muss eine eindeutige Zuordnung zu den Gewässerquerprofilen möglich
sein. Eine Tabelle muss also 3 Spalten (Gewässerbereich, Stationierung
und Wasserstand) enthalten.

Das Format der Daten wird von dem Programm WSPLGEN selbst erkannt und eine
Plausibilitäts\-prüfung der Wasserstände vorgenommen (z.B. Kontinuierliches
Abnehmen der Wasserstände mit bzw. gegen die Stationierung).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{LIN (,,Sperren'' und ,,Brüche'')}\label{subsec:param-lin}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer Datei mit ,,Sperren'' und/oder ,,Brüchen''}\\
{\bf Format}      & \multicolumn{4}{l}{-LIN=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-LIN=BREAK.SHP}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Mit der Optionen \verb;-LIN; wird bestimmt, mit welcher Datei die ,,Sperren''
bzw. ,,Brüche'' definiert werden.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{ACHSE (Gewässerachse)}\label{subsec:param-achse}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe einer Datei mit der Gewässerachse}\\
{\bf Format}      & \multicolumn{4}{l}{-ACHSE=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-ACHSE=WESER.SHP}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Mit der Optionen \verb;-ACHSE; wird bestimmt, mit welcher Datei die Gewässerachse
definiert wird.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{AUSGABE (Ausgabedatei)}\label{subsec:param-ausgabe}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Ausgabedatei}\\
{\bf Format}      & \multicolumn{4}{l}{-AUSGABE=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & WSPLGEN.SHP \\
{\bf Beispiel}    & \multicolumn{4}{l}{-WSP=000-100.SHP}\\
\end{tabular}

\vspace{1cm plus 0.5cm minus 0.5cm}

Als Ausgabedaten generiert das Programm WSPLGEN bei fehlerfreier Ausführung
eine Shape-Datei, in der Polygone enthalten sind, deren Grenzen Isolinien
gleicher Wassertiefe repräsentieren (siehe Abschnitt~\ref{subsec:file-ergebnisse}). Wird
dieser Parameter nicht angegeben, so wird als Ausgabedateiname ein Standardwert
angenommen.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Zwingend erforderliche Eingabedateien}\label{sec:eingabe}

Für alle Eingabedateien im ASCII-Format gilt:

\vspace{1cm minus 0.5cm}

\begin{tabular}{ll}
{\bf Kopfzeile:}      & Tripel bestehend aus den Attributnamen der Tabelle\\
{\bf Weitere Zeilen:} & Tripel bestehend aus den Attributwerten\\
{\bf Zeilenende:}     & Newline und/oder carriage return\\
{\bf Spaltentrenner:} & beliebig viele Leerzeichen und Tabulatoren\\
{\bf Float:}          & Ziffern von 0 bis 9, Dezimaltrenner: ',' oder '.'\\
{\bf Text:}           & ASCII-Zeichen in einheitlichem Encoding\\
\end{tabular}

\vspace{1cm minus 0.5cm}

Folgende Dateien werden von WSPLGEN zwingend benötigt.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Digitales Geländemodell (DGM)}\label{subsec:file-dgm}

Das digitale Geländemodell darf in drei verschiedenen Dateiformaten vorliegen,
die im Folgenden näher beschrieben werden.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{ASCII-Format mit X,Y,Z-Tripeln}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
X & X-Koordinate & Float(10.2) & - & m \\
Y & Y-Koordinate & Float(10.2) & - & m \\
Z & Z-Koordinate & Float(10.2) & - & m \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Format Beschreibung:

Die Dateien in diesem Format, haben nur eine Kopfzeile und danach Tripel von Zahlen,
die die X- und Y-Koordinaten von Geländepunkten und als Z-Wert die Geländehöhe angeben.

Leerzeilen, also Zeilen, die nur aus \textit{Trennzeichen} und \textit{Zeilenendzeichen} gebildet werden,
werden einfach überlesen.

Welche Zahl in einer Zeile welche Bedeutung hat, wird durch die Reihenfolge der Zeichen 'X', 'Y' und 'Z' in der
Kopfzeile bestimmt.

Jede weitere Zahl oder jedes weitere Zeichen in einer Zeile werden ignoriert.

Format Beispiele:

Dies wäre eine 'normale' Datei.
\begin{verbatim}
X Y Z
3542345.23 5836253.23 123.34
3537627.00 5836234.10 121.12
\end{verbatim}

Dies wäre eine 'merkwürdige', aber trotzdem gültige Datei.
\begin{verbatim}
Y   Z          X


     5836253.23 123.34            3542345.23
5836234.10123 121 3537627,0012 # der Wert stimmt nicht
5817652 -88  345639872,234 36464 28282.344.222 noch Datenmüll


     5836234.10 11,123       3537627.0012
\end{verbatim}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{ESRI ASCII Raster-Datei-Format}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
NCOLS & Anzahl Spalten & Integer(8) & - & - \\
NROWS & Anzahl Reihen & Integer(8) & - & - \\
XLLCorner & X-Koordinate & Float(10.2) & - & m \\
YLLCorner & Y-Koordinate & Float(10.2) & - & m \\
XLLCenter & X-Koordinate & Float(10.2) & - & m \\
YLLCenter & Y-Koordinate & Float(10.2) & - & m \\
NODATAVALUE & Z-Wert & Float(10.2) & - & - \\
Z & Z-Wert & Float(10.2) & - & m \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Als weiteres gültiges Format für die DGM-Daten kann das ESRI ASCII Raster-Datei-Format (Grid-Format)
verwendet werden.

Formatbeschreibung:

Das ASCII Raster-Datei-Format ist ein einfaches Format, das benutzt werden kann, um Raster-Daten zwischen
verschiedenen Programmen auszutauschen. Es besteht im Wesentlichen aus ein paar Kopfzeilen denen eine Liste von Zellwerten folgt.

Die Kopfzeilen enthalten die folgenden Schlüsselworte und Werte.

\begin{tabular}{l p{10cm}}
\verb;ncols; & Anzahl der Spalten im Datensatz\\
\verb;nrows; & Anzahl der Zeilen im Datensatz\\
\verb;xllcenter; oder \verb;xllcorner; & X-Koordinate des Zentrums oder der linken,unteren Ecke der linken,unteren Zelle des Datensatzes\\
\verb;yllcenter; oder \verb;yllcorner; & Y-Koordinate des Zentrums oder der linken,unteren Ecke der linken,unteren Zelle des Datensatzes\\
\verb;cellsize; & Zellgröße des Datensatzes\\
\verb;nodata_value; & Wert der Zellen zugewiesen wird, für die der Wert unbekannt ist. Dieses Schlüsselwort ist optional. Wird es nicht angegeben wird als Standardwert -9999 angenommen.\\
\end{tabular}

Die erste Zeile repräsentiert die Werte, die ganz oben im Datensatz liegen und läuft von links nach rechts.
Die Zellwerte müssen durch Leerzeichen getrennt sein. Am Ende einer Zeile des Datensatzes ist
kein \textit{Zeilenendzeichen} notwendig. Die Anzahl der Spalten, die im Kopf definiert wurde,
wird benutzt, um zu ermitteln, wann eine neue Zeile des Datensatzes beginnt.
Die Anzahl der Zellenwerte muss gleich sein mit dem Produkt aus Anzahl Zeilen mal Anzahl Spalten.

Format Beispiel:

\begin{verbatim}
ncols 4
nrows 5
xllcorner 378923.56
yllcorner 4072345.43
cellsize 30.23
nodata_value -100.00
43.0     3.2    45        7.2
 3.1    56.2     2.3      5.5
23.7    65.3    34.4      6.2
32.1    35      45.12    65.12
34.1     2       6       78
etc
\end{verbatim}

Bemerkung:

Als \textit{Kommazeichen} dürfen hier entgegen der amerikanischen Originaldefinition von ESRI
sowohl das Zeichen ',' als auch das Zeichen '.' verwendet werden.

Als \textit{Trennzeichen} dürfen hier entgegen der amerikanischen Originaldefinition von ESRI
sowohl Leerzeichen als auch Tabulatoren verwendet werden.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{ESRI TIN-Format}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
X & X-Koordinate & Float mit 8-Bytes & - & m \\
Y & Y-Koordinate & Float mit 8-Bytes & - & m \\
Z & Z-Koordinate & Float mit 4-Bytes & - & m \\
Nr1 & Punkt-Nr & Integer mit 4 Bytes & - & - \\
Nr2 & Punkt-Nr & Integer mit 4 Bytes & - & - \\
Nr3 & Punkt-Nr & Integer mit 4 Bytes & - & - \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Beim TIN-Format (Triangulated Irregular Netzwork, unregelmßig vermaschtes Netz aus Dreiecken) werden
die Daten in verschiedenen Dateien abgespeichert, die alle in einem Ordner liegen, der mit seinem Namen
den Namen des TINs bestimmt. Die Dateinamen für ein TIN stehen fest. Für das einfache vermaschte Netz
werden nur die die Dateien \verb;tnxy.adf;, \verb;tnzadf; und \verb;tnod.adf; benötigt. Der Pfad wird
aus dem Pfad, der mit dem Parameter \verb;-DGM;  übergeben wurde, ermittelt und die entsprechneden Dateinamen
angehängt.

Alle 3 Dateien sind im Binär-Format. Die Datei \verb;tnxy.adf; enthält nur die X- und Y-Koordinaten der
Punkte in je 8-Byte Daten (Double, High-Byte first). Die Datei \verb;tnz.adf; enthält nur die Z-Werte
in je 4-Byte Daten (Float, High-Byte first). Die Datei \verb;tnod.adf; enthält nur Tripel von Punktnummern
(beginned bei 1) in je 4-Byte Daten (Integer, High-Byte first).


Format Beispiel:

Im ASCII-format würden die Dateien z.B. so aussehen, wenn das Netz 5 Punkte und 3 Dreiecke enthält.

\begin{verbatim}
tnxy.adf
3456453.23 5345312.13
3456465.12 5345323.34
3456423.02 5345328.46
3456412.34 5345328.21
3456412.00 5345393.02

tnz.adf
11.23
22.23
15.33
29.43
25.34

tnod.adf
1 2 3
1 3 5
3 4 4
\end{verbatim}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Profilspuren}\label{subsubsec:file-profile}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
X & X-Koordinate & Float(10.2) & - & m \\
Y & Y-Koordinate & Float(10.2) & - & m \\
GEW & Gewässerbeschreibung & Text(255) & - & - \\
STATION & Stationierung & Float(10.4) & - & km \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Format Beschreibung:

Die Profilspuren werden immer als Polylinien-Thema in einer
Shape-Datei übergeben, wobei es egal ist, ob der Typ des Polylinien-Themas
ARC, ARCZ oder ARCM ist. Die Profilspuren (Polylinien) können dabei aus beliebig
viele Stützstellen bestehen. Jeder Profilspur ist ein Gewässer bzw. Gewässerbereich
und eine eindeutige Stationierung zugewiesen (z.B. Weser, 120,230 oder Rhein-
Vorland bei Köln, 102,242). Die beiden Angaben sind notwendig, damit das Programm WSPLGEN
weitere benötigte Profilspuren selbstständig interpolieren kann.

Die beiden Werte für Gewässer und Station werden gespeichert in den
Attributen \verb;GEW;, vom Typ Text (String) mit einer Länge von
maximal 255 Zeichen und \verb;STATION;, das  vom Typ Fließkommazahl (Float) ist
und maximal 4 Nachkommastellen enthalten sollte, da die Stationen auf 4~Nachkommastellen
auf- bzw. abgerundet werden. Interpretiert man die Station als Gewässerkilometerangabe, so
bedeuten 4~Nachkommastellen ein Genauigkeit von 10~cm was für Profilspuren
voll ausreichend ist.

Eine Stationierung könnte dann z.B. so aussehen 123,234, Dabei ist es nicht wichtig,
welches Trennzeichen verwendet wird, da die Zahlen binär gespeichert werden
und somit kein Trennzeichen verwendet wird.

Die Stationen dürfen nicht als Typ Text vorliegen (z.B. als 123+234).

Die X- und Y-Koordinaten der Stützstellen der Polylinien werden im Allgemeinen
als Meter interpretiert. Wichtig ist, dass sie im gleichen
Koordinatensystem und der gleichen Projektion wie die des DGM vorliegen
und die gleiche Einheit haben. Es wird keine Transformation zwischen diesen
beiden Daten durchgeführt.

Die Z- und M- Werte der Polylinien werden immer ignoriert.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Wasserstände}\label{subsec:file-wsp}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
GEW & Gewässername & Text(255) & - & - \\
STATION & Stationierung & Float(10.4) & - & km \\
WSP & Wasserstand & Float(10.2) & $>$ 0 & m\\
\end{tabular}

\vspace{1cm minus 0.5cm}

Dateiformat: ASCII oder DBase-Format (DBF-Format)

Die Wasserstände müssen den Profilspuren zugeordnet werden können, wobei
keine direkte Zuordnung notwendig ist. Es reicht aus, wenn Wasserstände
für Profilspuren linear interpoliert werden können, es also einen
Wasserstand mit einer Stationierung stromauf und einen Wasserstand mit
einer Stationierung stromab einer Profilspur gibt. Um eine sinnvolle
Zuordnung zu ermöglichen, müssen die Wasserstände, genau wie die Profilspuren,
mit einem Gewässer (bzw. Gewässerabschnitt) und einer Station gekennzeichnet sein.
Es werden nur Wasserstände für die Zuordnung herangezogen, die exakt gleiche
Gewässerbeschreibungen wie die Profilspuren haben, denen sie zugeordnet werden sollen.

Die Wasserstände werden in einer Datei im ASCII- oder DBF-Format übergeben. Da die DBF-Datei
immer auch eine der drei Dateien einer SHAPE-Datei ist, kann man auch sagen, das es sich um
beliebige SHAPE-Dateien handeln kann, die die richtigen Attribute aufweisen müssen.
Die geometrischen Informationen der Shape-Dateien sind hier überflüssig und werden nicht eingelesen.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{ASCII-Format}

Das einfachste Format ist ein Format, das nur eine Kopfzeile und danach Tripel von Texten und Zahlen enthält,
die das Gewässer, die Station und den Wasserstand beschreiben.

Die Zeichenketten 'GEW', 'STATION' und 'WSP' bestimmen die Spalten für die entsprechenden Werte und stehen in der Kopfzeile.

Leerzeilen, also Zeilen, die nur aus \textit{Trennzeichen} und \textit{Zeilenendzeichen} gebildet werden,
werden überlesen.

Die Zeichenkette darf nur dann Leerzeichen enthalten, wenn sie durch das Zeichen '\verb;";' am Anfang und am Ende geschützt ist.
Das Zeichen '\verb;";' wird nicht mit in die Zeichenkette aufgenommen.

Welche Zahl in einer Zeile welche Bedeutung hat, wird durch die Reihenfolge der Zeichenketten 'GEW', 'STATION' und 'WSP' in der
Kopfzeile bestimmt.

Jede weitere Zahl oder jedes weitere Zeichen in einer Zeile werden ignoriert.

Format Beispiele:

\begin{verbatim}
GEW STATION WSP
Weser 100,000 22,23
Weser 100,300 22,12
Weser 100,600 22,03
Weser 100,900 21,97
Weser 101,200 21,94
Weser 101,512 21,76
"Weser-Schleuse Drakenburg" 0,000 22,23
"Weser-Schleuse Drakenburg" 0,650 22,22
"Weser-Schleuse Drakenburg" 1,300 22,21
"Weser-Schleuse-Drakenburg" 1,951 21,78
Weser 101,842 20,21
Weser 102,100 20,01
\end{verbatim}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{DBF-Format}

Dieses Format ist ein klassisches binäres Datenbankformat, das nur aus einem
Datenblatt besteht, das wiederum aus einer Definition und den anschließenden Daten besteht.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Optionale Eingabedateien}

Optional können noch die folgenden Daten zur Feinsteuerung der
Arbeitsweise von WSPLGEN übergeben werden.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{,,Sperren'' und ,,Brüche''}\label{subsec:file-sperr}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
X & X-Koordinate & Float(10.2) & - & m \\
Y & Y-Koordinate & Float(10.2) & - & m \\
TYP & Art der Polylinie & Text(8) & SPERRE NOSPERRE & - \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Diese Datei ist optional und dient nur dazu, dem Benutzer mehr Möglichkeiten
zu geben, die Ergebnisse zu beeinflussen
(siehe Abschnitte~\ref{subsec:schritt-uebertragen} Schritt~\ref{schritt:uebertragen}
und \ref{subsec:param-lin}).

Formatbeschreibung:

Die Datei ist, wie schon die Datei zur Definition der Lage der Gewässerquerprofile,
im SHAPE-Format und enthält Polylinien (siehe Abschnitt~\ref{subsubsec:file-profile}).

Sie hat ein Attribut, das den Namen \verb;TYP; trägt und vom Typ Text (String) ist.
Das Attribut darf nur die Werte \verb;SPERRE; oder \verb;Bruch; annehmen. In jedem
anderen Fall wird die zugehörige Polylinie ignoriert und eine Warnung ausgegeben.

Wie schon bei der Profilspuren-Datei werden die X- und Y-Koordinaten der Stützstellen der
Polylinien im Allgemeinen als Meter interpretiert. Wichtig ist, das sie im
gleichen Koordinatensystem und der gleichen Projektion wie die des DGM vorliegen
und die gleiche Einheit haben. Es wird keine Transformation zwischen diese
beiden Daten durchgeführt.

Z- oder M- Werte der Polylinien werden ignoriert.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Gewässerachse}\label{subsec:file-achse}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
X & X-Koordinate & Float(10.2) & - & m \\
Y & Y-Koordinate & Float(10.2) & - & m \\
GEW & Gewässerbeschreibung & Text(255) & - & - \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Diese Datei ist optional und dient nur dazu, die Lage des Gewässers innerhalb einer Profilespur zu definieren
(siehe Abschnitte~\ref{subsec:schritt-uebertragen} Schritt~\ref{schritt:uebertragen}
und \ref{subsec:param-achse}). Da nur der Schnittpunkt der Achse mit den Profilspuren wichtig ist, darf die 
Gewässerachse aus beliebig vielen Abschnitte bestehen oder sogar verschiedene Gewässer umfassen,
wenn z.B. auch die Profilspuren aus verschiedenen Gewässern verwendet werden.

Formatbeschreibung:

Die Datei ist, wie schon die Datei zur Definition der Lage der Gewässerquerprofile,
im SHAPE-Format und enthält Polylinien (siehe Abschnitt~\ref{subsubsec:file-profile}).

Wie schon bei der Profilspuren-Datei werden die X- und Y-Koordinaten der Stützstellen der
Polylinien im Allgemeinen als Meter interpretiert. Wichtig ist, das sie im
gleichen Koordinatensystem und der gleichen Projektion wie die des DGM vorliegen
und die gleiche Einheit haben. Es wird keine Transformation zwischen diese
beiden Daten durchgeführt.

Der Wert für das Gewässer wird gespeichert in dem
Attribut \verb;GEW;, vom Typ Text (String) mit einer Länge von
maximal 255 Zeichen.

Z- oder M- Werte der Polylinien werden ignoriert.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Rückgabewerte}

Wenn WSPLGEN seine Arbeit ohne einen Fehler und Warnungen beenden kann, so wird
als Rückgabewert vom Programm 0 zurückgeliefert, was dem aufrufenden
Programm oder der Eingabeaufforderung (Shell) anzeigt, das das Programm ohne
Fehler und Warnungen beendet wurde.

Sollte es aber zu einem Fehler oder einer Warnung gekommen sein, so wird
ein positiver Rückgabewert in Abhängigkeit des Fehlers generiert.

Werden Warnung vom Programm erzeugt, so wird das Programm fortgesetzt und
am Ende als Rückgabewert der Wert der {\bf ersten} Warnung zurückgegeben. 

Will oder kann das aufrufende Programm die Protokoll-Datei nicht auswerten,
so kann und sollte es aufgrund des Rückgabewertes trotzdem eine für den Benutzer
sinnvolle Fehlermeldung generieren.

Die verschiedenen Rückgabewerte mit den entsprechenden Fehlermeldungen
sind im Anhang~\ref{sec:fehlermeldungen} zusammengefasst.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Ausgabedateien}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Ergebnisse}\label{subsec:file-ergebnisse}

\begin{tabular}{lp{4cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
Diff & Wassertiefe & Float(10.2) & - & m \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Als Ausgabedaten generiert das Programm WSPLGEN bei fehlerfreier Ausführung
eine Shape-Datei, in der Polygone enthalten sind, deren Umgrenzung Isolinien
gleicher Wassertiefe repräsentieren (vgl. Abschnitt~\ref{subsec:param-delta}).
Die Shape-Datei enthält als Attribut die repräsentierte Wassertiefe.
Der gewünschte Name der Shape-Datei (inkl. Pfadangaben) wird dem Programm
WSPLGEN wieder über die Kommandozeile durch den Parameter \verb;-AUSGABE;
(siehe Abschnitt~\ref{subsec:param-ausgabe}) mitgeteilt.

Format Beschreibung:

Bei der Ausgabedatei handelt es sich um eine Datei im ESRI-Shape-Format
des Types (POLYGON).

Die X- und Y-Koordinaten der Polygone werden systembedingt als Gleitkommazahlen
gespeichert und sind im gleichen Koordinatensystem mit den gleichen
Einheiten wie das DGM, das als Basis für ihre Generierung diente.

Das Attribut, das die repräsentierten Wassertiefen speichert,
heißt \verb;Diff; (Differenz zwischen Wasserstand und Geländehöhe).
Es gibt die Wassertiefe in Metern mit 2 Nachkommastellen an und ist daher vom Typ
Fließkommazahl (Float).


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Fortschritt}\label{subsec:file-fort}

Während des Laufs von WSPLGEN wird der akutelle Bearbeitungsstand kontinuierlich in die
Standardausgabe (stdout) geschrieben, so dass die GUI in der Lage ist,
ihn anzuzeigen.

Aus diesem Grund schreibt WSPLGEN mmer wieder Text, der entweder in einer Zeile
angibt was das Programm gerade tut oder in den folgenden Zeilen wie weit es damit ist.

Format Beispiel:

\begin{verbatim}
->Lese DGM-Dateien
10000 Punkte gelesen (20% der Datei)
20000 Punkte gelesen (41% der Datei)
30000 Punkte gelesen (62% der Datei)
40000 Punkte gelesen (83% der Datei)
45322 Punkte gelesen (100% der Datei)
->Lese Gewässerquerprofilspuren
100 Profilspuren gelesen (48% der Datei)
200 Profilspuren gelesen (96% der Datei)
212 Profilspuren gelesen (100% der Datei)
->Lese Wasserstände
100 Wasserstände gelesen (85% der Datei)
145 Wasserstände gelesen (100% der Datei)
->Interpoliere Profilspuren
50 von 234 Profilspuren interpoliert
100 von 234 Profilspuren interpoliert
150 von 234 Profilspuren interpoliert
200 von 234 Profilspuren interpoliert
234 von 234 Profilspuren interpoliert
->Interpoliere Wasserstände
100 von 342 fehlenden Wasserstände interpoliert
200 von 342 fehlenden Wasserstände interpoliert
300 von 342 fehlenden Wasserstände interpoliert
...
\end{verbatim}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Warnungen und Fehler}\label{subsec:file-error}

In die Standardfehlerausgabe (stderr) wird von dem Programm WSPLGEN nur
geschrieben, wenn es Warnungen oder sogar einen Fehler im Programm gab.

Diese Warnungen oder der Fehler sollten dem Benutzer immer nach dem Lauf von WSPLGEN
angezeigt werden.

Eine direkte Interaktion mit dem Programm WSPLGEN ist nicht vorgesehen.
Sollte es also Fehler oder Warnungen gegeben haben, die der Benutzer
nicht ignorieren will, so muss er die Eingabedaten oder Parameter
ändern und einen erneuten Lauf starten. Die Meldungen werden aber
so aussehen, dass sie dem Benutzer optimale Hinweise für sein
weiteres Vorgehen liefern.

Format Beschreibung:

Für jede Warnung wird eine Zeile der Form ,,\verb;->Warnung;'' in die Datei geschrieben,
der eine beliebige Anzahl von Textzeilen folgen können, die die Warnung beschreiben.

Die Beschreibung endet mit der nächsten Warnung, einem Fehler oder dem Ende der Datei.

Falls ein Fehler auftritt, wird eine Zeile der Form ,,\verb;->Fehler;'' in die Datei geschrieben,
der eine beliebige Anzahl von Textzeilen folgen können, die den Fehler beschreiben.

Die Beschreibung endet immer mit dem Ende der Datei.


Format Beispiel:
\begin{verbatim}
->Warnung:
Für die Station 123 wurde der Wasserstand doppelt definiert
(Wasserstände: 123,34 und 123,45).
Es wurde der Wasserstand 123,34 verwendet.
->Warnung:
Der Wasserstand bei Profilspur 145 ist kleiner als
alle Geländehöhe im DGM entlang diese Profilspur.
->Fehler:
Für die Profilspur "Weser", Station 234,32 wurde kein Wasserstand
definiert und es konnte auch keine Wasserstand interpoliert
werden, da es keine Nachfolgeprofilspur mit einer höheren
Stationierung gibt.
\end{verbatim}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Zusammenfassung}

Das Programm WSPLGEN kommuniziert nur über die Kommandozeile, die
Standardein- und ausgaben und verschiedene Ein- und Ausgabedateien
mit der GUI. Bei fehlerfreier
Ausführung wird eine Ausgabdatei im Shapeformat erzeugt, die Polygone
enthält, die Bereiche gleicher Wassertiefe repräsentieren. In jedem
Fall wird eine Fortschrittsdatei erzeugt, die den Bearbeitungsstand
des Programmes dokumentiert. Sollten Warnungen auftreten oder es zu
einem Fehler kommen so wird eine Protokolldatei angelegt, in der
alle Meldung (Warnungen und Fehler) stehen, die für den Anwender hilfreich
sein können, wenn er mit der Arbeit des Programmes nicht zufrieden ist.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{appendix}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Parameter}\label{sec:parameter}

\begin{tabular}{|l|p{3.3cm}|p{2.6cm}|p{2.6cm}|p{4.4cm}|}\hline
Parameter & Argumente & Typ & Einheit & Standardwert\\\hline
PAR     & Parameter-Datei & Pfadangabe & - & keiner  - $<$optional$>$ \\\hline
DELTA   & \verb;<Von>;\newline \verb;<Bis>;\newline \verb;<Diff>; & Kommazahl \newline Kommazahl \newline Kommazahl & Meter\newline Meter\newline Meter & 0\newline Maximaler Wasserstand\newline (BIS - VON) / 10 \\\hline
GEL     & \verb;<Typ>; & Auswahl & SPERRE \newline NOSPERRE & SPERRE \\\hline
DGM     & DGM-Datei & Pfadangabe & - & keiner $<$erforderlich$>$\\\hline
PRO     & Profilspuren-Datei & Pfadangabe & - & keiner $<$erforderlich$>$\\\hline
WSP     & WSP-Datei & Pfadangabe & - & keiner $<$erforderlich$>$\\\hline
LIN     & Linien-Datei & Pfadangabe & - & keiner - $<$optional$>$ \\\hline
AUSGABE & Ausgabe-Datei & Pfadangabe & - & WSPLGEN.SHP \\\hline
\end{tabular}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Fehlermeldungen}\label{sec:fehlermeldungen}

Werden Warnung vom Programm erzeugt, so wird das Programm fortgesetzt und am Ende als
Rückgabewert der Wert der {\bf ersten} Warnung zurückgegeben.

Die erste Ziffer gibt die Fehlergruppe an. Die zweite Ziffer gibt an,
ob es sich um einen Fehler oder einen Warnung handelt. Die dritte und vierte Ziffer 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Kein Fehler}

Rückgabewert 0\\
Fehler oder Warnung: Keine\\
Beschreibung: Es hat weder Fehler noch Warnungen gegeben.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Parameterauswertung: Fehlergruppe 1xxx}

\textbf{Rückgabewert: 1201}\\
Fehler: Keine Parameter angegeben\\
Beschreibung: Es wurde kein Parameter verwendet. Es müssen aber immer mindestens
die Parameter -DGM für die DGM-Datei, -PRO für die Profilspuren-Datei und -WSP für die Wasserstände
angegeben werden.

\textbf{Rückgabewert: 1202}\\
Fehler: Parameter -DGM nicht angegeben\\
Beschreibung: Es wurde der Parameter -DGM nicht verwendet. Es müssen aber immer mindestens
die Parameter -DGM für die DGM-Datei, -PRO für die Profilspuren-Datei und -WSP für die Wasserstände
angegeben werden.

\textbf{Rückgabewert: 1203}\\
Fehler: Parameter -PRO nicht angegeben\\
Beschreibung: Es wurde der Parameter -PRO nicht verwendet. Es müssen aber immer mindestens
die Parameter -DGM für die DGM-Datei, -PRO für die Profilspuren-Datei und -WSP für die Wasserstände
angegeben werden.


\textbf{Rückgabewert: 1204}\\
Fehler: Parameter -WSP nicht angegeben\\
Beschreibung: Es wurde der Parameter -WSP nicht verwendet. Es müssen aber immer mindestens
die Parameter -DGM für die DGM-Datei, -PRO für die Profilspuren-Datei und -WSP für die Wasserstände
angegeben werden.

\textbf{Rückgabewert: 1205}\\
Fehler: Unbekannter Parameter\\
Beschreibung: Es wurde ein Parameter verwendet, der dem Programm WSPLGEN unbekannt ist.


\textbf{Rückgabewert: 1106}\\
Warnung: Mehrfach verwendeter Parameter\\
Beschreibung: Es wurde ein Parameter mehrfach verwendet. Nur das erste Auftreten wird berücksichtigt.
Es wird immer zuerst die komplette Kommandozeile bearbeitet, bevor die Parameterdatei ausgewertet wird.
Diese Warnung kann leicht vorkommen, wenn ein Parameter sowohl auf der Kommandozeile angegeben wird,
als auch in der Parameterdatei vorkommt.


\textbf{Rückgabewert: 1207}\\
Fehler: Argument fehlt\\
Beschreibung: Es wurde ein notwendiges Argument für einen Parameter nicht angegeben. Das Gleichheitszeichen oder
die Argumente nach dem Gleichheitszeichen fehlen. Möglicherweise wurden zuviele oder
ungeschützte Leerzeichen verwendet (siehe Abschnit~\ref{sec:param}).


\textbf{Rückgabewert: 1108}\\
Warnung: Parameter DELTA ohne Argumente aufgerufen\\
Beschreibung: Der Parameter DELTA kann auch ohne Parameter aufgerufen werden. Es werden dann nur
Standardwerte für alle drei Argumente verwendet. Wenn dies gewünscht ist, braucht der Parameter
überhaupt nicht angegeben zu werden. Das er doch gefunden wurde, könnte an einer falschen Aufrufsyntax liegen.
Es könnte das Gleichheitszeichen fehlen oder es könnten zu viele Leerzeichen eingefügt worden sein.

\textbf{Rückgabewert: 1209}\\
Fehler: Parameter DELTA mit falscher Anzahl von Argumenten aufgerufen\\
Beschreibung: Der Parameter DELTA darf mit verschieden vielen Parametern
aufgerufen werden. Es müssen aber immer 2 Kommata verwendet werden,
um die Argumente zu trennen, da sonst nicht entschieden werden kann,
welche Argumente weggelasssen wurden.

\textbf{Rückgabewert: 1210}\\
Fehler: \verb;<Von>; ist größer als \verb;<Bis>;\\
Erklärung: Das Argument \verb;<Von>; ist größer als das Argument \verb;<Bis>;. Die Reihenfolge der Argumente
wurde wahrscheinlich nicht beachtet. Zuerst kommt \verb;<Von>;, dann \verb;<Bis>;, und dann \verb;<Diff>;.

\textbf{Rückgabewert: 1211}\\
Fehler: \verb;<Diff>; ist kleiner als 0\\
Erklärung: Das Argument \verb;<Diff; muss immer größer oder gleich 0 sein.

\textbf{Rückgabewert: 1212}\\
Fehler: \verb;<Diff>; ist gleich 0, aber \verb;<Von>; und \verb;<Bis>; sind verschieden.\\
Erklärung: Das Argument \verb;<Diff>; darf nur den Wert 0 haben, wenn \verb;<Von>; und \verb;<Bis>; gleich sind.
Sind \verb;<Von>; und \verb;<Bis>; verschieden, so wäre eine Abstufung in Schitten zu 0 Metern sinnlos.

\textbf{Rückgabewert: 1113}\\
Warnung: \verb;<Diff>; ist größer als die Differenz von \verb;<Bis>; und \verb;<Von>;\\
Erklärung: \verb;<Diff>; wird vom Programm ignoriert und nur eine Wassertiefenisolinie mit dem Wert \verb;<Von>; generiert.

\textbf{Rückgabewert: 1214}\\
Fehler: Ungültiges Argument für den Parameter \verb;-GEL;\\
Erklärung: Der Parameter darf nur mit den Zeichenketten \verb;SPERRE; oder \verb;NOSPERRE; verwendet werden.

\textbf{Rückgabewert: 1115}\\
Warnung: \verb;-GEL=NOSPERRE; wurde zusammen mit \verb;-LIN=<Dateiname>; verwendet.\\
Erklärung: Die Kombination von \verb;-GEL=NOSPERRE; und \verb;-LIN=<Dateiname>; liefert keine sinnvollen Ergebnisse.
Es wird automatisch von WSPLGEN \verb;-GEL=SPERRE; angenommen.

\textbf{Rückgabewert: 1216}\\
Fehler: \verb;-GEL=SPERRE; wurde ohne \verb;-ACHSE=<Dateiname>; verwendet.\\
Erklärung: Wenn das Gelände als Sperre dienen soll, so wird auch eine Gewässerachse benötigt,
um die Lage des Flusses innerhalb der Profilspur zu bestimmen.

\textbf{Rückgabewert: 1117}\\
Warnung: Der Parameter \verb;-AUSGABE; wurde nicht angegeben.\\
Erklärung: Wenn der Parameter \verb;-AUSGABE; nicht angegeben wurde,
wird als Ausgabedateiname \verb;WSPLGEN.SHP; benutzt.

\textbf{Rückgabewert: 1118}\\
Warnung: Der Parameter \verb;-GEL; wurde nicht angegeben.\\
Erklärung: Wenn der Parameter \verb;-GEL; nicht angegeben wurde,
wird \verb;-GEL=SPERRE; angenommen.

\textbf{Rückgabewert: 1119}\\
Warnung: Der Parameter \verb;-DELTA; oder sein Argument <Von> wurden nicht angegeben.\\
Erklärung: Wenn der Parameter \verb;-DELTA; oder sein Argument <Von> nicht angegeben werden,
wird <Von> als Null angenommen.

\textbf{Rückgabewert: 1120}\\
Warnung: Der Parameter \verb;-DELTA; oder sein Argument <Bis> wurden nicht angegeben.\\
Erklärung: Wenn der Parameter \verb;-DELTA; oder sein Argument <Bis> nicht angegeben werden,
wird <Bis> als der maximale Wasserstand angenommen.

\textbf{Rückgabewert: 1121}\\
Warnung: Der Parameter \verb;-DELTA; oder sein Argument <Diff> wurden nicht angegeben.\\
Erklärung: Wenn der Parameter \verb;-DELTA; oder sein Argument <Diff> nicht angegeben werden,
wird <Diff> als (<Bis> minus <Von>) geteilt durch 10 angenommen.

\textbf{Rückgabewert: 1222}\\
Fehler: Der Parameter \verb;-DGM; liefert einen Dateinamen mit einer ungültigen Erweiterung.\\
Erklärung: Es sind nur die Erweiterungen ,,.ADF'', ,,.XYZ'' oder ,,.GRD'' erlaubt.

\textbf{Rückgabewert: 1123}\\
Warnung: Der Parameter \verb;-ACHSE; wurde verwendet, obwohl der Parameter \verb;-GEL;
das Argument \verb;NOSPERRE; hatte.\\
Erklärung: Die Gewässerachse wird nur verwendet, wenn der Parameter den Wert \verb;SPERRE; hat.
Die Gewässerachse wird also ignoriert. Dies ist nicht schlimm, aber hat der Benutzer dies
möglicherweise nicht so gewollt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Eingabedateifehler: Fehlergruppe 2xxx}

\textbf{Rückgabewert: 2201}\\
Fehler: Eine Eingabedatei konnte nicht zum Lesen geöffnet werden.\\
Erklärung: WSPLGEN hat versucht eine Eingabedatei zum Lesen zu öffnen, was nicht funktioniert hat.
Die wahrscheinlichsten Ursachen sind, dass die angegebene Datei nicht existiert (also der Dateipfad
oder -name falsch ist) oder das Programm (bzw. der Benutzer) nicht genug Rechte hat, die Datei zum Lesen zu öffnen.

\textbf{Rückgabewert: 2102}\\
Warnung: Einer Profilspur wurden verschiedene Wasserstände zugewiesen\\
Erklärung: Es wurden einer Profilspur verschiedene Wasserstände zugewiesen.
Es wird nur der zuerst gelesene Wasserstand verwendet.

\textbf{Rückgabewert: 2203}\\
Fehler: Für eine Profilspur konnte kein Wasserstand interpoliert werden.\\
Erklärung: Für eine Profilspur konnte kein Wasserstand interpoliert werden,
da kein Wasserstand stromab und/oder stromauf
dieser Profilspur bekannt ist. Der wahrscheinlichste Grund ist, dass die
Berechnungsergebnisse und die Profilspuren nicht zusammengehören.

\textbf{Rückgabewert: 2204}\\
Fehler: Keine oder zuwenige Daten vorhanden.\\
Erklärung: Die Shape- oder DBF-Datei läßt sich zwar öffnen, aber es sind keine oder zuwenige
Objekt in der Datei vorhanden. Mögliche Ursache könnte eine fehlerhafte Auswahl gewesen sein.

\textbf{Rückgabewert: 2205}\\
Fehler: Die Shape- und DBF-Datei sind inkonsistent.\\
Erklärung: Die Shape- und DBF-Datei enthalten verschieden viele Objekte.
Mögliche Ursache könnte ein fehlerhafter Export oder eine manuelle Bearbeitung gewesen sein.

\textbf{Rückgabewert: 2206}\\
Fehler: In der Profilspuren DBF-Datei sind keine Attribute definiert.\\
Erklärung: In der Profilspuren DBF-Datei gibt es weder das Attribut GEW, noch das Attribut STATION.
Beide Attribute müssen definiert sein.

\textbf{Rückgabewert: 2207}\\
Fehler: In der Profilspuren DBF-Datei ist das Attribut GEW nicht definiert.\\
Erklärung: In der Profilspuren DBF-Datei gibt es das Attribut GEW nicht,
welches aber zwingend erforderlich ist.

\textbf{Rückgabewert: 2208}\\
Fehler: In der Profilspuren DBF-Datei ist das Attribut STATION nicht definiert.\\
Erklärung: In der Profilspuren DBF-Datei gibt es das Attribut STATION nicht,
welches aber zwingend erforderlich ist.

\textbf{Rückgabewert: 2209}\\
Fehler: Der Typ des Attributes GEW ist nicht Text.\\
Erklärung: Der Attribut-Typ von GEW muss Text (z.B. ,,Weser'') sein.

\textbf{Rückgabewert: 2210}\\
Fehler: Der Typ des Attributes STATION ist nicht Fliesskommazahl.\\
Erklärung: Der Attribut-Typ von GEW muss Fließkommazahl (z.B. 123,3451) sein.

\textbf{Rückgabewert: 2111}\\
Warnung: Eine Profilspur wurde mehrmals definiert.\\
Erklärung: In der DBF-Datei wird eine Profilspur mehrmals definiert. Eine Kombination
von GEW und Station kommt mehrfach vor. Es wird nur die erste Definietion einer Profilspur
berücksichtigt.

\textbf{Rückgabewert: 2112}\\
Warnung: Eine Profilspur hat keine Stützstellen.\\
Erklärung: Eine Profilspur hat keine Stützstellen. Damit ist der Ort undefiniert,
wo später der Wasserstand auf das DGM übertragen werden soll. Diese Profilspurdefinition
wird ignoriert. Sollte diese Profilspur erneut in der Datei vorkommen,
so wird es dann berücksichtigt. Es kommt dann nicht zu der Warnung 2111.

\textbf{Rückgabewert: 2213}\\
Fehler: In der Profilspuren Shape-Datei sind keine Polylinien gespeichert.\\
Erklärung: Profilspuren können nur als Polylinien (mit und ohne Z-Koordinaten)
eingelesen werden. Jeder andere Typ führt zu diesem Fehler

\textbf{Rückgabewert: 2214}\\
Fehler: Eine Zeichenkette wurde nicht korrekt geschlossen.\\
Erklärung: In einer ASCII-Datei wird eine Zeichenkette mit einem Zeichen \verb;";
begonnen, aber nicht beendet. Die Datei ist nicht korrekt formatiert und
kann nicht gelesen werden.

\textbf{Rückgabewert: 2215}\\
Fehler: Nicht genug Informationen in einer Zeile.\\
Erklärung: In einer ASCII-Datei sind nicht genug Informationen.
Es konnten nicht genug Spalten gelesen werden.
Die Datei ist nicht korrekt formatiert und kann nicht gelesen werden.

\textbf{Rückgabewert: 2216}\\
Fehler: Konnte keine Zahl erkennen.\\
Erklärung: In einer ASCII-Datei wurde eine Zahl erwartet, aber es war
nicht möglich eine zu erkennen. Die Datei ist nicht korrekt
formatiert und kann nicht gelesen werden.

\textbf{Rückgabewert: 2217}\\
Fehler: In der Gewässerachsen Shape-Datei sind keine Polylinien gespeichert.\\
Erklärung: Gewässerachsen können nur als Polylinien (mit und ohne Z-Koordinaten)
eingelesen werden. Jeder andere Typ führt zu diesem Fehler

\textbf{Rückgabewert: 2118}\\
Warnung: Eine Gewässerachse hat keine Stützstellen.\\
Erklärung: Eine Gewässerachse hat keine Stützstellen. Damit ist der Ort undefiniert,
wo später der Wasserstand auf das DGM übertragen werden soll. Diese Gewässerachsendefinition
wird ignoriert. Sollte diese Gewässerachse erneut in der Datei vorkommen,
so wird es dann berücksichtigt.

\textbf{Rückgabewert: 2297}\\
Fehler: Falsche Anzahl von Daten.\\
Erklärung: Es wurde versucht eine bestimmte Anzahl an Daten zu lesen, was nicht geglückt ist.
Die wahrscheinlichste Ursache ist eine falsch formatierte Datei.

\textbf{Rückgabewert: 2298}\\
Fehler: Dateiende vorzeitig erreicht.\\
Erklärung: Es ist ein nicht näher bekannter Eingabefehler aufgetreten.
Die wahrscheinlichste Ursache ist eine zu kurze Datei, da versucht wurde Daten zu lesen,
aber das Dateiende vorzeitig erkannt wurde.

\textbf{Rückgabewert: 2299}\\
Fehler: Es ist ein allgemeiner Eingabefehler aufgetreten.\\
Erklärung: Es ist ein nicht näher bekannter Eingabefehler aufgetreten.
Die wahrscheinlichste Ursache sind Probleme mit dem Datenträger von
dem die Datei gelesen werden soll oder ungewöhnliche Formatfehler der Eingabedatei.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Datenfehler: Fehlergruppe 3xxx}

\textbf{Rückgabewert: 3101}\\
Warnung: Zwei Punkte des DGM liegen zu dicht zusammen.\\
Erklärung: Zwei Punkte des DGM liegen zu dicht zusammen, so dass WSPLGEN sie
nicht unterschieden kann. Die Z- Werte sind aber verschieden, so dass nicht
entschieden werden kann, welche Höhe die korrekte ist. Es wird im Folgenden
der erste Punkt benutzt.

\textbf{Rückgabewert: 3202}\\
Fehler: Es gibt zuwenig Knoten zum Triangulieren.\\
Erklärung: Für das Triangulieren eines Netzes sind mindestens 3 Knotren notwendig.
Der wahrscheinlichste Fall ist, dass durch die Profilspuren ein zu kleiner Bereich
des DGM abgedeckt wird.

\textbf{Rückgabewert: 3103}\\
Warnung: Es soll mehr Bearbeitungsscheiben als Profilspuren geben.\\
Erklärung: Aus dem verfügbaren Speicher und der ungefähren Geschwindigkeit des Computers,
wurde versucht eine sinnvolle Anzahl von Bearbeitungsscheiben zu ermittlen. Leider existieren
nicht genug Profilspuren, um die Scheiben zu bilden. Die Anzahl der Bearbeitungsscheiben
wird entsprechend der Anzahl der Profile reduziert. Die Anzahl der Bearbeitungsscheiben
wird gleich der Anzahl der Profilspuren minus eins.

\textbf{Rückgabewert: 3204}\\
Fehler: Es gibt weniger als 2 Profilspuren.\\
Erklärung: Für die sinnvolle Ausführung des Programms müssen mindestens
2~Profilspuren existieren.

\textbf{Rückgabewert: 3205}\\
Fehler: Es gibt weniger als 2 Profilspuren in einem Gewaesser.\\
Erklärung: Für die sinnvolle Ausführung des Programms müssen mindestens
2~Profilspuren je Gewaesser existieren.

\textbf{Rückgabewert: 3206}\\
Fehler: Die Gewässerachse schneidet ein Profil nicht.\\
Erklärung: Um eine aktuelles Überschwemmungsgebiet erzeugen zu können,
muss eine Gewässerachse benutzt werden, die natürlich alle Profilspuren
eines Gewässers schneiden muss, damit die Lage des Gewässers innerhalb
der Profilspur ermittelt werden kann.

\textbf{Rückgabewert: 3207}\\
Fehler: Zwei Punkte in einer Profilspur liegen zu dicht zusammen.\\
Erklärung: Zwei Punkte einer Profilspur liegen zu dicht zusammen, so dass WSPLGEN sie
nicht unterschieden kann.

\textbf{Rückgabewert: 3208}\\
Fehler: Zwei Punkte in einer Gewässerachse liegen zu dicht zusammen.\\
Erklärung: Zwei Punkte einer Gewässerachse liegen zu dicht zusammen, so dass WSPLGEN sie
nicht unterschieden kann.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Ausgabedateifehler: Fehlergruppe 4xxx}

\textbf{Rückgabewert: 4201}\\
Fehler: Die Ergebnisdatei könnte nicht zum Schreiben geöffnet werden.\\
Erklärung: WSPLGEN hat versucht eine Ausgabedatei zum Schreiben zu öffnen, was nicht funktioniert hat.
Die wahrscheinlichsten Ursachen sind, dass der angegebene Pfad nicht existiert (also der Dateipfad falsch
ist) oder das Programm (bzw. der Benutzer) nicht genug Rechte hat, die Datei zum Schreiben zu öffnen.

\textbf{Rückgabewert: 4202}\\
Fehler: Die Ergebnisdatei existierte bereits.\\
Erklärung: WSPLGEN hat versucht eine Ausgabedatei zum Schreiben zu öffnen, die bereits exitiert.
Da keine Interaktion zwischen WSPLGEN und der GUI existiert, kann WSPLGEN nicht nachfragen, ob die
Datei überschrieben werden soll. Es wird ein Fehler generiert und die GUI hat die Möglichkeit die
Datei nach Rückfrage an den Benutzer zu löschen und  WSPLGEN erneut zu starten. Sinnvollerweise
kümmert sich die GUI vor dem ersten Starten von WSPLGEN um dieses Problem.

\textbf{Rückgabewert: 4203}\\
Fehler: Es hat einen Fehler beim Schreiben der Ergebnisdatei gegeben.\\
Erklärung: WSPLGEN hat versucht die Ausgabedatei zu schreiben. Dabei hat es einen Fehler gegeben.
Der wahrscheinlichste Grund ist, dass nicht genügend freier Speicherplatz auf dem Ausgabemedium
(z.B. der Festplatte) zur Verfügung steht.

\textbf{Rückgabewert: 4204}\\
Fehler: Eine Attributdefinition konnte nicht in eine DBF-Datei geschrieben werden.\\
Erklärung: Warum dieser Fehler austritt ist nicht bekannt. Der wahrscheinlichste Grund ist,
dass nicht genügend freier Speicherplatz auf dem Ausgabemedium (z.B. der Festplatte) zur Verfügung steht.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Sonstige Fehler: Fehlergruppe 9xxx}

\textbf{Rückgabewert: 9197}\\
Warnung: Es ist ein abgefangener logischer Programmfehler aufgetreten.\\
Erklärung: Dieser Fehler deutet auf einen Programmfehler hin, der nicht erwartet
wurde. Das Programm sollte trotzdem korrekt weiterarbeiten.
Der Anwender sollte sich mit den Programmierern in Verbindung setzen.

\textbf{Rückgabewert: 9298}\\
Fehler: Es ist ein abgefangener logischer Programmfehler aufgetreten.\\
Erklärung: Dieser Fehler deutet auf einen Programmfehler hin, der nicht erwartet
wurde. Der Anwender sollte sich mit den Programmierern in Verbindung setzen.

\textbf{Rückgabewert: 9299}\\
Fehler: Es ist ein nicht abgefangener logischer Programmfehler aufgetreten.\\
Erklärung: Dieser Fehler deutet auf einen Programmfehler hin, der nicht erwartet
wurde. Der Anwender sollte sich mit den Programmierern in Verbindung setzen.

\vspace{3cm plus 2 cm minus 2cm}

Bemerkung: Die Liste der Fehler ist hiermit {\bf noch} nicht abschließend beschrieben.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Änderungen}\label{sec:history}

{\bf Version: 0.9.3, Datum: 12.02.2006}

Anhang \ref{sec:fehlermeldungen}: Es wurden weitere Fehlermeldungen aufgenommen.

Abschnitt \ref{subsec:file-wsp}: Die Beschränkung des Wertebereichs der Stationierung wurde gelöscht (früher $>$~0).

Abschnitt \ref{subsec:file-wsp}: Format von WSP wurde von Float(10.4) auf Float(10.2) geändert.

{\bf Version: 0.9.4, Datum: 14.02.2006}

Abschnitt \ref{schritt:profilspuren-lesen}: Es wurden kleine textliche Veränderungen durchgeführt.

Abschnitt \ref{schritt:profilspuren-lesen}: Es werden jetzt auch explizit negative Stationiereungen erlaubt.

Abschnitt \ref{schritt:dgm-lesen}: Es wurden kleine textliche Veränderungen durchgeführt.

Abschnitt \ref{subsec:schritt-triang}: Die Delaunay-Triangulation wird jetzt namentlich erwähnt.

Abschnitt \ref{subsec:schritt-uebertragen}: Das Verfahren für aktuelle Überschwemmungsgebiete
gilt jetzt auch für Szenarien.

Abschnitt \ref{subsec:schritt-isolinien}: Es wurden kleine textliche Veränderungen durchgeführt.

Abschnitt \ref{subsec:schritt-ausgabe}: Auf das Löschen der Zwischenergebnisse wird nun verzichtet.

Abschnitt \ref{sec:eingabe}: Es wurden kleine textliche Veränderungen durchgeführt.

Abschnitt \ref{subsubsec:file-profile}: Profilspuren haben keine Z-Koordinaten.

{\bf Version: 0.9.5, Datum: 16.02.2006}

Abschnitt \ref{sec:history}: Einige Verweise wurden korrigiert.

{\bf Version: 0.9.6, Datum: 11.03.2006}

Abschnitt \ref{subsec:file-achse}: Das Attribut \verb;GEW; wurde auch für
die Gewässerachse eingeführt, da es sonst vorkommen kann, das eine Profilspur von
zwei Achsen (verschiedener Gewässer) geschnitten wird und somit nicht klar ist,
wo der Wasserstand auf der Profilspur wirklich gültig ist.

Abschnitt \ref{sec:verbesserungen}: Dieser Anhang wurde noch hinzugefügt.

{\bf Version: 0.9.7, Datum: 12.03.2006}

Ein ppar wenige Tippfehler wurden korrigiert.

Hiermit ist die Bearbeitung des Feinkonzeptes abgeschlossen.

Die weitere Beschreibung von WSPLGEN, Änderungen und Korrekturen werden in
der Dokumentation festgehalten.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Bekannte Probleme bzw. Schwächen}\label{sec:probleme}

Folgende Probleme und Schwächen sind bekannt und noch nicht behoben:

\begin{enumerate}
\item Wenn das DGM nicht homogen ist, weichen die Knotenabstände
oder besser die Kantenlängen unter Umständen stark von dem der
mittleren Kantenlänge ab. Dies kann unter Umständen zu nicht optimalen
Ergebnissen führen.
\end{enumerate}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Verbesserungsmöglichkeiten}\label{sec:verbesserungen}

Hier werden Ideen gesammelt, die das Programm weiter verbessern würden:

\begin{enumerate}
\item Man könnte ganz ohne Elemente arbeiten. Sowhl die Triangulierung
als auch die Einlesenroutinen könnten immer gleich Kanten generieren.

\item Das Programm könnte mehr Zwischenergebnisse in Form von SHAPE-Dateien
generieren. So wäre es denkbar die Bearbeitungspolygone, die interpolierten Profilspuren,
die übertragenen Wasserstände und die extrapolierten Wasserstände abzuspeichern.

\item Das Programm könnte das triangulierte Netz abspeichern, um es in der Zukunft
wieder einlesen zu können. Welches Format hierfür sinnvoll ist und benutzt werden kann,
müsste noch geklärt werden.

\item Das Programm könnte auch Netzte mit gemischten Drei- und Viereckselementen
unterstützen, wie sie bei Finite-Elemente-Modellen benutzt werden
(z.B. 2DM-Format von SMS).

\end{enumerate}



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{appendix}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}
