sascha@3657: FLYS3-Importer sascha@3657: sascha@3657: Der FLYS3-Importer dient dazu, hydrologische und morphologische sascha@3657: Gewässerdaten aus dem Dateisystem in die FLYS3-Datenbank zu importieren. sascha@3657: Das Werkzeug orientiert sich hierbei an der Dateihierachie, sascha@3657: so wie sie auch von Desktop-FLYS ausgelesen wird. sascha@3657: sascha@3657: Als Startargument bekommt der Importer den Pfad zu einer sascha@3657: GEW-Datei übergeben. sascha@3657: sascha@3657: Wichtig für den Importer sind in dieser Datei sascha@3657: die Zeilen, die mit "WSTDatei:" beginnen. In ihnen wird der sascha@3657: Pfad zu der zentralen WST-Datei des jeweiligen Gewässers angegeben. sascha@3657: Alle anderen importierten Dateien werden in ihrer Lage relativ zur sascha@3657: Lage dieser Datei betrachtet. sascha@3657: sascha@3657: Das Verhalten des Importes kann mit sogenannten sascha@3657: System-Properties gesteuert werden. Diese werden im sascha@3657: Allgemeinen in der Form -Dkey=value angegeben. sascha@3657: felix@5029: Will man z.B. mit dem Importer nur einen simulierten Import felix@5029: durchführen (also nicht in die Datenbank geschrieben werden), felix@5029: dann kann dies über die Angabe von sascha@3657: '-Dflys.backend.importer.dry.run=true' erfolgen. sascha@3657: sascha@3657: !!! Der Import geht wie Desktop-FLYS davon aus, dass die Dateien sascha@3657: !!! Latin-1 encodiert vorliegen. sascha@3657: sascha@3657: Für den Importer stellt jeweils der Import eines Gewässers eine sascha@3657: transaktionale Einheit dar. Wird der Import während eines Gewässers sascha@3657: abgebrochen, werden alle Änderungen bzgl. dieses Gewässers zurück gerollt. sascha@3657: sascha@3657: Importierte Daten: sascha@3657: sascha@3657: Der Importer importiert folgende Datentypen: sascha@3657: sascha@3657: - Streckenfavoriten (*.km-Dateien) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.annotations=true' sascha@3657: unterdrückt werden. sascha@3657: sascha@3664: Zur Klassifikation von Streckenfavoriten kann mit sascha@3664: -Dflys.backend.importer.annotation.types=DATEI sascha@3664: der Pfad zu einer XML-Datei angegeben werden, in der über sascha@3664: Regeln festgelegt wird, wie diese geschehen soll. sascha@3664: Details hierzu im Anhang 'Klassifikation von Streckenfavoriten'. sascha@3657: sascha@3657: - Pegel, Stammdaten (*.glt, *.sta-Dateien): sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.gauges=true' sascha@3657: unterdrückt werden. sascha@3665: Die .glt-Datei, die neben der .wst-Datei liegt, wird zuerst sascha@3665: ausgelesen. Es werden nur *.sta-Datei von Pegeln geladen, die sascha@3665: in der .glt-Datei vermerkt sind. sascha@3657: sascha@3660: Wenn "-Dflys.backend.sta.parse.gauge.numbers=true' wird versucht, sascha@3660: die offiziellen Pegelnummern aus den Stammdaten zu extrahieren. sascha@3660: !!! Dies ist mit Vorsicht zu behandeln, denn die meisten STA-Dateien sascha@3660: !!! Enthalten invalide Pegelnummern. sascha@3660: sascha@3660: Die System-Property "flys.backend.main.value.types" kann einen sascha@3662: String mit gültigen Typen von Stammdaten enthalten. Vorbelegt sascha@3660: ist "QWTD". In der Praxis ist "QWD" eine sinnvolle Belegung. sascha@3660: sascha@3657: - Basis-Wasserstände (gewaesser.wst-Dateien): sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.wst=true' sascha@3657: unterdrückt werden. sascha@3657: sascha@3657: - Zusätzliche Längsschnitte (*.zus, *.wst-Dateien) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.extra.wsts=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis sascha@3665: "../Zus.Längsschnitte" relativ zur gewaesser.wst-Datei betrachtet. sascha@3657: sascha@3657: - Fixierungen (*.wst-Dateien) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.fixations=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden die *.wst-Dateien aus dem Verzeichnis sascha@3665: "../Fixierungen" relativ zur gewaesser.wst-Datei betrachtet. sascha@3657: sascha@3657: - Amtliche Linien (*.wst-Dateien) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.official.lines=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden die "Amtl_Linien.wst"-Dateien aus dem Verzeichnis sascha@3665: "../Basisdaten" und "../Fixierungen" relativ zur gewaesser.wst-Datei betrachtet. sascha@3657: sascha@3657: - Profilspuren (*.prf-Dateien) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.prfs=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden rekursiv alle *.prf-Dateien aus "../../.." relativ sascha@3665: zur gewaesser.wst-Datei betrachtet. Vor dem Import werden sascha@3665: mithilfe eines Längen- und eines MD5-Summen-Vergleichs sascha@3665: inhaltliche Duplikate ausgeschlossen. sascha@3657: sascha@3657: - Hydraulische Kennzahlen (*.hyk) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.hyks=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden rekursiv alle *.hyk-Dateien aus "../../.." relativ sascha@3665: zur gewaesser.wst-Datei betrachtet. Vor dem Import werden sascha@3665: mithilfe eines Längen- und eines MD5-Summen-Vergleichs sascha@3665: inhaltliche Duplikate ausgeschlossen. sascha@3657: sascha@3665: - Hochwassermarken (*.zus, *.wst) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.flood.water=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis sascha@3665: "../HW-Marken" relativ zur gewaesser.wst-Datei betrachtet. sascha@3657: sascha@3657: - Hochwasserschutzanlagen (*.zus) sascha@3657: Der Import kann mit '-Dflys.backend.importer.skip.flood.protection=true' sascha@3657: unterdrückt werden. sascha@3665: Es werden die *.zus- und *.wst-Dateien aus dem Verzeichnis sascha@3665: "../HW-Schutzanlagen" relativ zur gewaesser.wst-Datei betrachtet. sascha@3657: sascha@3657: TODO INGO: sascha@3657: sascha@3657: flys.backend.importer.skip.bed.height.single sascha@3657: flys.backend.importer.skip.bed.height.epoch sascha@3657: flys.backend.importer.skip.sediment.density sascha@3657: flys.backend.importer.skip.morphological.width sascha@3657: flys.backend.importer.skip.flow.velocity sascha@3657: flys.backend.importer.skip.sediment.yield sascha@3657: flys.backend.importer.skip.waterlevels sascha@3657: flys.backend.importer.skip.waterlevel.differences sascha@3657: flys.backend.importer.skip.sq.relation sascha@3657: sascha@3663: Für die Verbindung zur Datenbank ist es nötig, dem Import sascha@3663: die Verbindungsdaten zu übergeben. Dies geschieht ebenfalls sascha@3663: über System-Properties: sascha@3657: sascha@3663: -Dflys.backend.user=NUTZER sascha@3663: Datenbanknutzer sascha@3663: sascha@3663: -Dflys.backend.password=PASSWORT sascha@3663: Datenbankpasswort sascha@3663: sascha@3663: -Dflys.backend.url=URL sascha@3663: URL zur Datenbank. Typische wäre im Fall einer Oracle-XE-Edition z.B.: sascha@3663: jdbc:oracle:thin:@//RECHNER:PORT/XE sascha@3663: mit RECHNER Name des Servers, auf dem die Datenbank läuft sascha@3663: und PORT der Port auf dem die Datenbank konkret zu erreichen ist. sascha@3663: Weitere Details unter http://www.orafaq.com/wiki/JDBC sascha@3663: sascha@3663: -Dflys.backend.driver=TREIBER sascha@3663: mit TREIBER dem Namen des JDBC-Treibers, der es erlaubt sascha@3663: das Protokoll der Datenbank zu sprechen. Im Falle sascha@3663: einer Oracle XE wäre dies z.B.: sascha@3663: oracle.jdbc.OracleDriver sascha@3663: sascha@3663: -Dflys.backend.dialect=DIALECT sascha@3663: mit DIALECT dem Hibernate-Dialekt, den die Datenbank versteht. sascha@3663: Im Falle eine Oracle-XE wäre dies z.B.: sascha@3663: org.hibernate.dialect.OracleDialect sascha@3663: sascha@3663: sascha@3663: Hinweise zum Betrieb: sascha@3663: --------------------- sascha@3662: sascha@3662: Der Speicherverbrauch des Importers ist sehr hoch. Es ist empfehlenswert, sascha@3662: der JVM mindestens 8GiB Hauptspeicher zuzuordnen: '-Xmx8192m' sascha@3662: Besonders speicherintensiv ist der Import der HYKs und der PRFs. sascha@3662: Hier ist es unter Umständen empfehlenswert, diese in zwei oder drei sascha@3662: Schritten zu importieren. Zuerst die sonstigen hydrologischen Daten sascha@3662: (hierbei mit flys.backend.importer.skip.hyks=true und flys.backend.importer.skip.prfs sascha@3662: den Import der HYKs und PRFs verhindern). Dann die HYKs (mit flys.backend.importer.skip.* sascha@3662: der anderen Daten) und im finalen Schritt dann die PRFs. sascha@3662: sascha@3664: Anhang 'Klassifikation von Streckenfavoriten' sascha@3664: --------------------------------------------- sascha@3664: Streckenfavoriten werden aus KM-Dateien importiert. Um die einzelnen Einträge sascha@3664: eine Kategorie (Brücken, Pegel, etc.) zuzuordnen, kann eine XML angegeben werden, sascha@3664: in der Regeln für diese Klassifikation definiert werden. Schematisch gliedert sascha@3664: sich diese Datei in die zwei Bereiche 'types' und 'patterns': sascha@3664: sascha@3664: sascha@3664: ... sascha@3664: ... sascha@3664: sascha@3664: sascha@3664: In der Sektion 'types' werden die Kategorien vereinbart, in die sascha@3664: klassifiziert werden sollen. Die geschieht mit einzelnen sascha@3664: sascha@3664: sascha@3664: sascha@3664: ... sascha@3664: sascha@3664: sascha@3664: Das Attribut 'default' kann einmal vergeben werden und sascha@3664: besagt, dass diese Kategorie gewählt werden soll, wenn sascha@3664: keine andere Kategorie zugeordnet werden kann. sascha@3664: sascha@3664: In der Sektion 'patterns' werden dann die Regel sascha@3664: definiert, die einzelne Einträge den definierten Kategorien sascha@3664: zuordnet. Hierfür können zwei Arten von Definitionen sascha@3664: angegeben werden: sascha@3664: sascha@3664: sascha@3664: sascha@3664: oder sascha@3664: sascha@3664: sascha@3664: sascha@3664: Die erste Variante bestimmt die Kategorie, die pro KM-Datei sascha@3664: gelten soll. 'pattern' ist hierbei ein regulärer Ausdruck, sascha@3664: der auf den Dateinamen angewandt wird. Passt der Name sascha@3664: der Datei auf den regulären Ausdruck, wird 'type' als sascha@3664: Vorgabe angenommen. Treffen mehrere -Regeln zu, sascha@3664: wird der erste Treffer angewandt. Findet keine der -Regeln sascha@3664: Anwendung, wird die Kategorie ausgewählt, die in der -Section sascha@3664: das Attribut 'default' gesetzt hat. sascha@3664: sascha@3664: Die zweite Regel-Variante wird auf jeden Eintrag sascha@3664: innerhalb einer KM-Datei auf den Bezeichner der Streckenfavoriten sascha@3664: angewandt. Als Muster dient auch hier ein regulärer Ausdruck, sascha@3664: der über das Attribut 'pattern' definiert wird. Die Kategorie sascha@3664: wird in Trefferfall über das Attribut 'type' bestimmt. Treffen sascha@3664: mehrere Regeln zu, wird die Kategorie gewählt, die zum ersten sascha@3664: Treffer gehört. Trifft keine Regel zu wird der Eintrag der sascha@3664: Kategorie zugeteilt, die für die beinhaltende Datei als Vorgabe sascha@3664: gilt. sascha@3664: sascha@3664: Anhang 'Fehler und Warnungen': sascha@3664: ============================= sascha@3657: sascha@3660: Fehler: sascha@3660: ------- sascha@3659: sascha@3659: - 'error while parsing gew' sascha@3659: Die GEW-Datei ist fehlerhaft oder konnte nicht geöffnet werden. sascha@3659: sascha@3659: - 'File 'XYZ' is broken!' sascha@3659: Die Datei XYZ ist inkonsistent und führt zu Fehlern. sascha@3659: sascha@3659: - 'Error while parsing file for morph. width.' sascha@3659: Beim Lesen der morphologischen Breite trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error while storing flow velocity model.' sascha@3659: Beim Schreiben eines Fliessgeschwindigkeitsmodells trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error while storing flow velocity measurement.' sascha@3659: Beim Schreiben einer Fliessgeschwindigkeitsmessung trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error while storing sediment yield.' sascha@3659: Beim Schreiben einer Sedimentablagerung trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error while storing waterlevel diff.' sascha@3659: Beim Schreiben einer Wassspiegeldifferenz trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error while storing sq relation.' sascha@3659: Beim Schreiben einer S(Q) Beziehung trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error reading PRF file.' sascha@3659: Beim Lesen einer PRF-Datei trat ein Fehler auf. sascha@3659: sascha@3659: - 'Error closing PRF file.' sascha@3659: Beim Schliessen einer PRF-Datei trat ein Fehler auf. sascha@3659: sascha@3659: - 'HYK 1: not enough elements in line #' sascha@3659: - 'HYK 2: not enough elements in line #' sascha@3659: - 'HYK 5: not enough elements in line #' sascha@3659: - 'HYK 6: not enough elements in line #' sascha@3659: Eine Zeile in einer HYK-Datei hat nicht genügend Elemente. sascha@3659: sascha@3659: - 'HYK: parsing num zones, bottom or top height failed in line #' sascha@3659: - 'HYK: HYK: number of flow zones mismatches in line #' sascha@3659: Die Anzahl der Zonen oder Daten über die Zonen sind nicht korrekt. sascha@3659: sascha@3659: - 'HYK: cannot parse number in line #' sascha@3659: Eine Zahl wurde erwartet. sascha@3659: sascha@3659: - 'HYK: Error reading file.' sascha@3659: Beim Lesen einer HYK-Datei trat ein Fehler auf. sascha@3659: sascha@3659: - 'HYK: Error closing file.' sascha@3659: Beim Schliessen einer HYK-Datei trat ein Fehler auf. sascha@3659: sascha@3660: Warnungen: sascha@3660: ---------- sascha@3659: sascha@3660: - 'annotation type file 'XYZ' is not readable.' sascha@3660: Die Datein XYZ kann nicht gelesen werden. sascha@3659: sascha@3660: - 'cannot parse annotation types file.' sascha@3660: Während der Verarbeitung der Annotationsdatei ist Fehler aufgetreten. sascha@3660: sascha@3660: - 'Cannot read directory.' sascha@3660: verzeichnis konnte nicht gelesen werden. sascha@3660: sascha@3660: - 'no official lines wst file found' sascha@3660: Keine Datei mit amtlichen Linien gefunden. sascha@3660: sascha@3660: - 'cannot read fixations wst file directory' sascha@3660: Das Verzeichnis mit den Fixierungen kann nicht gelesen werden. sascha@3660: sascha@3660: - 'cannot read extra longitudinal wst file directory' sascha@3660: Das Verzeichnis mit den zusätzlichen Längsschnitten kann nicht gelesen werden. sascha@3660: sascha@3660: - 'cannot read gauges from 'XYZ'' sascha@3660: Die Pegelgültigkeiten können nicht gelesen werden. sascha@3660: sascha@3660: - 'HYK file 'XYZ' seems to be a duplicate.' sascha@3660: Die HYK-Datei wurde unter anderem Namen aber gleichen Inhalts sascha@3660: bereits gefunden. sascha@3660: sascha@3660: - 'PRF file 'XYZ' seems to be a duplicate.' sascha@3660: Die PRF-Datei wurde unter anderem Namen aber gleichen Inhalts sascha@3660: bereits gefunden. sascha@3660: sascha@3660: - 'Skip invalid SedimentYield: time interval or unit null!' sascha@3660: Eine Sedimentablagerung ist ungültig und wurde ausgelassen. sascha@3660: sascha@3660: - 'skip flow velocity model: No discharge zone specified.' sascha@3660: Da kein Abflussbereich angegeben wurde, wurde das Fliessgeschwindigkeitsmodell ausgelassen. sascha@3660: sascha@3660: - 'skip invalid waterlevel - no unit set!' sascha@3660: Ein einheitenloser Wasserstand wurde ausgelassen. sascha@3660: sascha@3660: - 'Cannot parse time range.' sascha@3660: Das Zeitformat wurde nicht erkannt. sascha@3660: sascha@3660: - 'skip invalid data line #' sascha@3660: Ungültige Datenzeile wurde ausgelassen. sascha@3660: sascha@3660: - 'Error while parsing sq relation row #' sascha@3660: Eine Zeile in der S(Q)-Beziehung ist ungültig. sascha@3660: sascha@3660: - 'GLT: no gauge found in line #' sascha@3660: In der GLT-Datei wurde ein Pegel erwartet, aber nicht gefunden. sascha@3660: sascha@3660: - 'GLT: line # has not enough columns.' sascha@3660: Eine Zeile in der Pegelgültigkeitsdatei hat nicht genug spalten. sascha@3660: sascha@3660: - 'Error while parsing flow velocity values.' sascha@3660: - 'skip invalid data line: #' sascha@3660: Invalide Datenzeile in einer Datei mit einer Fliessgeschwindigkeitsmessung. sascha@3660: sascha@3660: - 'skip invalid waterlevel line: #' sascha@3660: - 'Error while parsing value: #' sascha@3660: - 'Error while parsing station: #' sascha@3660: Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen. sascha@3660: sascha@3660: - 'skip invalid MainValue part: #' sascha@3660: - 'skip invalid gauge part: #' sascha@3660: - 'Error while parsing Q value: ' sascha@3660: - 'skip invalid data line: #' sascha@3660: - 'Error while parsing flow velocity values.' sascha@3660: Invalide Datenzeile in einer Datei Fliessgeschwindigkeitsmodellen. sascha@3660: sascha@3660: - 'Error while parsing number from data row: #' sascha@3660: TODO INGO sascha@3660: sascha@3660: - 'Unknown meta line: #' sascha@3660: - 'Error while parsing numbers in: #' sascha@3660: - 'skip invalid data line: #' sascha@3660: - 'Error while parsing numbers in #' sascha@3660: Invalide Datenzeile in einer Datei mit Sedimentdichten. sascha@3660: sascha@3660: - 'STA file is empty' sascha@3660: - 'STA file has not enough lines' sascha@3660: - 'STA file is too short' sascha@3660: Stammdatendatei ist leer oder hat zu wenige Zeilen. sascha@3660: sascha@3660: - 'First line in STA file is too short.' sascha@3660: Die erste Zeile der Stammdaten ist zu kurz. sascha@3660: sascha@3660: - 'STA: second line is too short' sascha@3660: Die zweite Zeile ist zu kurz. sascha@3660: sascha@3660: - 'STA: parsing of the datum of the gauge failed' sascha@3660: sascha@3660: - 'STA: 'XYZ' is not a valid long number.' sascha@3660: Die Pegelnummer ist invalide. sascha@3660: sascha@3660: - 'STA: Not enough columns for aeo and datum. sascha@3660: AEO und Pegelnullpunkt können nicht ermittelt werden. sascha@3660: sascha@3660: - 'STA: cannot parse aeo or datum.' sascha@3660: AEO oder Pegelnullpunkt sind invalide. sascha@3660: sascha@3660: - 'STA: value not parseable in line #' sascha@3660: Wert ist nicht als Zahl zu interpretieren. sascha@3660: sascha@3660: - 'PRF: cannot open file ' sascha@3660: Die PRF kann nicht geöffnet werden. sascha@3660: sascha@3660: - PRF: file is empty sascha@3660: - PRF: First line does not look like a PRF data pattern. sascha@3660: - PRF: premature EOF. Expected integer in line 2 sascha@3660: - PRF: Expected in line 2 sascha@3660: - PRF: invalid integer in line 2 sascha@3660: - PRF: premature EOF. Expected pattern for km extraction sascha@3660: - PRF: line 4 does not look like a PRF km extraction pattern. sascha@3660: - PRF: premature EOF. Expected skip row count. sascha@3660: - PRF: line 5 is not an positive integer. sascha@3660: - PRF: cannot extract km in line # sascha@3660: Das PRF-Format ist komplex. Hier sollten weitere Information sascha@3660: zur genaueren Analyse herangezogen werden. sascha@3660: sascha@3660: - 'cannot access WST file ' sascha@3660: Die WST-Datei konnte nicht gefunden werden. sascha@3660: sascha@3660: - 'Found an invalid row in the AT file.' sascha@3660: Eine Zeile in einer AT-Datei ist nicht korrekt. sascha@3660: sascha@3660: - 'AT: invalid number ' sascha@3660: Eine Zahl wurde erwartet aber nicht gefunden. sascha@3660: sascha@3662: - 'Try to add Q range without waterlevel!' sascha@3662: Q-Bereich ohne Wasserstand gefunden. sascha@3657: sascha@3662: - 'Error while parsing Q range: #' sascha@3662: Invalider Q-Bereich sascha@3662: sascha@3662: - 'skip invalid waterlevel line: #' sascha@3662: Ungültige Wasserstandslinie sascha@3662: sascha@3662: - 'Error while parsing number values: #' sascha@3662: Ungültige Zahlenwerte. sascha@3662: sascha@3662: - 'ANN: not enough columns in line #' sascha@3662: Nicht genug Zeichenspalten in KM-Datei sascha@3662: sascha@3662: - 'ANN: invalid number in line #' sascha@3662: Ungültige Zahl. sascha@3662: sascha@3662: - 'ANN: cannot parse 'Unterkante' in line #' sascha@3662: Die Unterkante in einer KM-Datei konnte nicht gelesen werden. sascha@3662: sascha@3662: - 'ANN: cannot parse 'Unterkante' or 'Oberkante' in line #' sascha@3662: Unter- oder Oberkannte liegen in einem falschen Format vor. sascha@3662: sascha@3662: - 'ANN: duplicated annotation 'XYZ' in line #' sascha@3662: Ein Duplikat eines Streckenfavoriten wurde gefunden. sascha@3662: sascha@3662: - 'ANN: 'XYZ' is not a directory.' sascha@3662: Unterverzeichnis konnte nicht geöffnet werden. sascha@3662: sascha@3662: - 'ANN: cannot list directory 'XYZ'' sascha@3662: Unterverzeichnis konnte nicht durchsucht werden. sascha@3662: sascha@3662: - 'BHP: Meta line did not match any known type: #' sascha@3662: Unbekannter Typ. sascha@3662: sascha@3662: - 'BHP: Error while parsing timeinterval!' sascha@3662: Ungültiges Zeitinterval. sascha@3662: sascha@3662: - 'BHP: Error while parsing year!' sascha@3662: Ungültige Jahresangabe. sascha@3662: sascha@3662: - 'BHP: Error while parsing sounding width!' sascha@3662: Unbekannte Peilungsbreite. sascha@3662: sascha@3662: - 'BHP: Error while parsing range!' sascha@3662: Bereichsangabe fehlerhaft. sascha@3662: sascha@3662: - 'MWP: Unknown meta line: #' sascha@3662: Meta-Informationen ungültig. sascha@3662: sascha@3662: - 'MWP: skip invalid data line: #' sascha@3662: Ungültige Datenzeile wurde übersprungen. sascha@3662: sascha@3662: - 'MWP: Error while parsing numbers in #' sascha@3662: Falsche Zahlenformat. sascha@3662: sascha@3662: - 'ANNCLASS: rule has no name' sascha@3662: Klassifizierungsregel für Streckenfavoriten hat keinen Namen. sascha@3662: sascha@3662: - 'ANNCLASS: pattern has no 'pattern' attribute.' sascha@3662: Klassifizierungsmuster für Streckenfavoriten hat kein Muster. sascha@3662: sascha@3662: - 'ANNCLASS: pattern has unknown type 'XYZ'' sascha@3662: Klassifizierungsmuster für Streckenfavoriten konnte keinem Typ zugeordnet werden. sascha@3662: sascha@3662: - 'ANNCLASS: pattern 'XYZ' is invalid.' sascha@3662: Klassifizierungsmuster für Streckenfavoriten ist ungültig. sascha@3662: sascha@3662: - 'BSP: Error while parsing data row.' sascha@3662: Ungültige Datenzeile. sascha@3662: sascha@3662: - 'SYP: Unknown meta line: #' sascha@3662: Ungültige Metadatenzeile. sascha@3662: sascha@3662: - 'SYP: skip invalid data line #' sascha@3662: Ungültige Datenzeile wurde übersprungen. sascha@3662: sascha@3662: - 'SYP: Error while parsing numbers in #' sascha@3662: Ungültige Zahlenformatierung. sascha@3662: sascha@3662: - 'SYP: Unknown time interval string ' sascha@3662: Falsches Datumformat. sascha@3662: sascha@3662: - 'SYP: Error while parsing years ' sascha@3662: Falsches Jahreszahlformat. sascha@3662: sascha@3662: - 'SYP: Error while parsing ranges of ' sascha@3662: Bereichsangaben fehlerhaft. sascha@3662: sascha@3662: - 'SYP: Unknown grain fraction ' sascha@3662: Unbekannte Kornfraktion. sascha@3662: sascha@3662: - 'WST: invalid number.' sascha@3662: Ungültige Zahl. sascha@3662: sascha@3662: - 'WST: km () found more than once. -> ignored.' sascha@3662: Ein Kilometer ist doppelt in einer WST-Datei enthalten. sascha@3662: sascha@3662: - 'HYK: zone coordinates swapped in line #' sascha@3662: Fliesszonenkordinaten wurden in umgekehrter Reihenfolge angeben. sascha@3662: sascha@3662: - 'BHS: Skip invalid file 'XYZ'' sascha@3662: Die Inhalte der Datei sind ungültig. sascha@3662: sascha@3662: - 'ISQ: Unable to store sq relation value.' sascha@3662: S(Q) Beziehung konnte nicht gespeichert werden. sascha@3662: sascha@3662: - 'ISQ: Cannot determine sq relation without time interval.' sascha@3662: Einer S(Q)-Beziehung ist keine zeitliche Gültigkeit zugeordnet. sascha@3662: sascha@3662: - 'IWD: skip invalid waterlevel difference - no unit set!' sascha@3662: Wasserstandsdifferenz hat keine Einheit. sascha@3662: sascha@3662: - 'BHE: Skip file - invalid current elevation model.' sascha@3662: Höhenmodell ungültig. sascha@3662: sascha@3662: - 'BHE: Skip file - invalid time range.' sascha@3662: Zeitbereich ungültig. sascha@3662: sascha@3662: - 'BHE: Skip file - invalid km range.' sascha@3662: Kilometerbereich ungültig. sascha@3662: