%
% $Id$
%
%\documentclass[12pt,german]{scrartcl}
\documentclass[12pt]{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}{20. Juli 2009}
\newcommand{\documentrevision}{\RCSRevision}
\newcommand{\documentversion}{1.3.0}
\newcommand{\documentID}{WSPLGEN-Dokumentation.tex 2009-07-20}
%----------------------------------------------

%----------------------------------------------
% Document TITLE
\newcommand{\documenttitle}{WSPLGEN, Dokumentation}


%----------------------------------------------
% 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
		Dokumentation
	}

	\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}\label{sec: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 ist 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 und die Ausführung beendet
oder Standardwerte benutzt, die nicht immer den eigentlichen Willen des
Benutzers wiedergeben. Beim Verwenden von Standardwerten wird in
jedem Fall eine Warnung generiert.

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

\newpage
\section{Vorgehensweise}

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

\refstepcounter{schritt}
\subsection{Schritt \theschritt ~-~Auswertung der Kommandozeilenparameter}\label{subsec:schritt-parameter}

Als erstes werden von WSPLGEN die Kommandozeilenparameter ausgewertet.
Sollte das Programm hierbei unbekannte Parameter oder ungültige
Argumente zu den Parametern finden, so wird ein Fehler generiert
(siehe Anhang~\ref{sec:fehlermeldungen}).
Werden Parameter mehrfach verwendet (z.B. bei der Angabe eines Parameters in der
Kommandozeile und gleichzeitiger Verwendung des gleichen Parameters in der
Parameterdatei (siehe Abschnitt \ref{subsec:param-par}), so wird
nur das erste Auftreten berücksichtigt und eine Warnung
generiert (siehe Anhang~\ref{sec:fehlermeldungen}).
Dies gilt nicht für den Parameter \verb;-LIN;, der mehrfach vorkommen darf.
Die zulässigen Kommandozeilenparameter und ihre Argumente werden im
Abschnitt~\ref{sec:param} und im Anhang~\ref{sec:parameter} beschrieben.

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

\refstepcounter{schritt}
\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 Anhang~\ref{sec:fehlermeldungen}).

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

\subsubsection{Gewässerachse}\label{subsubsec:achse-lesen}

Um die Lage des Flusses innnerhalb der Profilspuren sicher ermitteln zu können,
wird die Gewässerachse als Linien-SHAPE-Datei eingelesen. Es ist möglich
die Achse auf verschiedene Linien zu verteilen, die aber zusammengefügt eine
durchgehende Linie ergeben müssen.

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

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

Als nächstes werden die Gewässerquerprofilspuren (im Folgenden oft nur kurz Profilspuren genannt)
eingelesen. Die Profilspuren müssen, um ein korrektes Berechnungsergebnis zu gewährleisten, 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, dass die Profilspuren die hydraulisch
relevante Talaue abdecken.

An ,,offenen'' Bereichen, d.h. dort wo die Geländeoberfläche nicht höher als die
Wasserstände liegt (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.

Hierbei darf die Stationierung auch negative Werte enthalten.

Für die Interpolation von Querprofilen zum Verdichten der Wasserstände wird diese
Stationierung nicht verwendet (siehe Abschnitt~\ref{subsubsec:schritt-verdichten}).

\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.

Mit dem Parameter \verb;-STRECKE; kann man den Bereich, der eingelesen
werden soll, einschränken (siehe Abschnitt~\ref{subsec:param-strecke}),
ansonsten werden sämtliche Profilspuren des Gewässers vom Programm eingelesen.

Falls der Parameter \verb;-GEBIET; nicht angegeben, der Parameter \verb;-STRECKE; aber angegeben wird,
wird aus den eingelesenen Stützstellen der verwendeten Querprofile, ein Begrenzungspolygon für
das digitale Geländemodell durch Bildung der konvexen Hülle erzeugt.

Wird der Parameter \verb;-GEBIET; angegeben, so bestimmt er das Gebiet, auf das das DGM beschränkt wird und
werden weder der Parameter \verb;-GEBIET; noch der Parameter \verb;-STRECKE; angegeben, so wird das gesamte DGM verwendet.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_polygon5.eps}}{Bildung einer automatischen Begrenzung aus Querprofilstützpunkten}{Bildung einer automatischen Begrenzung}
\end{center}

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

\subsubsection{Wasserstände}\label{subsubsec:wsp-lesen}

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
auch 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{Dämme, Gräben, Rohre (optional)}\label{subsubsec:lin-lesen}

Um sowohl ,,Gräben'', ,,Rohre'' oder ,,Dämme'' in einem Szenario simulieren
zu können, ohne das DGM verändern zu müssen, ist es möglich, 
weitere Dateien mit Polylinien im ESRI SHAPE-Format einzulesen. Für die Dämme und Gräben
werden falls vorhanden auch die Z-Werte ausgewertet, um den Gräben
und Dämmen definierte Höhen zu geben. Werden keine Z-Werte übergeben oder sind
die Z-Werte undefiniert, haben also den Wert \verb;#NAN; (Not A Number), werden die Dämme als
unendlich hoch und die Gräben als unendlich tief angenommen.

Sind nur an einigen Stellen Z-Werte definiert, so werden die fehlenden Z-Werte linear interpoliert oder, falls für die Endpunkte
keine Höhen angegeben wurden, die äußersten Punkte extrapolieert (siehe Abschnitt~\ref{subsec:param-lin}).

In der Datei mit den Linienobjekten muss allen Polylinien das Text-Attribut ,,TYP'' zugeordnet
sein. Dieses Attribut bestimmt, ob es sich bei einer Linie um einen
,,Damm'' handelt (Wert \verb;DAMM;), also Wasser diese Linie
nicht übersteigen kann, wenn keine Z-Werte definiert wurden, oder ob es sich um einen ,,Graben'' handelt
(Wert \verb;GRABEN;), also Wasser sich entlang dieser Linie ausbreiten kann, wenn keine Z-Werte definiert wurden.

Sind Z-Werte definiert, ist die Unterscheidung zwischen einem ,,DAMM'' und einem ,,Graben'' eigentlich
überflüssig, da in diesem Fall die Z-Werte bestimmen, ob das DGM angehoben oder abgesenkt wird.

Weiterhin können noch als Attributwert \verb;ROHR1; und \verb;ROHR2; verwendet werden.

Ein ,,Rohr'' vom Typ 1 transportiert einen Wasserstand vom Beginn einer Linie an das andere Ende der Linie.
Man kann also mit ihm, ohne sich um die Linienführung Sorgen zu machen, einen Wasserstand in
ein sonst nicht erreichbares ,,trockenes'' Gebiet transportieren. 

Ein ,,Rohr'' vom Typ 2 transportiert einen Wasserstand vom Beginn einer Linie
an alle Stützstellen der Linie. Man kann mehrere Linien des Typs \verb;ROHR2; dazu verwenden,
einen künstlichen Gradienten in einem Nebenarm oder einen sekundären Fließpfad eines Gewässers zu erzeugen.

Wird der Typ \verb;ROHR1; oder \verb;ROHR2; verwendet, werden die möglicherweise vorhandenen Z-Werte für diese Linie ignoriert.

Alle diese Linienobjekte können nicht direkt zusammen mit dem Parameter \verb;-GEL=NOSPERRE;
(also dem potenziellen Ü-Ggebiet) verwendet werden (siehe Abschnitt~\ref{subsec:param-gel}).

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_rohre.eps}}{Funktionsweise der verschiedenen Rohr-Typen}{Funktionsweise der Rohre}
\end{center}

Will man doch Dämme oder Gräben aus optischen Gründen in das DGM einbauen und dann ein potenzielles Ü-Grbiet erzeugen,
so kann man die beiden Parameter \verb;-GEL=SPERRE; und \verb;-SAVE2DM; (siehe Abschnitt~\ref{subsec:param-save2dm}) verwenden,
um das DGM mit den eingebauten Strukturen abzuspeichern und dann dieses gespeicherte DGM bei einem erneuten Lauf von WSPLGEN
mit dem Parameter \verb;-GEL=NOSPERRE; zu verwenden.


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

\subsubsection{Begrenzungspolgon}\label{subsubsec:gebiet-lesen}

Da es vorkommen kann, dass die Profilspuren nicht weit genug in das DGM hineinreichen und damit
das automatisch gebildete Begrenzungspolygon nicht ausreichend groß wäre, um sinnvolle
Ergebnispolygone zu produzieren, kann man ein Begrenzungpolygon auch
direkt einlesen lassen. Hierzu wird der Parameter \verb;-GEBIET; verwendet (siehe Abschnitt~\ref{subsec:param-gebiet}).

Wird ein Begrenzungspolygon eingelesen, so spielen die Stützstellen der Profilspuren keine Rolle mehr.

Zu beachten ist, dass nur das erste Polygon einer Shape-Datei und davon auch nur der
erste Ring (der normalerweise ein äußerer Ring sein sollte) berücksichtigt werden.

Auch zur Geschwindigkeitssteigerung kann man ein Begrenzungpolygon verwenden,
da es deutlich weniger Stützstellen als ein automatisch gebildetes Polygon haben kann
und so der Test, ob ein DGM-Punkt in dem Polygon liegt und deshalb unter Umständen
sehr häufig ausgeführt wird, beschleunigt werden kann.

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

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

