Mercurial > dive4elements > river
diff backend/doc/documentation/de/importer-hydr-morph.tex @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-backend/doc/documentation/de/importer-hydr-morph.tex@4f65d833680f |
children | 45e6635ef7f5 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/backend/doc/documentation/de/importer-hydr-morph.tex Thu Apr 25 15:23:37 2013 +0200 @@ -0,0 +1,768 @@ +\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. +