view backend/doc/documentation/de/importer-hydr-morph.tex @ 6034:0353484b425c

Part of issue1081: Show mainvalues in discharge_curve dc.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 16 May 2013 08:58:59 +0200
parents 5aa05a7a34b7
children 45e6635ef7f5
line wrap: on
line source
\section{Fachdatenimport}

Der Fachdatenimporter dient dazu, hydrologische und morphologische Gew�sserdaten
aus dem Dateisystem in die FLYS3-Datenbank zu importieren. Das Werkzeug
orientiert sich hierbei an der Dateihierachie, so wie sie auch von Desktop-FLYS
ausgelesen wird. Der Import Vorgang ist in zwei Phasen unterteilt:

\begin{itemize}
    \item Lesen aller Daten eines Gew�ssers aus dem Dateisystem.
    \item Schreiben der erfolgreich eingelesenen Daten in die Datenbank.
\end{itemize}

Sollte beim Lese- oder Schreib-Vorgang eines Gew�ssers ein Fehler auftreten, so
werden s�mtliche Daten des Gew�ssers verworfen. Beide Phasen zusammen bilden
somit eine Transaktion.

\textbf{Hinweis}
\\Der Import geht wie auch Desktop-FLYS davon aus, dass die Dateien Latin-1
encodiert vorliegen! Stellen Sie also sicher, dass das von Ihnen verwendete
Encoding korrekt ist. Andernfalls ist es m�glich, dass es w�hrend des Imports zu
unerwarteten Problemen kommt.

Der Importer ist ein in Java geschriebenes Werkzeug und kann von der Konsole aus
gestartet werden. S�mtlich Konfigurationen k�nnen �ber sogenannte
\textit{System-Properties} �bergeben werden. Eine \textit{System-Property} wird
dabei mittels \textit{-Dkey=value} beim Start �bergeben. Im folgenden Beispiel
w�rde der Importer mit einer Konfiguration \textit{flys.backend.importer.dry.run},
welche den Wert \textit{true} gesetzt hat, gestartet.

\begin{lstlisting}
    java -Dflys.backend.importer.dry.run=true de.intevation.flys.importer.Importer
\end{lstlisting}

Auf gleiche Weise k�nnen dem Importer s�mtliche Optionen zur Konfiguration
beim Start mitgegeben werden. Im Folgenden werden die m�glichen System-Properties und
ihre Auswirkung auf den Import genauer beschrieben. In den Kapiteln
\ref{configuration} und \ref{start-hydr} wird zur Einfachheit jedoch ein
Shellskript verwendet, das eine Standardkonfiguration vorgibt und den Importer
mit allen erforderlichen Konfigurationen startet.


\subsection{Importierte Daten}
In diesem Kapitel werden die Datentypen aufgelistet und erl�utert, wie sie vom
Importer eingelesen werden.

\subsubsection{Streckenfavoriten (*.km-Dateien)}
Der Import der Streckenfavoriten kann mit \textbf{-Dflys.backend.importer.skip.annotations=true}
unterdr�ckt werden.

Zur Klassifikation von Streckenfavoriten muss mittels\\
\textbf{-Dflys.backend.importer.annotation.types=DATEI} der Pfad zu einer
XML-Datei angegeben werden. In dieser Datei werden die Typen und Regeln
festgelegt, anhand derer die Klassifikation w�hrend des Import-Vorgangs
vorgenommen wird. Details hierzu befinden sich im Kapitel \ref{annotation-types}.

\subsubsection{Bundeswasserstra�en-IDs}
Der Import und die Zuweisung der Bundeswasserstra�en-IDs kann mit
\textbf{-Dflys.backend.importer.skip.bwastr=true} unterbunden werden.
Beim Import wird davon ausgegangen dass sich die Datei \textbf{BWASTR\_ID.csv}
neben der oder den zu importierenden gew-Dateien befindet.

\subsubsection{Pegel, Stammdaten (*.glt, *.sta-Dateien)}
Der Import von Pegel- und Stammdaten kann mit \textbf{'-Dflys.backend.importer.skip.gauges=true'}
unterdr�ckt werden. Die .glt-Datei, die neben der .wst-Datei liegt, wird zuerst
ausgelesen. Es werden nur *.sta-Datei von Pegeln geladen, die in der .glt-Datei
vermerkt sind.

\subsubsection{Historische Abflusstafeln (*.at-Dateien)}
Der Import von historischen Abflusstafeln kann mit
\textbf{'-Dflys.backend.importer.skip.historical.discharge.tables=true'}
unterdr�ckt werden. Diese Flagge wird nur ausgewertet, wenn �berhaupt
Pegel-Daten (siehe oben) importiert werden.

Mittels \textbf{-Dflys.backend.sta.parse.gauge.numbers=true} wird versucht, die
offiziellen Pegelnummern aus den Stammdaten zu extrahieren.
\textbf{Dies ist mit Vorsicht zu behandeln, denn die meisten STA-Dateien
enthalten invalide Pegelnummern.}

