changeset 3660:976ead36192d

backend: Mention backend warnings in importer. flys-backend/trunk@5254 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 23 Aug 2012 17:13:47 +0000
parents 36edf9a71cbd
children 3ea5e835ecce
files flys-backend/ChangeLog flys-backend/doc/README.txt flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java flys-backend/src/main/java/de/intevation/flys/importer/parsers/AtFileParser.java flys-backend/src/main/java/de/intevation/flys/importer/parsers/PRFParser.java flys-backend/src/main/java/de/intevation/flys/importer/parsers/PegelGltParser.java flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java
diffstat 7 files changed, 182 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/flys-backend/ChangeLog	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/ChangeLog	Thu Aug 23 17:13:47 2012 +0000
@@ -1,3 +1,14 @@
+2012-08-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
+
+	* doc/README.txt: Added warning messages. TODO: More warnings.
+
+	* src/main/java/de/intevation/flys/importer/parsers/PRFParser.java,
+	  src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java,
+	  src/main/java/de/intevation/flys/importer/parsers/PegelGltParser.java,
+	  src/main/java/de/intevation/flys/importer/parsers/AtFileParser.java,
+	  src/main/java/de/intevation/flys/importer/ImportRiver.java:
+	  Made warnings identifiable.
+
 2012-08-23	Sascha L. Teichmann	<sascha.teichmann@intevation.de>
 
 	* doc/README.txt: Added error messages.
--- a/flys-backend/doc/README.txt	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/doc/README.txt	Thu Aug 23 17:13:47 2012 +0000
@@ -43,6 +43,15 @@
   Der Import kann mit '-Dflys.backend.importer.skip.gauges=true'
   unterdrückt werden.
 
+  Wenn "-Dflys.backend.sta.parse.gauge.numbers=true' wird versucht,
+  die offiziellen Pegelnummern aus den Stammdaten zu extrahieren.
+  !!! Dies ist mit Vorsicht zu behandeln, denn die meisten STA-Dateien
+  !!! Enthalten invalide Pegelnummern.
+
+  Die System-Property "flys.backend.main.value.types" kann einen
+  String mit gültigen Typen von Stamdaten enthalten. Vorbelegt
+  ist "QWTD". In der Praxis ist "QWD" eine sinnvolle Belegung.
+
 - Basis-Wasserstände (gewaesser.wst-Dateien):
   Der Import kann mit '-Dflys.backend.importer.skip.wst=true'
   unterdrückt werden.
@@ -90,8 +99,8 @@
 TODO SLT: Datenbank-Credentials dokumentieren.
 
 
-Fehler und Warnungen:
----------------------
+Fehler:
+-------
 
 - 'error while parsing gew'
   Die GEW-Datei ist fehlerhaft oder konnte nicht geöffnet werden.
@@ -141,12 +150,139 @@
 
 - 'HYK: Error closing file.'
   Beim Schliessen einer HYK-Datei trat ein Fehler auf.
-  
 
-TODO SLT: Warnungen aus separater Datei hier hin.
+Warnungen:
+----------
 
+- 'annotation type file 'XYZ' is not readable.'
+  Die Datein XYZ kann nicht gelesen werden.
 