Zum Schluss 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 vermaschtes 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
kann auch gespeichert werden (siehe Abschnitt~\ref{subsec:param-savetri}).

Aus Optimierungsgründen wird das DGM nur für den Bereich eingelesen,
der durch ein Polygon begrenzt ist, das aus den den Profilen gebildet wird 
oder mit dem Parameter \verb;GEBIET; eingelesen wird.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_polygon.eps}}{Bildung eines Begrenzungspolygons}{Begrenzungspolygon}
\end{center}

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

\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.

Dabei darf {\bf im} Umkreis jedes gebildeten Dreiecks kein weiterer Knoten liegen. {\bf Auf} dem
Umkreis dürfen beliebig viele Knoten liegen.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_tri.eps}}{Delauny-Triangulation}{Delauny-Triangulation}
\end{center}

Aus Optimierungsgründen werden vor der eigentlichen Triangulierung, die das Delauny-Kriterium erfüllt, noch 4 Wächterknoten eingefügt.
Diese Knoten bilden ein Rechteck, das alle Punkte des DGM einschließt und dessen Kanten doppelt so groß sind, wie die eigentliche horizontale bzw. vertikale Ausdehnung des DGM.
Da die Wächterknoten nach der Triangulation wieder entfernt werden, erfüllt die Triangulation das Delauny-Kriterium in den meisten Fällen nicht mehr.

Dies ist kein Fehler, sondern kann sich in vielen Fällen als vorteilhaft herausstellen,
da so oft sehr längliche und spitze Elemente vermieden werden,
die bei der weiteren Vorgehensweise zu Problemen führen können.

(Bemerkung: In den folgenden Abbildungen sind die Wächterknoten dichter an dem eigentlichen DGM, als es im Programm realisiert ist. Dies hat nur
darstellerische Gründe und ändert nichts an dem angewandten Prinzip.)

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_tri2.eps}}{Eine ,,fast Delauny-Triangulation''}{Eine fast Delauny-Triangulation}
\end{center}

Anschließend werden zusätzlich noch alle Kanten entfernt, deren Mittelpunkt ausserhalb des Begrenzungspolygons liegen.
Bei diesem Verfahren kann es vorkommen, dass Kanten, die das Begrenzungspolygon streckenweise verlassen, nicht gelöscht werden,
doch kann dies im Hinblick auf das berechnete Ü-Gebiet vernachlässigt werden.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_tri3.eps}}{Löschen der Wächterknoten}{Löschen der Wächterknoten}
\end{center}

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_tri4.eps}}{Löschen von deutlich ausserhalb liegenden Kanten}{Löschen von externen Kanten}
\end{center}

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

\refstepcounter{schritt}\label{schritt:linien}
\subsection{Schritt \theschritt~-~Gräben und Dämme (optional)}\label{subsubsec:schritt-damm}

Nachdem das DGM in jedem Fall trianguliert ist, werden aus dem Netz zuerst die Gräben in das Netzt ,,geschnitten'',
wenn eine Shape-Datei  mit den entsprechend attributierten Linien eingelesen wurde. Anschließend
werden die Dämme ,,herausgehoben'', wobei möglicherweise auch Gräben wieder mit verfüllt werden.

Handelt es sich bei den Linien um Shapes des Types ,,PolylineZ'', also haben die Stützstellen Z-Werte,
so werden die Gräben und Dämme mit den entsprechenden Höhen ins DGM eingebaut.

Liegen keine Informationen zu Höhen (Shapetype ,,PolyLine'' oder alle Z-Werte sind \verb;#NAN; (Not A Number) also undefiniert), so
werden die Dämme und Gräben mit unendlicher Höhe bzw. Tiefe angenommen. Sowohl die Dämme als auch die Gräben werden in den Ergebnissen
dann nur eine sehr geringe Breite aufweisen.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_damm.eps}}{,,Herausheben'' bzw. ,,Einschneiden'' der Dämme bzw. Gräben}{Erzeugung von Dämmen und Gräben}
\end{center}

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

\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 interpolierten
Profilspuren, wird der zweifache mittlere Abstand der Knoten im DGM benutzt.
Wenn das DGM also großmaschig ist, werden weniger Profilspuren interpoliert,
als wenn das DGM feinmaschiger ist.

Um den gewünschten Abstand der zu interpolierenden Profile genauer bestimmen zu können, 
kann man ihn auch mit dem Parameter \verb;-DIST=<Abstand>; angeben. Es werden dann 
so viele neue Profile zwischen bestehende Profile interpoliert, wie ,,(alter Abstand
geteilt durch gewünschter Abstand) minus eins auf die nächste ganze Zahl gerundet'' ergibt.

Zum Beispiel würde bei einem Abstand von 0,350 km und einem gewünschten Abstand von 0,200~km
ein neues Profil interpoliert.

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. Dabei wird der tatsächliche Abstand der Profile
(definiert durch die Gewässerachse) und nicht die Stationierung der Profile verwendet.

\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 zunächst für jedes Profil der Schnittpunkt
mit der Gewässerachse bestimmt (in der Abbildung mit einem kleinen schwarzer Punkt markiert)
und danach der diesem Schnittpunkt am dichtesten liegende Knoten des DGM gesucht (die Knoten
sind in der folgenden Abbildung mit einer 1 beschriftet.

\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}

Von diesen ersten Knoten wird der Wasserstand immer wieder auf die andere Seite der jeweiligen Profile übertragen.
Die Reihenfolge kann man anhand der Numerierung der Knoten erkennen.

Eine Zuordnung des Wasserstandes erfolgt aber nur dann, wenn die Geländehöhe der DGM-Knoten niederiger
ist als der Wasserstand des jeweiligen Profils. 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
,,Dämmen'', ,,Gräben'' oder ,,Rohren'' (vgl.~\ref{subsec:param-gel}) ermittelt werden,
so wird der Übertragungsprozess 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 Linienobjekten verwendet wird, so werden jetzt zusätzlich
noch die Polylinien, die in der entsprechenden Datei als \verb;DAMM;, \verb;ROHR1; oder \verb;ROHR2; gekennzeichnet sind,
ausgewertet.

Handelt es sich um Dämme, so wird vor dem Weiterreichen überprüft, ob die Kante, die das Wasser weiterreichen würde, einen Damm schneidet.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_zugewiesene_wsp_damm.eps}}{Zuordnung der Wasserstände zu den Punkten des DGM unter Berücksichtigung der Dämme}{Zuordnung der Wasserstände (Sperrung durch Dämme)}
\end{center}

Wird ein Rohr vom Typ 1 verwendet, so wird für den ersten Punkt der Linie ein Wasserstand aus den umliegenden
Profilspuren wie für einen DGM-Punkt interpoliert und dieser Wasserstand an dem Ende der ,,Rohrlinie'' 
angenommen. Anschließend wird allen DGM-Punkten, die dichter als der Suchradius von dem Ende der ,,Rohrlinie''
entfernt sind, dieser Wasserstand zugewiesen, wenn ihre Geländehöhe niedriger als dieser Wasserstand ist.

Der Suchradius ist der doppelte mittlere Knotenabstand (bzw. genauer die doppelte mittlere Kantenlänge).

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

Wird eine Rohr vom Typ 2 verwendet, so wird für den ersten Punkt der Linie ein Wasserstand aus den umliegenden
Profilspuren wie für einen DGM-Punkt interpoliert und dieser Wasserstand für alle Stützstellen des ,,Rohres'' 
angenommen. Anschließend wird allen DGM-Punkten, die dichter als der Suchradius von den Stützstellen des ,,Rohres''
entfernt sind, dieser Wasserstand zugewiesen, wenn ihre Geländehöhe niedriger als dieser Wasserstand ist.

Auch hier ist der Suchradius der doppelte mittlere Knotenabstand (bzw. genauer die doppelte mittlere Kantenlänge).

%\begin{center}
%\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_zugewiesene_wsp_gradient.eps}}{Zuordnung der Wasserstände zu den Punkten des DGM entlang eines ,,Rohres'' vom Typ 2}{Zuordnung entlang eines ,,Rohres''}
%\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{subsec: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{subsec:schritt-einlesen} in Abschnitt~\ref{subsubsec:dgm-lesen}).

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}

Auf diese Weise werden sowohl stromab als auch stromauf liegen eingestautet Bereiche korrekt mit Wasserständen aufgefüllt.

Problematisch wird diese Vorgehensweise, wenn man eindimensional berechnete Wasserstände vorliegen hat,
es aber in Wirklichkeit mehrere oder komplexes Fließverhalten gibt.

Besonders problematisch wird es, wenn die Grenze nur von der Lage, aber nicht der Höhe des DGM abhängt.

In den beiden folgenden Abbildungen ändert sich nur die Lage des Punktes \verb;B;.
Dadurch das der Punkt \verb;A; eine angenommene Höhe hat, die höher als der lilane Wasserstand ist, wird er in beiden Fällen trocken.

Liegt der Punkt \verb;B; aber dichter an einem Knoten, der einen lilanen (im Beispiel höhreren) Wasserstand hat,
so entsteht eine Insel, was korrekt wäre, da das Wasser stromauf einen so hohen Wasserstand aufweist, das es um den Knoten herumfliessen würde.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_extrapolierter_wsp_mit_insel1.eps}}{Bildung einer Insel}{Bildung einer Insel}
\end{center}