Die System-Property \textbf{flys.backend.main.value.types} kann einen String
mit g�ltigen Typen von Stammdaten enthalten. Vorbelegt ist \textit{QWTD}. In der
Praxis ist \textit{QWD} eine sinnvolle Belegung.

\subsubsection{Basis-Wasserst�nde (gewaesser.wst-Dateien)}
Der Import von Wasserst�nden kann mit \textbf{-Dflys.backend.importer.skip.wst=true} unterdr�ckt werden.

\subsubsection{Zus�tzliche L�ngsschnitte (*.zus, *.wst-Dateien)}
Der Import von zus�tzlichen L�ngsschnitten kann mit \textbf{-Dflys.backend.importer.skip.extra.wsts=true}
unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
\textit{../Zus.L�ngsschnitte} relativ zur gewaesser.wst-Datei betrachtet.

\subsubsection{Fixierungen (*.wst-Dateien)}
Der Import von Fixierungen kann mit \textbf{-Dflys.backend.importer.skip.fixations=true}
unterdr�ckt werden. Es werden die *.wst-Dateien aus dem Verzeichnis
\textit{../Fixierungen} relativ zur gewaesser.wst-Datei betrachtet.

\subsubsection{Amtliche Linien (*.wst-Dateien)}
Der Import von amtlichen Linien kann mit \textbf{-Dflys.backend.importer.skip.official.lines=true}
unterdr�ckt werden. Es werden die \textit{Amtl\_Linien.wst}-Dateien aus dem
Verzeichnis \textit{../Basisdaten} und \textit{../Fixierungen} relativ zur
\textit{gewaesser.wst}-Datei betrachtet.

\subsubsection{Profilspuren (*.prf-Dateien)}
Der Import von Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.prfs=true}
unterdr�ckt werden. Es werden rekursiv alle *.prf-Dateien aus \textit{../../..}
relativ zur gewaesser.wst-Datei betrachtet. Vor dem Import werden mit Hilfe
eines L�ngen- und eines MD5-Summen-Vergleichs inhaltliche Duplikate
ausgeschlossen.

\subsubsection{Profilspuren (*.w80-Dateien)}
Der Import von W80-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.w80=true}
unterdr�ckt werden. Es werden rekursiv alle *.w80-Dateien aus \textit{../../..}
relativ zur gewaesser.wst-Datei betrachtet. Vor dem Import werden mit Hilfe
eines L�ngen- und eines MD5-Summen-Vergleichs inhaltliche Duplikate
ausgeschlossen.

\subsubsection{Hydraulische Kennzahlen (*.hyk)}
Der Import von hydraulischen Kennzahlen kann mit \textbf{-Dflys.backend.importer.skip.hyks=true} unterdr�ckt
werden. Es werden rekursiv alle *.hyk-Dateien aus \textit{../../..} relativ zur
gewaesser.wst-Datei betrachtet. Vor dem Import werden mit Hilfe eines L�ngen- und
eines MD5-Summen-Vergleichs inhaltliche Duplikate ausgeschlossen.

\subsubsection{Hochwassermarken (*.zus, *.wst)}
Der Import von Hochwassermarken kann mit \textbf{-Dflys.backend.importer.skip.flood.water=true}
unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
\textit{../HW-Marken} relativ zur gewaesser.wst-Datei betrachtet.

\subsubsection{Hochwasserschutzanlagen (*.zus)}
Der Import von Hochwasserschutzanlagen kann mit \textbf{-Dflys.backend.importer.skip.flood.protection=true}
unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
\textit{../HW-Schutzanlagen} relativ zur \textit{gewaesser.wst}-Datei betrachtet.

\subsubsection{Sohlh�hen (Peilungen)}
Der Import von Sohlh�hen-Peilungen kann mit \textbf{-Dflys.backend.importer.skip.bed.height.single=true}
unterdr�ckt werden. Es werden die Dateien aus dem Verzeichnis
\textit{Morphologie/Sohlhoehen/Einzeljahre} geladen.

\subsubsection{Sohlh�hen (Epochen)}
Der Import Sohlh�hen-Epochen kann mit \textbf{-Dflys.backend.importer.skip.bed.height.epoch=true}
unterdr�ckt werden. Es werden die Dateien aus dem Verzeichnis
\textit{Morphologie/Sohlhoehen/Epochen} geladen.

\subsubsection{Sedimentdichte}
Der Import der Sedimentdichte kann mit
\textbf{-Dflys.backend.importer.skip.sediment.density=true}
unterdr�ckt werden. Es werden alle Dateien aus dem Verzeichnis
\textit{Morphologie/Sedimentdichte} geladen.