-Betrie :
+- 'cannot parse annotation types file.'
+  Während der Verarbeitung der Annotationsdatei ist Fehler aufgetreten.
+
+- 'Cannot read directory.'
+  verzeichnis konnte nicht gelesen werden.
+
+- 'no official lines wst file found'
+  Keine Datei mit amtlichen Linien gefunden.
+
+- 'cannot read fixations wst file directory'
+  Das Verzeichnis mit den Fixierungen kann nicht gelesen werden.
+
+- 'cannot read extra longitudinal wst file directory'
+  Das Verzeichnis mit den zusätzlichen Längsschnitten kann nicht gelesen werden.
+
+- 'cannot read gauges from 'XYZ''
+  Die Pegelgültigkeiten können nicht gelesen werden.
+
+- 'HYK file 'XYZ' seems to be a duplicate.'
+  Die HYK-Datei wurde unter anderem Namen aber gleichen Inhalts
+  bereits gefunden.
+
+- 'PRF file 'XYZ' seems to be a duplicate.'
+  Die PRF-Datei wurde unter anderem Namen aber gleichen Inhalts
+  bereits gefunden.
+
+- 'Skip invalid SedimentYield: time interval or unit null!'
+  Eine Sedimentablagerung ist ungültig und wurde ausgelassen.
+
+- 'skip flow velocity model: No discharge zone specified.'
+  Da kein Abflussbereich angegeben wurde, wurde das Fliessgeschwindigkeitsmodell ausgelassen.
+
+- 'skip invalid waterlevel - no unit set!'
+  Ein einheitenloser Wasserstand wurde ausgelassen.
+
+- 'Cannot parse time range.'
+  Das Zeitformat wurde nicht erkannt.
+
+- 'skip invalid data line #'
+  Ungültige Datenzeile wurde ausgelassen.
+
+- 'Error while parsing sq relation row #'
+  Eine Zeile in der S(Q)-Beziehung ist ungültig.
+
+- 'GLT: no gauge found in line #'
+  In der GLT-Datei wurde ein Pegel erwartet, aber nicht gefunden.
+
+- 'GLT: line # has not enough columns.'
+  Eine Zeile in der Pegelgültigkeitsdatei hat nicht genug spalten.
+
+- 'Error while parsing flow velocity values.'
+- 'skip invalid data line: #'
+  Invalide Datenzeile in einer Datei mit einer Fliessgeschwindigkeitsmessung.
+
+- 'skip invalid waterlevel line: #'
+- 'Error while parsing value: #'
+- 'Error while parsing station: #'
+  Invalide Datenzeile in einer Datei mit Wasserstandsdifferenzen.
+
+- 'skip invalid MainValue part: #'
+- 'skip invalid gauge part: #'
+- 'Error while parsing Q value: <Q>'
+- 'skip invalid data line: #'
+- 'Error while parsing flow velocity values.'
+  Invalide Datenzeile in einer Datei Fliessgeschwindigkeitsmodellen.
+
+- 'Error while parsing number from data row: #'
+  TODO INGO
+
+- 'Unknown meta line: #'
+- 'Error while parsing numbers in: #'
+- 'skip invalid data line: #'
+- 'Error while parsing numbers in #'
+  Invalide Datenzeile in einer Datei mit Sedimentdichten.
+
+- 'STA file is empty'
+- 'STA file has not enough lines'
+- 'STA file is too short'
+  Stammdatendatei ist leer oder hat zu wenige Zeilen.
+
+- 'First line in STA file is too short.'
+  Die erste Zeile der Stammdaten ist zu kurz.
+
+- 'STA: second line is too short'
+  Die zweite Zeile ist zu kurz.
+
+- 'STA: parsing of the datum of the gauge failed'
+
+- 'STA: 'XYZ' is not a valid long number.'
+  Die Pegelnummer ist invalide.
+
+- 'STA: Not enough columns for aeo and datum.
+  AEO und Pegelnullpunkt können nicht ermittelt werden.
+
+- 'STA: cannot parse aeo or datum.'
+  AEO oder Pegelnullpunkt sind invalide.
+
+- 'STA: value not parseable in line #'
+  Wert ist nicht als Zahl zu interpretieren.
+  
+- 'PRF: cannot open file <FILE>'
+  Die PRF kann nicht geöffnet werden.
+
+- PRF: file is empty
+- PRF: First line does not look like a PRF data pattern.
+- PRF: premature EOF. Expected integer in line 2
+- PRF: Expected <num> in line 2
+- PRF: invalid integer in line 2
+- PRF: premature EOF. Expected pattern for km extraction
+- PRF: line 4 does not look like a PRF km extraction pattern.
+- PRF: premature EOF. Expected skip row count.
+- PRF: line 5 is not an positive integer.
+- PRF: cannot extract km in line #
+  Das PRF-Format ist komplex. Hier sollten weitere Information
+  zur genaueren Analyse herangezogen werden.
+
+- 'cannot access WST file <FILE>'
+  Die WST-Datei konnte nicht gefunden werden.
+
+- 'Found an invalid row in the AT file.'
+  Eine Zeile in einer AT-Datei ist nicht korrekt.
+
+- 'AT: invalid number <XYZ>'
+  Eine Zahl wurde erwartet aber nicht gefunden.
+
+Betrieb:
 --------
 
     Der Speicherverbrauch des Importers ist sehr hoch. Es ist empfehlenswert,
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java	Thu Aug 23 17:13:47 2012 +0000
@@ -322,7 +322,7 @@
         File[] files = sediment.listFiles();
 
         if (files == null) {
-            log.warn("Cannot parse directory '" + sediment + "'");
+            log.warn("Cannot read directory '" + sediment + "'");
             return;
         }
 