Liegt der Punkt \verb;B; aber dichter an einem Knoten, der einen orangenen (im Beispiel niedrigeren) Wasserstand hat,
so entsteht keine Insel, was nicht korrekt wäre, da das Wasser stromauf einen so hohen Wasserstand aufweist, das es um den Knoten herumfliessen müsste.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_extrapolierter_wsp_ohne_insel.eps}}{Verhinderung einer Insel}{Verhinderung einer Insel}
\end{center}

Aus diesem Grund wird immer dann, wenn eine höhere Wasserstand auf einen durch niedrigeren Wasserstand trockengesetzten Knoten trifft, dieser nachträglich wieder nass gemacht.
Der Wasserstand auf diesem Knoten wird dann auf 1 cm über dem Gelände angenommen, da sich der Wasserstand vom hohen zum niedrigen Wasserstand ja in der Realität auch absenken muss.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_extrapolierter_wsp_mit_insel2.eps}}{Bildung einer Insel 2}{Verhinderung einer Insel 2}
\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,
der bei linearer Interpolation der Wassertiefen gleich Null sein müsste. Alle so ermittelten Punkte werden verbunden
und ergeben die gewünschte Isolinie.

\begin{center}
\Fig{\includegraphics[width=10cm,keepaspectratio]{abbildungen/abb_nass_trocken.eps}}{Ermittlung des Nass/Trocken-Überganges}{Ermittlung des Nass/Trocken-Überganges}
\end{center}

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>; verändert
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>; ungleich Null, so wird dieses Anheben bzw. Absenken bereits 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.

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. 

Während der gesamten Bearbeitung werden noch 5 weitere Ausgabedateien erzeugt, die den gleich Namen
wie die eigentliche Ausgabedatei haben und dazu dienten die Ergebnisse besser nachvollziehen zu können.

Es handelt dabei sich um das verwendete Begrenzungspolygon (Polygon-Shape), die interpolierten
Profile (Linien-Shape) mit den zugewiesenen Wasserständen, die Knoten (Punkt-Shape) mit den
entsprechend zugewiesenen Wasserständen, die Knoten (Punkt-Shape) mit den entsprechend extrapolierten
Wasserständen und die Elemente (Polygon-Shape) des vernetzten DGM, die als Attribute die Wasserstände
enthalten, die aus den drei Eckknoten gemittelten werden (siehe auch Abschnitt~\ref{subsec:file-ergebnisse}).

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

\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{OUTPUT (Ausgabeoptionen)}\label{subsec:param-output}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Angabe der Menge der Ausgaben}\\
{\bf Format}      & \multicolumn{4}{l}{-OUTPUT=$<$Menge$>$}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Menge & Integer & - & 0 \\
{\bf Beispiel}    & \multicolumn{4}{l}{-OUTPUT=2}\\
\end{tabular}

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

Als Argumente für den Parameter \verb;-OUTPUT; sind nur die Zahlen 0 bis 9 sinnvoll, im folgenden Ausgabestufen genannt,
wobei die Menge der Ausgaben mit der Größe der Ausgabestufe steigt. Die Nummern 8 und 9
sollten nur bei kleinen Datenmengen und zur Fehlersuche verwendet werden, da
die Menge der Ausgaben dann sehr groß wird.

Ab Ausgabestufe 1 werden die verwendete Querprofilspuren als Shape gespeichert.

Ab Ausgabestufe 2 werden zusätzlich das verwendete Begrenzungspolygon und die Knoten und Elemente des DGM mit den Ergebnissen als Shape gespeichert.

Ab Ausgabestufe 3 werden zusätzlich die Knoten gleich nach dem Übertragen der Wasserstände als Shape gespeichert.


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

\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 ist das einzige Argument des Parameters \verb;-PAR;.

Um die Parameterdatei kommentieren zu können, werden Zeilen, die mit den Zeichen 
'\verb.#.', '\verb./.' oder '\verb.;.' beginnnen nicht als falsche Parameter interpretiert,
sondern ignoriert. Zeilen die mit dem Zeichen '\verb.'.' beginnnen, werden komplett in der Ausgabe wiedergegeben.
Auf diese Weise läßt sich in der Parameterdatei eine Angabe machen, die es ermöglicht die Ausgabe dieser
Parameterdatei später wieder zuzuordnen.


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

\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}

Der Parameter \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, was dann einer Höhe über dem Wasserstand,
also quasi einem Freibord entspricht). 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}

Der Parameter \verb;-GEL; bestimmt, ob die Wasserstände durch Geländeerhebungen
hindurch getragen werden sollen (\verb;NOSPERRE;). 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 Kombinationes des Wert \verb;NOSPERRE; mit Linienobjekten (siehe Abschnitt~\ref{subsec:param-lin}) ist nicht
sinnvoll und sollte in der GUI verhindert werden. Wird der Parameter doch zusammen mit Linienobjekten angegeben
und der Wert des Arguments ist \verb;NOSPERRE;, wird eine Warnung generiert und der Parameter ignoriert
(siehe Abschnitt~\ref{subsec:file-error}).

Wird der Parameter \verb;-GEL; nicht angegeben, so wird der Wert \verb;SPERRE; angenommen.
Es wird dann das aktulle Ü-Gebiet oder ein Szenario ermittelt, je nachdem, ob eine
Datei mit Linienobjekten zusätzlich 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 anhand der Dateiendungen
selbst erkannt und eine Plausibilitäts\-prüfung des DGM vorgenommen.

Das DGM muss entweder durch Punke im SHAPE- oder ASCII-Format
(X,Y,Z-Tripel), als ASCII-Grid, wie es vom ESRI Spatial Analyst verwendet wird,
als TIN, wie es der ESRI 3D-Analyst verwendet oder im 2DM-Format von SMS der
Firma ems-i definiert sein. Vorzuziehen wäre das 2DM-Format, da hier die besten
Möglichkeiten bestehen, das Gelände korrekt wiederzugeben und eine schnelle
Verarbeitung zu gewährleisten.

Werden 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 & - & siehe unten \\
{\bf Beispiel}    & \multicolumn{4}{l}{-DIST=0.2}\\
\end{tabular}

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

Mit dem Parameter \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 eine eindeutige Stationierung zugewiesen (z.B. 120,230).
Diese Angabe ist notwendig, damit das Programm weitere benötigte Profilspuren selbstständig
interpolieren kann.

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. Unterschiede zwischen mittlerem Abstand der Profilspuren und
der Differenz der Stationierung, Orientierung der Profile, d.h. es wird überprüft,
ob alle Profile auf der gleichen Gewässerseite anfangen).

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

\subsection{STRECKE (Begrenzung des Berechnungsstrecke)}\label{subsec:param-strecke}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Begrenzung der Berechnungsstrecke}\\
{\bf Format}      & \multicolumn{4}{l}{-STRECKE=$<$Von$>$,$<$Bis$>$}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
				  & Von  & Float & km & $-\infty$ \\
				  & Bis  & Float & km & $+\infty$ \\
{\bf Beispiel}    & \multicolumn{4}{l}{-STRECKE=100.5,123.0}\\
\end{tabular}

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

Der Parameter \verb;-STRECKE; bestimmt, welche Profile für die Berechnung verwendet werden sollen und
damit auch die Berechnungsstrecke. Es werden also nur die Profile eingelesen, die eine Station haben,
die zwischen \verb;<Von>; und \verb;<Bis>; liegt (siehe auch Abschnitt~\ref{subsubsec:file-profile}).

Wird das Argument \verb;<Bis>; weggelassen, so werden alle Profile bearbeitet, die eine
Station größer gleich \verb;<Von>; aufweisen.

Beispiel: \verb;-STECKE=20.450;

Wird das Argument \verb;<Von>; weggelassen, so werden alle Profile bearbeitet, die eine
Station kleiner gleich \verb;<Bis>; aufweisen.

Beispiel: \verb;-STECKE=,20.450;

Ganz ohne die Argumente ist der Parameter sinnlos.


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

\subsection{DIST (gewünschter Abstand der interpolierten Profile)}\label{subsec:param-dist}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Abstand der interpolierten Profile}\\
{\bf Format}      & \multicolumn{4}{l}{-DIST=$<$Abstand$>$}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
				  & Abstand  & Float & km & siehe unten \\
{\bf Beispiel}    & \multicolumn{4}{l}{-DIST=0.200}\\
\end{tabular}

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

Der Parameter \verb;-DIST; bestimmt, wie groß der gewünschte Abstand der Profile
nach dem Interpolieren sein soll.

Dabei wird für je zwei benachbarte Profile ihr Abstand (die Strecke zwischen
den jeweiligen Schnittpunkten auf der Gewässerachse und nicht die Differenz der Stationierungen)
ermittelte und durch den gewünschten Abstand geteilt. Das Ergebnis wird auf die nächste ganze
Zahl gerundet und um 1 vermindert. Das Ergebnis ist die Anzahl der zwischen den beiden Profile
zu interpolierenden Profile.

Beipiel: \verb;-DIST=0.250;

Sei der Abstand zweiter Profile 1,300 km so werden 1,300 km $/$ 0,250 km - 1 = 4 Profile interpoliert.
Der tatsächliche Abstand der interpolierten Profile beträgt dann 1,300 km $/$ 5 = 0,260 km.

Beipiel: \verb;-DIST=0.250;