\subsubsection{Morphologische Breite}
Der Import der morphologischen Breite kann mit
\textbf{-Dflys.backend.importer.skip.morphological.width=true}
unterdr�ckt werden. Es werden alle Dateien aus dem Verzeichnis
\textit{Morphologie/morphologische\_Breite} geladen.

\subsubsection{Flie�geschwindigkeit}
Der Import der Flie�geschwindigkeit kann mit
\textbf{-Dflys.backend.importer.skip.flow.velocity=true}
unterdr�ckt werden. Es werden alle Modellrechnungen aus dem Verzeichnis\\
\textit{Morphologie/Geschwindigkeit\_Schubspannung/Modellrechnungen} und\\
\textit{Morphologie/Geschwindigkeit\_Schubspannung/v-Messungen} geladen.

\subsubsection{Sedimentfracht}
Der Import der Sedimentfracht kann mit
\textbf{-Dflys.backend.importer.skip.sediment.yield=true}
unterdr�ckt werden. Es werden alle Dateien aus dem Verzeichnis
\textit{Morphologie/Fracht} geladen. Dabei werden die Dateien aus dem
Unterverzeichnissen \textit{Einzeljahre} und \textit{Epochen} entsprechend als
\textit{Einzeljahre} und \textit{Epochen} vermerkt.

\subsubsection{Wasserspiegellagen f�r MINFO}
Der Import der MINFO spezifischen Wasserspiegellagen kann mit\\
\textbf{-Dflys.backend.importer.skip.waterlevels=true}
unterdr�ckt werden. Es werden alle Dateien aus dem Verzeichnis
\textit{Morphologie/Fixierungsanalyse/Wasserspiegellagen} geladen.

\subsubsection{Wasserspiegeldifferenzen f�r MINFO}
Der Import der Wasserspiegellagendifferenzen kann mit\\
\textbf{-Dflys.backend.importer.skip.waterlevel.differences=true}
unterdr�ckt werden. Es werden alle Dateien aus dem Verzeichnis
\textit{Morphologie/Fixierungsanalyse/Wasserspiegeldifferenzen} geladen.

\subsubsection{Transport Abfluss Beziehung}
Der Import der Daten f�r die Transport Abfluss Beziehung kann mit\\
\textbf{flys.backend.importer.skip.sq.relation=true} unterdr�ckt
werden. Es werden alle Dateien unter
\textit{Feststofftransport-Abfluss-Beziehung} geladen.


\subsection{Klassifikation von Streckenfavoriten}
\label{annotation-types}
Streckenfavoriten werden aus KM-Dateien importiert. Um die einzelnen Eintr�ge
einer Kategorie (Br�cke, Pegel, etc.) zuzuordnen, kann eine XML angegeben werden,
in der Regeln f�r diese Klassifikation definiert werden. Schematisch gliedert
sich diese Datei in die zwei Bereiche 'types' und 'patterns':

\begin{lstlisting}
    <annotation>
        <types>
            <type>...</type>
            <type>...</type>
            ...
        </types>
        <patterns>
            <pattern>...</pattern>
            <pattern>...</pattern>
            ...
        </patterns>
    </annotation>
\end{lstlisting}

In der Sektion \textit{types} werden die Kategorien vereinbart, in die klassifiziert
werden soll. Dies geschieht mit entsprechenden Zeilen in der XML Datei. Es folgt
ein Auszug aus einer solchen Datei:

\begin{lstlisting}
  <type name="Pegel"/>
  <type name="Br�cke"/>
  ...
  <type name="Sonstige" default="true"/>
\end{lstlisting}

Das Attribut 'default' darf maximal einmal vergeben werden und besagt, dass diese
Kategorie gew�hlt werden soll, wenn keine andere Kategorie zugeordnet werden kann.

In der Sektion 'patterns' werden dann die Regeln definiert, die einzelne Eintr�ge
den zuvor definierten Kategorien zuordnet. Hierf�r k�nnen zwei Arten von
Definitionen angegeben werden:

\begin{lstlisting}
  <file pattern="^Br�cken$" type="Br�cke"/>
\end{lstlisting}

oder

\begin{lstlisting}
  <line pattern="^Br�cke[:\s].*$" type="Br�cke"/>
\end{lstlisting}

Die erste Variante bestimmt die Kategorie, die pro KM-Datei gelten soll.
\textit{pattern} ist hierbei ein regul�rer Ausdruck, der auf den Dateinamen
angewandt wird. Passt der Name der Datei auf den regul�ren Ausdruck, wird
\textit{type} als Vorgabe angenommen. Treffen mehrere \textit{file}-Regeln zu,
wird der erste Treffer angewandt. Findet keine der \textit{file}-Regeln Anwendung, wird
die Kategorie ausgew�hlt, die in der \textit{types}-Section das Attribut
\textit{default} gesetzt hat.