@@ -352,7 +352,7 @@
         File[] files = morphDir.listFiles();
 
         if (files == null) {
-            log.warn("Cannot parse directory '" + morphDir + "'");
+            log.warn("Cannot read directory '" + morphDir + "'");
             return;
         }
 
@@ -385,7 +385,7 @@
         File[] measureFiles = measureDir.listFiles();
 
         if (modelFiles == null) {
-            log.warn("Cannot parse directory '" + modelDir + "'");
+            log.warn("Cannot read directory '" + modelDir + "'");
         }
         else {
             FlowVelocityModelParser parser = new FlowVelocityModelParser();
@@ -399,7 +399,7 @@
         }
 
         if (measureFiles == null) {
-            log.warn("Cannot parse directory '" + measureDir + "'");
+            log.warn("Cannot read directory '" + measureDir + "'");
         }
         else {
             FlowVelocityMeasurementParser parser =
@@ -435,7 +435,7 @@
         SedimentYieldParser parser = new SedimentYieldParser();
 
         if (singles == null || singles.length == 0) {
-            log.warn("Cannot parse directory '" + singleDir + "'");
+            log.warn("Cannot read directory '" + singleDir + "'");
         }
         else {
             for (File file: singles) {
@@ -451,7 +451,7 @@
         }
 
         if (epochs == null || epochs.length == 0) {
-            log.warn("Cannot parse directory '" + epochDir + "'");
+            log.warn("Cannot read directory '" + epochDir + "'");
         }
         else {
             for (File file: epochs) {
@@ -564,7 +564,7 @@
         File[] files = dir.listFiles();
 
         if (files == null) {
-            log.warn("Cannot parse directory '" + dir + "'");
+            log.warn("Cannot read directory '" + dir + "'");
             return;
         }
 
@@ -584,7 +584,7 @@
         File[] files = dir.listFiles();
 
         if (files == null) {
-            log.warn("Cannot parse directory '" + dir + "'");
+            log.warn("Cannot read directory '" + dir + "'");
             return;
         }
 
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/AtFileParser.java	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/AtFileParser.java	Thu Aug 23 17:13:47 2012 +0000
@@ -132,7 +132,7 @@
             }
         }
         catch (NumberFormatException pe) {
-            logger.warn(pe.getMessage());
+            logger.warn("AT: invalid number " + pe.getMessage());
         }
         finally {
             if (br != null) {
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/PRFParser.java	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/PRFParser.java	Thu Aug 23 17:13:47 2012 +0000
@@ -234,7 +234,7 @@
     public boolean parse(File file) {
 
         if (!(file.isFile() && file.canRead())) {
-            log.warn("cannot open file '" + file + "'");
+            log.warn("PRF: cannot open file '" + file + "'");
             return false;
         }
 
@@ -267,14 +267,14 @@
             String line = in.readLine();
 
             if (line == null || (line = line.trim()).length() == 0) {
-                log.warn("file is empty.");
+                log.warn("PRF: file is empty.");
                 return false;
             }
 
             Matcher m = DATA_PATTERN.matcher(line);
 
             if (!m.matches()) {
-                log.warn("First line does not look like a PRF data pattern.");
+                log.warn("PRF: First line does not look like a PRF data pattern.");
                 return false;
             }
 
@@ -282,25 +282,25 @@
 
             if ((line = in.readLine()) == null
             || (line = line.trim()).length() == 0) {
-                log.warn("premature EOF. Expected integer in line 2");
+                log.warn("PRF: premature EOF. Expected integer in line 2");
                 return false;
             }
 
             try {
                 if (Integer.parseInt(line) != dataFormat.maxRepetitions) {
-                    log.warn("Expected " +
+                    log.warn("PRF: Expected " +
                         dataFormat.maxRepetitions + " in line 2");
                     return false;
                 }
             }
             catch (NumberFormatException nfe) {
-                log.warn("invalid integer in line 2", nfe);
+                log.warn("PRF: invalid integer in line 2", nfe);
                 return false;
             }
 
             if ((line = in.readLine()) == null) {
                 log.warn(
-                    "premature EOF. Expected pattern for km extraction");
+                    "PRF: premature EOF. Expected pattern for km extraction");
                 return false;
             }
 
@@ -308,7 +308,7 @@
 
             if (!m.matches()) {
                 log.warn(
-                    "line 4 does not look like a PRF km extraction pattern.");
+                    "PRF: line 4 does not look like a PRF km extraction pattern.");
                 return false;
             }
 
@@ -316,7 +316,7 @@
 
             if ((line = in.readLine()) == null
             || (line = line.trim()).length() == 0) {
-                log.warn("premature EOF. Expected skip row count.");
+                log.warn("PRF: premature EOF. Expected skip row count.");
                 return false;
             }
 
@@ -328,7 +328,7 @@
             }
             catch (NumberFormatException nfe) {
                 log.warn(
-                    "line 5 is not an positive integer.");
+                    "PRF: line 5 is not an positive integer.");
                 return false;
             }
 
@@ -344,7 +344,7 @@
                     km = kmFormat.extractKm(line);
                 }
                 catch (NumberFormatException iae) {
-                    log.warn("cannot extract km in line + " + in.getLineNumber());
+                    log.warn("PRF: cannot extract km in line " + in.getLineNumber());
                     return false;
                 }
 
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/PegelGltParser.java	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/PegelGltParser.java	Thu Aug 23 17:13:47 2012 +0000
@@ -57,7 +57,7 @@
 
                 int kmPos = line.indexOf(KM);
                 if (kmPos < 0) {
-                    log.warn("no gauge found in line " + in.getLineNumber());
+                    log.warn("GLT: no gauge found in line " + in.getLineNumber());
                     continue;
                 }
 
@@ -68,8 +68,8 @@
 
                 String [] parts = line.split("\\s+");
                 if (parts.length < 4) {
-                    log.warn("line " + in.getLineNumber()
-                        + " has not enough columns");
+                    log.warn("GLT: line " + in.getLineNumber()
+                        + " has not enough columns.");
                     continue;
                 }
 
--- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java	Thu Aug 23 16:20:45 2012 +0000
+++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/StaFileParser.java	Thu Aug 23 17:13:47 2012 +0000
@@ -60,7 +60,7 @@
             }
 
             if (line.length() < 37) {
-                log.warn("first line in STA file is too short.");
+                log.warn("First line in STA file is too short.");
                 return false;
             }
 
@@ -75,7 +75,7 @@
                     gaugeNumber = Long.parseLong(gaugeNumberString);
                 }
                 catch (NumberFormatException nfe) {
-                    log.warn("'" + gaugeNumberString +
+                    log.warn("STA: '" + gaugeNumberString +
                         "' is not a valid long number.");
                 }
             }
@@ -91,14 +91,14 @@
             String [] values = line.substring(38).trim().split("\\s+", 2);
 
             if (values.length < 2) {
-                log.warn("Not enough columns for aeo and datum");
+                log.warn("STA: Not enough columns for aeo and datum.");
             }
             try {
                 gauge.setAeo(new BigDecimal(values[0].replace(",", ".")));
                 gauge.setDatum(new BigDecimal(values[1].replace(",", ".")));
             }
             catch (NumberFormatException nfe) {
-                log.warn("cannot parse aeo or datum");
+                log.warn("STA: cannot parse aeo or datum.");
                 return false;
             }
 
@@ -110,7 +110,7 @@
             }
 
             if (line.length() < 36) {
-                log.warn("second line is too short");
+                log.warn("STA: second line is too short");
                 return false;
             }
 
@@ -119,7 +119,7 @@
                     new BigDecimal(line.substring(29, 36).trim()));
             }
             catch (NumberFormatException nfe) {
-                log.warn("parsing of the datum of the gauge failed");
+                log.warn("STA: parsing of the datum of the gauge failed");
                 return false;
             }
 
@@ -148,7 +148,7 @@
                         value = new BigDecimal(m.group(2).replace(",", "."));
                     }
                     catch (NumberFormatException nfe) {
-                        log.warn("value not parseable in line "
+                        log.warn("STA: value not parseable in line "
                             + in.getLineNumber());
                         continue;
                     }

http://dive4elements.wald.intevation.org