Sei der Abstand zweiter Profile 0,230 km so werden 0,230 km $/$ 0,250 km - 1 = 0 Profile interpoliert.
Es werden also keine Profile zwischen den beiden Profilen interpoliert.

Wie der Parameter \verb;-DIST-; nicht angegeben, so wird der doppelte mittlere Abstand der 
verwendeten Knoten verwendet.

Wählt man den Wert für \verb;-DIST; sehr groß so werden keine Profile interpoliert.

Es werden aber nie Profile gelöscht.


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

\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 dem Parameter \verb;-WSP; wird bestimmt, mit welcher Datei die Wasserstände
definiert werden, die den Profilspuren zugeordnet werden sollen.

Die Wasserstände können als Tabelle im ASCII- oder DBF-Format vorliegen.
Dabei muss eine eindeutige Zuordnung zu den Gewässerquerprofilen möglich
sein. Eine Tabelle muss also 2 Spalten (Stationierung und Wasserstand) enthalten.

Eine andere Möglichkeit ist das WST-Format der BfG. Wird dieses verwendet,
so muss auch der Parameter -WSPTAG angegeben werden.

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{WSPTAG (Spaltenbeschreibung der Wasserstände im WST-Format)}\label{subsec:param-wsptag}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Spalte}\\
{\bf Format}      & \multicolumn{4}{l}{-WSPTAG=$<$Spaltenbeschreibung$>$}\\
{\bf Status}      & \multicolumn{4}{l}{Erforderlich falls WST-Datei eingelesen wird}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Spalte & Text(9) & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-WSPTAG=HQ(1000a)}\\
\end{tabular}

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

Mit dem Parameter \verb;-WSPTAG; wird bestimmt, in welcher Spalte der WST-Datei
die Wasserstände definiert werden, die den Profilspuren zugeordnet werden sollen.

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

\subsection{LIN (,,Dämme'', ,,Gräben'' und ,,Rohe'')}\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 Linienobjekten}\\
{\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 dem Parameter \verb;-LIN; wird bestimmt, mit welcher Datei die Linienobjekte (,,Dämme'',
,,Gräben'' oder ,,Rohre'') definiert werden.

Der Parameter ist der einzige, der mehrmals verwendet werden darf. Es werden dann alle Objekte verarbeitet,
die in den verschiedenen Dateien vorkommen.

Aber immer erst alle Gräben und dann alle Dämme, damit die Dämme die Gräben wieder schliessen können.

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

\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 dem Parameter \verb;-ACHSE; wird bestimmt, mit welcher Datei die Gewässerachse
definiert wird.


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

\subsection{GEBIET (hydraulisch relevante Grenze)}\label{subsec:param-gebiet}

\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 hydraulisch relevanten Grenze}\\
{\bf Format}      & \multicolumn{4}{l}{-GEBIET=$<$Pfad$>$}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & Pfad & Pfadangabe & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-GEBIET=talaue.shp}\\
\end{tabular}

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

Mit dem Parameter \verb;-GEBIET; wird bestimmt, mit welcher Datei die hydraulisch relevante Grenze
definiert wird.


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

\subsection{SAVETRI (Speichern der Triangulierung)}\label{subsec:param-savetri}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Speichern der Triangulierung in einer 2DM-Datei}\\
{\bf Format}      & \multicolumn{4}{l}{-SAVETRI}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & - & - & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-SAVETRI}\\
\end{tabular}

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

Der Parameter \verb;-SAVETRI; sorgt dafür, dass die Ergebnisse der Triangulierung für eine
spätere Verwendung gespeichert werden. Es wird dabei der Name der Ausgabedatei
ohne Dateiendung verwendet, dem die Zeichenkette \verb;_trianguliertes_netz.2dm; angehängt wird.

Das 2DM-Dateiformat kann auch von WSPLGEN wieder gelesen werden.


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

\subsection{SAVE2DM (Speichern der Veränderungen durch Linienobjekte)}\label{subsec:param-save2dm}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Speichern der Veränderungen durch Linienobjekte}\\
{\bf Format}      & \multicolumn{4}{l}{-SAVE2DM}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & - & - & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{-SAVE2DM}\\
\end{tabular}

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

Der Parameter \verb;-SAVE2DM; sorgt dafür, dass die Ergebnisse der Triangulierung aber vor allem
die Veränderungen durch Linenobjekte wie ,,Dämme'' und ,,Gräben'' für eine
spätere Verwendung gespeichert werden. Es wird dabei der Name der Ausgabedatei
ohne Dateiendung verwendet, dem die Zeichenkette \verb;_input.2dm; angehängt wird.

Das 2DM-Dateiformat kann auch von WSPLGEN wieder gelesen werden.


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

\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 wesentliche 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.

Zusätzlich werden aus dem Dateinamen für die Hauptausgabedatei noch die Dateinamen
für die weiteren 5 Shape-Dateien generiert, die Zwischenergebnisse bzw. Zusatzinformationen enthalten.
Dazu wird dem Ausgabedateiname ohne Endung jeweils eine der folgenden Zeichenketten angehängt:
\verb;_begrenzungspolygon;, \verb;_interpolierte_profile;, \verb;_profilknoten;, \verb;_knoten; und \verb;_elemente;.


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

\subsection{? (Versionsnummer)}\label{subsec:param-version}

\begin{tabular}{p{2.4cm}p{2.5cm}p{2.5cm}p{2.5cm}p{3.0cm}}
{\bf Kurzfassung} & \multicolumn{4}{l}{Ausgabe der Versionsnummer}\\
{\bf Format}      & \multicolumn{4}{l}{?}\\
{\bf Status}      & \multicolumn{4}{l}{optional}\\
{\bf Argumente}   & \em Name & \em Typ & \em Einheit & \em Standardwert\\
                  & - & - & - & - \\
{\bf Beispiel}    & \multicolumn{4}{l}{?}\\
\end{tabular}

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

Der Parameter \verb;?; ist ein besonderer Parameter. Er wird nur benötigt, damit
andere Programme automatisch die Versionsnummer von WSPLGEN abfragen können.

Er wird auch nicht mit einem Minuszeichen begonnen.

WSPLGEN beendet sich sofort nach der Ausgabe der Versionsnummer auf die Standardausgabe wieder.

Will man als Mensch die Versionsnummer von WSPLGEN erfahren, so erpfiehlt es sich das Programm
ganz ohne Parameter zu starten, da es dann die Versionsnummer zusätzlich zu ein paar anderen
Informationen in die Datei WSPLGEN.LOG schreibt.


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

\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:}      & Attributnamen der Tabelle\\
{\bf Weitere Zeilen:} & 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 fünf verschiedenen Dateiformaten vorliegen,
die im Folgenden näher beschrieben werden. Die Unterscheidung welches Dateiformat vorliegt, trifft WSPLGEN
anhand der Endung des Dateinames.

\begin{tabular}{ll}
{\bf Endung} & {\bf Dateiformat} \\
ADF & ESRI TIN-Format \\
GRD, ASC & ESRI ASCII Raster-Datei-Format \\
SHP & ESRI POINT-Shape-Format \\
TXT, XYZ & ASCII-Format mit X,Y,Z-Tripeln \\
2DM & Generic-Format der Software SMS der Firma ems-i\\
\end{tabular}


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

\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}\label{subsubsec:file-dgm-grd}

\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 \\
CellSize & Zellengröße & 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}

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

\subsubsection{ESRI-POINT-Shape-Format}

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

\vspace{1cm minus 0.5cm}

Beim POINT-Shape-Format handelt es sich um das Standard-Shape-Format von ESRI, das entweder Punkte mit oder ohne Z-Anteil
enthalten darf (POINT oder POINTZ). Wenn nur Punkte ohne Z-Anteil vorliegen, wird versucht die Höhe über ein Attribut
zu bestimmen. Das Attribut muss dann vom Typ Fließkommazahl (Float) sein. Der Name das Attributes lautet dann \verb;Z;.

Hinweis: Für den Attributnamen werden aber auch verschiedene andere Namen akzeptiert (z.B. Hoehe, Topo, mNN).
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsubsection{2DM-Format}

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

\vspace{1cm minus 0.5cm}

Das 2DM-Format wird von der Software SMS benutzt, um Modelle für die zweidimensionale Modellierung zu speichern.
Es ist in zwei Bereich aufgeteilt. Zuerst werden die Elemente eines Netztes definiert und danach die Knoten.
Jeder Zeile enthält dabei genau ein Element oder einen Knoten oder weitere Informatioen, die für WSPLGEn nicht relevant sind.

Jedes Element beginnt mit der Zeichenkette ET3 gefolgt von einer Nummer und den 3 Nummern der Knoten die das Element bilden. Am Ende steht noch ein
Wert für die Rauhheiten, der genau wie die Elementnummer für WSPLGEN unwichtig ist.

Die Knoten beginnen immer mit ND gefolgt von der Knotennummer, die von den Elementen verwendet wird und den X-, Y- und Z- Koordinaten.
Format Beispiel:

\begin{verbatim}
ET3 1 1 2 3
ET3 1 2 1 4
ET3 1 2 4 5
ND 1 3456453.23 5345312.13 23.23
ND 2 3456465.12 5345323.34 34.54
ND 3 3456423.02 5345328.46 1.23
ND 4 3456412.34 5345328.21 456.4
ND 5 3456412.00 5345393.02-1.2
\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 \\
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 eine eindeutige Stationierung in Kilometern
zugewiesen (z.B. 120,230). Die Angabe ist notwendig, damit das Programm WSPLGEN
weitere benötigte Profilspuren selbstständig interpolieren kann.

