Mercurial > dive4elements > river
view backend/doc/documentation/de/importer-hydr-morph.tex @ 8109:2707c3aa1aa7
(issue1681) Handle different grain fraction kinds
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 20 Aug 2014 13:17:03 +0200 |
parents | d86cc6a17b7a |
children | 0ac11615a2a3 |
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} Beim Import wird versucht, Datens�tze nicht zu importieren, die bereits in der Datenbank vorhanden sind. Dies kann aber nicht immer eindeutig bestimmt werden, so dass vor dem Import ge�nderter Daten ein L�schen der entsprechenden Datens�tze in der Datenbank notwendig sein kann, da sonst m�glicherweise aus fachlicher Sicht Duplikate in der Datenbank vorhanden sind, ge�nderte Daten nicht importiert werden oder es zu unerwarteten Fehlern kommt. 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 \textit{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} \label{import_data} In diesem Kapitel werden die verschiedenen Daten aufgelistet und erl�utert, wie sie vom Importer eingelesen werden. \subsubsection{Wasserstandsmodell-Stammdaten und H�henreferenz (Basis-*.wst-Datei)} Mit \textbf{-Dflys.backend.importer.skip.wst=true} kann der der Import von Wasserst�nden der Basis-*.wst-Datei unterdr�ckt werden. Aus der Basis-*.wst-Datei wird auch die H�henreferenz und -einheit des Gew�ssers ausgelesen (z.B. 'NN + m'), sowie die Flie�richtung des Gew�ssers relativ zur Stationierung ermittelt. Der Import dieser Informationen in die Datenbank wird daher ebenfalls durch diese Option unterdr�ckt. Da es sich hierbei um Gew�sser-Stammdaten handelt, kann diese Option erst genutzt werden, wenn sich das Gew�sser bereits in der Datenbank befindet. \subsubsection{Pegel-Stammdaten (PEGEL.GLT, *.at und *.sta-Dateien)} Der Import von Pegel- und Stammdaten kann mit \textbf{'-Dflys.backend.importer.skip.gauges=true'} unterdr�ckt werden. Die PEGEL.GLT-Datei, die neben der Basis-*.wst-Datei liegt, wird zuerst ausgelesen. Es werden nur Stammdaten von Pegeln geladen, die in der PEGEL.GLT-Datei vermerkt sind. Die System-Property \textbf{flys.backend.main.value.types} kann einen String mit g�ltigen Typen von Stammdaten enthalten. Vorbelegt ist \textit{QWTD-}. \subsubsection{Streckenfavoriten (*.km-Dateien)} Der Import der Streckenfavoriten kann mit \textbf{-Dflys.backend.importer.skip.annotations=true} unterdr�ckt werden. Ausgehend vom Verzeichnis \textit{./Hydrologie} des Gew�ssers werden die Verzeichnisse \textit{./Basisdaten}, \textit{./Streckendaten} und \textit{../Morphologie/Streckendaten} nach *.km-Dateien durchsucht. 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 unterbunden werden mit \textbf{-Dflys.backend.importer.skip.bwastr=true}. Beim Import wird davon ausgegangen, dass sich die Datei \textbf{BWASTR\_ID.csv} neben der oder den zu importierenden gew-Dateien befindet. \subsubsection{Historische Abflusstafeln (*.at-Dateien)} Mit \textbf{'-Dflys.backend.importer.skip.historical.discharge.tables=true'} kann der Import von historischen Abflusstafeln 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.} \subsubsection{Zus�tzliche L�ngsschnitte (*.zus, *.wst-Dateien)} Mit \textbf{-Dflys.backend.importer.skip.extra.wsts=true} kann der Import von zus�tzlichen L�ngs\-schnitten unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis \textit{../Zus.L�ngsschnitte} relativ zur \textit{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 \textit{../Fixierungen} relativ zur \textit{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. F�r die Zuordnung zu den Hauptwerten wird zudem die Datei \textit{Amtl\_Linien.config} ben�tigt. \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 von Profilspuren 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.w80s=true} unterdr�ckt werden. Es werden rekursiv alle *.w80-Dateien aus \textit{../../..} relativ zur \textit{gewaesser}.wst-Datei betrachtet. \subsubsection{Profilspuren (*.d50-Dateien)} Der Import von D50-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.da50s=true} unterdr�ckt werden. Es werden rekursiv alle *.d50-Dateien aus \textit{../../..} relativ zur \textit{gewaesser}.wst-Datei betrachtet. \subsubsection{Profilspuren (*.d66-Dateien)} Der Import von D66-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.da66s=true} unterdr�ckt werden. Es werden rekursiv alle *.d66-Dateien aus \textit{../../..} relativ zur \textit{gewaesser}.wst-Datei betrachtet. \subsubsection{Profilspuren (*.csv-Dateien)} Der Import von CSV-Profilspuren kann mit \textbf{-Dflys.backend.importer.skip.w80.csvs=true} unterdr�ckt werden. Es werden rekursiv alle *.csv-Dateien aus \textit{./Geodaesie/Querprofile/QP-Daten} im Verzeichnis des Gew�ssers betrachtet. \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 \textit{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 \textit{gewaesser}.wst-Datei betrachtet. \subsubsection{Hochwasserschutzanlagen (*.zus, *.wst)} Mit \textbf{-Dflys.backend.importer.skip.flood.protection=true} kann der Import von Hochwasserschutzanlagen unterdr�ckt werden. Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis \textit{../HW-Schutzanlagen} relativ zur \textit{gewaesser.wst}-Datei betrachtet. \subsubsection{Messstellen-Stammdaten} Mit \textbf{-Dflys.backend.importer.skip.measurement.stations=true} kann der Import von Messstellen-Stammdaten aus \textit{Morphologie/Basisdaten/Messstellen-Stammdaten.csv} unterdr�ckt werden. \subsubsection{Sohlh�hen (Peilungen)} Mit \textbf{-Dflys.backend.importer.skip.bed.height.single=true} kann der Import von Sohlh�hen-Peilungen unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Sohlhoehen/Einzeljahre} geladen. \subsubsection{Sedimentdichte} Der Import der Sedimentdichte kann mit \textbf{-Dflys.backend.importer.skip.sediment.density=true} unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Sedimentdichte} geladen. \subsubsection{Porosit�t} Der Import der Porosit�tsdaten kann mit \textbf{-Dflys.backend.importer.skip.porosity=true} unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Porositaet} geladen. \subsubsection{Morphologische Breite} Mit \textbf{-Dflys.backend.importer.skip.morphological.width=true} kann der Import der morphologischen Breite unterdr�ckt werden. Es werden alle CSV-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 die CSV-Dateien aus dem Verzeichnis\\ \textit{Morphologie/Geschwindigkeit\_Schubspannung/Modellrechnungen} und\\ \textit{Morphologie/Geschwindigkeit\_Schubspannung/v-Messungen} geladen. \subsubsection{Sedimentfracht an Messstellen} Mit \textbf{-Dflys.backend.importer.skip.sediment.load=true} kann der Import der Sedimentfracht an Messstellen unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Fracht/Messstellen} geladen. Dabei werden die Dateien aus den Unterverzeichnissen \textit{Einzeljahre}, \textit{Epochen} und \textit{amtliche Epochen} entsprechend als \textit{Einzeljahre}, \textit{Epochen} und \textit{amtliche Epochen} gespeichert. \subsubsection{Sedimentfracht (L�ngsschnitt-Daten)} Mit \textbf{-Dflys.backend.importer.skip.sediment.load.ls=true} kann der Import der L�ngsschnitt-Daten (auf freier Strecke) der Sedimentfracht unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Fracht/Laengsschnitte} geladen. Dabei werden die Dateien aus den Unterverzeichnissen \textit{Einzeljahre}, \textit{Epochen} und \textit{amtliche Epochen} entsprechend als \textit{Einzeljahre}, \textit{Epochen} und \textit{amtliche Epochen} gespeichert. \subsubsection{Wasserspiegellagen f�r M-INFO} Mit \textbf{-Dflys.backend.importer.skip.waterlevels=true} kann der Import der f�r M-INFO spezifischen Wasserspiegellagen unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Fixierungsanalyse/Wasserspiegellagen} geladen. \subsubsection{Wasserspiegeldifferenzen f�r M-INFO} Mit \textbf{-Dflys.backend.importer.skip.waterlevel.differences=true} kann der Import der f�r M-INFO spezifischen Wasserspiegeldifferenzen unterdr�ckt werden. Es werden die CSV-Dateien aus dem Verzeichnis \textit{Morphologie/Fixierungsanalyse/Wasserspiegeldifferenzen} geladen. \subsubsection{Transport Abfluss Beziehung} Mit \textbf{flys.backend.importer.skip.sq.relation=true} kann der Import der Daten f�r die Transport Abfluss Beziehung unterdr�ckt werden. Es werden die CSV-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{./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{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\_hydr\_morph.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. Die Log-Dateien k�nnen dann verwendet werden, um Fehler in den Daten vor dem Schreiben in die Datenbank zu ermitteln. Die weiteren Optionen haben selbsterkl�rende Namen und entsprechen je einer System-Property, die in Kapitel \ref{import_data} bereits erl�utert wurde. \subsection{Fehler und Warnungen} Selbsterkl�rende Meldungen sind hier nicht alle aufgef�hrt. \subsubsection{Fehler} \textbf{error while parsing gew} \\Die GEW-Datei ist fehlerhaft oder konnte nicht ge�ffnet werden. \textbf{River not yet in database. You cannot skip importing waterlevel model.} \\\textbf{-Dflys.backend.importer.skip.wst=true} wurde verwendet, obwohl sich das Gew�sser noch nicht in der Datenbank befindet (siehe Kapitel \ref{import_data}). \textbf{WST: Stations in 'XYZ' near line \# not ordered. File rejected.} \\Die Stationen in einer WST-Datei sind nicht konsequent auf- oder absteigend geordnet. Die Datei wird verworfen. \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{No core data file '...' found} \\Keine \textit{Stammdaten\_Messstellen.csv} gefunden. \textbf{No measurement stations found at km \#} \\F�r eine in einer SQ-Beziehungs-Datei gegebene Station liegt keine Messstelle vor. \textbf{No km for measurement station: Can not reference measurement station: ...} \\In der gegebenen Zeile einer SQ-Beziehungs-Datei liegt ist keine Station gegeben. Damit ist keine Zuordnung zu einer Messstelle m�glich. Die Zeile wird verworfen. \textbf{Incomplete SQ-relation row (missing a, b, Qmax or parameter): ...} \\In der gegebenen Zeile einer SQ-Beziehungs-Datei liegt mindestens ein Pflicht-Wert nicht vor. Die Zeile wird verworfen. \textbf{Error while storing sq relation.} \\Beim Schreiben einer S(Q) Beziehung trat ein Fehler auf. \textbf{Unknown bed height type: \#. File ignored.} \\Die gegebene Aufnahmeart ist unbekannt. Die Datei wird ignoriert. \\Bekannte Aufnahmearten: \begin{itemize} \item Querprofile \item Fl�chenpeilung \item Fl�chen- u. Querprofilpeilungen \item DGM \item TIN \item Modell \end{itemize} \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. \textbf{Null Start time will be ignored} \\F�r ein Zeitintervall wurde keine Anfangszeit gegeben. \textbf{Skipping malformed w80csv line \#} \\Die genannte Zeile einer QP-Daten-CSV-Datei wurde verworfen (z.B.\ weil keine H�he gegeben war). \subsubsection{Warnungen} \textbf{No unit given. Waterlevel-model WST-file has to be imported already.} \\Es wird keine H�henreferenz mit dazugeh�riger Einheit importiert. Dies ist nur m�glich, wenn sich die Gew�sser-Stammdaten bereits in der Datenbank befinden (siehe Kapitel \ref{import_data}). \textbf{no unit and height reference found. Using default.} \\Aus einer WST-Datei konnte keine H�henreferenz mit dazugeh�riger Einheit ausgelesen werden. Als Default wird 'm �. unbekannte Referenz' verwendet. Dies hat nur im Falle der Basis-WST-Datei einen Einfluss auf den Import. \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{Invalid bwastr-id line: ...} \\Aus einer Zeile in \textbf{BWASTR\_ID.csv} konnte kein Gew�sser bzw. Bundeswasserstra�en-ID gelesen werden. \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{'XYZ' does not exist. Gauge ignored.} \\Ein in PEGEL.GLT gegebener Pegel wird ignoriert, weil die gegebene *.sta- oder *.at-Datei nicht vorhanden ist. \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 Flie�geschwindigkeitsmessung. \textbf{skip invalid data line: \#} \\Invalide Datenzeile (weniger als acht Spalten) in einer Datei mit einer Flie�geschwindigkeitsmessung. \textbf{Unparseable flow velocity values: ...} \\Invalide Werte in einer Datenzeile einer Flie�geschwindigkeitsmessung. \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: \#} \\Meta-Informationen unbekannt. Werden ignoriert. \textbf{Unparseable numbers in '...'} \\Invalide Zahlen in einer Datenzeile in einer Datei mit Sedimentdichten. \textbf{skip invalid data line: \#} \\Invalide Datenzeile in einer Datei mit Sedimentdichten wird ignoriert. \textbf{SDP: No km nor density given. Skip line} \\Weder Station noch Dichte gegeben in einer Datenzeile in einer Datei mit Sedimentdichten. Zeile wird ignoriert. \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} \\Die Station 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 (meist Kommentare). \textbf{STA: Invalid date ...} \textbf{STA: Invalid start date ...} \textbf{STA: Invalid end date ...} \textbf{STA: Need start date.} \\M�gliche Datumsangabe zu Hauptwert ist kein g�ltiger Zeitraum. \textbf{PRF: cannot open file $<FILE>$} \\Die PRF-Datei kann nicht ge�ffnet werden. \textbf{PRF: First line does not look like a PRF data pattern.} \\Erste Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: premature EOF. Expected integer in line 2} \\Zweite Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: Expected $<num>$ in line 2} \\Zweite Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: invalid integer in line 2} \\Zweite Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: premature EOF. Expected pattern for km extraction} \\Vierte Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: line 4 does not look like a PRF km extraction pattern.} \\Vierte Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: premature EOF. Expected skip row count.} \\F�nfte Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: line 5 is not an positive integer.} \\F�nfte Zeile entspricht nicht der PRF-Spezifikation. \textbf{PRF: cannot extract km in line \#} \\Der gegebenen Zeile konnte die Station nicht entnommen werden. Das PRF-Format ist komplex! Bei oben genannten Fehlern sollten ggf. 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 Wasserstands-Zeile. \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: \#} \\Meta-Informationen unbekannt. Werden ignoriert. \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{BHP: Could not parse sounding width in line '...'. -$>$ Set default value '0'} \\Peilbreite in gegebener Zeile wurde nicht als g�ltige Zahl erkannt. Setze 0. \textbf{Unparseable number in data row: \#} \\In der gegebenen Zeile wurde eine Zahl erwartet, es konnte aber an entsprechender Stelle nichts als solche gelesen werden. \textbf{MWP: Unknown meta line: \#} \\Meta-Informationen unbekannt. Werden ignoriert. \textbf{MWP: skip invalid data line: \#} \\Ung�ltige Datenzeile wurde �bersprungen. \textbf{MWP: unparseable number in data row: \#} \\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{duplicate station '...': -$>$ ignored} \\Duplikat einer Station. Wird ignoriert. \textbf{BSP: unparseable height ...} \\Nicht lesbare Sohlh�he in einer Sohlh�hen-Datei. \textbf{BSP: unparseable uncertainty value ...} \\Nicht lesbare Unsicherheit in einer Sohlh�hen-Datei. \textbf{BSP: unparseable data gap ...} \\Nicht lesbare Datenl�cke in einer Sohlh�hen-Datei. \textbf{BSP: unparseable sounding width ...} \\Nicht lesbare Peilbreite in einer Sohlh�hen-Datei. \textbf{BSP: unparseable width ...} \\Nicht lesbare Breite in einer Sohlh�hen-Datei. \textbf{BSP: unparseable value in data row.} \\Nicht lesbare Werte in einer Sohlh�hen-Datei. \textbf{SYP: Unknown meta line: \#} \\Meta-Informationen unbekannt. Werden ignoriert. \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{WST: String ... could not be interpreted as valid timestamp} \\In einer Kopfzeile einer WST-Datei konnte ein Eintrag nicht als Datum erkannt werden. \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{Unparseable ... in sq relation row: ...} \\Der gegebene Wert in der gegebenen Zeile konnte nicht als Zahl gelesen werden. \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. \textbf{No upper value for range found in ...} \textbf{No range found for measurement station '...'} \\Streckeng�ltigkeit einer Messstelle in \textit{Stammdaten\_Messstellen.csv} ung�ltig. \textbf{invalid gauge found: ...} \\Kein g�ltiger Pegel zur Messstelle gegeben. \textbf{Found invalid observation time ...} \textbf{Observation time date invalid: ...} \textbf{Observation time date not parseable: ...} \\Kein g�ltiger zeitlicher Bezug zur Messstelle gegeben. \textbf{No gauge found for measurement station '...'} \\Der in \textit{Stammdaten\_Messstellen.csv} gegebene Pegel existiert nicht in der Datenbank. \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 folgenden Befehl ausf�hren:\\ \begin{lstlisting} ./run_hydr_morph.sh pfad/zur/beispiel.gew \end{lstlisting} Der �bergebene Pfad 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. Ebenfalls wichtig ist die Zeile beginnend mit \textit{Gew�sser:} in der der Name des Gew�ssers festgelegt wird. Zus�tzlich kann die Datei eine Zeile beginnend mit \textit{uuid:} enthalten. Dahinter kann eine UUID\footnote{\url{http://de.wikipedia.org/wiki/UUID}} stehen, die als eindeutiger Bezeichner des Datensatzes verwendet wird (derzeit f�r die Zuordnung der Darstellung von Gew�ssern in der interaktiven Einstiegskarte zu Datens�tzen in der Datenbank). Nachdem der Prompt der Konsole zur�ckkehrt, ist der Import abgeschlossen oder es ist ein Fehler aufgetreten. Weitere Informationen entnehmen Sie der Log-Datei. Um einen Gew�sserdatensatz in einem Durchlauf (inkl.\ Geodaten) zu importieren, kann auch das Skript \textit{import\_river.sh} verwendet werden. Details zur Verwendung erhalten Sie auf der Kommandozeile mit \begin{lstlisting} ./import_river.sh --help \end{lstlisting} Alternativ k�nnen auch in diesem Skript einige Variablen (\textit{DEFAULT\_*}) angepasst werden. Das Logging kann in diesem Fall nicht wie oben beschrieben �ber \textit{conf/log4j.properties} angepasst werden, da hier mehrere Log-Dateien geschrieben werden m�ssen.