view backend/doc/documentation/de/importer-hydr-morph.tex @ 6693:88bb0c794833

issue1391: Enable GaugeDischarge artifact to directly load a table by its ID This allows us to use the GaugeDischargeArtifact for any discharge tables that we have in our database. The name of the created facet is taken from the ids string as is also usual in the WMS artifacts.
author Andre Heinecke <aheinecke@intevation.de>
date Mon, 29 Jul 2013 12:19:57 +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