Der Wert für die Station wird gespeichert in dem Attribut \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 völlig 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.

Hinweis:

Statt des Feldnames \verb;STATION; können auch die Feldnamen \verb;KILOMETER;
und \verb;KM; verwendet werden.

Statt des Feldnames \verb;GEW; kann auch der Feldname \verb;GEWÄSSER;
verwendet werden.

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

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

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

\vspace{1cm minus 0.5cm}

Dateiformat: ASCII, DBase-Format (DBF-Format) oder WST-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-, DBF- oder WST-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.

Hinweis:

Statt des Feldnames \verb;STATION; können auch die Feldnamen \verb;KILOMETER;
und \verb;KM; verwendet werden.

Statt des Feldnames \verb;WSP; kann auch der Feldname \verb;WASSERSTAND;
verwendet werden.

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

\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 '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 'STATION' und 'WSP' in der
Kopfzeile bestimmt.

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

Format Beispiele:

\begin{verbatim}
STATION WSP
100,000 22,23
100,300 22,12
100,600 22,03
100,900 21,97
101,200 21,94
101,512 21,76
101,842 20,21
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.


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

\subsubsection{WST-Format}\label{subsubsec:file-wsp-wst-format}

Dieses Format ist ein ASCII-basiertes Dateiformat. Es werden nur die für das Einlesen
relevanten Beschreibungen aufgeführt.

\begin{enumerate}
\item In der ersten Zeile muss die maximale Anzahl von Datenspalten angegeben sein.

\item Die folgenden Zeilen beginnen normalerweise mit dem Zeichen \verb;*; und sind reine Kommentarzeilen.

\item Die erste Zeile, die nicht mit einem Zeichen \verb;*; beginnt, ist so aufgeteilt das zuerst 8 beliebige Zeichen kommen
(normalerweise Leerzeichen). Danach folgen für jede Datenspalte ein Trennzeichen (üblicherweise ein Leerzeichen) und 8 Zeichen, die die 
Spaltenüberschrift (bzw. den Spaltenbezeichner) definieren.

\item Falls Spaltenbezeichner verwendet werden sollen, die länger als 8 Zeichen sind, so muss eine der vorgehenden
Kommentarzeilen mit der Zeichenkette \verb;*!column-bez-text; beginnen. Dieser Zeichenkette folgen anschließend die
Spaltenbezeichner durch Leerzeichen getrennt. Soll eine Zeichenkette ein Leerzeichen enthalten, so muss die Zeichenkette
durch das Zeichen \verb;"; eingeschlossen werden. Soll das Zeichen \verb;"; selbst in der Zeichenkette vorkommen, so muss
es durch ein das vorangestellte Zeichen \verb;\; geschützt werden.

\item Nach der Spaltendefinition folgen in willkürlicher Reihenfolge Daten- und Kommentarzeilen, wobei die Kommentarzeilen
immer mit dem Zeichen \verb;*; beginnen. Die Datenreihen enthalten zuerst immer eine Stationsangabe (Kilometrierung mit 3 Nachkommastellen).
Der Kilometrierung folgen entsprechend der maximalen Spaltenzahl jeweils 9 Zeichen, die eine Zahl mit
2~Nachkommazahl repräsentieren oder alle leer sind.

\end{enumerate}

Format Beispiele:

\begin{verbatim}
6
* ABFLUESSE (2 Spalten gerechnete Werte. 4 Spalten gemessene Werte)
*           22.30    59.90    83.00   108.00   165.00   224.00
                      MNW                    1-1-1993 10-10-87
*   KM     NN + m
*           22.30    59.90    83.00   108.00   165.00   224.00
   2.000    65.05    65.05    65.05    65.05    65.05    65.05
   2.100    65.05    65.05    65.05    65.05    65.05    65.05
   2.200    65.05    65.05    65.05    65.05    65.05    65.05
   2.300    65.05    65.05    65.05    65.05    65.05    65.05
   2.400    65.05    65.05    65.05    65.05    65.05    65.05
   2.500    65.05    65.05    65.05    65.05    65.05    65.05
   2.600    65.05    65.05    65.05    65.05    65.05    65.05
* Wehrbereich
   4.500    65.05    65.05    65.05    65.05    65.05    65.06
   4.600    65.05    65.05    65.05    65.05    65.05    65.06
   4.700    65.05    65.05    65.05    65.05    65.05    65.06
*           22.30    59.90    83.00   108.00   165.00   224.00
   4.800    65.05    65.05    65.05    65.05    65.06    65.06
\end{verbatim}

Jetzt ein Beispiel mit langen Spaltenbezeichnern

\begin{verbatim}
3
* ABFLUESSE (2 Spalten gerechnete Werte. 4 Spalten gemessene Werte)
*           22.30    59.90    83.00   108.00   165.00   224.00
*!column-bez-text "Ein langer Bez" "Ein \"sehr\" langer Bez" "B\M"
         Ein lang Ein "seh B\M
*   KM     NN + m
*           22.30    59.90    83.00
   2.000    65.05    65.05    65.05
   2.100    65.05    65.05    65.05
   2.200    65.05    65.05    65.05
   2.300    65.05    65.05    65.05
   2.400    65.05    65.05    65.05
   2.500    65.05    65.05    65.05
   2.600    65.05    65.05    65.05
* Wehrbereich
   4.500    65.05    65.05    65.05
   4.600    65.05    65.05    65.05
   4.700    65.05    65.05    65.05
*           22.30    59.90    83.00
   4.800    65.05    65.05    65.05
\end{verbatim}

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

\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 \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Diese Datei ist dient 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}). Die Gewässerachse darf aus beliebig vielen Abschnitte bestehen,
doch müssen diese lückenlos eine Linie bilden, da aus der Achse eine interne Startionierung
für die Interpolation ermittelt wird.

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.

Z- oder M- Werte der Polylinien werden ignoriert.

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

\newpage
\section{Optionale Eingabedateien}

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


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

\subsection{Linienobjekte}\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) & DAMM GRABEN ROHR1 ROHR2 & - \\
\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;DAMM;, \verb;GRABEN;, \verb;ROHR1; oder \verb;ROHR2; 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-Werte der Polylinien werden, wenn sie angebegen sind, berücksichtigt.
M-Werte der Polylinien werden ignoriert.


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

\subsection{Hydraulisch relevante Grenze}\label{subsec:file-gebiet}

\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 \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Diese Datei ist dient dazu, die hydraulisch relevante Grenze zu definieren.
(siehe Abschnitt~\ref{subsec:param-gebiet}). Es darf nur ein Polygon 
in der Datei definiert sein.

Formatbeschreibung:

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

Wie schon bei der Profilspuren-Datei werden die X- und Y-Koordinaten der Stützstellen des
Polygons 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 des Polygons werden ignoriert.

Wenn diese Datei verwendet wird, so wird das begrenzende Gebiet nicht durch die
Endpunkte der Profile, sondern durch dieses Polygon definiert.


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

\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, dass 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 der Meldung generiert.

Werden Warnung vom Programm erzeugt, so wird das Programm fortgesetzt und
am Ende als Rückgabewert der Wert 1 zurückgegeben. 

Werden Fehlermeldungen vom Programm erzeugt, so wird das Programm beendet und
am Ende als Rückgabewert der Wert 2 zurückgegeben. 

Die verschiedenen 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).

Der Name der Ausgabedatei wird auch für 5 weitere Ausgabedateien verwendet, die
nur dazu dienen die eigentlichen Ergebnisse besser bewerten zu können.

Die Namen dieser Dateien setzen sich aus den Ausgabedateienamen (ohne Endung),
den Zusätzen \verb;_begrenzungspolygon;, \verb;_interpolierte_profile;, \verb;_profil_knoten;,
\verb;_knoten; und \verb;_elemente; und der Endung \verb;.shp; zusammen. 

Wäre der Dateiname der Ausgabedatei z.B. \verb;MOSEL.SHP; so wäre ein
Dateiename der weiteren Ausgabedateinamen \verb;MOSEL_KNOTEN.SHP;.

Wir bei einer Eingabedatei ein Projektionsdatei gefunden, so wird diese auch für alle Ausgabedatei verwendet,
indem sie kopiert und dem Dateiname angepasst wird.

Werden mehrere Projektionsdateien gefunden, die sich unterscheiden, wird eine Warnung ausgegeben
und nur die zuerst gefundene verwendet.

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

\subsection{Metadaten}\label{subsec:file-meta}

\begin{tabular}{lp{3.9cm}lcl}
{\bf Name} & {\bf Beschreibung} &{\bf Datentyp} & {\bf Wertebereich} & {\bf Einheit}\\
\verb;iso19115full:dateStamp; & Erstellungsdatum & jjjj-mm-tt & - & - \\
\verb;smXML:title; & Titel & Text & - & - \\
\verb;smXML:CI_Date; & Erstellungsdatum & jjjj-mm-tt & - & - \\
\verb;smXML:abstract; & Beschreibung & Text & - & - \\
\verb;smXML:LI_Lineage; & Ausrufparameter & Text & - & - \\
\end{tabular}

