ingo@3661: \section{Fachdatenimport}
ingo@3666: 
ingo@3666: Der Fachdatenimporter dient dazu, hydrologische und morphologische Gew�sserdaten
ingo@3666: aus dem Dateisystem in die FLYS3-Datenbank zu importieren. Das Werkzeug
ingo@3666: orientiert sich hierbei an der Dateihierachie, so wie sie auch von Desktop-FLYS
ingo@3666: ausgelesen wird. Der Import Vorgang ist in zwei Phasen unterteilt:
ingo@3666: 
ingo@3666: \begin{itemize}
ingo@3666:     \item Lesen aller Daten eines Gew�ssers aus dem Dateisystem.
ingo@3666:     \item Schreiben der erfolgreich eingelesenen Daten in die Datenbank.
ingo@3666: \end{itemize}
ingo@3666: 
tom@8410: Beim Import wird versucht, Datens�tze nicht zu importieren,
tom@8410: die bereits in der Datenbank vorhanden sind.
tom@8410: Dies kann aber nicht immer eindeutig bestimmt werden,
tom@8410: so dass vor dem Import ge�nderter Daten
tom@6934: ein L�schen der entsprechenden Datens�tze in der Datenbank notwendig sein kann,
tom@8410: da sonst m�glicherweise aus fachlicher Sicht Duplikate in der Datenbank vorhanden sind,
tom@7325: ge�nderte Daten nicht importiert werden
tom@7325: oder es zu unerwarteten Fehlern kommt.
tom@6934: 
ingo@3666: Sollte beim Lese- oder Schreib-Vorgang eines Gew�ssers ein Fehler auftreten, so
ingo@3666: werden s�mtliche Daten des Gew�ssers verworfen. Beide Phasen zusammen bilden
ingo@3666: somit eine Transaktion.
ingo@3666: 
ingo@3666: \textbf{Hinweis}
tom@6675: \\Der Import geht, wie auch Desktop-FLYS, davon aus, dass die Dateien Latin-1
ingo@3667: encodiert vorliegen! Stellen Sie also sicher, dass das von Ihnen verwendete
ingo@3667: Encoding korrekt ist. Andernfalls ist es m�glich, dass es w�hrend des Imports zu
ingo@3673: unerwarteten Problemen kommt.
ingo@3667: 
ingo@3667: Der Importer ist ein in Java geschriebenes Werkzeug und kann von der Konsole aus
ingo@3667: gestartet werden. S�mtlich Konfigurationen k�nnen �ber sogenannte
ingo@3667: \textit{System-Properties} �bergeben werden. Eine \textit{System-Property} wird
ingo@3667: dabei mittels \textit{-Dkey=value} beim Start �bergeben. Im folgenden Beispiel
ingo@3667: w�rde der Importer mit einer Konfiguration \textit{flys.backend.importer.dry.run},
ingo@3667: welche den Wert \textit{true} gesetzt hat, gestartet.
ingo@3667: 
ingo@3667: \begin{lstlisting}
ingo@3667:     java -Dflys.backend.importer.dry.run=true de.intevation.flys.importer.Importer
ingo@3667: \end{lstlisting}
ingo@3667: 
ingo@3680: Auf gleiche Weise k�nnen dem Importer s�mtliche Optionen zur Konfiguration
tom@6675: beim Start mitgegeben werden. Im Folgenden werden die m�glichen \textit{System-Properties} und
ingo@3667: ihre Auswirkung auf den Import genauer beschrieben. In den Kapiteln
ingo@3667: \ref{configuration} und \ref{start-hydr} wird zur Einfachheit jedoch ein
ingo@3673: Shellskript verwendet, das eine Standardkonfiguration vorgibt und den Importer
ingo@3673: mit allen erforderlichen Konfigurationen startet.
ingo@3666: 
ingo@3666: 
ingo@3666: \subsection{Importierte Daten}
tom@6700: \label{import_data}
tom@6675: In diesem Kapitel werden die verschiedenen Daten aufgelistet und erl�utert, wie sie vom
ingo@3667: Importer eingelesen werden.
ingo@3666: 
tom@6810: \subsubsection{Wasserstandsmodell-Stammdaten und H�henreferenz (Basis-*.wst-Datei)}
tom@8410: Mit \textbf{-Dflys.backend.importer.skip.wst=true} kann der
tom@7433: der Import von Wasserst�nden der Basis-*.wst-Datei unterdr�ckt werden.
tom@8410: Aus der Basis-*.wst-Datei wird auch die H�henreferenz und -einheit
tom@7404: des Gew�ssers ausgelesen (z.B. 'NN + m'),
tom@8410: sowie die Flie�richtung des Gew�ssers relativ zur Stationierung ermittelt.
tom@7404: Der Import dieser Informationen in die Datenbank wird daher ebenfalls durch
tom@6810: diese Option unterdr�ckt.
tom@8410: Da es sich hierbei um Gew�sser-Stammdaten handelt,
tom@6824: kann diese Option erst genutzt werden, wenn sich das Gew�sser bereits
tom@6824: in der Datenbank befindet.
tom@6810: 
tom@7447: \subsubsection{Pegel-Stammdaten (PEGEL.GLT, *.at und *.sta-Dateien)}
tom@6810: Der Import von Pegel- und Stammdaten kann mit \textbf{'-Dflys.backend.importer.skip.gauges=true'}
tom@7447: unterdr�ckt werden. Die PEGEL.GLT-Datei, die neben der Basis-*.wst-Datei liegt, wird zuerst
tom@7447: ausgelesen. Es werden nur Stammdaten von Pegeln geladen, die in der PEGEL.GLT-Datei
tom@6810: vermerkt sind.
tom@6810: 
tom@6810: Die System-Property \textbf{flys.backend.main.value.types} kann einen String
tom@6810: mit g�ltigen Typen von Stammdaten enthalten. Vorbelegt ist \textit{QWTD-}.
tom@6810: 
ingo@3666: \subsubsection{Streckenfavoriten (*.km-Dateien)}
ingo@3673: Der Import der Streckenfavoriten kann mit \textbf{-Dflys.backend.importer.skip.annotations=true}
ingo@3666: unterdr�ckt werden.
tom@8410: Ausgehend vom Verzeichnis \textit{./Hydrologie} des Gew�ssers
tom@7459: werden die Verzeichnisse \textit{./Basisdaten}, \textit{./Streckendaten}
tom@7459: und \textit{../Morphologie/Streckendaten} nach *.km-Dateien durchsucht.
ingo@3666: 
ingo@3667: Zur Klassifikation von Streckenfavoriten muss mittels\\
ingo@3666: \textbf{-Dflys.backend.importer.annotation.types=DATEI} der Pfad zu einer
ingo@3667: XML-Datei angegeben werden. In dieser Datei werden die Typen und Regeln
ingo@3673: festgelegt, anhand derer die Klassifikation w�hrend des Import-Vorgangs
ingo@3667: vorgenommen wird. Details hierzu befinden sich im Kapitel \ref{annotation-types}.
ingo@3666: 
felix@5044: \subsubsection{Bundeswasserstra�en-IDs}
tom@8410: Der Import und die Zuweisung der Bundeswasserstra�en-IDs kann unterbunden werden
tom@6675: mit \textbf{-Dflys.backend.importer.skip.bwastr=true}.
tom@6675: Beim Import wird davon ausgegangen, dass sich die Datei \textbf{BWASTR\_ID.csv}
felix@5044: neben der oder den zu importierenden gew-Dateien befindet.
felix@5044: 
teichmann@4135: \subsubsection{Historische Abflusstafeln (*.at-Dateien)}
tom@8410: Mit \textbf{'-Dflys.backend.importer.skip.historical.discharge.tables=true'}
tom@8410: kann der Import von historischen Abflusstafeln
teichmann@4135: unterdr�ckt werden. Diese Flagge wird nur ausgewertet, wenn �berhaupt
teichmann@4135: Pegel-Daten (siehe oben) importiert werden.
teichmann@4135: 
tom@6671: % Mittels \textbf{-Dflys.backend.sta.parse.gauge.numbers=true} wird versucht, die
tom@6671: % offiziellen Pegelnummern aus den Stammdaten zu extrahieren.
tom@6671: % \textbf{Dies ist mit Vorsicht zu behandeln, denn die meisten STA-Dateien
tom@6671: % enthalten invalide Pegelnummern.}
ingo@3666: 
ingo@3667: \subsubsection{Zus�tzliche L�ngsschnitte (*.zus, *.wst-Dateien)}
tom@6675: Mit \textbf{-Dflys.backend.importer.skip.extra.wsts=true} kann
tom@8410: der Import von zus�tzlichen L�ngs\-schnitten
ingo@3666: unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
tom@8410: \textit{../Zus.L�ngsschnitte} relativ zur
tom@6675: \textit{gewaesser}.wst-Datei betrachtet.
ingo@3666: 
ingo@3667: \subsubsection{Fixierungen (*.wst-Dateien)}
ingo@3673: Der Import von Fixierungen kann mit \textbf{-Dflys.backend.importer.skip.fixations=true}
tom@8410: unterdr�ckt werden. Es werden die *.wst-Dateien aus
tom@6675: \textit{../Fixierungen} relativ zur \textit{gewaesser}.wst-Datei betrachtet.
ingo@3666: 
ingo@3667: \subsubsection{Amtliche Linien (*.wst-Dateien)}
ingo@3673: Der Import von amtlichen Linien kann mit \textbf{-Dflys.backend.importer.skip.official.lines=true}
ingo@3666: unterdr�ckt werden. Es werden die \textit{Amtl\_Linien.wst}-Dateien aus dem
ingo@3666: Verzeichnis \textit{../Basisdaten} und \textit{../Fixierungen} relativ zur
ingo@3673: \textit{gewaesser.wst}-Datei betrachtet.
ingo@3666: 
tom@8410: F�r die Zuordnung zu den Hauptwerten wird zudem die Datei
tom@6675: \textit{Amtl\_Linien.config} ben�tigt.
tom@6673: 
ingo@3667: \subsubsection{Profilspuren (*.prf-Dateien)}
ingo@3673: Der Import von Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.prfs=true}
ingo@3666: unterdr�ckt werden. Es werden rekursiv alle *.prf-Dateien aus \textit{../../..}
tom@8410: relativ zur gewaesser.wst-Datei betrachtet.
tom@6674: 
tom@6674: Vor dem Import von Profilspuren werden mit Hilfe
ingo@3666: eines L�ngen- und eines MD5-Summen-Vergleichs inhaltliche Duplikate
ingo@3666: ausgeschlossen.
ingo@3666: 
felix@5044: \subsubsection{Profilspuren (*.w80-Dateien)}
tom@6674: Der Import von W80-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.w80s=true}
felix@5044: unterdr�ckt werden. Es werden rekursiv alle *.w80-Dateien aus \textit{../../..}
tom@6675: relativ zur \textit{gewaesser}.wst-Datei betrachtet.
tom@6674: 
tom@6674: \subsubsection{Profilspuren (*.d50-Dateien)}
tom@6674: Der Import von D50-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.da50s=true}
tom@6674: unterdr�ckt werden. Es werden rekursiv alle *.d50-Dateien aus \textit{../../..}
tom@6675: relativ zur \textit{gewaesser}.wst-Datei betrachtet.
tom@6674: 
tom@6674: \subsubsection{Profilspuren (*.d66-Dateien)}
tom@6674: Der Import von D66-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.da66s=true}
tom@6674: unterdr�ckt werden. Es werden rekursiv alle *.d66-Dateien aus \textit{../../..}
tom@6675: relativ zur \textit{gewaesser}.wst-Datei betrachtet.
tom@6674: 
tom@6674: \subsubsection{Profilspuren (*.csv-Dateien)}
tom@6674: Der Import von CSV-Profilspuren kann mit
tom@6674: \textbf{-Dflys.backend.importer.skip.w80.csvs=true}
tom@6674: unterdr�ckt werden.
tom@8410: Es werden rekursiv alle *.csv-Dateien aus
tom@8410: \textit{./Geodaesie/Querprofile/QP-Daten} im Verzeichnis des
tom@6674: Gew�ssers betrachtet.
felix@5044: 
ingo@3667: \subsubsection{Hydraulische Kennzahlen (*.hyk)}
ingo@3673: Der Import von hydraulischen Kennzahlen kann mit \textbf{-Dflys.backend.importer.skip.hyks=true} unterdr�ckt
ingo@3666: werden. Es werden rekursiv alle *.hyk-Dateien aus \textit{../../..} relativ zur
tom@6675: \textit{gewaesser}.wst-Datei betrachtet. Vor dem Import werden mit Hilfe eines L�ngen- und
ingo@3666: eines MD5-Summen-Vergleichs inhaltliche Duplikate ausgeschlossen.
ingo@3666: 
ingo@3667: \subsubsection{Hochwassermarken (*.zus, *.wst)}
ingo@3673: Der Import von Hochwassermarken kann mit \textbf{-Dflys.backend.importer.skip.flood.water=true}
ingo@3666: unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
tom@6675: \textit{../HW-Marken} relativ zur \textit{gewaesser}.wst-Datei betrachtet.
ingo@3666: 
tom@6675: \subsubsection{Hochwasserschutzanlagen (*.zus, *.wst)}
tom@6675: Mit \textbf{-Dflys.backend.importer.skip.flood.protection=true}
tom@8410: kann der Import von Hochwasserschutzanlagen
ingo@3666: unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis
ingo@3673: \textit{../HW-Schutzanlagen} relativ zur \textit{gewaesser.wst}-Datei betrachtet.
ingo@3666: 
tom@6696: \subsubsection{Messstellen-Stammdaten}
tom@6699: Mit \textbf{-Dflys.backend.importer.skip.measurement.stations=true}
tom@8410: kann der Import von Messstellen-Stammdaten aus
tom@8410: \textit{Morphologie/Basisdaten/Messstellen-Stammdaten.csv}
tom@6696: unterdr�ckt werden.
tom@6696: 
ingo@3668: \subsubsection{Sohlh�hen (Peilungen)}
tom@7433: Mit \textbf{-Dflys.backend.importer.skip.bed.height.single=true}
tom@8410: kann der Import von Sohlh�hen-Peilungen unterdr�ckt werden.
tom@7433: Es werden die CSV-Dateien aus dem Verzeichnis
ingo@3668: \textit{Morphologie/Sohlhoehen/Einzeljahre} geladen.
ingo@3666: 
ingo@3673: \subsubsection{Sedimentdichte}
ingo@3673: Der Import der Sedimentdichte kann mit
ingo@3673: \textbf{-Dflys.backend.importer.skip.sediment.density=true}
tom@6697: unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis
ingo@3668: \textit{Morphologie/Sedimentdichte} geladen.
ingo@3668: 
rrenkert@7869: \subsubsection{Porosit�t}
rrenkert@7869: Der Import der Porosit�tsdaten kann mit
rrenkert@7869: \textbf{-Dflys.backend.importer.skip.porosity=true}
rrenkert@7869: unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis
rrenkert@7869: \textit{Morphologie/Porositaet} geladen.
rrenkert@7869: 
ingo@3668: \subsubsection{Morphologische Breite}
tom@7433: Mit \textbf{-Dflys.backend.importer.skip.morphological.width=true}
tom@8410: kann der Import der morphologischen Breite unterdr�ckt werden.
tom@7433: Es werden alle CSV-Dateien aus dem Verzeichnis
ingo@3668: \textit{Morphologie/morphologische\_Breite} geladen.
ingo@3668: 
ingo@3668: \subsubsection{Flie�geschwindigkeit}
ingo@3673: Der Import der Flie�geschwindigkeit kann mit
ingo@3673: \textbf{-Dflys.backend.importer.skip.flow.velocity=true}
tom@6697: unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis\\
ingo@3668: \textit{Morphologie/Geschwindigkeit\_Schubspannung/Modellrechnungen} und\\
ingo@3668: \textit{Morphologie/Geschwindigkeit\_Schubspannung/v-Messungen} geladen.
ingo@3668: 
tom@8056: \subsubsection{Sedimentfracht an Messstellen}
tom@8056: Mit
tom@8056: \textbf{-Dflys.backend.importer.skip.sediment.load=true}
tom@8056: kann der Import der Sedimentfracht an Messstellen unterdr�ckt werden.
tom@8056: Es werden die CSV-Dateien aus dem Verzeichnis
tom@8056: \textit{Morphologie/Fracht/Messstellen} geladen.
tom@8056: Dabei werden die Dateien aus den
tom@8056: Unterverzeichnissen \textit{Einzeljahre}, \textit{Epochen}
tom@8056: und \textit{amtliche Epochen} entsprechend als
tom@8056: \textit{Einzeljahre}, \textit{Epochen} und
tom@8056: \textit{amtliche Epochen} gespeichert.
tom@8056: 
tom@8410: Voraussetzung f�r den Import ist, dass die Messstellen-Stammdaten
tom@8410: bereits importiert sind.
tom@8410: 
tom@8032: \subsubsection{Sedimentfracht (L�ngsschnitt-Daten)}
tom@8032: Mit
tom@8032: \textbf{-Dflys.backend.importer.skip.sediment.load.ls=true}
tom@8032: kann der Import der L�ngsschnitt-Daten (auf freier Strecke)
tom@8032: der Sedimentfracht unterdr�ckt werden.
tom@8032: Es werden die CSV-Dateien aus dem Verzeichnis
tom@8410: \textit{Morphologie/Fracht/Laengsschnitte} geladen.
tom@8056: Dabei werden die Dateien aus den
tom@8032: Unterverzeichnissen \textit{Einzeljahre}, \textit{Epochen}
tom@8032: und \textit{amtliche Epochen} entsprechend als
tom@8032: \textit{Einzeljahre}, \textit{Epochen} und
tom@8032: \textit{amtliche Epochen} gespeichert.
ingo@3668: 
tom@6697: \subsubsection{Wasserspiegellagen f�r M-INFO}
tom@7433: Mit \textbf{-Dflys.backend.importer.skip.waterlevels=true}
tom@8410: kann der Import der f�r M-INFO spezifischen Wasserspiegellagen
tom@6697: unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis
ingo@3668: \textit{Morphologie/Fixierungsanalyse/Wasserspiegellagen} geladen.
ingo@3668: 
tom@6697: \subsubsection{Wasserspiegeldifferenzen f�r M-INFO}
tom@7433: Mit \textbf{-Dflys.backend.importer.skip.waterlevel.differences=true}
tom@8410: kann der Import der f�r M-INFO spezifischen Wasserspiegeldifferenzen
tom@6697: unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis
ingo@3668: \textit{Morphologie/Fixierungsanalyse/Wasserspiegeldifferenzen} geladen.
ingo@3668: 
tom@8414: \subsubsection{Transport-Abfluss-Beziehung}
tom@8410: Mit \textbf{flys.backend.importer.skip.sq.relation=true}
tom@8414: kann der Import der Daten f�r die Transport-Abfluss-Beziehung
tom@7433: unterdr�ckt werden. Es werden die CSV-Dateien unter
ingo@3668: \textit{Feststofftransport-Abfluss-Beziehung} geladen.
ingo@3666: 
tom@8414: Voraussetzung f�r den Import ist, dass die Messstellen-Stammdaten
tom@8414: bereits importiert sind.
ingo@3666: 
ingo@3667: \subsection{Klassifikation von Streckenfavoriten}
ingo@3667: \label{annotation-types}
ingo@3667: Streckenfavoriten werden aus KM-Dateien importiert. Um die einzelnen Eintr�ge
ingo@3673: einer Kategorie (Br�cke, Pegel, etc.) zuzuordnen, kann eine XML angegeben werden,
ingo@3667: in der Regeln f�r diese Klassifikation definiert werden. Schematisch gliedert
ingo@3667: sich diese Datei in die zwei Bereiche 'types' und 'patterns':
ingo@3667: 
ingo@3667: \begin{lstlisting}
ingo@3667:     <annotation>
ingo@3667:         <types>
ingo@3667:             <type>...</type>
ingo@3667:             <type>...</type>
ingo@3667:             ...
ingo@3667:         </types>
ingo@3667:         <patterns>
ingo@3667:             <pattern>...</pattern>
ingo@3667:             <pattern>...</pattern>
ingo@3667:             ...
ingo@3667:         </patterns>
ingo@3667:     </annotation>
ingo@3667: \end{lstlisting}
ingo@3667: 
ingo@3673: In der Sektion \textit{types} werden die Kategorien vereinbart, in die klassifiziert
ingo@3673: werden soll. Dies geschieht mit entsprechenden Zeilen in der XML Datei. Es folgt
ingo@3673: ein Auszug aus einer solchen Datei:
ingo@3667: 
ingo@3667: \begin{lstlisting}
ingo@3667:   <type name="Pegel"/>
ingo@3667:   <type name="Br�cke"/>
ingo@3667:   ...
ingo@3667:   <type name="Sonstige" default="true"/>
ingo@3667: \end{lstlisting}
ingo@3667: 
ingo@3673: Das Attribut 'default' darf maximal einmal vergeben werden und besagt, dass diese
ingo@3667: Kategorie gew�hlt werden soll, wenn keine andere Kategorie zugeordnet werden kann.
ingo@3667: 
ingo@3673: In der Sektion 'patterns' werden dann die Regeln definiert, die einzelne Eintr�ge
ingo@3667: den zuvor definierten Kategorien zuordnet. Hierf�r k�nnen zwei Arten von
ingo@3667: Definitionen angegeben werden:
ingo@3667: 
ingo@3667: \begin{lstlisting}
ingo@3667:   <file pattern="^Br�cken$" type="Br�cke"/>
ingo@3667: \end{lstlisting}
ingo@3667: 
ingo@3667: oder
ingo@3667: 
ingo@3667: \begin{lstlisting}
ingo@3667:   <line pattern="^Br�cke[:\s].*$" type="Br�cke"/>
ingo@3667: \end{lstlisting}
ingo@3667: 
ingo@3667: Die erste Variante bestimmt die Kategorie, die pro KM-Datei gelten soll.
ingo@3667: \textit{pattern} ist hierbei ein regul�rer Ausdruck, der auf den Dateinamen
ingo@3667: angewandt wird. Passt der Name der Datei auf den regul�ren Ausdruck, wird
ingo@3673: \textit{type} als Vorgabe angenommen. Treffen mehrere \textit{file}-Regeln zu,
ingo@3673: wird der erste Treffer angewandt. Findet keine der \textit{file}-Regeln Anwendung, wird
ingo@3673: die Kategorie ausgew�hlt, die in der \textit{types}-Section das Attribut
ingo@3667: \textit{default} gesetzt hat.
ingo@3667: 
ingo@3673: Die zweite Regel-Variante \textit{line} wird auf jeden Eintrag innerhalb einer KM-Datei
ingo@3667: auf den Bezeichner der Streckenfavoriten angewandt. Als Muster dient auch hier
ingo@3667: ein regul�rer Ausdruck, der �ber das Attribut \textit{pattern} definiert wird.
ingo@3673: Die Kategorie wird im Trefferfall �ber das Attribut \textit{type} bestimmt.
ingo@3667: Treffen mehrere Regeln zu, wird die Kategorie gew�hlt, die zum ersten Treffer
tom@6699: geh�rt. Trifft keine Regel zu, wird der Eintrag der Kategorie zugeteilt, die f�r
ingo@3667: die beinhaltende Datei als Vorgabe gilt.
ingo@3667: 
ingo@3667: 
ingo@3666: \subsection{Konfiguration}
ingo@3666: \label{configuration}
ingo@3681: Zum Starten des Importers ist es notwendig, in der Datei
tom@7448: \textit{./run\_hydr\_morph.sh} die Variablen am Anfang der Datei
ingo@3681: anzupassen. Im folgenden werden notwendige und optionale Einstellungen
ingo@3681: beschrieben, die beim Starten des Importers ber�cksichtigt werden. Folgende
ingo@3681: Einstellungen sind zwangsl�ufig an die bestehende Umgebung anzupassen:
ingo@3666: 
ingo@3666: \textbf{BACKEND\_USER}
ingo@3666: \\Der Nutzername, der zum Verbinden zur Datenbank verwendet werden soll.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_PASS}
ingo@3666: \\Das Passwort, welches in Kombination mit \textbf{BACKEND\_USER} zum Verbinden
ingo@3666: zur Datenbank verwendet werden soll.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_HOST}
ingo@3666: \\Der Datenbank-Host. In der Regel sollte hier \textit{localhost} eingetragen
ingo@3666: werden, da es empfohlen wird, den Importer auf dem selben Host zu starten, auf
ingo@3666: dem auch die Datenbank l�uft.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_PORT}
ingo@3666: \\Der Port auf dem die Datenbank zu erreichen ist. Bei einer Oracle XE Instanz
ingo@3666: z.B.: \textit{1521}, sofern nicht anders konfiguriert.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_NAME}
ingo@3666: \\Der Name der Datenbank Instanz. Beispielsweise \textit{XE} bei einer Oracle XE
ingo@3666: Instanz.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_DB\_PREFIX}
ingo@3666: \\Der Pr�fix zum Aufbau einer Datenbankverbindung. F�r Oracle z.B.: \textit{jdbc:oracle:thin:@}.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_DB\_DRIVER}
ingo@3666: \\Der Name des JDBC-Treibers, der es erlaubt das Protokoll der Datenbank zu
ingo@3666: sprechen. Im Falle einer Oracle XE w�re dies z.B.: \textit{oracle.jdbc.OracleDriver}.
ingo@3666: 
ingo@3666: \textbf{BACKEND\_DB\_DIALECT}
ingo@3666: \\Der Hibernate-Dialekt, den die Datenbank versteht. Im Falle einer Oracle-XE
ingo@3666: w�re dies z.B.: \textit{org.hibernate.dialect.OracleDialect}.
ingo@3666: 
ingo@3666: 
ingo@3675: Weitere Details zum Verbinden zu einer Oracle Datenbank finden Sie unter\\
tom@8410: \href{http://www.orafaq.com/wiki/JDBC}{http://www.orafaq.com/wiki/JDBC}.
tom@6699: 
tom@6699: Alle weiteren Einstellungen sind optional anpassbar:
ingo@3669: 
ingo@3669: \textbf{LOG4J\_CONFIG}
ingo@3673: \\Der Fachdatenimport verwendet die externe Bibliothek \textit{Apache Log4J} zum Loggen
ingo@3669: von Informationen. Dazu ist es notwendig eine entsprechende Konfiguration beim
ingo@3669: Start anzugeben. \textit{LOG4J\_CONFIG} verweist in diesem Fall auf eine externe
ingo@3669: Datei zur Konfiguration von Log4J. Im Standardfall wird die Datei
ingo@3673: \textit{conf/log4j.properties} verwendet, welche eine sinnvolle Standardkonfiguration
ingo@3669: enth�lt. Sollten Sie diese Konfiguration verwenden, wird beim Import eine
ingo@3669: Log-Datei namens \textit{import.log} erstellt, die maximal 100 MB gro� werden
ingo@3669: kann. Sollte die Log-Datei gr��er als 100 MB anwachsen, wird die aktuelle Datei
ingo@3669: nach \textit{import.log.1} umbenannt und eine neue Datei \textit{import.log}
ingo@3669: wird begonnen. Maximal werden 10 Log-Dateien gespeichert. F�r weitere Details
ingo@3669: zu Log4J siehe Online Dokumentation unter
ingo@3669: \href{http://logging.apache.org/log4j/1.2/}{http://logging.apache.org/log4j/1.2/}
ingo@3666: 
ingo@3666: 
ingo@3666: \textbf{IMPORTER\_MAINVALUE\_TYPES}
ingo@3666: \\Diese Einstellung erlaubt die Angabe eines Textes, der aus den g�ltigen Typen
tom@6699: f�r Hauptwerte zusammengesetzt ist. \textit{QWTD-} ist standardm��ig gesetzt.
ingo@3666: 
ingo@3666: \textbf{IMPORTER\_ANNOTATION\_TYPES}
tom@6700: \\Diese Einstellung verweist auf eine Datei (relativ zum Ort der \textit{run\_hydr\_morph.sh}
ingo@3666: im Dateisystem), die die m�glichen Typen von Streckenfavoriten und deren Regeln
ingo@3666: definiert. Siehe hierzu auch Kapitel \ref{annotation-types}.
ingo@3666: 
ingo@3666: 
ingo@3666: Die im folgenden beschriebenen Einstellungen k�nnen jeweils die Werte
ingo@3666: \textit{true} oder \textit{false} annehmen und sind optional anzupassen.
ingo@3666: 
ingo@3666: \textbf{IMPORTER\_DRY\_RUN}
ingo@3666: \\Falls \textit{true} gesetzt wird, wird der Import nur simuliert. Es werden
tom@6699: keine Daten in die Datenbank geschrieben. Die Log-Dateien k�nnen dann verwendet werden, um Fehler in den Daten vor dem Schreiben in die
tom@6699: Datenbank zu ermitteln.
ingo@3666: 
tom@7448: Die weiteren Optionen haben selbsterkl�rende Namen und
tom@8410: entsprechen je einer System-Property,
tom@7448: die in Kapitel \ref{import_data} bereits erl�utert wurde.
ingo@3666: 
ingo@3666: \subsection{Fehler und Warnungen}
tom@6702: Selbsterkl�rende Meldungen sind hier nicht alle aufgef�hrt.
ingo@3666: 
ingo@3666: \subsubsection{Fehler}
ingo@3666: 
ingo@3666: \textbf{error while parsing gew}
ingo@3666: \\Die GEW-Datei ist fehlerhaft oder konnte nicht ge�ffnet werden.
ingo@3666: 
tom@6824: \textbf{River not yet in database. You cannot skip importing waterlevel model.}
tom@6824: \\\textbf{-Dflys.backend.importer.skip.wst=true} wurde verwendet,
tom@8410: obwohl sich das Gew�sser noch nicht in der Datenbank befindet
tom@6824: (siehe Kapitel \ref{import_data}).
tom@6824: 
tom@7481: \textbf{WST: Stations in 'XYZ' near line \# not ordered. File rejected.}
tom@8410: \\Die Stationen in einer WST-Datei sind nicht konsequent auf- oder
tom@7343: absteigend geordnet. Die Datei wird verworfen.
tom@7343: 
ingo@3666: \textbf{File 'XYZ' is broken!}
ingo@3666: \\Die Datei XYZ ist inkonsistent und f�hrt zu Fehlern.
ingo@3666: 
ingo@3666: \textbf{Error while parsing file for morph. width.}
ingo@3666: \\Beim Lesen der morphologischen Breite trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{Error while storing flow velocity model.}
ingo@3680: \\Beim Schreiben eines Flie�geschwindigkeitsmodells trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{Error while storing flow velocity measurement.}
ingo@3680: \\Beim Schreiben einer Flie�geschwindigkeitsmessung trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{Error while storing sediment yield.}
ingo@3666: \\Beim Schreiben einer Sedimentablagerung trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{Error while storing waterlevel diff.}
ingo@3673: \\Beim Schreiben einer Wasserspiegeldifferenz trat ein Fehler auf.
ingo@3666: 
tom@6715: \textbf{No core data file '...' found}
tom@6742: \\Keine \textit{Stammdaten\_Messstellen.csv} gefunden.
tom@6715: 
tom@6701: \textbf{No measurement stations found at km \#}
tom@6701: \\F�r eine in einer SQ-Beziehungs-Datei gegebene Station liegt
tom@6701: keine Messstelle vor.
tom@6701: 
tom@6702: \textbf{No km for measurement station: Can not reference measurement station: ...}
tom@6702: \\In der gegebenen Zeile einer SQ-Beziehungs-Datei liegt ist keine
tom@6702: Station gegeben. Damit ist keine Zuordnung zu einer Messstelle m�glich.
tom@6702: Die Zeile wird verworfen.
tom@6702: 
tom@6702: \textbf{Incomplete SQ-relation row (missing a, b, Qmax or parameter): ...}
tom@6702: \\In der gegebenen Zeile einer SQ-Beziehungs-Datei liegt mindestens
tom@6702: ein Pflicht-Wert nicht vor. Die Zeile wird verworfen.
tom@6702: 
ingo@3666: \textbf{Error while storing sq relation.}
ingo@3666: \\Beim Schreiben einer S(Q) Beziehung trat ein Fehler auf.
ingo@3666: 
tom@6702: \textbf{Unknown bed height type: \#. File ignored.}
tom@6702: \\Die gegebene Aufnahmeart ist unbekannt. Die Datei wird ignoriert.
tom@6702: \\Bekannte Aufnahmearten:
tom@6702: \begin{itemize}
tom@6702: \item Querprofile
tom@6702: \item Fl�chenpeilung
tom@6702: \item Fl�chen- u. Querprofilpeilungen
tom@6702: \item DGM
tom@6702: \item TIN
tom@6702: \item Modell
tom@6702: \end{itemize}
tom@6702: 
ingo@3666: \textbf{Error reading PRF file.}
ingo@3666: \\Beim Lesen einer PRF-Datei trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{Error closing PRF file.}
ingo@3680: \\Beim Schlie�en einer PRF-Datei trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{HYK 1: not enough elements in line \#}
ingo@3666: \\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.
ingo@3666: 
ingo@3666: \textbf{HYK 2: not enough elements in line \#}
ingo@3666: \\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.
ingo@3666: 
ingo@3666: \textbf{HYK 5: not enough elements in line \#}
ingo@3666: \\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.
ingo@3666: 
ingo@3666: \textbf{HYK 6: not enough elements in line \#}
ingo@3666: \\Eine Zeile in einer HYK-Datei hat nicht gen�gend Elemente.
ingo@3666: 
ingo@3666: \textbf{HYK: parsing num zones, bottom or top height failed in line \#}
ingo@3666: \\Die Anzahl der Zonen oder Daten �ber die Zonen sind nicht korrekt.
ingo@3666: 
ingo@3666: \textbf{HYK: HYK: number of flow zones mismatches in line \#}
ingo@3666: \\Die Anzahl der Zonen oder Daten �ber die Zonen sind nicht korrekt.
ingo@3666: 
ingo@3666: \textbf{HYK: cannot parse number in line \#}
ingo@3666: \\Eine Zahl wurde erwartet.
ingo@3666: 
ingo@3666: \textbf{HYK: Error reading file.}
ingo@3666: \\Beim Lesen einer HYK-Datei trat ein Fehler auf.
ingo@3666: 
ingo@3666: \textbf{HYK: Error closing file.}
ingo@3680: \\Beim Schlie�en einer HYK-Datei trat ein Fehler auf.
ingo@3666: 
tom@6702: \textbf{Null Start time will be ignored}
tom@6702: \\F�r ein Zeitintervall wurde keine Anfangszeit gegeben.
tom@6702: 
tom@6762: \textbf{Skipping malformed w80csv line \#}
tom@8410: \\Die genannte Zeile einer QP-Daten-CSV-Datei wurde verworfen
tom@6762: (z.B.\ weil keine H�he gegeben war).
tom@6762: 
ingo@3666: \subsubsection{Warnungen}
tom@6824: \textbf{No unit given. Waterlevel-model WST-file has to be imported already.}
tom@6824: \\Es wird keine H�henreferenz mit dazugeh�riger Einheit importiert.
tom@6824: Dies ist nur m�glich, wenn sich die Gew�sser-Stammdaten bereits
tom@6824: in der Datenbank befinden (siehe Kapitel \ref{import_data}).
tom@6824: 
tom@6809: \textbf{no unit and height reference found. Using default.}
tom@8410: \\Aus einer WST-Datei konnte keine H�henreferenz
tom@8410: mit dazugeh�riger Einheit ausgelesen werden.
tom@6809: Als Default wird 'm �. unbekannte Referenz' verwendet.
tom@6809: Dies hat nur im Falle der Basis-WST-Datei einen Einfluss auf den Import.
tom@6809: 
ingo@3666: \textbf{annotation type file 'XYZ' is not readable.}
ingo@3666: \\Die Datein XYZ kann nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{cannot parse annotation types file.}
ingo@3666: \\W�hrend der Verarbeitung der Annotationsdatei ist Fehler aufgetreten.
ingo@3666: 
ingo@3666: \textbf{Cannot read directory.}
ingo@3666: \\Verzeichnis konnte nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{no official lines wst file found}
ingo@3666: \\Keine Datei mit amtlichen Linien gefunden.
ingo@3666: 
tom@6715: \textbf{Invalid bwastr-id line: ...}
tom@6715: \\Aus einer Zeile in \textbf{BWASTR\_ID.csv} konnte kein Gew�sser bzw.
tom@6715: Bundeswasserstra�en-ID gelesen werden.
tom@6715: 
ingo@3666: \textbf{cannot read fixations wst file directory}
ingo@3666: \\Das Verzeichnis mit den Fixierungen kann nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{cannot read extra longitudinal wst file directory}
ingo@3666: \\Das Verzeichnis mit den zus�tzlichen L�ngsschnitten kann nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{cannot read gauges from 'XYZ'}
ingo@3666: \\Die Pegelg�ltigkeiten k�nnen nicht gelesen werden.
ingo@3666: 
tom@7447: \textbf{'XYZ' does not exist. Gauge ignored.}
tom@8410: \\Ein in PEGEL.GLT gegebener Pegel wird ignoriert,
tom@7447: weil die gegebene *.sta- oder *.at-Datei nicht vorhanden ist.
tom@7447: 
ingo@3666: \textbf{HYK file 'XYZ' seems to be a duplicate.}
ingo@3666: \\Die HYK-Datei wurde unter anderem Namen aber gleichen Inhalts bereits
ingo@3666: gefunden.
ingo@3666: 
ingo@3666: \textbf{PRF file 'XYZ' seems to be a duplicate.}
ingo@3666: \\Die PRF-Datei wurde unter anderem Namen aber mit gleichem Inhalt bereits
ingo@3666: gefunden.
ingo@3666: 
ingo@3666: \textbf{Skip invalid SedimentYield: time interval or unit null!}
ingo@3666: \\Eine Sedimentablagerung ist ung�ltig und wurde ausgelassen.
ingo@3666: 
ingo@3666: \textbf{skip flow velocity model: No discharge zone specified.}
ingo@3666: \\Da kein Abflussbereich angegeben wurde, wurde das Flie�geschwindigkeitsmodell ausgelassen.
ingo@3666: 
ingo@3666: \textbf{skip invalid waterlevel - no unit set!}
ingo@3666: \\Ein einheitenloser Wasserstand wurde ausgelassen.
ingo@3666: 
ingo@3666: \textbf{Cannot parse time range.}
ingo@3666: \\Das Zeitformat wurde nicht erkannt.
ingo@3666: 
ingo@3666: \textbf{skip invalid data line \#}
ingo@3666: \\Ung�ltige Datenzeile wurde ausgelassen.
ingo@3666: 
ingo@3666: \textbf{Error while parsing sq relation row \#}
ingo@3666: \\Eine Zeile in der S(Q)-Beziehung ist ung�ltig.
ingo@3666: 
ingo@3666: \textbf{GLT: no gauge found in line \#}
ingo@3666: \\In der GLT-Datei wurde ein Pegel erwartet, aber nicht gefunden.
ingo@3666: 
ingo@3666: \textbf{GLT: line \# has not enough columns.}
ingo@3673: \\Eine Zeile in der Pegelg�ltigkeitsdatei hat nicht genug Spalten.
ingo@3666: 
ingo@3666: \textbf{Error while parsing flow velocity values.}
tom@6715: \\Invalide Datenzeile in einer Datei mit einer Flie�geschwindigkeitsmessung.
ingo@3666: 
ingo@3666: \textbf{skip invalid data line: \#}
tom@6715: \\Invalide Datenzeile (weniger als acht Spalten)
tom@6715: in einer Datei mit einer Flie�geschwindigkeitsmessung.
tom@6715: 
tom@6715: \textbf{Unparseable flow velocity values: ...}
tom@6715: \\Invalide Werte in einer Datenzeile einer Flie�geschwindigkeitsmessung.
ingo@3666: 
ingo@3666: \textbf{skip invalid waterlevel line: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.
ingo@3666: 
ingo@3666: \textbf{Error while parsing value: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.
ingo@3666: 
ingo@3666: \textbf{Error while parsing station: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.
ingo@3666: 
ingo@3666: \textbf{skip invalid MainValue part: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.
ingo@3666: 
ingo@3666: \textbf{skip invalid gauge part: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.
ingo@3666: 
ingo@3669: \textbf{Error while parsing Q value: $<Q>$}
ingo@3666: \\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.
ingo@3666: 
ingo@3666: \textbf{skip invalid data line: \#}
ingo@3666: \\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.
ingo@3666: 
ingo@3666: \textbf{Error while parsing flow velocity values.}
ingo@3666: \\Invalide Datenzeile in einer Datei Flie�geschwindigkeitsmodellen.
ingo@3666: 
ingo@3666: \textbf{Error while parsing number from data row: \#}
ingo@3673: \\In der eingelesenen Zeile konnte keine Zahl gefunden werden.
ingo@3666: 
ingo@3666: \textbf{Unknown meta line: \#}
tom@6715: \\Meta-Informationen unbekannt. Werden ignoriert.
ingo@3666: 
tom@6715: \textbf{Unparseable numbers in '...'}
tom@6715: \\Invalide Zahlen in einer Datenzeile in einer Datei mit Sedimentdichten.
ingo@3666: 
ingo@3666: \textbf{skip invalid data line: \#}
tom@6715: \\Invalide Datenzeile in einer Datei mit Sedimentdichten wird ignoriert.
ingo@3666: 
tom@6715: \textbf{SDP: No km nor density given. Skip line}
tom@6715: \\Weder Station noch Dichte gegeben in einer Datenzeile in einer Datei mit Sedimentdichten.
tom@6715: Zeile wird ignoriert.
ingo@3666: 
ingo@3666: \textbf{STA file is empty}
ingo@3666: \\Stammdatendatei ist leer oder hat zu wenige Zeilen.
ingo@3666: 
ingo@3666: \textbf{STA file has not enough lines}
ingo@3666: \\Stammdatendatei ist leer oder hat zu wenige Zeilen.
ingo@3666: 
ingo@3666: \textbf{STA file is too short}
ingo@3666: \\Stammdatendatei ist leer oder hat zu wenige Zeilen.
ingo@3666: 
ingo@3666: \textbf{First line in STA file is too short.}
ingo@3666: \\Die erste Zeile der Stammdaten ist zu kurz.
ingo@3666: 
ingo@3666: \textbf{STA: second line is too short}
ingo@3666: \\Die zweite Zeile ist zu kurz.
ingo@3666: 
ingo@3666: \textbf{STA: parsing of the datum of the gauge failed}
tom@6715: \\Die Station in der Stammdatendatei konnte nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{STA: 'XYZ' is not a valid long number.}
ingo@3666: \\Die Pegelnummer ist invalide.
ingo@3666: 
ingo@3666: \textbf{STA: Not enough columns for aeo and datum}
ingo@3666: \\AEO und Pegelnullpunkt k�nnen nicht ermittelt werden.
ingo@3666: 
ingo@3666: \textbf{STA: cannot parse aeo or datum.}
ingo@3666: \\AEO oder Pegelnullpunkt sind invalide.
ingo@3666: 
ingo@3666: \textbf{STA: value not parseable in line \#}
tom@6715: \\Wert ist nicht als Zahl zu interpretieren (meist Kommentare).
ingo@3666: 
tom@6747: \textbf{STA: Invalid date ...}
tom@6747: \textbf{STA: Invalid start date ...}
tom@6747: \textbf{STA: Invalid end date ...}
tom@6747: \textbf{STA: Need start date.}
tom@6747: \\M�gliche Datumsangabe zu Hauptwert ist kein g�ltiger Zeitraum.
tom@6747: 
ingo@3669: \textbf{PRF: cannot open file $<FILE>$}
tom@6715: \\Die PRF-Datei kann nicht ge�ffnet werden.
ingo@3666: 
tom@6715: \textbf{PRF: First line does not look like a PRF data pattern.}
tom@6715: \\Erste Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: premature EOF. Expected integer in line 2}
tom@6715: \\Zweite Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: Expected $<num>$ in line 2}
tom@6715: \\Zweite Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: invalid integer in line 2}
tom@6715: \\Zweite Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: premature EOF. Expected pattern for km extraction}
tom@6715: \\Vierte Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: line 4 does not look like a PRF km extraction pattern.}
tom@6715: \\Vierte Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: premature EOF. Expected skip row count.}
tom@6715: \\F�nfte Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
tom@6715: \textbf{PRF: line 5 is not an positive integer.}
tom@6715: \\F�nfte Zeile entspricht nicht der PRF-Spezifikation.
tom@6715: 
ingo@3666: \textbf{PRF: cannot extract km in line \#}
tom@6715: \\Der gegebenen Zeile konnte die Station nicht entnommen werden.
tom@6715: 
tom@6715: Das PRF-Format ist komplex! Bei oben genannten Fehlern sollten ggf. weitere
ingo@3669: Information zur genaueren Analyse herangezogen werden.
ingo@3666: 
ingo@3673: \textbf{cannot access WST file $FILE$}
ingo@3666: \\Die WST-Datei konnte nicht gefunden werden.
ingo@3666: 
ingo@3666: \textbf{Found an invalid row in the AT file.}
ingo@3666: \\Eine Zeile in einer AT-Datei ist nicht korrekt.
ingo@3666: 
ingo@3673: \textbf{AT: invalid number $XYZ$}
ingo@3666: \\Eine Zahl wurde erwartet aber nicht gefunden.
ingo@3666: 
ingo@3666: \textbf{Try to add Q range without waterlevel!}
ingo@3666: \\Q-Bereich ohne Wasserstand gefunden.
ingo@3666: 
ingo@3666: \textbf{Error while parsing Q range: \#}
ingo@3666: \\Invalider Q-Bereich
ingo@3666: 
ingo@3666: \textbf{skip invalid waterlevel line: \#}
tom@6715: \\Ung�ltige Wasserstands-Zeile.
ingo@3666: 
ingo@3666: \textbf{Error while parsing number values: \#}
ingo@3666: \\Ung�ltige Zahlenwerte.
ingo@3666: 
ingo@3666: \textbf{ANN: not enough columns in line \#}
ingo@3666: \\Nicht genug Zeichenspalten in KM-Datei
ingo@3666: 
ingo@3666: \textbf{ANN: invalid number in line \#}
ingo@3666: \\Ung�ltige Zahl.
ingo@3666: 
ingo@3666: \textbf{ANN: cannot parse 'Unterkante' in line \#}
ingo@3666: \\Die Unterkante in einer KM-Datei konnte nicht gelesen werden.
ingo@3666: 
ingo@3666: \textbf{ANN: cannot parse 'Unterkante' or 'Oberkante' in line \#}
ingo@3666: \\Unter- oder Oberkannte liegen in einem falschen Format vor.
ingo@3666: 
ingo@3666: \textbf{ANN: duplicated annotation 'XYZ' in line \#}
ingo@3666: \\Ein Duplikat eines Streckenfavoriten wurde gefunden.
ingo@3666: 
ingo@3666: \textbf{ANN: 'XYZ' is not a directory.}
ingo@3666: \\Unterverzeichnis konnte nicht ge�ffnet werden.
ingo@3666: 
ingo@3666: \textbf{ANN: cannot list directory 'XYZ'}
ingo@3666: \\Unterverzeichnis konnte nicht durchsucht werden.
ingo@3666: 
ingo@3666: \textbf{BHP: Meta line did not match any known type: \#}
tom@6715: \\Meta-Informationen unbekannt. Werden ignoriert.
ingo@3666: 
ingo@3666: \textbf{BHP: Error while parsing timeinterval!}
ingo@3666: \\Ung�ltiges Zeitinterval.
ingo@3666: 
ingo@3666: \textbf{BHP: Error while parsing year!}
ingo@3666: \\Ung�ltige Jahresangabe.
ingo@3666: 
ingo@3666: \textbf{BHP: Error while parsing sounding width!}
ingo@3666: \\Unbekannte Peilungsbreite.
ingo@3666: 
ingo@3666: \textbf{BHP: Error while parsing range!}
ingo@3666: \\Bereichsangabe fehlerhaft.
ingo@3666: 
tom@7345: \textbf{BHP: Could not parse sounding width in line '...'. -$>$ Set default value '0'}
tom@6747: \\Peilbreite in gegebener Zeile wurde nicht als g�ltige Zahl erkannt. Setze 0.
tom@6747: 
tom@6715: \textbf{Unparseable number in data row: \#}
tom@8410: \\In der gegebenen Zeile wurde eine Zahl erwartet,
tom@6715: es konnte aber an entsprechender Stelle nichts als solche gelesen werden.
tom@6715: 
ingo@3666: \textbf{MWP: Unknown meta line: \#}
tom@6715: \\Meta-Informationen unbekannt. Werden ignoriert.
ingo@3666: 
ingo@3666: \textbf{MWP: skip invalid data line: \#}
ingo@3666: \\Ung�ltige Datenzeile wurde �bersprungen.
ingo@3666: 
tom@6715: \textbf{MWP: unparseable number in data row: \#}
ingo@3666: \\Falsche Zahlenformat.
ingo@3666: 
ingo@3666: \textbf{ANNCLASS: rule has no name}
ingo@3666: \\Klassifizierungsregel f�r Streckenfavoriten hat keinen Namen.
ingo@3666: 
ingo@3666: \textbf{ANNCLASS: pattern has no 'pattern' attribute.}
ingo@3666: \\Klassifizierungsmuster f�r Streckenfavoriten hat kein Muster.
ingo@3666: 
ingo@3666: \textbf{ANNCLASS: pattern has unknown type 'XYZ'}
ingo@3666: \\Klassifizierungsmuster f�r Streckenfavoriten konnte keinem Typ zugeordnet werden.
ingo@3666: 
ingo@3666: \textbf{ANNCLASS: pattern 'XYZ' is invalid.}
ingo@3666: \\Klassifizierungsmuster f�r Streckenfavoriten ist ung�ltig.
ingo@3666: 
ingo@3666: \textbf{BSP: Error while parsing data row.}
ingo@3666: \\Ung�ltige Datenzeile.
ingo@3666: 
tom@7345: \textbf{duplicate station '...': -$>$ ignored}
tom@6715: \\Duplikat einer Station. Wird ignoriert.
tom@6715: 
tom@6715: \textbf{BSP: unparseable height ...}
tom@6715: \\Nicht lesbare Sohlh�he in einer Sohlh�hen-Datei.
tom@6715: 
tom@6715: \textbf{BSP: unparseable uncertainty value ...}
tom@6715: \\Nicht lesbare Unsicherheit in einer Sohlh�hen-Datei.
tom@6715: 
tom@6715: \textbf{BSP: unparseable data gap ...}
tom@6715: \\Nicht lesbare Datenl�cke in einer Sohlh�hen-Datei.
tom@6715: 
tom@6715: \textbf{BSP: unparseable sounding width ...}
tom@6715: \\Nicht lesbare Peilbreite in einer Sohlh�hen-Datei.
tom@6715: 
tom@6715: \textbf{BSP: unparseable width ...}
tom@6715: \\Nicht lesbare Breite in einer Sohlh�hen-Datei.
tom@6715: 
tom@6715: \textbf{BSP: unparseable value in data row.}
tom@6715: \\Nicht lesbare Werte in einer Sohlh�hen-Datei.
tom@6715: 
ingo@3666: \textbf{SYP: Unknown meta line: \#}
tom@6715: \\Meta-Informationen unbekannt. Werden ignoriert.
ingo@3666: 
ingo@3666: \textbf{SYP: skip invalid data line \#}
ingo@3666: \\Ung�ltige Datenzeile wurde �bersprungen.
ingo@3666: 
ingo@3666: \textbf{SYP: Error while parsing numbers in \#}
ingo@3666: \\Ung�ltige Zahlenformatierung.
ingo@3666: 
ingo@3669: \textbf{SYP: Unknown time interval string 'XYZ'}
ingo@3666: \\Falsches Datumformat.
ingo@3666: 
ingo@3669: \textbf{SYP: Error while parsing years 'XYZ'}
ingo@3666: \\Falsches Jahreszahlformat.
ingo@3666: 
ingo@3669: \textbf{SYP: Error while parsing ranges of 'XYZ'}
ingo@3666: \\Bereichsangaben fehlerhaft.
ingo@3666: 
ingo@3669: \textbf{SYP: Unknown grain fraction 'XYZ'}
ingo@3666: \\Unbekannte Kornfraktion.
ingo@3666: 
ingo@3666: \textbf{WST: invalid number.}
ingo@3666: \\Ung�ltige Zahl.
ingo@3666: 
tom@7345: \textbf{WST: km $km$ ($<Zeile>$) found more than once. -$>$ ignored.}
ingo@3666: \\Ein Kilometer ist doppelt in einer WST-Datei enthalten.
ingo@3666: 
tom@6747: \textbf{WST: String ... could not be interpreted as valid timestamp}
tom@6747: \\In einer Kopfzeile einer WST-Datei konnte ein Eintrag nicht als Datum erkannt werden.
tom@6747: 
ingo@3666: \textbf{HYK: zone coordinates swapped in line \#}
ingo@3666: \\Flie�zonenkordinaten wurden in umgekehrter Reihenfolge angeben.
ingo@3666: 
ingo@3666: \textbf{BHS: Skip invalid file 'XYZ'}
ingo@3666: \\Die Inhalte der Datei sind ung�ltig.
ingo@3666: 
ingo@3666: \textbf{ISQ: Unable to store sq relation value.}
ingo@3666: \\S(Q) Beziehung konnte nicht gespeichert werden.
ingo@3666: 
ingo@3666: \textbf{ISQ: Cannot determine sq relation without time interval.}
ingo@3666: \\Einer S(Q)-Beziehung ist keine zeitliche G�ltigkeit zugeordnet.
ingo@3666: 
tom@6715: \textbf{Unparseable ... in sq relation row: ...}
tom@6715: \\Der gegebene Wert in der gegebenen Zeile konnte nicht als Zahl gelesen werden.
tom@6715: 
ingo@3666: \textbf{IWD: skip invalid waterlevel difference - no unit set!}
ingo@3666: \\Wasserstandsdifferenz hat keine Einheit.
ingo@3666: 
ingo@3666: \textbf{BHE: Skip file - invalid current elevation model.}
ingo@3666: \\H�henmodell ung�ltig.
ingo@3666: 
ingo@3666: \textbf{BHE: Skip file - invalid time range.}
ingo@3666: \\Zeitbereich ung�ltig.
ingo@3666: 
ingo@3666: \textbf{BHE: Skip file - invalid km range.}
ingo@3666: \\Kilometerbereich ung�ltig.
ingo@3666: 
tom@6715: \textbf{No upper value for range found in ...}
tom@6747: \textbf{No range found for measurement station '...'}
tom@6747: \\Streckeng�ltigkeit einer Messstelle in \textit{Stammdaten\_Messstellen.csv} ung�ltig.
tom@6715: 
tom@6715: \textbf{invalid gauge found: ...}
tom@6715: \\Kein g�ltiger Pegel zur Messstelle gegeben.
tom@6715: 
tom@6715: \textbf{Found invalid observation time ...}
tom@6715: \textbf{Observation time date invalid: ...}
tom@6715: \textbf{Observation time date not parseable: ...}
tom@6715: \\Kein g�ltiger zeitlicher Bezug zur Messstelle gegeben.
tom@6715: 
tom@6747: \textbf{No gauge found for measurement station '...'}
tom@6747: \\Der in \textit{Stammdaten\_Messstellen.csv} gegebene Pegel existiert nicht in der Datenbank.
ingo@3666: 
ingo@3666: \subsection{Hinweise zum Betrieb}
ingo@3666: Aufgrund des hohen Speicherverbrauchs des Importers wird empfohlen, der JVM
ingo@3666: mindestens 8 GiB Hauptspeicher zuzuordnen. Dies kann beim Starten des Java
ingo@3666: Prozesses mittels folgendem Parameter '-Xmx8192m' getan werden. Das
ingo@3666: Shellskript zum Starten des Importers setzt diesen Wert standardm��ig.
ingo@3666: Besonders speicherintensiv ist der Import der HYKs und der PRFs.
ingo@3666: Hier ist es unter Umst�nden empfehlenswert, diese in zwei oder drei
ingo@3666: Schritten zu importieren. Zuerst die sonstigen hydrologischen Daten importieren;
ingo@3666: anschlie�end einen Import-Vorgang ausschlie�lich f�r HYKs starten; anschlie�end
ingo@3666: einen Import-Vorgang f�r PRFs starten. Siehe Kapitel \ref{configuration} f�r
ingo@3666: weitere Informationen zum Aktivieren/Deaktivieren einzelner Dateitypen beim
ingo@3666: Import.
ingo@3666: 
ingo@3666: 
ingo@3666: \subsection{Starten des Fachdaten Importers}
ingo@3667: \label{start-hydr}
ingo@3666: Der Fachdaten Importer wird mit Hilfe eines Shellskripts von einer Konsole
tom@7938: gestartet. Dazu folgenden Befehl ausf�hren:\\
ingo@3666: 
ingo@3666: \begin{lstlisting}
tom@6811:     ./run_hydr_morph.sh pfad/zur/beispiel.gew
ingo@3666: \end{lstlisting}
tom@7448: 
tom@6811: Der �bergebene Pfad muss auf eine valide *.gew Datei verweisen (bekannt aus
tom@6811: Desktop-FLYS). Wichtig f�r den Importer sind in dieser Datei die Zeilen, die mit
tom@6811: \textit{WSTDatei:} beginnen. In ihnen wird der Pfad zu der zentralen WST-Datei
tom@6811: des jeweiligen Gew�ssers angegeben. Alle anderen importierten Dateien werden in
tom@6811: ihrer Lage im Dateisystem relativ zur Lage dieser Datei betrachtet.
tom@6811: Ebenfalls wichtig ist die Zeile beginnend mit \textit{Gew�sser:}
tom@6811: in der der Name des Gew�ssers festgelegt wird.
tom@6811: 
tom@7938: Zus�tzlich kann die Datei eine Zeile beginnend mit \textit{uuid:}
tom@7938: enthalten. Dahinter kann eine
tom@7938: UUID\footnote{\url{http://de.wikipedia.org/wiki/UUID}} stehen,
tom@7938: die als eindeutiger Bezeichner des Datensatzes verwendet wird
tom@8410: (derzeit f�r die Zuordnung der Darstellung von Gew�ssern in der
tom@7938: interaktiven Einstiegskarte zu Datens�tzen in der Datenbank).
tom@7938: 
ingo@3673: Nachdem der Prompt der Konsole zur�ckkehrt, ist der Import abgeschlossen oder es
ingo@3673: ist ein Fehler aufgetreten. Weitere Informationen entnehmen Sie der Log-Datei.
ingo@3673: 
tom@8410: Um einen Gew�sserdatensatz in einem Durchlauf (inkl.\ Geodaten)
tom@6698: zu importieren, kann auch das Skript \textit{import\_river.sh} verwendet werden.
tom@6698: 
tom@8410: Details zur Verwendung erhalten Sie auf der Kommandozeile mit
tom@6698: \begin{lstlisting}
tom@6698:     ./import_river.sh --help
tom@6698: \end{lstlisting}
tom@8410: Alternativ k�nnen auch in diesem Skript einige Variablen
tom@6698: (\textit{DEFAULT\_*}) angepasst werden.
tom@7728: Das Logging kann in diesem Fall nicht wie oben beschrieben
tom@7728: �ber \textit{conf/log4j.properties} angepasst werden, da hier
tom@7728: mehrere Log-Dateien geschrieben werden m�ssen.