Die zweite Regel-Variante \textit{line} wird auf jeden Eintrag innerhalb einer KM-Datei
auf den Bezeichner der Streckenfavoriten angewandt. Als Muster dient auch hier
ein regul�rer Ausdruck, der �ber das Attribut \textit{pattern} definiert wird.
Die Kategorie wird im Trefferfall �ber das Attribut \textit{type} bestimmt.
Treffen mehrere Regeln zu, wird die Kategorie gew�hlt, die zum ersten Treffer
geh�rt. Trifft keine Regel zu wird der Eintrag der Kategorie zugeteilt, die f�r
die beinhaltende Datei als Vorgabe gilt.


\subsection{Konfiguration}
\label{configuration}
Zum Starten des Importers ist es notwendig, in der Datei
\textit{contrib/run\_hydr\_morph.sh} die Variablen am Anfang der Datei
anzupassen. Im folgenden werden notwendige und optionale Einstellungen
beschrieben, die beim Starten des Importers ber�cksichtigt werden. Folgende
Einstellungen sind zwangsl�ufig an die bestehende Umgebung anzupassen:

\textbf{INFO\_GEW}
\\Diese Option muss auf eine valide *.gew Datei verweisen (bekannt aus
Desktop-FLYS). Wichtig f�r den Importer sind in dieser Datei die Zeilen, die mit
\textit{WSTDatei:} beginnen. In ihnen wird der Pfad zu der zentralen WST-Datei
des jeweiligen Gew�ssers angegeben. Alle anderen importierten Dateien werden in
ihrer Lage im Dateisystem relativ zur Lage dieser Datei betrachtet.

\textbf{BACKEND\_USER}
\\Der Nutzername, der zum Verbinden zur Datenbank verwendet werden soll.

\textbf{BACKEND\_PASS}
\\Das Passwort, welches in Kombination mit \textbf{BACKEND\_USER} zum Verbinden
zur Datenbank verwendet werden soll.

\textbf{BACKEND\_HOST}
\\Der Datenbank-Host. In der Regel sollte hier \textit{localhost} eingetragen
werden, da es empfohlen wird, den Importer auf dem selben Host zu starten, auf
dem auch die Datenbank l�uft.

\textbf{BACKEND\_PORT}
\\Der Port auf dem die Datenbank zu erreichen ist. Bei einer Oracle XE Instanz
z.B.: \textit{1521}, sofern nicht anders konfiguriert.

\textbf{BACKEND\_NAME}
\\Der Name der Datenbank Instanz. Beispielsweise \textit{XE} bei einer Oracle XE
Instanz.

\textbf{BACKEND\_DB\_PREFIX}
\\Der Pr�fix zum Aufbau einer Datenbankverbindung. F�r Oracle z.B.: \textit{jdbc:oracle:thin:@}.

\textbf{BACKEND\_DB\_DRIVER}
\\Der Name des JDBC-Treibers, der es erlaubt das Protokoll der Datenbank zu
sprechen. Im Falle einer Oracle XE w�re dies z.B.: \textit{oracle.jdbc.OracleDriver}.

\textbf{BACKEND\_DB\_DIALECT}
\\Der Hibernate-Dialekt, den die Datenbank versteht. Im Falle einer Oracle-XE
w�re dies z.B.: \textit{org.hibernate.dialect.OracleDialect}.