\vspace{1cm minus 0.5cm}

Zusätzlich zu den Ausgabedaten generiert das Programm WSPLGEN bei fehlerfreier Ausführung
eine XML-Datei, in der Metadaten enthalten sind, die Informationen zur Erstellung
der Shape-Dateien enthalten.

Es wurde versucht das Format an den Standard ISO19115 anzupassen, der auch für die
Datenbank GGInA der Bundesanstalt für Gewässerkunde verwendet wird.

Format Beschreibung:

Bei der Ausgabedatei handelt es sich um eine Datei im XML-Format.

Der Titel und die Beschreibung sind im Moment noch konstant.

Als Erstellungsdatum wird das lokale Datum verwendet.

Bei der Beschreibung der Entstehung der Daten, werde alle wichtigen Parameter ausgewertet und
wiedergegeben.

Bisher werden für die Beschreibungen und Titel nur die ein Byte lange Zeichen mit den Werten
von 32 bis 127 und die Zeichen 'ä', 'ö', 'ü', 'Ä', 'Ö', 'Ü' und 'ß' verwendet .

Die deutschen Umlaute z.B. in ,,Geländehöhe'' werden in 2-Byte Unicode kodiert.
Probleme mit der Kodierung kann es geben, wenn Dateinamen, die als Parameter
übergeben werden andere Sonderzeichen enthalten, da diese im Moment byteweise in die Ausgabe kopiert werden und
so eine nicht UTF8-konforme Kodierung entsteht.


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

\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 immer 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 134 Profilspuren interpoliert
100 von 134 Profilspuren interpoliert
134 von 134 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 (<nr>);'' in die Datei geschrieben,
der eine beliebige Anzahl von Textzeilen folgen können, die die Warnung beschreiben.

Die Beschreibung endet dem entsprechenden Text ,,\verb;<-Warnung (<nr>);''.

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

Die Beschreibung endet ebenfalls mit dem entsprechenden Text ,,\verb;<-Fehler (<nr>);''.


Format Beispiel:
\begin{verbatim}
->Warnung (1234)
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 (1234)
->Warnung (3245)
Der Wasserstand bei Profilspur 145 ist kleiner als
alle Geländehöhen im DGM entlang diese Profilspur.
<-Warnung (3245)
->Fehler (3456)
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.
<-Fehler (3456)
\end{verbatim}

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

\newpage
\section{Zusammenfassung}

Das Programm WSPLGEN kommuniziert nur über die Kommandozeile, die
Standardausgaben und verschiedene Ein- und Ausgabedateien
mit der GUI. Bei fehlerfreier Ausführung wird eine Hauptausgabedatei erzeugt, die Polygone
im Shapeformat enthält, die Bereiche gleicher Differenzen zwischen Wasserstand und Geländhöhen repräsentieren.
Zusätzlich werden noch 5 Nebenausgabedateien, die Polygone, Punkte oder Linien enthalten produziert.
In jedem Fall werden Informationen zum Fortschritt in die Standdadausgabe geschrieben, die den Bearbeitungsstand
des Programmes dokumentieren. Sollten Warnungen auftreten oder es zu
einem Fehler kommen, so werden alle Meldung (Warnungen und Fehler) in die Fehlerausgabe geschrieben,
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.7cm}|p{2.4cm}|p{2.2cm}|p{4.1cm}|}\hline
Parameter & Argumente           & Typ        & Einheit   & Standardwert\\\hline
OUTPUT    & Ausgabemenge        & Ziffer     & -         & 0 \\\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
DIST      & Profilabstand       & Kommazahl  & Kilometer & keiner - $<$optional$>$\\\hline
STRECKE   & \verb;<Von>;\newline \verb;<Bis>; & Kommazahl \newline Kommazahl & Kilometer\newline Kilometer & $-\infty$\newline $+\infty$\\\hline
WSP       & WSP-Datei           & Pfadangabe & -         & keiner - $<$erforderlich$>$\\\hline
WSPTAG    & Spalte              & Text(9)    & -         & keiner - $<$erforderlich$>$, \newline falls WSP-Datei im \newline WST-Format eingelesen \newline wird\\\hline
LIN       & Linien-Datei        & Pfadangabe & -         & keiner - $<$optional$>$\\\hline
ACHSE     & Gewässerachse-Datei & Pfadangabe & -         & keiner - $<$erforderlich$>$\\\hline
GEBIET    & Polygon-Datei       & Pfadangabe & -         & keiner - $<$optional$>$\\\hline
SAVETRI   & keine               & -          & -         & keiner - $<$optional$>$\\\hline
SAVE2DM   & keine               & -          & -         & keiner - $<$optional$>$\\\hline
AUSGABE   & Ausgabe-Datei       & Pfadangabe & -         & WSPLGEN.SHP \\\hline
?         & -                   & -          & -         & keiner - $<$optional$>$\\\hline 
\end{tabular}


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

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

Wird das Programm ohne Fehler beendet, so wird als Rückgabewert der Wert 0 zurückgegeben.

Werden Warnung vom Programm erzeugt, so wird das Programm fortgesetzt und am Ende als
Rückgabewert der Wert 1 zurückgegeben.

Werden Fehler vom Programm erzeugt, so wird das Programm beendet und als
Rückgabewert der Wert 2 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
sind nur eine fortlaufende Nummer zur genauen Identifikation der Meldung.

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

\subsection{Kein Fehler}

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


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

\subsection{Fehlergruppe 1xxx - Parameterauswertung}

\textbf{Nummer: 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, -ACHSE für die
Gewässerachse-Datei und -WSP für die Wasserstände angegeben werden.

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

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

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

\textbf{Nummer: 1105}\\
Warnung: Es wurden bei einem optionalen Parameter keine Argumente angegeben\\
Beschreibung: Der Parameter kann auch ohne Parameter aufgerufen werden. Es werden dann nur
Standardwerte 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{Nummer: 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{Nummer: 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{Nummer: 1108}\\
Warnung: Parameter DELTA mit zuwenigen Argumenten 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{Nummer: 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{Nummer: 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{Nummer: 1211}\\
Fehler: \verb;<Diff>; ist kleiner als 0\\
Erklärung: Das Argument \verb;<Diff; muss immer größer oder gleich 0 sein.

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 1222}\\
Fehler: Der Parameter \verb;-DGM; liefert einen Dateinamen mit einer ungültigen Erweiterung.\\
Erklärung: Es sind nur die Erweiterungen ,,.ADF'', ,,.GRD'', ,,.SHP'', ,,.XYZ'', ,,.TXT'' oder ,,.2DM'' erlaubt.

\textbf{Nummer: 1124}\\
Warnung: Ein unbekannter Parameter wurde verwendet.\\
Erklärung: Ein Parameter oder eine Zeichenkette wurden verwendet,
die WSPLGEN nicht bekannt sind. Der Parameter bzw. die Zeichenkette werden ignoriert.
Wahrscheinlich wurde ein Parameter falsch geschrieben.

\textbf{Nummer: 1226}\\
Fehler: Parameter \verb;-STRECKE; ohne Argumente aufgerufen\\
Beschreibung: Der Parameter \verb;-STRECKE; braucht mindestens eines der Argumente 
\verb;<Von>; oder \verb;<Bis>;. Werden sie beide nicht angegeben, so handelt es
sich sicher um einen Tippfehler in der Kommandozeile oder der Parameterdatei,
wenn eine verwendet wurde.

\textbf{Nummer: 1227}\\
Fehler: Der Parameter \verb;-WSP; liefert einen Dateinamen mit einer ungültigen Erweiterung.\\
Erklärung: Es sind nur die Erweiterungen ,,.DBF'', ,,.WST'',  ,,.TXT'', ,,.DAT'' oder ,,.ASC'' erlaubt.

\textbf{Nummer: 1128}\\
Fehler: Keine Begrenzung angegeben\\
Es wurde kein Begrenzungspolygon und auch keine Berechnungsstrecke angegeben. Dies ist nicht schlimm.
Es werden alle Daten verwendet.

\textbf{Nummer: 1229}\\
Fehler: Das Argument für den Parameter \verb;-DIST; ist ungültig\\
Wahrscheinlich wurde als Argument für den Parameter \verb;-DIST; keine Kommazahl angegeben.

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

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

\subsection{Fehlergruppe 2xxx - Eingabedateifehler}

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 2209}\\
Fehler: Der Typ des Attributes GEW ist nicht Text.\\
Erklärung: Der Attribut-Typ von GEW muss Text (z.B. ,,Weser'') sein.

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 2118}\\
Warnung: Eine Gewässerachse hat weniger als 2 Stützstellen.\\
Erklärung: Wenn eine Gewässerachse weniger als 2 Stützstellen hat, ist damit der Ort undefiniert,
wo später der Wasserstand auf das DGM übertragen werden soll. Diese Gewässerachsendefinition
wird ignoriert.

\textbf{Nummer: 2119}\\
Warnung: In einer Shape-Datei sind sowohl Z-Werte als Attribute als auch über die Punkte definiert.\\
Erklärung: Eine Shape-Datei kann vom Typ POINTZ sein und damit an den Punkten selbst
Höheninformationen gespeichert haben. Wenn zusätzlich noch das Attribut 'Z' vorkommt,
so kann nicht unterschieden werden, welche Informationen relevant sind. Es werden die
Werte des Attributs verwendet, da sich diese bei Bedarf leichter ändern lassen.

\textbf{Nummer: 2220}\\
Fehler: In einer WST-Datei konnte der gewünschte Spaltenbezeichner nicht gefunden werden.
Erklärung: Um aus einer WST-Datei die richtige Spalte mit den gewünschten Wasserständen
identifizieren zu können, muss die Spaltenbeschriftung korrekt angegeben werden. Wir die
Spaltenbeschriftung nicht in der WST-Datei gefunden, so wird dieser Fehler ausgegeben.

\textbf{Nummer: 2221}\\
Fehler: In der Shape-Datei mit der hydrulischen Grenze ist kein Polygon gespeichert.\\
Erklärung: Die Hydraulische Grenze muss als Polygon vorliegen (mit und ohne Z-Koordinaten).
Jeder andere Typ führt zu diesem Fehler.

\textbf{Nummer: 2222}\\
Fehler: In der Shape-Datei mit der hydraulischen Grenze ist mehr als ein Polygon gespeichert.\\
Erklärung: Es darf nur eine hydraulische Grenze geben. Wenn also mehr als ein Polygon in der Shape-Datei vorliegt,
kann nicht entschiden werden, welches benutzt werden soll.

\textbf{Nummer: 2223}\\
Fehler: Die hydraulische Grenze hat weniger als 3 Stützstellen.\\
Erklärung: Um ein ,,echtes'' Polygon aufzuspannen, braucht man mindestens 3 Stützstellen (Ecken).

\textbf{Nummer: 2124}\\
Warnung: Eine hydraulische Grenze besteht aus mehreren Teilen d.h. sie hat Löcher.\\
Erklärung: Es wird nur der erste Ring berücksichtigt. Alle weiteren Ringe werden ignoriert.

\textbf{Nummer: 2225}\\
Fehler: Der erste Teil des ersten Polygon in der hydraulische Grenze ist ein ,,innerer'' Ring.\\
Erklärung: ,,Innere'' Ringe stellen Löcher in äußeren Ringen dar. Der erste Teil eines Polygon sollte immer ein
äußerer Ring sein.

\textbf{Nummer: 2226}\\
Fehler: Es konnten keine X/Y-Werte für einen Knoten in einer TIN-Datei gelesen werden.\\
Erklärung: Es hat einen Lesefehler beim Lesen einer TIN-Datei gegeben. Die Datei ist wahrscheinlich beschädigt.

\textbf{Nummer: 2227}\\
Fehler: Es konnte kein Z-Werte für einen Knoten in einer TIN-Datei gelesen werden.\\
Erklärung: Es hat einen Lesefehler beim Lesen einer TIN-Datei gegeben. Die Datei ist wahrscheinlich beschädigt.

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Fehlergruppe 3xxx - Datenfehler}

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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.

\textbf{Nummer: 3209}\\
Fehler: NCols ist kleiner gleich Null.\\
Erklärung: NCols (die Anzahl der Spalten in einer ASCII-Grid-Datei)
muss verständlicherweise immer positiv sein.

\textbf{Nummer: 3210}\\
Fehler: NRows ist kleiner gleich Null.\\
Erklärung: NRows (die Anzahl der Zeilen in einer ASCII-Grid-Datei)
muss verständlicherweise immer positiv sein.

\textbf{Nummer: 3211}\\
Fehler: CellSize ist kleiner gleich Null.\\
Erklärung: CellSize (die Größe der Zellen in einer ASCII-Grid-Datei)
muss verständlicherweise immer positiv sein.

\textbf{Nummer: 3112}\\
Warnung: Das Attribut für die Linenobjekte muss \verb;DAMM;, \verb;GRABEN;, \verb;ROHR1; oder \verb;ROHR2; sein.\\
Erklärung: Für das Attribut \verb;TYP; sind nur die oben genannten Werte
erlaubt. Jedes Linienobjekt mit einem anderen Attribut wird ignoriert.

\textbf{Nummer: 3113}\\
Warnung: Der Parameter \verb;-STECKE; wurde verwendet, aber es wird mehr als ein Gewässer bearbeitet.
Erklärung: Der Parameter \verb;-STECKE; wird für alle Gewässer gleich angewendet, was in
den seltensten Fällen sinnvolle Ergebnisse liefern wird.

\textbf{Nummer: 3214}\\
Fehler: Zwei Knoten liegen zu dicht zusammen.\\
Erklärung: Zwei Knoten liegen zu dicht zusammen, so dass WSPLGEN sie
nicht unterschieden kann.

\textbf{Nummer: 3115}\\
Warnung: Zwei Projektionen stimmen nicht überein.\\
Erklärung: Zwei Projektionsdateien wurden gelesen und zeichenweise verglichen. Dabei
wurde ein Unterschied festgestellt. Es wird immer nur die erste erfolgreich gelesene
Projektion verwendet. Sollten die Projektionen tatsächlich unterschiedlich sein (und
nicht nur andere Namen haben), so kann es zu sehr merkwürdigen Effekten kommen.

\textbf{Nummer: 3116}\\
Warnung: Mehr als zwei nasse Ränder gefunden.\\
Erklärung: Normalerweise fliesst ein Gewässer an einer Stelle in ein Gebiet
hinein und an einer anderen Stelle wieder heraus. Sollten mehr als 2 Stellen
gefunden werden an denen das Geländemodell nass wird, so wird diese Warnung ausgegeben.
Der Fall das es mehr als 2 nasse Ränder gibt, kann aber auch durch Nebengewässer oder Inseln im Gewässer
verursacht werden. Diese Warnung ist also eher als Hinweis zu verstehen.

\textbf{Nummer: 3117}\\
Warnung: Zwei Profile schneiden sich.\\
Erklärung: Normalerweise sollten sich Profilspuren nicht schneiden, da dies zu einer nicht
eindeutigen Zuordnung der Wasserstände zum DGM führt. WSPLGEN kann zwar mit dieser Situation
weiter arbeiten, doch sind die Ergebnisse in den meisten Fällen nicht zufriedenstellend.

\textbf{Nummer: 3119}\\
Warnung: Für ein Profil wurden verschiedene Wasserstände definiert.\\
Erklärung: Für ein Profil (genauer die Stationierung) gibt es mehrere Wasserstände.
Es wird nur der erste Wasserstand verwendet.

\textbf{Nummer: 3220}\\
Warnung: Die Endpunkte einer Kante liegen zu dicht zusammen.\\
Erklärung: Die Endpunkte einer Kante liegen zu dicht zusammen, genauer sie sind identisch.
Die Kante hat also die Länge Null. Das DGM ist entartet. 

\textbf{Nummer: 3221}\\
Warnung: Die Punkte des DGM liegen zu dicht zusammen.\\
Erklärung: Bei der Bildung der Ümhüllung der Profile, liegen zwei Profilendpunkte zu dicht zusammen.

\textbf{Nummer: 3222}\\
Warnung: Es gibt weniger als 3 Punkte beim Bilden der Umhüllung.\\
Erklärung: Bei der Bildung der Ümhüllung der Profile, liegen nur zwei Profilendpunkte vor.
Es wird scheinbar nur ein Profil bearbeitet. Es müssen aber mindestens zwei sein.


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

\subsection{Fehlergruppe 4xxx - Ausgabedateifehler}

\textbf{Nummer: 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{Nummer: 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{Nummer: 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{Nummer: 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{Fehlergruppe 9xxx - Sonstige Fehler}

\textbf{Nummer: 9201}\\
Fehler: Es steht nicht genug Speicher zur Verfügung.\\
Erklärung: Es steht nicht genug Arbeitsspeicher zur Verfügung. Das Programm
muss beendet werden. Man kann versuchen andere Programme zu beenden oder eine kleinere
Gewässerstrecke zu bearbeiten (siehe Abschnitt~\ref{subsec:param-strecke}).

\textbf{Nummer: 9202}\\
Fehler: Es hat einen unbekannten Fehler beim Reservieren von Speicher gegeben.\\
Erklärung: Das Programm muss beendet werden. Man kann versuchen andere Programme zu beenden oder eine kleinere
Gewässerstrecke zu bearbeiten (siehe Abschnitt~\ref{subsec:param-strecke}).

\textbf{Nummer: 9103}\\
Warnung: Es hat einen unbekannten Fehler beim Freigeben von Speicher gegeben.\\
Erklärung: Das Programm versucht weiterzumachen. Was dann genau passiert ist leider nicht sicher.
Man sollte nach dem Beenden von WSPLGEN den Computer neu starten.

\textbf{Nummer: 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{Nummer: 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{Nummer: 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.


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

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

{\bf Version: 0.9.8, Datum: 12.03.2006}

Die Dokumentation wurde begonnen.

{\bf Version: 0.9.9, Datum: 18.03.2006}

Abschnitt \ref{subsubsec:file-profile}: Es werden bei den
Querprofilen auch alternative Feldnamen zugelassen.

Abschnitt \ref{subsec:file-wsp}: Es werden bei den
Wasserständen auch alternative Feldnamen zugelassen.

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

Abschnitt \ref{subsubsec:file-dgm-grd}: Es wurde das fehlende
Schlüsselwort \verb;CellSize; in die Beschreibung aufgenommen und die Namen
leserlicher gestaltet.

{\bf Version: 0.9.10, Datum: 21.03.2006}

Abschnitt \ref{subsec:file-sperr}: Es wurden an verschiedenen Stellen
Tippfehler bzgl. der ,,Dämme'' und ,,Gräben'' behoben. In diesem Abschnitt war aber
sogar der Wertebereich des Attributes \verb;TYP; nicht korrekt.

{\bf Version: 0.9.11, Datum: 12.04.2006}

Abschnitte \ref{subsec:param-strecke} und Anhang \ref{sec:fehlermeldungen}, Fehlercode 1226, 3113:
Es wurde der Parameter \verb;-STRECKE; hinzugefügt.

Anhang \ref{sec:fehlermeldungen}, Fehlercode 1225:
Es wurde der Parameter \verb;-MAXKNOTEN; hinzugefügt.

{\bf Version: 0.9.12, Datum: 07.05.2006}

Anhang \ref{sec:fehlermeldungen}, Fehlercode 3214:
Es wurde eine weitere Fehlermedlung aufgenommen.

{\bf Version: 0.9.13, Datum: 23.05.2006}

Anhang \ref{sec:fehlermeldungen}, Fehlercode 3115:
Es wurde eine weitere Fehlermedlung aufgenommen.

{\bf Version: 0.9.14, Datum: 14.06.2006}

Abschnitt \ref{sec:allgemeines}:
Das Abbrechen von WSPLGEN zwischen den Bearbeitungsschritten wurde entfernt.

Abschnitt \ref{subsubsec:profilspuren-lesen}: Der Parameter \verb;-STRECKE; wurde erwähnt.

Die Abschnitte \ref{subsubsec:wsp-lesen}, \ref{subsubsec:achse-lesen}, \ref{subsubsec:lin-lesen}
und \ref{subsubsec:dgm-lesen} wurden in ihrer Reihenfolge vertauscht.

Abschnitt \ref{subsec:schritt-uebertragen}: Die Abstände wurden der tatsächlichen Vorgehensweise
im Programm angepasst.

Abschnitt \ref{subsec:param-wsptag} wurde neu hinzugefügt.

Der Parameter \verb;-MAXKNOTEN; wurde entfernt.

Es wird jetzt konsequent der Begriff ,,Parameter'' und nicht ,,Option'' verwendet.

Abschnitt~\ref{sec:probleme}: Der Abschnitt wurde aktualisiert.

{\bf Version: 0.9.15, Datum: 02.07.2006}

Abschnitt~\ref{subsubsec:file-wsp-wst-format}: Das neue WST-Format wird jetzt auch beschrieben.

Anhang \ref{sec:fehlermeldungen}, Fehlercode 2220:
Es wurde eine weitere Fehlermedlung aufgenommen.

Anhang \ref{sec:fehlermeldungen}, Fehlercode 3103:
Die Warnung wurde gelöscht.

{\bf Version: 0.9.15, Datum: 21.07.2006}

Anhang \ref{sec:fehlermeldungen}, Fehlercode 3115, 2118:
Die Texte wurde etwas überarbeitet.

Anhang \ref{sec:fehlermeldungen}, Fehlercodes 3116, 2221, 2222, 2223:
Es wurden weitere Fehler und Warnungen aufgenommen.

Abschnitte~\ref{subsec:param-gebiet} und \ref{subsec:file-gebiet}: Der Parameter
\verb;-GEBIET; wurde eingeführt und die zugehörige Datei beschrieben.

{\bf Version: 0.9.16, Datum: 05.08.2006}

Abschnitt~\ref{sec:parameter}: die Parameter \verb;-GEBIET; und \verb;-SAVETRI;
wurde eingeführt.

Abschnitte~\ref{subsec:param-savetri}: Der Parameter \verb;-SAVETRI; wurde eingeführt.

Abschnitt~\ref{subsubsec:gebiet-lesen}: Das Begrenzungspolgon wurde jetzt auch bei der Vorgehensweise kurz vorgestellt.

Abschnitt~\ref{subsec:schritt-triang}: Es wurden zwei weitere Bilder eingefügt,
die die Funktionsweise des Begrenzungspolygons nach der Triangulierung verdeutlichen.

Abschnitt~\ref{subsec:schritt-uebertragen}: Ein Bild für die Funktionsweise von Rohren vom Typ 1 wurde hinzugefügt.

Abschnitt~\ref{subsec:schritt-uebertragen}: Das Bild für die Funktionsweise von Rohren vom Typ 2 wurde korrigiert.

{\bf Version: 0.9.16, Datum: 05.09.2006}

Im gesamten Text wurden kleine Änderungen durchgeführt.
Dabei handelt es sich in der Regel um Tippfehler oder Formulierungsänderungen.

Abschnitt~\ref{subsec:schritt-triang}: Der Abschnitt wurde noch etwas überarbeitet und die Abbildungen etwas geändert.

Abschnitt~\ref{subsec:file-sperr}: Der noch fälschlicherweise verwendete alte Attributwert \verb;BRUCH; wurde durch den
neuen korrekten Wert \verb;GRABEN; ersetzt.

Anhang \ref{sec:fehlermeldungen}, Fehlercode 1225: Der Fehler wurde gelöscht.

{\bf Version: 0.9.17, Datum: 07.09.2006}

Im gesamten Text wurde das Attribut \verb;GRADIENT; durch \verb;ROHR2; ersetzt.
Entsprechend heisst das Attribut \verb;ROHR; nun \verb;ROHR1;.

{\bf Version: 0.9.17, Datum: 20.09.2006}

Abschnitt~\ref{subsec:file-dgm}: Die verschiedenen Dateitypen für DGM-Dateien
und die Erkennung ihres Formates durch die Endung der Dateinamen wurde erklärt.

{\bf Version: 0.9.18, Datum: 16.10.2006}

Abschnitt~\ref{subsubsec:lin-lesen}: Es wurde eine Abbildung hinzugefügt.

Abschnitt~\ref{subsubsec:schritt-damm}: Es wurde eine Abbildung hinzugefügt.

Es wurde diverse Tippfehler und kleine kosmetische Veränderungen durchgeführt.

{\bf Version: 1.0.0, Datum: 19.10.2006}

Abschnitt~\ref{subsec:param-version}:: Es wurde der Parameter \verb;?; aufgenommen.

Anhang \ref{sec:fehlermeldungen}, Fehlercode 3117: Der Fehler wurde hinzugefügt.

{\bf Version: 1.0.0, Datum: 17.11.2006}

Anhang \ref{sec:fehlermeldungen}, Fehlercodes 2124 und 2225: Eine Warnung und ein Fehler wurden hinzugefügt.

Abschnitt~\ref{subsubsec:gebiet-lesen}: Es wird nun darauf hingewiesen, dass nur EIN normales Polygon
als Begrenzungspolygon benutzt wird.

{\bf Version: 1.0.0, Datum: 28.11.2006}

Abschnitt~\ref{subsec:param-par}: Es wurde die Verwendung von Kommentaren in Parameterdateien hinzugefügt.

{\bf Version: 1.1.5, Datum: 13.10.2007}

Abschnitt~\ref{subsubsec:achse-lesen}: Das Kapitel wurde vorgezogen,
da der Gewässerachse inzwischen eine deutlich wichtigere Bedeutung zukommt.

Die Abschnitte~\ref{subsubsec:profilspuren-lesen}, \ref{subsubsec:gebiet-lesen} und \ref{subsubsec:dgm-lesen}
wurden angepasst und eine Grafik hinzugefügt, da die Bildung eines automatischen Begrenzungspolygons sich geändert hat.

In Abschnitt~\ref{subsubsec:schritt-verdichten} wird der Parameter \verb;-DIST; kurz erklärt und die Bestimmung der
Anzahl der zu interpolierenden Profile.

Der Abschnitt~\ref{subsec:param-dist} wurde hinzugefügt, um den Parameter \verb;-DIST; zu beschreiben.

{\bf Version: 1.2.6, Datum: 02.11.2008}

Die Abschnitte~\ref{subsec:schritt-parameter} und \ref{subsubsec:lin-lesen}: Der Abschnitt wurde überarbeitet,
da der Parameter -LIN jetzt mehrmals vorkommen kann und auch Z-Werte (bei POLYLINEZ-Shapes) ausgewertet werden.

Die Abschnitte~\ref{subsec:schritt-uebertragen}: Der Abschnitt wurde überarbeitet,
da ein Problem mit Inseln behoben wurde.

{\bf Version: 1.2.9, Datum: 11.12.2008}

Es wurden nur kleinere Schönheitskorrekturen durchgeführt.

{\bf Version: 1.3.0, Datum: 20.07.2009}

Der Suchradius wird in Abschnitt~\ref{subsec:schritt-uebertragen} jetzt konkret angegeben.

Die falsche Aussage das Z-Werte ignoriert werden wurde in Abschnitt~\ref{subsec:file-sperr} korrigiert.

Ein Hinweis auf das rein geometrische Verfahren wurde in Anhang~\ref{sec:probleme} hinzugefügt.


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

\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 der
mittleren Kantenlänge ab. Dies kann unter Umständen zu nicht optimalen
Ergebnissen führen.

\item Weiterhin ist darauf hinzuweisen, dass WSPLGEN ein rein
geometrisches Verfahren ist und insbesondere bei komplexem
Fließverhalten an seine Grenzen stößt.

\end{enumerate}

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

\end{appendix}

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

\end{document}