Weitere Details zum Verbinden zu einer Oracle Datenbank finden Sie unter\\
\href{http://www.orafaq.com/wiki/JDBC}{http://www.orafaq.com/wiki/JDBC}. Alle weiteren Einstellungen sind
optional anpassbar:

\textbf{LOG4J\_CONFIG}
\\Der Fachdatenimport verwendet die externe Bibliothek \textit{Apache Log4J} zum Loggen
von Informationen. Dazu ist es notwendig eine entsprechende Konfiguration beim
Start anzugeben. \textit{LOG4J\_CONFIG} verweist in diesem Fall auf eine externe
Datei zur Konfiguration von Log4J. Im Standardfall wird die Datei
\textit{conf/log4j.properties} verwendet, welche eine sinnvolle Standardkonfiguration
enth�lt. Sollten Sie diese Konfiguration verwenden, wird beim Import eine
Log-Datei namens \textit{import.log} erstellt, die maximal 100 MB gro� werden
kann. Sollte die Log-Datei gr��er als 100 MB anwachsen, wird die aktuelle Datei
nach \textit{import.log.1} umbenannt und eine neue Datei \textit{import.log}
wird begonnen. Maximal werden 10 Log-Dateien gespeichert. F�r weitere Details
zu Log4J siehe Online Dokumentation unter
\href{http://logging.apache.org/log4j/1.2/}{http://logging.apache.org/log4j/1.2/}


\textbf{IMPORTER\_MAINVALUE\_TYPES}
\\Diese Einstellung erlaubt die Angabe eines Textes, der aus den g�ltigen Typen
f�r Hauptwerte zusammengesetzt ist. \textit{QWTD} ist standardm��ig gesetzt.

\textbf{IMPORTER\_ANNOTATION\_TYPES}
\\Diese Einstellung verweist auf eine Datei (relativ zum Ort der \textit{run.sh}
im Dateisystem), die die m�glichen Typen von Streckenfavoriten und deren Regeln
definiert. Siehe hierzu auch Kapitel \ref{annotation-types}.


Die im folgenden beschriebenen Einstellungen k�nnen jeweils die Werte
\textit{true} oder \textit{false} annehmen und sind optional anzupassen.

\textbf{IMPORTER\_DRY\_RUN}
\\Falls \textit{true} gesetzt wird, wird der Import nur simuliert. Es werden
keine Daten in die Datenbank geschrieben. Dies kann z.B.: zum Ermitteln
potentieller Dateninkonsistenzen sinnvoll sein.

\textbf{IMPORTER\_SKIP\_GAUGES}
\\Wenn \textit{true} gesetzt ist werden keine Pegel- und Stammdaten bearbeitet.

\textbf{IMPORTER\_SKIP\_ANNOTATIONS}
\\Wenn \textit{true} gesetzt ist werden keine Streckenfavoriten bearbeitet.

\textbf{IMPORTER\_SKIP\_WST}
\\Wenn \textit{true} gesetzt ist werden keine WST Dateien bearbeitet.

\textbf{IMPORTER\_SKIP\_PRFS}
\\Wenn \textit{true} gesetzt ist werden keine Querprofilspuren bearbeitet.

\textbf{IMPORTER\_SKIP\_HYKS}
\\Wenn \textit{true} gesetzt ist werden keine HYK Dateien bearbeitet.

\textbf{IMPORTER\_SKIP\_EXTRA\_WST}
\\Wenn \textit{true} gesetzt ist werden keine zus�tzlichen L�ngsschnitte
bearbeitet.

\textbf{IMPORTER\_SKIP\_FIXATIONS}
\\Wenn \textit{true} gesetzt ist werden keine Fixierungen bearbeitet.

\textbf{IMPORTER\_SKIP\_OFFICIAL\_LINES}
\\Wenn \textit{true} gesetzt ist werden keine offiziellen Linien bearbeitet.

\textbf{IMPORTER\_SKIP\_FLOOD\_WATER}
\\Wenn \textit{true} gesetzt ist werden keine Hochwassermarken bearbeitet.

\textbf{IMPORTER\_SKIP\_FLOOD\_PROTECTION}
\\Wenn \textit{true} gesetzt ist werden keine Hochwasserschutzanlagen
bearbeitet.

\textbf{IMPORTER\_SKIP\_BED\_HEIGHT\_SINGLE}
\\Wenn \textit{true} gesetzt ist werden keine mittleren Sohlh�hen (Peilungen) bearbeitet.

\textbf{IMPORTER\_SKIP\_BED\_HEIGHT\_EPOCH}
\\Wenn \textit{true} gesetzt ist werden keine mittleren Sohlh�hen (Epochen)
bearbeitet.

\textbf{IMPORTER\_SKIP\_SEDIMENT\_DENSITY}
\\Wenn \textit{true} gesetzt ist werden keine Dateien zur Sedimentdichte
bearbeitet.

\textbf{IMPORTER\_SKIP\_MORPHOLOGICAL\_WIDTH}
\\Wenn \textit{true} gesetzt ist wird keine morphologische Breite bearbeitet.

\textbf{IMPORTER\_SKIP\_FLOW\_VELOCITY}
\\Wenn \textit{true} gesetzt ist werden keine Flie�geschwindigkeiten bearbeitet.

\textbf{IMPORTER\_SKIP\_SEDIMENT\_YIELD}
\\Wenn \textit{true} gesetzt ist werden keine Sedimentfrachten bearbeitet.

\textbf{IMPORTER\_SKIP\_WATERLEVELS}
\\Wenn \textit{true} gesetzt ist werden keine Wasserspiegellagen f�r MINFO bearbeitet.

\textbf{IMPORTER\_SKIP\_WATERLEVEL\_DIFFERENCES}
\\Wenn \textit{true} gesetzt ist werden keine Wasserspiegellagendifferenzen f�r
MINFO bearbeitet.

\textbf{IMPORTER\_SKIP\_SQ\_RELATION}
\\Wenn \textit{true} gesetzt ist werden keine Daten f�r die Berechnungsart
SQ-Beziehung bearbeitet.



\subsection{Fehler und Warnungen}

\subsubsection{Fehler}

\textbf{error while parsing gew}
\\Die GEW-Datei ist fehlerhaft oder konnte nicht ge�ffnet werden.

\textbf{File 'XYZ' is broken!}
\\Die Datei XYZ ist inkonsistent und f�hrt zu Fehlern.

\textbf{Error while parsing file for morph. width.}
\\Beim Lesen der morphologischen Breite trat ein Fehler auf.

\textbf{Error while storing flow velocity model.}
\\Beim Schreiben eines Flie�geschwindigkeitsmodells trat ein Fehler auf.

\textbf{Error while storing flow velocity measurement.}
\\Beim Schreiben einer Flie�geschwindigkeitsmessung trat ein Fehler auf.

\textbf{Error while storing sediment yield.}
\\Beim Schreiben einer Sedimentablagerung trat ein Fehler auf.

\textbf{Error while storing waterlevel diff.}
\\Beim Schreiben einer Wasserspiegeldifferenz trat ein Fehler auf.

\textbf{Error while storing sq relation.}
\\Beim Schreiben einer S(Q) Beziehung trat ein Fehler auf.

\textbf{Error reading PRF file.}
\\Beim Lesen einer PRF-Datei trat ein Fehler auf.

\textbf{Error closing PRF file.}
\\Beim Schlie�en einer PRF-Datei trat ein Fehler auf.

\textbf{HYK 1: not enough elements in line \#}
\\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.

\textbf{HYK 2: not enough elements in line \#}
\\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.

\textbf{HYK 5: not enough elements in line \#}
\\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.

\textbf{HYK 6: not enough elements in line \#}
\\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.

\textbf{HYK: parsing num zones, bottom or top height failed in line \#}
\\Die Anzahl der Zonen oder Daten �ber die Zonen sind nicht korrekt.

\textbf{HYK: HYK: number of flow zones mismatches in line \#}
\\Die Anzahl der Zonen oder Daten �ber die Zonen sind nicht korrekt.

\textbf{HYK: cannot parse number in line \#}
\\Eine Zahl wurde erwartet.

\textbf{HYK: Error reading file.}
\\Beim Lesen einer HYK-Datei trat ein Fehler auf.

\textbf{HYK: Error closing file.}
\\Beim Schlie�en einer HYK-Datei trat ein Fehler auf.

\subsubsection{Warnungen}
\textbf{annotation type file 'XYZ' is not readable.}
\\Die Datein XYZ kann nicht gelesen werden.

\textbf{cannot parse annotation types file.}
\\W�hrend der Verarbeitung der Annotationsdatei ist Fehler aufgetreten.

\textbf{Cannot read directory.}
\\Verzeichnis konnte nicht gelesen werden.

\textbf{no official lines wst file found}
\\Keine Datei mit amtlichen Linien gefunden.

\textbf{cannot read fixations wst file directory}
\\Das Verzeichnis mit den Fixierungen kann nicht gelesen werden.

\textbf{cannot read extra longitudinal wst file directory}
\\Das Verzeichnis mit den zus�tzlichen L�ngsschnitten kann nicht gelesen werden.

\textbf{cannot read gauges from 'XYZ'}
\\Die Pegelg�ltigkeiten k�nnen nicht gelesen werden.

\textbf{HYK file 'XYZ' seems to be a duplicate.}
\\Die HYK-Datei wurde unter anderem Namen aber gleichen Inhalts bereits
gefunden.

\textbf{PRF file 'XYZ' seems to be a duplicate.}
\\Die PRF-Datei wurde unter anderem Namen aber mit gleichem Inhalt bereits
gefunden.

\textbf{Skip invalid SedimentYield: time interval or unit null!}
\\Eine Sedimentablagerung ist ung�ltig und wurde ausgelassen.

\textbf{skip flow velocity model: No discharge zone specified.}
\\Da kein Abflussbereich angegeben wurde, wurde das Flie�geschwindigkeitsmodell ausgelassen.

\textbf{skip invalid waterlevel - no unit set!}
\\Ein einheitenloser Wasserstand wurde ausgelassen.

\textbf{Cannot parse time range.}
\\Das Zeitformat wurde nicht erkannt.

\textbf{skip invalid data line \#}
\\Ung�ltige Datenzeile wurde ausgelassen.

\textbf{Error while parsing sq relation row \#}
\\Eine Zeile in der S(Q)-Beziehung ist ung�ltig.

\textbf{GLT: no gauge found in line \#}
\\In der GLT-Datei wurde ein Pegel erwartet, aber nicht gefunden.

\textbf{GLT: line \# has not enough columns.}
\\Eine Zeile in der Pegelg�ltigkeitsdatei hat nicht genug Spalten.

\textbf{Error while parsing flow velocity values.}
\\Invalide Datenzeile in einer Datei mit einer Fliessgeschwindigkeitsmessung.

\textbf{skip invalid data line: \#}
\\Invalide Datenzeile in einer Datei mit einer Fliessgeschwindigkeitsmessung.

\textbf{skip invalid waterlevel line: \#}
\\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.

\textbf{Error while parsing value: \#}
\\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.

\textbf{Error while parsing station: \#}
\\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.

\textbf{skip invalid MainValue part: \#}
\\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.

\textbf{skip invalid gauge part: \#}
\\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.

\textbf{Error while parsing Q value: $<Q>$}
\\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.

\textbf{skip invalid data line: \#}
\\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.

\textbf{Error while parsing flow velocity values.}
\\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.

\textbf{Error while parsing number from data row: \#}
\\In der eingelesenen Zeile konnte keine Zahl gefunden werden.

\textbf{Unknown meta line: \#}
\\Invalide Datenzeile in einer Datei mit Sedimentdichten.

\textbf{Error while parsing numbers in: \#}
\\Invalide Datenzeile in einer Datei mit Sedimentdichten.

\textbf{skip invalid data line: \#}
\\Invalide Datenzeile in einer Datei mit Sedimentdichten.

\textbf{Error while parsing numbers in \#}
\\Invalide Datenzeile in einer Datei mit Sedimentdichten.

\textbf{STA file is empty}
\\Stammdatendatei ist leer oder hat zu wenige Zeilen.

\textbf{STA file has not enough lines}
\\Stammdatendatei ist leer oder hat zu wenige Zeilen.

\textbf{STA file is too short}
\\Stammdatendatei ist leer oder hat zu wenige Zeilen.

\textbf{First line in STA file is too short.}
\\Die erste Zeile der Stammdaten ist zu kurz.

\textbf{STA: second line is too short}
\\Die zweite Zeile ist zu kurz.

\textbf{STA: parsing of the datum of the gauge failed}
\\Das Datum in der Stammdatendatei konnte nicht gelesen werden.

\textbf{STA: 'XYZ' is not a valid long number.}
\\Die Pegelnummer ist invalide.

\textbf{STA: Not enough columns for aeo and datum}
\\AEO und Pegelnullpunkt k�nnen nicht ermittelt werden.

\textbf{STA: cannot parse aeo or datum.}
\\AEO oder Pegelnullpunkt sind invalide.

\textbf{STA: value not parseable in line \#}
\\Wert ist nicht als Zahl zu interpretieren.

\textbf{PRF: cannot open file $<FILE>$}
\\Die PRF kann nicht ge�ffnet werden.

\textbf{PRF: file is empty}\\
\textbf{PRF: First line does not look like a PRF data pattern.}\\
\textbf{PRF: premature EOF. Expected integer in line 2}\\
\textbf{PRF: Expected $<num>$ in line 2}\\
\textbf{PRF: invalid integer in line 2}\\
\textbf{PRF: premature EOF. Expected pattern for km extraction}\\
\textbf{PRF: line 4 does not look like a PRF km extraction pattern.}\\
\textbf{PRF: premature EOF. Expected skip row count.}\\
\textbf{PRF: line 5 is not an positive integer.}\\
\textbf{PRF: cannot extract km in line \#}
\\Das PRF-Format ist komplex. Bei oben genannten Fehlern sollten weitere
Information zur genaueren Analyse herangezogen werden.

\textbf{cannot access WST file $FILE$}
\\Die WST-Datei konnte nicht gefunden werden.

\textbf{Found an invalid row in the AT file.}
\\Eine Zeile in einer AT-Datei ist nicht korrekt.

\textbf{AT: invalid number $XYZ$}
\\Eine Zahl wurde erwartet aber nicht gefunden.

\textbf{Try to add Q range without waterlevel!}
\\Q-Bereich ohne Wasserstand gefunden.

\textbf{Error while parsing Q range: \#}
\\Invalider Q-Bereich

\textbf{skip invalid waterlevel line: \#}
\\Ung�ltige Wasserstandslinie

\textbf{Error while parsing number values: \#}
\\Ung�ltige Zahlenwerte.

\textbf{ANN: not enough columns in line \#}
\\Nicht genug Zeichenspalten in KM-Datei

\textbf{ANN: invalid number in line \#}
\\Ung�ltige Zahl.

\textbf{ANN: cannot parse 'Unterkante' in line \#}
\\Die Unterkante in einer KM-Datei konnte nicht gelesen werden.

\textbf{ANN: cannot parse 'Unterkante' or 'Oberkante' in line \#}
\\Unter- oder Oberkannte liegen in einem falschen Format vor.

\textbf{ANN: duplicated annotation 'XYZ' in line \#}
\\Ein Duplikat eines Streckenfavoriten wurde gefunden.

\textbf{ANN: 'XYZ' is not a directory.}
\\Unterverzeichnis konnte nicht ge�ffnet werden.

\textbf{ANN: cannot list directory 'XYZ'}
\\Unterverzeichnis konnte nicht durchsucht werden.

\textbf{BHP: Meta line did not match any known type: \#}
\\Unbekannter Typ.

\textbf{BHP: Error while parsing timeinterval!}
\\Ung�ltiges Zeitinterval.

\textbf{BHP: Error while parsing year!}
\\Ung�ltige Jahresangabe.

\textbf{BHP: Error while parsing sounding width!}
\\Unbekannte Peilungsbreite.

\textbf{BHP: Error while parsing range!}
\\Bereichsangabe fehlerhaft.

\textbf{MWP: Unknown meta line: \#}
\\Meta-Informationen ung�ltig.

\textbf{MWP: skip invalid data line: \#}
\\Ung�ltige Datenzeile wurde �bersprungen.

\textbf{MWP: Error while parsing numbers in \#}
\\Falsche Zahlenformat.

\textbf{ANNCLASS: rule has no name}
\\Klassifizierungsregel f�r Streckenfavoriten hat keinen Namen.

\textbf{ANNCLASS: pattern has no 'pattern' attribute.}
\\Klassifizierungsmuster f�r Streckenfavoriten hat kein Muster.

\textbf{ANNCLASS: pattern has unknown type 'XYZ'}
\\Klassifizierungsmuster f�r Streckenfavoriten konnte keinem Typ zugeordnet werden.

\textbf{ANNCLASS: pattern 'XYZ' is invalid.}
\\Klassifizierungsmuster f�r Streckenfavoriten ist ung�ltig.

\textbf{BSP: Error while parsing data row.}
\\Ung�ltige Datenzeile.

\textbf{SYP: Unknown meta line: \#}
\\Ung�ltige Metadatenzeile.

\textbf{SYP: skip invalid data line \#}
\\Ung�ltige Datenzeile wurde �bersprungen.

\textbf{SYP: Error while parsing numbers in \#}
\\Ung�ltige Zahlenformatierung.

\textbf{SYP: Unknown time interval string 'XYZ'}
\\Falsches Datumformat.

\textbf{SYP: Error while parsing years 'XYZ'}
\\Falsches Jahreszahlformat.

\textbf{SYP: Error while parsing ranges of 'XYZ'}
\\Bereichsangaben fehlerhaft.

\textbf{SYP: Unknown grain fraction 'XYZ'}
\\Unbekannte Kornfraktion.

\textbf{WST: invalid number.}
\\Ung�ltige Zahl.

\textbf{WST: km $km$ ($<Zeile>$) found more than once. $->$ ignored.}
\\Ein Kilometer ist doppelt in einer WST-Datei enthalten.

\textbf{HYK: zone coordinates swapped in line \#}
\\Flie�zonenkordinaten wurden in umgekehrter Reihenfolge angeben.

\textbf{BHS: Skip invalid file 'XYZ'}
\\Die Inhalte der Datei sind ung�ltig.

\textbf{ISQ: Unable to store sq relation value.}
\\S(Q) Beziehung konnte nicht gespeichert werden.

\textbf{ISQ: Cannot determine sq relation without time interval.}
\\Einer S(Q)-Beziehung ist keine zeitliche G�ltigkeit zugeordnet.

\textbf{IWD: skip invalid waterlevel difference - no unit set!}
\\Wasserstandsdifferenz hat keine Einheit.

\textbf{BHE: Skip file - invalid current elevation model.}
\\H�henmodell ung�ltig.

\textbf{BHE: Skip file - invalid time range.}
\\Zeitbereich ung�ltig.

\textbf{BHE: Skip file - invalid km range.}
\\Kilometerbereich ung�ltig.


\subsection{Hinweise zum Betrieb}
Aufgrund des hohen Speicherverbrauchs des Importers wird empfohlen, der JVM
mindestens 8 GiB Hauptspeicher zuzuordnen. Dies kann beim Starten des Java
Prozesses mittels folgendem Parameter '-Xmx8192m' getan werden. Das
Shellskript zum Starten des Importers setzt diesen Wert standardm��ig.
Besonders speicherintensiv ist der Import der HYKs und der PRFs.
Hier ist es unter Umst�nden empfehlenswert, diese in zwei oder drei
Schritten zu importieren. Zuerst die sonstigen hydrologischen Daten importieren;
anschlie�end einen Import-Vorgang ausschlie�lich f�r HYKs starten; anschlie�end
einen Import-Vorgang f�r PRFs starten. Siehe Kapitel \ref{configuration} f�r
weitere Informationen zum Aktivieren/Deaktivieren einzelner Dateitypen beim
Import.


\subsection{Starten des Fachdaten Importers}
\label{start-hydr}
Der Fachdaten Importer wird mit Hilfe eines Shellskripts von einer Konsole
gestartet. Dazu f�hren folgenden Befehl aus:\\

\begin{lstlisting}
    ./run_hydr_morph.sh
\end{lstlisting}

Nachdem der Prompt der Konsole zur�ckkehrt, ist der Import abgeschlossen oder es
ist ein Fehler aufgetreten. Weitere Informationen entnehmen Sie der Log-Datei.

http://dive4elements.wald.intevation.org