annotate backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java @ 9650:a2a42a6bac6b

Importer (s/u-info) extensions: outer try/catch for parse and log of line no, catching parsing exception if not enough value fields, parsing error and warning log messages with line number, detecting and rejecting duplicate data series, better differentiation between error and warning log messages
author mschaefer
date Mon, 23 Mar 2020 14:57:03 +0100
parents ae76f618d990
children
rev   line source
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5992
4c3ccf2b0304 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5844
diff changeset
6 * documentation coming with Dive4Elements River for details.
5844
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4dd33b86dc61 Added header to river backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
9 package org.dive4elements.river.importer;
5446
3bd786772798 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5427
diff changeset
10
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
11 import java.io.File;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
12 import java.io.FilenameFilter;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
13 import java.io.IOException;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
14 import java.util.ArrayList;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
15 import java.util.Calendar;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
16 import java.util.Date;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
17 import java.util.HashSet;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
18 import java.util.Iterator;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
19 import java.util.List;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
20 import java.util.Map;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
21 import java.util.Set;
5446
3bd786772798 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5427
diff changeset
22
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
23 import org.apache.log4j.Logger;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
24 import org.dive4elements.artifacts.common.utils.FileTools;
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
25 import org.dive4elements.artifacts.common.utils.FileTools.HashedFile;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
26 import org.dive4elements.river.backend.utils.DouglasPeuker;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
27 import org.dive4elements.river.importer.parsers.AbstractSedimentLoadParser;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
28 import org.dive4elements.river.importer.parsers.AnnotationClassifier;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
29 import org.dive4elements.river.importer.parsers.AnnotationsParser;
8557
29ab66ce06aa Abstract parser for bed heights is obsolete.
"Tom Gottfried <tom@intevation.de>"
parents: 8556
diff changeset
30 import org.dive4elements.river.importer.parsers.BedHeightParser;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
31 import org.dive4elements.river.importer.parsers.CrossSectionParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
32 import org.dive4elements.river.importer.parsers.DA50Parser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
33 import org.dive4elements.river.importer.parsers.DA66Parser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
34 import org.dive4elements.river.importer.parsers.FlowVelocityMeasurementParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
35 import org.dive4elements.river.importer.parsers.FlowVelocityModelParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
36 import org.dive4elements.river.importer.parsers.HYKParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
37 import org.dive4elements.river.importer.parsers.MeasurementStationsParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
38 import org.dive4elements.river.importer.parsers.MorphologicalWidthParser;
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
39 import org.dive4elements.river.importer.parsers.OfficialLinesConfigParser;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
40 import org.dive4elements.river.importer.parsers.PRFParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
41 import org.dive4elements.river.importer.parsers.PegelGltParser;
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
42 import org.dive4elements.river.importer.parsers.PorosityParser;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
43 import org.dive4elements.river.importer.parsers.SQRelationParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
44 import org.dive4elements.river.importer.parsers.SedimentDensityParser;
8025
c915e99d9e52 Renamed SedimentYield to SedimentLoadLS and SedimentYieldValue to SedimentLoadLSValue. Adjust the names of the parsers and the rest of the glue.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7918
diff changeset
45 import org.dive4elements.river.importer.parsers.SedimentLoadLSParser;
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
46 import org.dive4elements.river.importer.parsers.SedimentLoadParser;
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
47 import org.dive4elements.river.importer.parsers.W80CSVParser;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
48 import org.dive4elements.river.importer.parsers.W80Parser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
49 import org.dive4elements.river.importer.parsers.WaterlevelDifferencesParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
50 import org.dive4elements.river.importer.parsers.WaterlevelParser;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
51 import org.dive4elements.river.importer.parsers.WstParser;
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
52 import org.dive4elements.river.importer.sinfo.SInfoImporter;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
53 import org.dive4elements.river.importer.uinfo.UInfoImporter;
5829
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
54 import org.dive4elements.river.model.River;
18619c1e7c2a Repaired internal references.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5828
diff changeset
55 import org.dive4elements.river.model.Unit;
5446
3bd786772798 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5427
diff changeset
56 import org.hibernate.Query;
3bd786772798 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5427
diff changeset
57 import org.hibernate.Session;
3bd786772798 Removed obsolete imports.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5427
diff changeset
58
4706
e7b238247c4e Documentation added.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4678
diff changeset
59 /** Import all river-related data (files) that can be found. */
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60 public class ImportRiver
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
61 {
8200
9d2e69f971f5 sed -i src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8187
diff changeset
62 /** Private log. */
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
63 private static Logger log = Logger.getLogger(ImportRiver.class);
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
64
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
65 public static final String PEGEL_GLT = "PEGEL.GLT";
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
66
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
67 public static final String FIXATIONS = "Fixierungen";
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
68
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
69 public static final String EXTRA_LONGITUDINALS =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
70 "Zus.Laengsschnitte";
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
71
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
72 public static final String [] OFFICIAL_LINES_FOLDERS = {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
73 "Basisdaten",
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
74 "Fixierungen" };
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
75
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
76 public static final String OFFICIAL_LINES =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
77 "Amtl_Linien.wst";
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
78
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
79 public static final String OFFICIAL_LINES_CONFIG =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
80 "Amtl_Linien.config";
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
81
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
82 public static final String FLOOD_WATER = "HW-Marken";
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
83
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
84 public static final String FLOOD_PROTECTION =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
85 "HW-Schutzanlagen";
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
86
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
87 public static final String MINFO_DIR = "Morphologie";
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
88
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
89 public static final String BED_HEIGHT_DIR = "Sohlhoehen";
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
90
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
91 public static final String BED_HEIGHT_SINGLE_DIR = "Einzeljahre";
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
92
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
93 public static final String SEDIMENT_DENSITY_DIR = "Sedimentdichte";
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
94
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
95 public static final String POROSITY_DIR = "Porositaet";
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
96
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
97 public static final String MORPHOLOGICAL_WIDTH_DIR =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
98 "morphologische_Breite";
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
99
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
100 public static final String FLOW_VELOCITY_DIR =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
101 "Geschwindigkeit_Schubspannung";
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
102
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
103 public static final String FLOW_VELOCITY_MODEL = "Modellrechnungen";
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
104
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
105 public static final String FLOW_VELOCITY_MEASUREMENTS = "v-Messungen";
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
106
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
107 public static final String SEDIMENT_LOAD_DIR = "Fracht";
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
108
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
109 public static final String SEDIMENT_LOAD_LS_DIR = "Laengsschnitte";
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
110
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
111 public static final String SEDIMENT_LOAD_MS_DIR = "Messstellen";
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
112
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
113 public static final String SEDIMENT_LOAD_SINGLE_DIR = "Einzeljahre";
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
114
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
115 public static final String SEDIMENT_LOAD_EPOCH_DIR = "Epochen";
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
116
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
117 public static final String SEDIMENT_LOAD_OFF_EPOCH_DIR =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
118 "amtliche Epochen";
6724
0baf7abffcc6 issue1393/ImportRiver: Import official epochs from directory, minor refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6347
diff changeset
119
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
120 public static final String MINFO_FIXATIONS_DIR = "Fixierungsanalyse";
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
121
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
122 public static final String MINFO_WATERLEVELS_DIR = "Wasserspiegellagen";
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
123
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
124 public static final String MINFO_WATERLEVEL_DIFF_DIR =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
125 "Wasserspiegeldifferenzen";
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
126
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
127 public static final String MINFO_BASE_DIR = "Basisdaten";
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
128
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
129 public static final String MINFO_CORE_DATA_FILE =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
130 "Stammdaten_Messstellen.csv";
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
131
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
132 public static final String MINFO_SQ_DIR =
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
133 "Feststofftransport-Abfluss-Beziehung";
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
134
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
135 protected String name;
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
136
7751
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
137 protected String modelUuid;
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
138
5020
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
139 protected Long officialNumber;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
140
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
141 /**
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
142 * Path of the river/Hydrologie/Basisdaten/river.wst file from which all other file paths are derived
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
143 */
5020
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
144 protected File wstFile;
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
145
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
146 protected File bbInfoFile;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
147
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
148 protected List<ImportGauge> gauges;
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
149
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
150 protected List<ImportAnnotation> annotations;
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
151
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
152 protected List<ImportHYK> hyks;
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
153
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
154 protected List<ImportCrossSection> crossSections;
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
155
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
156 protected List<ImportWst> extraWsts;
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
157
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
158 protected List<ImportWst> fixations;
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
159
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
160 protected List<ImportWst> officialLines;
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
161
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
162 protected List<ImportWst> floodWater;
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
163
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
164 protected List<ImportWst> floodProtection;
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
165
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
166 /** Wst-structures from waterlevel-csv files. */
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
167 protected List<ImportWst> waterlevels;
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
168
5227
a981222b6260 ImportRiver: Preparing wst-based waterleveldifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5149
diff changeset
169 /** Wst-structures from waterlevel-difference-csv files. */
a981222b6260 ImportRiver: Preparing wst-based waterleveldifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5149
diff changeset
170 protected List<ImportWst> waterlevelDifferences;
a981222b6260 ImportRiver: Preparing wst-based waterleveldifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5149
diff changeset
171
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
172 protected List<ImportBedHeight> bedHeights;
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
173
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
174 protected List<ImportSedimentDensity> sedimentDensities;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
175
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
176 protected List<ImportPorosity> porosities;
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
177
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
178 protected List<ImportMorphWidth> morphologicalWidths;
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
179
2827
85b25e74594f Added temp classes used during the import process of flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2826
diff changeset
180 protected List<ImportFlowVelocityModel> flowVelocityModels;
85b25e74594f Added temp classes used during the import process of flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2826
diff changeset
181
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
182 protected List<ImportFlowVelocityMeasurement> flowVelocityMeasurements;
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
183
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
184 protected List<ImportSedimentLoadLS> sedimentLoadLSs;
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
185
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
186 protected List<ImportSedimentLoad> sedimentLoads;
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
187
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
188 protected List<ImportMeasurementStation> measurementStations;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
189
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
190 protected List<ImportSQRelation> sqRelations;
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
191
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
192 protected ImportWst wst;
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
193
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
194 protected ImportUnit wstUnit;
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
195
765
763c4137d6e1 Added classification of annotation types. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 503
diff changeset
196 protected AnnotationClassifier annotationClassifier;
763c4137d6e1 Added classification of annotation types. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 503
diff changeset
197
5017
51a353887871 Tiny doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5016
diff changeset
198 /** Database-mapped River instance. */
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
199 protected River peer;
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
200
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
201 /**
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
202 * Importer for a river's S-INFO files.
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
203 */
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
204 private final SInfoImporter sinfoImporter;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
205
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
206 /**
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
207 * Importer for a river's U-INFO files.
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
208 */
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
209 private final UInfoImporter uinfoImporter;
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
210
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
211 /** Callback-implementation for CrossSectionParsers. */
5083
7bbee0cfc171 Added experimental Douglas Peuker simplification of cross sections.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4808
diff changeset
212 private class ImportRiverCrossSectionParserCallback
7bbee0cfc171 Added experimental Douglas Peuker simplification of cross sections.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4808
diff changeset
213 implements CrossSectionParser.Callback {
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
214
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
215 private final Set<HashedFile> files = new HashSet<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
216 private final String type;
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
217
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
218 /**
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
219 * Create new Callback, given type which is used for logging
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
220 * purposes only.
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
221 */
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
222 public ImportRiverCrossSectionParserCallback(final String type) {
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
223 this.type = type;
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
224 }
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
225
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
226
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
227 /** Accept file if not duplicate. */
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
228 @Override
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
229 public boolean accept(final File file) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
230 final HashedFile hf = new HashedFile(file);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
231 final boolean success = this.files.add(hf);
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
232 if (!success) {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
233 log.warn(this.type + " file '" + file
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
234 + "' seems to be a duplicate.");
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
235 }
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
236 return success;
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
237 }
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
238
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
239
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
240 /** Add crosssection. */
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
241 @Override
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
242 public void parsed(final CrossSectionParser parser) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
243 log.debug("callback from " + this.type + " parser");
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
244
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
245 final String description = parser.getDescription();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
246 final Integer year = parser.getYear();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
247 final ImportTimeInterval ti = year != null
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
248 ? new ImportTimeInterval(yearToDate(year))
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
249 : null;
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
250
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
251 final Map<Double, List<XY>> data = parser.getData();
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
252
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
253 final List<ImportCrossSectionLine> lines =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
254 new ArrayList<>(data.size());
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
255
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
256 final Double simplificationEpsilon =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
257 Config.INSTANCE.getCrossSectionSimplificationEpsilon();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
258
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
259 long numReadPoints = 0L;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
260 long numRemainingPoints = 0L;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
261
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
262 for (final Map.Entry<Double, List<XY>> entry: data.entrySet()) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
263 final Double km = entry.getKey();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
264 List<XY> points = entry.getValue();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
265 numReadPoints += points.size();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
266 if (simplificationEpsilon != null) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
267 points = DouglasPeuker.simplify(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
268 points, simplificationEpsilon);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
269 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
270 numRemainingPoints += points.size();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
271 lines.add(new ImportCrossSectionLine(km, points));
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
272 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
273
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
274 ImportRiver.this.addCrossSections(description, ti, lines);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
275
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
276 if (simplificationEpsilon != null) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
277 final double percent = numReadPoints > 0L
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
278 ? ((double)numRemainingPoints/numReadPoints)*100d
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
279 : 0d;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
280
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
281 log.info(String.format(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
282 "Number of points in cross section: %d / %d (%.2f%%)",
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
283 numReadPoints, numRemainingPoints, percent));
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
284 }
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
285 }
5149
3b58bb0c55e3 Removed trailing white space
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5080
diff changeset
286 } // ImportRiverCrossSectionParserCallback
4778
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
287
a70de5298248 ImportRiver: Add helper implementation of a CrossSectionParserCallback.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4767
diff changeset
288
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
289 private void addCrossSections(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
290 final String description,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
291 final ImportTimeInterval ti,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
292 final List<ImportCrossSectionLine> lines
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
293 ) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
294 this.crossSections.add(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
295 new ImportCrossSection(this, description, ti, lines));
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
296 }
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
297
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
298
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
299 public ImportRiver() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
300 this.hyks = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
301 this.crossSections = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
302 this.extraWsts = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
303 this.fixations = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
304 this.officialLines = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
305 this.floodWater = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
306 this.waterlevels = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
307 this.waterlevelDifferences = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
308 this.floodProtection = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
309 this.sedimentDensities = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
310 this.porosities = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
311 this.morphologicalWidths = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
312 this.flowVelocityModels = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
313 this.flowVelocityMeasurements =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
314 new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
315 this.sedimentLoadLSs = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
316 this.sedimentLoads = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
317 this.measurementStations = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
318 this.sqRelations = new ArrayList<>();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
319 this.sinfoImporter = new SInfoImporter();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
320 this.uinfoImporter = new UInfoImporter();
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
321 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
322
766
aa9e3da95c31 Importer: Fix import of annotation type classification.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 765
diff changeset
323 public ImportRiver(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
324 final String name,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
325 final String modelUuid,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
326 final File wstFile,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
327 final File bbInfoFile,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
328 final AnnotationClassifier annotationClassifier
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
329 ) {
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
330 this();
766
aa9e3da95c31 Importer: Fix import of annotation type classification.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 765
diff changeset
331 this.name = name;
7751
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
332 this.modelUuid = modelUuid;
766
aa9e3da95c31 Importer: Fix import of annotation type classification.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 765
diff changeset
333 this.wstFile = wstFile;
aa9e3da95c31 Importer: Fix import of annotation type classification.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 765
diff changeset
334 this.bbInfoFile = bbInfoFile;
aa9e3da95c31 Importer: Fix import of annotation type classification.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 765
diff changeset
335 this.annotationClassifier = annotationClassifier;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
336 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
337
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
338 public String getName() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
339 return this.name;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
340 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
341
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
342 public void setName(final String name) {
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
343 this.name = name;
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
344 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
345
7751
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
346 public String getModelUuid() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
347 return this.modelUuid;
7751
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
348 }
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
349
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
350 public void setModelUuid(final String modelUuid) {
7751
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
351 this.modelUuid = modelUuid;
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
352 }
24408bce2fdb Parse and import model_uuid for rivers.
Raimund Renkert <rrenkert@intevation.de>
parents: 7735
diff changeset
353
5020
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
354 public Long getOfficialNumber() {
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
355 return this.officialNumber;
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
356 }
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
357
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
358 public void setOfficialNumber(final Long officialNumber) {
5020
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
359 this.officialNumber = officialNumber;
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
360 }
443c173f043a ImportRiver: Added officialNumber field.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5017
diff changeset
361
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
362 public File getWstFile() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
363 return this.wstFile;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
364 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
365
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
366 public void setWstFile(final File wstFile) {
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
367 this.wstFile = wstFile;
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
368 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
369
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
370 public File getBBInfo() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
371 return this.bbInfoFile;
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
372 }
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
373
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
374 public void setBBInfo(final File bbInfoFile) {
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
375 this.bbInfoFile = bbInfoFile;
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
376 }
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
377
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
378 public ImportWst getWst() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
379 return this.wst;
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
380 }
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
381
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
382 public void setWst(final ImportWst wst) {
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
383 this.wst = wst;
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
384 }
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
385
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
386 private File getMinfoDir() {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
387 return new File(getRiverDir(), MINFO_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
388 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
389
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
390 private File getRiverDir() {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
391 return this.wstFile.getParentFile().getParentFile().getParentFile();
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
392 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
393
8988
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
394 public AnnotationClassifier getAnnotationClassifier() {
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
395 return this.annotationClassifier;
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
396 }
ae76f618d990 Checks added for missing import directory
mschaefer
parents: 8971
diff changeset
397
9650
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
398 public void parseDependencies() throws Exception {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
399 log.info("Root dir is '" + getRiverDir() + "'");
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
400 parseGauges();
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
401 parseAnnotations();
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
402 parsePRFs();
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
403 parseDA66s();
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
404 parseDA50s();
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
405 parseW80s();
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
406 parseW80CSVs();
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
407 parseHYKs();
197
c0dcc2357106 Added stub for WST parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 194
diff changeset
408 parseWst();
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
409 parseExtraWsts();
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
410 parseFixations();
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
411 parseOfficialLines();
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
412 parseFloodWater();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
413 parseFloodProtection();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
414 parseMeasurementStations();
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
415 parseBedHeight();
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
416 parseSedimentDensity();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
417 parsePorosity();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
418 parseMorphologicalWidth();
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
419 parseFlowVelocity();
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
420 parseSedimentLoadLS();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
421 parseSedimentLoad();
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
422 parseWaterlevels();
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
423 parseWaterlevelDifferences();
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
424 parseSQRelation();
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
425 this.sinfoImporter.setup(getRiverDir(), this);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
426 this.sinfoImporter.parse();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
427 this.uinfoImporter.setup(getRiverDir(), this);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
428 this.uinfoImporter.parse();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
429 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
430
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
431 public void parseFloodProtection() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
432 if (Config.INSTANCE.skipFloodProtection()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
433 log.info("skip parsing flood protection");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
434 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
435 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
436
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
437 log.info("Parse flood protection wst file");
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
438
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
439 final File riverDir = this.wstFile.getParentFile().getParentFile();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
440
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
441 final File dir = FileTools.repair(new File(riverDir, FLOOD_PROTECTION));
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
442
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
443 if (!dir.isDirectory() || !dir.canRead()) {
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
444 log.info("no directory '" + dir + "' found");
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
445 return;
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
446 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
447
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
448 final File [] files = dir.listFiles();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
449
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
450 if (files == null) {
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
451 log.warn("cannot read '" + dir + "'");
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
452 return;
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
453 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
454
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
455 for (final File file: files) {
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
456 if (!file.isFile() || !file.canRead()) {
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
457 continue;
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
458 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
459 final String name = file.getName().toLowerCase();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
460 if (!(name.endsWith(".zus") || name.endsWith(".wst"))) {
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
461 continue;
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
462 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
463 log.info("found file '" + file.getName() + "'");
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
464 try {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
465 final WstParser wstParser = new WstParser();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
466 wstParser.parse(file);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
467 final ImportWst iw = wstParser.getWst();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
468 iw.setKind(5);
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
469 iw.setDescription(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
470 FLOOD_PROTECTION + "/" + iw.getDescription());
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
471 this.floodProtection.add(iw);
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
472 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
473 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
474 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
475 }
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
476 }
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
477 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
478
5027
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
479 public void storeOfficialNumber() {
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
480 if (Config.INSTANCE.skipBWASTR()) {
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
481 log.info("skip storing official number.");
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
482 return;
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
483 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
484 getPeer().setOfficialNumber(this.officialNumber);
5027
25c180fa6162 Use BWASTRParser to set official numbers on rivers.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5020
diff changeset
485 }
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
486
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
487 public void parseBedHeight() throws IOException {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
488 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
489 final File bedHeightDir = new File(minfoDir, BED_HEIGHT_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
490 final File singlesDir = new File(bedHeightDir, BED_HEIGHT_SINGLE_DIR);
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
491
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
492 if (Config.INSTANCE.skipBedHeight()) {
8762
86da84a95fac Clean up a few debug messages.
Tom Gottfried <tom@intevation.de>
parents: 8641
diff changeset
493 log.info("skip parsing bed heights.");
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
494 }
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
495 else {
8762
86da84a95fac Clean up a few debug messages.
Tom Gottfried <tom@intevation.de>
parents: 8641
diff changeset
496 log.info("Parse bed heights.");
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
497 parseBedHeights(singlesDir);
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
498 }
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
499 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
500
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
501
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
502 protected void parseSedimentDensity() throws IOException {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
503 if (Config.INSTANCE.skipSedimentDensity()) {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
504 log.info("skip parsing sediment density.");
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
505 return;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
506 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
507
3327
bf8d9a4f4cd4 Cleared some irritating debug messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3320
diff changeset
508 log.debug("Parse sediment density");
bf8d9a4f4cd4 Cleared some irritating debug messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3320
diff changeset
509
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
510 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
511 final File sediment = new File(minfoDir, SEDIMENT_DENSITY_DIR);
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
512
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
513 final File[] files = sediment.listFiles();
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
514
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
515 if (files == null) {
3660
976ead36192d backend: Mention backend warnings in importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3659
diff changeset
516 log.warn("Cannot read directory '" + sediment + "'");
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
517 return;
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
518 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
519
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
520 final SedimentDensityParser parser = new SedimentDensityParser();
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
521
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
522 for (final File file: files) {
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
523 parser.parse(file);
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
524 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
525
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
526 this.sedimentDensities = parser.getSedimentDensities();
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
527
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
528 log.info("Parsed " + this.sedimentDensities.size()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
529 + " sediment densities.");
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
530 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
531
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
532 protected void parsePorosity() throws IOException {
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
533 if (Config.INSTANCE.skipPorosity()) {
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
534 log.info("skip parsing porosity.");
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
535 return;
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
536 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
537
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
538 log.debug("Parse porosity");
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
539
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
540 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
541 final File porosity = new File(minfoDir, POROSITY_DIR);
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
542
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
543 final File[] files = porosity.listFiles();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
544
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
545 if (files == null) {
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
546 log.warn("Cannot read directory '" + porosity + "'");
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
547 return;
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
548 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
549
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
550 final PorosityParser parser = new PorosityParser();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
551
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
552 for (final File file: files) {
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
553 parser.parse(file);
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
554 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
555
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
556 this.porosities = parser.getPorosities();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
557
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
558 log.info("Parsed " + this.porosities.size() + " porosities.");
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
559 }
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
560
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
561 protected void parseMorphologicalWidth() throws IOException {
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
562 if (Config.INSTANCE.skipMorphologicalWidth()) {
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
563 log.info("skip parsing morphological width.");
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
564 return;
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
565 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
566
3327
bf8d9a4f4cd4 Cleared some irritating debug messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3320
diff changeset
567 log.debug("Parse morphological width");
bf8d9a4f4cd4 Cleared some irritating debug messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3320
diff changeset
568
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
569 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
570 final File morphDir = new File(minfoDir, MORPHOLOGICAL_WIDTH_DIR);
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
571
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
572 final File[] files = morphDir.listFiles();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
573
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
574 if (files == null) {
3660
976ead36192d backend: Mention backend warnings in importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3659
diff changeset
575 log.warn("Cannot read directory '" + morphDir + "'");
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
576 return;
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
577 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
578
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
579 final MorphologicalWidthParser parser = new MorphologicalWidthParser();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
580
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
581 for (final File file: files) {
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
582 parser.parse(file);
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
583 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
584
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
585 this.morphologicalWidths = parser.getMorphologicalWidths();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
586
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
587 log.info("Parsed " + this.morphologicalWidths.size()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
588 + " morph. widths files.");
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
589 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
590
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
591
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
592 protected void parseFlowVelocity() throws IOException {
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
593 if (Config.INSTANCE.skipFlowVelocity()) {
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
594 log.info("skip parsing flow velocity");
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
595 return;
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
596 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
597
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
598 log.debug("Parse flow velocity");
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
599
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
600 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
601 final File flowDir = new File(minfoDir, FLOW_VELOCITY_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
602 final File modelDir = new File(flowDir, FLOW_VELOCITY_MODEL);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
603 final File measureDir = new File(flowDir, FLOW_VELOCITY_MEASUREMENTS);
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
604
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
605 final File[] modelFiles = modelDir.listFiles();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
606 final File[] measureFiles = measureDir.listFiles();
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
607
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
608 if (modelFiles == null) {
3660
976ead36192d backend: Mention backend warnings in importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3659
diff changeset
609 log.warn("Cannot read directory '" + modelDir + "'");
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
610 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
611 else {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
612 final FlowVelocityModelParser parser = new FlowVelocityModelParser();
2828
ac13e466a55e Added a parser for flow velocity model data and adjusted the db relation schema (missing q column).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2827
diff changeset
613
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
614 for (final File model: modelFiles) {
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
615 log.debug("Parse file '" + model + "'");
2828
ac13e466a55e Added a parser for flow velocity model data and adjusted the db relation schema (missing q column).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2827
diff changeset
616 parser.parse(model);
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
617 }
2828
ac13e466a55e Added a parser for flow velocity model data and adjusted the db relation schema (missing q column).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2827
diff changeset
618
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
619 this.flowVelocityModels = parser.getModels();
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
620 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
621
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
622 if (measureFiles == null) {
3660
976ead36192d backend: Mention backend warnings in importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3659
diff changeset
623 log.warn("Cannot read directory '" + measureDir + "'");
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
624 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
625 else {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
626 final FlowVelocityMeasurementParser parser =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
627 new FlowVelocityMeasurementParser();
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
628
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
629 for (final File measurement: measureFiles) {
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
630 log.debug("Parse file '" + measurement + "'");
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
631 parser.parse(measurement);
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
632 }
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
633
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
634 this.flowVelocityMeasurements = parser.getMeasurements();
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
635 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
636 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
637
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
638
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
639 private void parseSedimentLoadFiles(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
640 final File[] files,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
641 final AbstractSedimentLoadParser parser
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
642 ) throws IOException {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
643 for (final File file: files) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
644 if (file.isDirectory()) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
645 for (final File child: file.listFiles()) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
646 parser.parse(child);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
647 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
648 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
649 else {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
650 parser.parse(file);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
651 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
652 }
6724
0baf7abffcc6 issue1393/ImportRiver: Import official epochs from directory, minor refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6347
diff changeset
653 }
0baf7abffcc6 issue1393/ImportRiver: Import official epochs from directory, minor refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6347
diff changeset
654
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
655
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
656 private void parseSedimentLoadDir(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
657 final File sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
658 final AbstractSedimentLoadParser parser
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
659 ) throws IOException {
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
660
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
661 final File[] sedimentLoadSubDirs = {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
662 new File(sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
663 SEDIMENT_LOAD_SINGLE_DIR),
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
664 new File(sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
665 SEDIMENT_LOAD_EPOCH_DIR),
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
666 new File(sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
667 SEDIMENT_LOAD_OFF_EPOCH_DIR),
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
668 };
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
669
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
670 for (final File subDir : sedimentLoadSubDirs) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
671 final File[] files = subDir.listFiles();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
672
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
673 if (files == null || files.length == 0) {
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
674 log.warn("Cannot read directory '" + subDir + "'");
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
675 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
676 else {
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
677 parseSedimentLoadFiles(files, parser);
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
678 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
679 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
680 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
681
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
682
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
683 protected void parseSedimentLoadLS() throws IOException {
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
684 if (Config.INSTANCE.skipSedimentLoadLS()) {
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
685 log.info("skip parsing sediment load longitudinal section data");
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
686 return;
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
687 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
688
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
689 log.debug("Parse sediment load longitudinal section data");
3327
bf8d9a4f4cd4 Cleared some irritating debug messages.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3320
diff changeset
690
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
691 final SedimentLoadLSParser parser = new SedimentLoadLSParser();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
692
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
693 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
694 final File sedimentLoadDir = new File(minfoDir, SEDIMENT_LOAD_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
695 final File sedimentLoadLSDir = new File(sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
696 SEDIMENT_LOAD_LS_DIR);
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
697
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
698 parseSedimentLoadDir(sedimentLoadLSDir, parser);
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
699
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
700 this.sedimentLoadLSs = parser.getSedimentLoadLSs();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
701 }
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
702
2840
71175502d868 Added a parser for sediment yield files; started parsing and store values in db.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2839
diff changeset
703
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
704 protected void parseSedimentLoad() throws IOException {
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
705 if (Config.INSTANCE.skipSedimentLoad()) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
706 log.info(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
707 "skip parsing sediment load data at measurement stations");
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
708 return;
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
709 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
710
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
711 log.debug("Parse sediment load data at measurement stations");
6724
0baf7abffcc6 issue1393/ImportRiver: Import official epochs from directory, minor refac.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6347
diff changeset
712
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
713 final SedimentLoadParser parser = new SedimentLoadParser(getPeer());
2840
71175502d868 Added a parser for sediment yield files; started parsing and store values in db.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2839
diff changeset
714
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
715 final File minfoDir = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
716 final File sedimentLoadDir = new File(minfoDir, SEDIMENT_LOAD_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
717 final File sedimentLoadMSDir = new File(sedimentLoadDir,
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
718 SEDIMENT_LOAD_MS_DIR);
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
719
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
720 parseSedimentLoadDir(sedimentLoadMSDir, parser);
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
721
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
722 this.sedimentLoads = parser.getSedimentLoads();
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
723 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
724
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
725
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
726 protected void parseWaterlevels() throws IOException {
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
727 if (Config.INSTANCE.skipWaterlevels()) {
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
728 log.info("skip parsing waterlevels");
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
729 return;
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
730 }
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
731
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
732 log.info("Parse waterlevels");
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
733
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
734 final File minfo = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
735 final File fixDir = new File(minfo, MINFO_FIXATIONS_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
736 final File wspDir = new File(fixDir, MINFO_WATERLEVELS_DIR);
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
737
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
738 final File[] files = wspDir.listFiles();
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
739
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
740 if (files == null) {
5262
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
741 log.warn("Cannot read directory for wl '" + wspDir + "'");
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
742 return;
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
743 }
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
744
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
745 final WaterlevelParser parser = new WaterlevelParser();
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
746
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
747 for (final File file: files) {
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
748 parser.parse(file);
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
749 }
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
750
5050
e6dc908297e8 ImportRiver: Make waterlevels become fixation-wsts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5027
diff changeset
751 // The parsed ImportWaterlevels are converted to
e6dc908297e8 ImportRiver: Make waterlevels become fixation-wsts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5027
diff changeset
752 // 'fixation'-wsts now.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
753 for(final ImportWst iw: parser.getWaterlevels()) {
5227
a981222b6260 ImportRiver: Preparing wst-based waterleveldifferences.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5149
diff changeset
754 iw.setDescription("CSV/" + iw.getDescription());
6283
e81e9dcc81b4 Switch wst_kinds of Waterleve/-Differences (6/7).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5992
diff changeset
755 iw.setKind(7);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
756 this.waterlevels.add(iw);
5050
e6dc908297e8 ImportRiver: Make waterlevels become fixation-wsts.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5027
diff changeset
757 }
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
758 }
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
759
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
760 protected void parseMeasurementStations() throws IOException {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
761 if (Config.INSTANCE.skipMeasurementStations()) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
762 log.info("skip parsing measurement stations");
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
763 return;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
764 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
765
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
766 log.info("Parse measurement stations");
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
767
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
768 final File minfo = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
769 final File minfoBaseDir = new File(minfo, MINFO_BASE_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
770 final File coredataFile = new File(minfoBaseDir, MINFO_CORE_DATA_FILE);
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
771
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
772 if (coredataFile == null || !coredataFile.exists()) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
773 log.warn("No core data file '"
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
774 + coredataFile.getAbsolutePath() + "' found");
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
775 return;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
776 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
777
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
778 final MeasurementStationsParser parser = new MeasurementStationsParser();
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
779 try {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
780 parser.parse(coredataFile);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
781 this.measurementStations = parser.getMeasurementStations();
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
782
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
783 log.info("Successfully parsed " + this.measurementStations.size()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
784 + " measurement stations.");
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
785 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
786 catch (final IOException ioe) {
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
787 log.error("unable to parse file '" + coredataFile.getName() +
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
788 ": " + ioe.getMessage());
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
789 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
790 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
791
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
792
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
793 protected void parseWaterlevelDifferences() throws IOException {
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
794 if (Config.INSTANCE.skipWaterlevelDifferences()) {
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
795 log.info("skip parsing waterlevel differences");
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
796 return;
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
797 }
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
798
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
799 log.info("Parse waterlevel differences");
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
800
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
801 final File minfo = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
802 final File fixDir = new File(minfo, MINFO_FIXATIONS_DIR);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
803 final File diffDir = new File(fixDir, MINFO_WATERLEVEL_DIFF_DIR);
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
804
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
805 final File[] files = diffDir.listFiles();
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
806
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
807 if (files == null) {
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
808 log.warn("Cannot read directory '" + diffDir + "'");
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
809 return;
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
810 }
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
811
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
812 final WaterlevelDifferencesParser parser = new WaterlevelDifferencesParser();
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
813
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
814 for (final File file: files) {
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
815 parser.parse(file);
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
816 }
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
817
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
818 // WaterlevelDifferences become Wsts now.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
819 for(final ImportWst iw: parser.getDifferences()) {
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
820 iw.setDescription("CSV/" + iw.getDescription());
6283
e81e9dcc81b4 Switch wst_kinds of Waterleve/-Differences (6/7).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5992
diff changeset
821 iw.setKind(6);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
822 this.waterlevelDifferences.add(iw);
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
823 }
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
824 }
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
825
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
826
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
827 protected void parseSQRelation() throws IOException {
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
828 if (Config.INSTANCE.skipSQRelation()) {
3329
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
829 log.info("skip parsing sq relation");
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
830 return;
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
831 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
832
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
833 log.info("Parse sq relations");
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
834
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
835 final File minfo = getMinfoDir();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
836 final File sqDir = new File(minfo, MINFO_SQ_DIR);
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
837
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
838 final File[] files = sqDir.listFiles();
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
839
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
840 if (files == null) {
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
841 log.warn("Cannot read directory '" + sqDir + "'");
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
842 return;
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
843 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
844
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
845 final SQRelationParser parser = new SQRelationParser(getPeer());
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
846
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
847 for (final File file: files) {
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
848 parser.parse(file);
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
849 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
850
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
851 this.sqRelations = parser.getSQRelations();
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
852
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
853 log.debug("Parsed " + this.sqRelations.size() + " SQ relations.");
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
854 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
855
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
856
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
857 protected void parseBedHeights(final File dir) throws IOException {
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
858 log.debug("Parse bed height singles");
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
859
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
860 final File[] files = dir.listFiles(new FilenameFilter() {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
861 @Override
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
862 public boolean accept(final File dir, final String name) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
863 return name.toLowerCase().endsWith(".csv");
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
864 }
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
865 });
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
866
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
867 if (files == null) {
3660
976ead36192d backend: Mention backend warnings in importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3659
diff changeset
868 log.warn("Cannot read directory '" + dir + "'");
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
869 return;
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
870 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
871
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
872 final BedHeightParser parser = new BedHeightParser();
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
873
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
874 for (final File file: files) {
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
875 parser.parse(file);
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
876 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
877
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
878 this.bedHeights = parser.getBedHeights();
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
879 }
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
880
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
881 public void parseFloodWater() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
882 if (Config.INSTANCE.skipFloodWater()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
883 log.info("skip parsing flod water");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
884 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
885 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
886
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
887 log.info("Parse flood water wst file");
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
888
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
889 final File riverDir = this.wstFile.getParentFile().getParentFile();
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
890
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
891 final File dir = FileTools.repair(new File(riverDir, FLOOD_WATER));
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
892
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
893 if (!dir.isDirectory() || !dir.canRead()) {
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
894 log.info("no directory '" + dir + "' found");
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
895 return;
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
896 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
897
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
898 final File [] files = dir.listFiles();
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
899
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
900 if (files == null) {
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
901 log.warn("cannot read '" + dir + "'");
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
902 return;
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
903 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
904
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
905 for (final File file: files) {
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
906 if (!file.isFile() || !file.canRead()) {
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
907 continue;
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
908 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
909 final String name = file.getName().toLowerCase();
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
910 if (!(name.endsWith(".zus") || name.endsWith(".wst"))) {
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
911 continue;
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
912 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
913 log.info("found file '" + file.getName() + "'");
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
914 try {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
915 final WstParser wstParser = new WstParser();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
916 wstParser.parse(file);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
917 final ImportWst iw = wstParser.getWst();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
918 iw.setKind(4);
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
919 iw.setDescription(FLOOD_WATER + "/" + iw.getDescription());
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
920 this.floodWater.add(iw);
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
921 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
922 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
923 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
924 }
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
925 }
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
926 }
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
927
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
928 public void parseOfficialLines() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
929 if (Config.INSTANCE.skipOfficialLines()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
930 log.info("skip parsing official lines");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
931 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
932 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
933
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
934 log.info("Parse official wst files");
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
935
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
936 final File riverDir = this.wstFile.getParentFile().getParentFile();
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
937
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
938 for (final String folder: OFFICIAL_LINES_FOLDERS) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
939 final File dir = FileTools.repair(new File(riverDir, folder));
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
940
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
941 if (!dir.isDirectory() || !dir.canRead()) {
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
942 log.info("no directory '" + folder + "' found");
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
943 continue;
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
944 }
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
945
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
946 final File file = FileTools.repair(new File(dir, OFFICIAL_LINES));
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
947 if (!file.isFile() || !file.canRead()) {
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
948 log.warn("no official lines wst file found");
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
949 continue;
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
950 }
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
951 log.debug("Found WST file: " + file);
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
952
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
953 final ImportWst iw = new ImportWst(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
954 ImportOfficialWstColumn.COLUMN_FACTORY);
6337
224d7c4b5291 Backend: Create ImportWsts for official lines expicitly. They are going to be somewhat special. Removed some cruft from the WstParser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6335
diff changeset
955
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
956 final WstParser wstParser = new WstParser(iw);
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
957 try {
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
958 wstParser.parse(file);
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
959 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
960 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
961 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
962 continue;
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
963 }
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
964
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
965 iw.setKind(3);
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
966 iw.setDescription(folder + "/" + iw.getDescription());
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
967
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
968 final File configFile = FileTools.repair(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
969 new File(dir, OFFICIAL_LINES_CONFIG));
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
970 if (!configFile.isFile() || !configFile.canRead()) {
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
971 log.warn("no config file for official lines found");
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
972 }
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
973 else {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
974 final OfficialLinesConfigParser olcp =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
975 new OfficialLinesConfigParser();
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
976 try {
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
977 olcp.parse(configFile);
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
978 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
979 catch (final IOException ioe) {
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
980 log.warn("Error reading offical lines config", ioe);
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
981 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
982 final List<String> mainValueNames = olcp.getMainValueNames();
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
983 if (mainValueNames.isEmpty()) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
984 log.warn(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
985 "config file for offical lines contains no entries");
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
986 }
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
987 else {
6345
0f7e9a4f1c5a Backend: Joined official lines with there importer model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6339
diff changeset
988 // Join as much as possible.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
989 final Iterator<ImportWstColumn> wi = iw.getColumns().iterator();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
990 final Iterator<String> si = olcp.getMainValueNames().iterator();
6345
0f7e9a4f1c5a Backend: Joined official lines with there importer model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6339
diff changeset
991 while (wi.hasNext() && si.hasNext()) {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
992 final ImportOfficialWstColumn wc =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
993 (ImportOfficialWstColumn)wi.next();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
994 final String name = si.next();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
995 final ImportOfficialLine iol =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
996 new ImportOfficialLine(name, wc);
6345
0f7e9a4f1c5a Backend: Joined official lines with there importer model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6339
diff changeset
997 wc.setOfficialLine(iol);
0f7e9a4f1c5a Backend: Joined official lines with there importer model.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6339
diff changeset
998 }
6335
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
999 }
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
1000 }
b2a470c148a7 Backend: First steps to integrate parsing of official config files.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6283
diff changeset
1001
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1002 this.officialLines.add(iw);
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1003 } // for all folders
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1004
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1005 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1006
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1007 public void parseFixations() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1008 if (Config.INSTANCE.skipFixations()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1009 log.info("skip parsing fixations");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1010 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1011 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1012
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1013 log.info("Parse fixation wst files");
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1014
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1015 final File riverDir = this.wstFile.getParentFile().getParentFile();
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1016
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1017 final File fixDir = FileTools.repair(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1018 new File(riverDir, FIXATIONS));
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1019
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1020 if (!fixDir.isDirectory() || !fixDir.canRead()) {
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1021 log.info("no fixation wst file directory found");
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1022 return;
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1023 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1024
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1025 final File [] files = fixDir.listFiles();
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1026
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1027 if (files == null) {
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1028 log.warn("cannot read fixations wst file directory");
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1029 return;
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1030 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1031
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1032 for (final File file: files) {
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1033 if (!file.isFile() || !file.canRead()) {
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1034 continue;
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1035 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1036 final String name = file.getName().toLowerCase();
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1037 if (!name.endsWith(".wst")) {
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1038 continue;
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1039 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1040 log.debug("Found WST file: " + file);
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1041
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1042 try {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1043 final WstParser wstParser = new WstParser();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1044 wstParser.parse(file);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1045 final ImportWst iw = wstParser.getWst();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1046 iw.setKind(2);
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1047 iw.setDescription(FIXATIONS+ "/" + iw.getDescription());
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1048 this.fixations.add(iw);
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1049 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1050 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
1051 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1052 }
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1053 }
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1054 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1055
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1056 public void parseExtraWsts() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1057 if (Config.INSTANCE.skipExtraWsts()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1058 log.info("skip parsing extra WST files");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1059 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1060 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1061
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1062 log.info("Parse extra longitudinal wst files");
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1063
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1064 final File riverDir = this.wstFile.getParentFile().getParentFile();
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1065
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1066 final File extraDir = FileTools.repair(
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1067 new File(riverDir, EXTRA_LONGITUDINALS));
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1068
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1069 if (!extraDir.isDirectory() || !extraDir.canRead()) {
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1070 log.info("no extra longitudinal wst file directory found");
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1071 return;
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1072 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1073
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1074 final File [] files = extraDir.listFiles();
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1075
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1076 if (files == null) {
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1077 log.warn("cannot read extra longitudinal wst file directory");
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1078 return;
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1079 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1080
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1081 for (final File file: files) {
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1082 if (!file.isFile() || !file.canRead()) {
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1083 continue;
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1084 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1085 final String name = file.getName().toLowerCase();
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1086 if (!(name.endsWith(".zus") || name.endsWith(".wst"))) {
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1087 continue;
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1088 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1089 log.debug("Found WST file: " + file);
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1090
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1091 try {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1092 final WstParser wstParser = new WstParser();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1093 wstParser.parse(file);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1094 final ImportWst iw = wstParser.getWst();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1095 iw.setKind(1);
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1096 iw.setDescription(
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1097 EXTRA_LONGITUDINALS + "/" + iw.getDescription());
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1098 this.extraWsts.add(iw);
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1099 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1100 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
1101 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1102 }
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1103 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1104
197
c0dcc2357106 Added stub for WST parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 194
diff changeset
1105 }
c0dcc2357106 Added stub for WST parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 194
diff changeset
1106
c0dcc2357106 Added stub for WST parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 194
diff changeset
1107 public void parseWst() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1108 if (Config.INSTANCE.skipWst()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1109 log.info("skip parsing WST file");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1110 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1111 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1112
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1113 final WstParser wstParser = new WstParser();
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1114 try {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1115 wstParser.parse(this.wstFile);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1116 this.wst = wstParser.getWst();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1117 this.wst.setKmUp(this.wst.guessWaterLevelIncreasing());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1118 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1119 catch (final WstParser.ParseException e) {
7343
d93bb557a94f Do not log trace of WST-Parser parse exception and document it.
Tom Gottfried <tom@intevation.de>
parents: 7340
diff changeset
1120 log.error(e.getMessage());
7339
40e5ad76103c WST Import: Added parse error exception to WST parser.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7252
diff changeset
1121 }
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1122 }
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1123
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1124 public void parseGauges() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1125 if (Config.INSTANCE.skipGauges()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1126 log.info("skip parsing gauges");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1127 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1128 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1129
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1130 File gltFile = new File(this.wstFile.getParentFile(), PEGEL_GLT);
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1131 gltFile = FileTools.repair(gltFile);
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1132
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1133 if (!gltFile.isFile() || !gltFile.canRead()) {
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1134 log.warn("cannot read gauges from '" + gltFile + "'");
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1135 return;
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1136 }
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1137
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1138 final PegelGltParser pgltp = new PegelGltParser();
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1139 pgltp.parse(gltFile);
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1140
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1141 this.gauges = pgltp.getGauges();
189
bc3747a371cc First part of parsing main values.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 188
diff changeset
1142
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1143 for (final ImportGauge gauge: this.gauges) {
189
bc3747a371cc First part of parsing main values.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 188
diff changeset
1144 gauge.parseDependencies();
bc3747a371cc First part of parsing main values.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 188
diff changeset
1145 }
184
4ab2c3bd474c Added parsing of PEGEL.GLT files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 177
diff changeset
1146 }
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1147
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1148 public void parseAnnotations() throws IOException {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1149 if (Config.INSTANCE.skipAnnotations()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1150 log.info("skip parsing annotations");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1151 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1152 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1153
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1154 final File riverDir = this.wstFile.getParentFile().getParentFile();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1155 final AnnotationsParser aparser =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1156 new AnnotationsParser(this.annotationClassifier);
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1157 aparser.parse(riverDir);
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1158
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1159 this.annotations = aparser.getAnnotations();
186
cf8cbcb6a10d Added parser to read *.KM files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 184
diff changeset
1160 }
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1161
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1162 public void parseHYKs() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1163 if (Config.INSTANCE.skipHYKs()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1164 log.info("skip parsing HYK files");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1165 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1166 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1167
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1168 log.info("looking for HYK files");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1169 final HYKParser parser = new HYKParser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1170 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1171 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1172 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1173 .getParentFile(); // <river>
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1174
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1175 parser.parseHYKs(riverDir, new HYKParser.Callback() {
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1176
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1177 Set<HashedFile> hfs = new HashSet<>();
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1178
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1179 @Override
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1180 public boolean hykAccept(final File file) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1181 final HashedFile hf = new HashedFile(file);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1182 final boolean success = this.hfs.add(hf);
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1183 if (!success) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1184 log.warn("HYK file '" + file
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1185 + "' seems to be a duplicate.");
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1186 }
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1187 return success;
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1188 }
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1189
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1190 @Override
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1191 public void hykParsed(final HYKParser parser) {
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1192 log.debug("callback from HYK parser");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1193 final ImportHYK hyk = parser.getHYK();
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1194 hyk.setRiver(ImportRiver.this);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1195 ImportRiver.this.hyks.add(hyk);
1220
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1196 }
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1197 });
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1198 }
3c860d3e79d9 Importer: Parse HYKs from importer.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1211
diff changeset
1199
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1200
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1201 /** Create a W80 Parser and parse w80 files found. */
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1202 public void parseW80s() {
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1203 if (Config.INSTANCE.skipW80s()) {
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1204 log.info("skip parsing W80s");
4781
e77b461fa360 ImportRiver: Bail out if skip* parameters were given.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4779
diff changeset
1205 return;
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1206 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1207 final W80Parser parser = new W80Parser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1208 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1209 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1210 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1211 .getParentFile(); // <river>
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1212
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1213 final ImportRiverCrossSectionParserCallback w80Callback =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1214 new ImportRiverCrossSectionParserCallback("w80");
4779
18908a3cbb3a ImportRiver: Use callback (refactoring), resolving TODOs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4778
diff changeset
1215 parser.parseW80s(riverDir, w80Callback);
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1216 }
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1217
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1218 /** Create a W80 Parser and parse w80 files found. */
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1219 public void parseW80CSVs() {
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1220 if (Config.INSTANCE.skipW80CSVs()) {
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1221 log.info("skip parsing W80 csvs");
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1222 return;
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1223 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1224 final W80CSVParser parser = new W80CSVParser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1225 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1226 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1227 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1228 .getParentFile(); // <river>
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1229
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1230 // Construct the Cross-Section-Data path.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1231 final File csDir = new File(riverDir.getPath()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1232 + File.separator + "Geodaesie"
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1233 + File.separator + "Querprofile"
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1234 + File.separator + "QP-Daten");
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1235
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1236 final ImportRiverCrossSectionParserCallback w80CSVCallback =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1237 new ImportRiverCrossSectionParserCallback("w80-csv");
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1238 parser.parseW80CSVs(csDir, w80CSVCallback);
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1239 }
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1240
4782
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1241
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1242 /**
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1243 * Create and use a DA50Parser, parse the files found, add the
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1244 * ross-sections found.
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1245 */
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1246 public void parseDA50s() {
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1247 if (Config.INSTANCE.skipDA50s()) {
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1248 log.info("skip parsing DA50s");
4781
e77b461fa360 ImportRiver: Bail out if skip* parameters were given.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4779
diff changeset
1249 return;
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1250 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1251 final DA50Parser parser = new DA50Parser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1252 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1253 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1254 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1255 .getParentFile(); // <river>
4782
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1256
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1257 final ImportRiverCrossSectionParserCallback da50Callback =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1258 new ImportRiverCrossSectionParserCallback("da50");
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
1259
4782
696285cef182 ImportRiver: Trigger basic (useless) da50 parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4781
diff changeset
1260 parser.parseDA50s(riverDir, da50Callback);
4767
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1261 }
03246a8b3869 ImportRiver: Added w80 and hook for da50 parsing (not implemented).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4735
diff changeset
1262
4724
c30152f77f77 ImportRiver: Refactoring, use description and year of da66parser.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4716
diff changeset
1263
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1264 /** Create a DA66 Parser and parse the da66 files found. */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1265 // TODO this is a copy of parsePRFs, extract interfaces
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1266 //(e.g. CrossSectionParser).
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1267 public void parseDA66s() {
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1268 if (Config.INSTANCE.skipDA66s()) {
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1269 log.info("skip parsing DA66s");
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1270 return;
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1271 }
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1272
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1273 log.info("looking for DA66 files");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1274 final DA66Parser parser = new DA66Parser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1275 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1276 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1277 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1278 .getParentFile(); // <river>
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1279
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1280 final ImportRiverCrossSectionParserCallback da66Callback =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1281 new ImportRiverCrossSectionParserCallback("da66");
5084
ca45dd039b54 Log the number of points of cross sections to see the effect of the simplification.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5083
diff changeset
1282
4779
18908a3cbb3a ImportRiver: Use callback (refactoring), resolving TODOs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4778
diff changeset
1283 parser.parseDA66s(riverDir, da66Callback);
4712
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1284 }
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1285
70842db72ee4 Include improved DA66Parser into importer.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4706
diff changeset
1286 /** Create a PRFParser and let it parse the prf files found. */
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1287 public void parsePRFs() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1288 if (Config.INSTANCE.skipPRFs()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1289 log.info("skip parsing PRFs");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1290 return;
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1291 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1292
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1293 log.info("looking for PRF files");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1294 final PRFParser parser = new PRFParser();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1295 final File riverDir = this.wstFile
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1296 .getParentFile() // Basisdaten
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1297 .getParentFile() // Hydrologie
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1298 .getParentFile(); // <river>
1206
c7370734b872 Prevent parsing and storing PRF duplicates.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1204
diff changeset
1299
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1300 final ImportRiverCrossSectionParserCallback prfCallback =
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1301 new ImportRiverCrossSectionParserCallback("prf");
4779
18908a3cbb3a ImportRiver: Use callback (refactoring), resolving TODOs.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4778
diff changeset
1302 parser.parsePRFs(riverDir, prfCallback);
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1303 }
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1304
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1305 public static Date yearToDate(final int year) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1306 final Calendar cal = Calendar.getInstance();
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1307 cal.set(year, 5, 15, 12, 0, 0);
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1308 final long ms = cal.getTimeInMillis();
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1309 cal.setTimeInMillis(ms - ms%1000);
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1310 return cal.getTime();
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1311 }
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1312
190
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1313 public void storeDependencies() {
6823
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1314 /* test whether river is already in database.
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1315 * Otherwise it makes no sense to skip waterlevel model WST-file
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1316 * because the altitude reference is taken from there. */
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1317 final Session session = ImporterSession.getInstance().getDatabaseSession();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1318 final Query query = session.createQuery("from River where name=:name");
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1319 query.setString("name", this.name);
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1320 final List<River> rivers = query.list();
6823
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1321 if (rivers.isEmpty() && Config.INSTANCE.skipWst()){
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1322 log.error("River not yet in database. "
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1323 + "You cannot skip importing waterlevel model.");
6823
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1324 return;
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1325 }
827da1952ce2 Importer: force import of waterlevel WST-file in first run.
Tom Gottfried <tom.gottfried@intevation.de>
parents: 6724
diff changeset
1326
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1327 storeWstUnit();
190
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1328 storeAnnotations();
1221
979ff070e368 Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1220
diff changeset
1329 storeHYKs();
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1330 storeCrossSections();
190
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1331 storeGauges();
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
1332 storeWst();
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1333 storeExtraWsts();
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1334 storeFixations();
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1335 storeOfficialLines();
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
1336 storeFloodWater();
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
1337 storeFloodProtection();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1338 storeMeasurementStations();
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
1339 storeBedHeight();
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1340 storeSedimentDensity();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1341 storePorosity();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1342 storeMorphologicalWidth();
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1343 storeFlowVelocity();
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
1344 storeSedimentLoadLS();
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1345 storeSedimentLoad();
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1346 storeWaterlevels();
2851
acb8d08f59a2 Parse and store MINFO waterlevel differences; added config option to skip this process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2845
diff changeset
1347 storeWaterlevelDifferences();
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1348 storeSQRelations();
5080
b87e504f916e Importer/River: Move storeOfficialNumber from parse* to store*, do not store explicitely.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5051
diff changeset
1349 storeOfficialNumber();
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1350 this.sinfoImporter.store();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1351 this.uinfoImporter.store();
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
1352 }
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
1353
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1354 public void storeWstUnit() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1355 if (this.wst == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1356 log.warn("No unit given. "
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1357 + "Waterlevel-model WST-file has to be imported already.");
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1358 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1359 else {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1360 this.wstUnit = this.wst.getUnit();
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1361 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1362 }
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1363
1221
979ff070e368 Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1220
diff changeset
1364 public void storeHYKs() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1365 if (!Config.INSTANCE.skipHYKs()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1366 log.info("store HYKs");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1367 getPeer();
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1368 for (final ImportHYK hyk: this.hyks) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1369 hyk.storeDependencies();
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1370 }
1221
979ff070e368 Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1220
diff changeset
1371 }
979ff070e368 Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1220
diff changeset
1372 }
979ff070e368 Store HYK data structures to database. Needs testing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1220
diff changeset
1373
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1374 public void storeCrossSections() {
5810
dba9e1fa233e ImportRiver: Trigger w80csv-parsing.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5806
diff changeset
1375 if (!Config.INSTANCE.skipPRFs()
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1376 || !Config.INSTANCE.skipDA66s()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1377 || !Config.INSTANCE.skipDA50s()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1378 || !Config.INSTANCE.skipW80s()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1379 || !Config.INSTANCE.skipW80CSVs()) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1380 log.info("store cross sections");
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1381 getPeer();
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1382 for (final ImportCrossSection crossSection: this.crossSections) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1383 crossSection.storeDependencies();
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1384 }
1204
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1385 }
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1386 }
22858e7cca79 Integrated PRF parsing into importer. Needs testing!
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 766
diff changeset
1387
201
3169b559ca3c Build models for wsts, wst columns and q ranges and store them in the backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 197
diff changeset
1388 public void storeWst() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1389 if (this.wst != null && !Config.INSTANCE.skipWst()) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1390 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1391 this.wst.storeDependencies(river);
7183
0fe00824bd96 flys/issue1500: The main wst file determines km_up now.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6724
diff changeset
1392
0fe00824bd96 flys/issue1500: The main wst file determines km_up now.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6724
diff changeset
1393 // The flow direction of the main wst and the corresponding
0fe00824bd96 flys/issue1500: The main wst file determines km_up now.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6724
diff changeset
1394 // waterlevels determine if the river is 'km_up'.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1395 final Session session = ImporterSession.getInstance()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1396 .getDatabaseSession();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1397 river.setKmUp(this.wst.getKmUp());
7183
0fe00824bd96 flys/issue1500: The main wst file determines km_up now.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6724
diff changeset
1398 session.save(river);
483
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1399 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1400 }
f1fd9cab6a07 Importer: parse and store fixation wst files as well
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 482
diff changeset
1401
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1402 public void storeFixations() {
5262
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
1403 if (!Config.INSTANCE.skipFixations()) {
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
1404 log.info("store fixation wsts");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1405 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1406 for (final ImportWst fWst: this.fixations) {
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1407 log.debug("Fixation name: " + fWst.getDescription());
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1408 fWst.storeDependencies(river);
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1409 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1410 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1411 }
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1412
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1413
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1414 /** Store wsts from waterlevel-csv files. */
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1415 public void storeWaterlevels() {
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1416 if (!Config.INSTANCE.skipWaterlevels())
5262
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
1417
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1418 log.info("store waterlevel wsts from csv");
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1419 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1420 for (final ImportWst wWst: this.waterlevels) {
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1421 log.debug("Waterlevel name: " + wWst.getDescription());
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1422 wWst.storeDependencies(river);
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1423 }
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1424 }
5262
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
1425
5261
1e403a0efc21 ImportRiver: Light cleaning up, waterlevelimport more parralel to other imports.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5248
diff changeset
1426
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1427 /** Store wsts from waterleveldifference-csv files. */
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1428 public void storeWaterlevelDifferences() {
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1429 if (!Config.INSTANCE.skipWaterlevelDifferences())
5280
dba703edfff1 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5262
diff changeset
1430
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1431 log.info("store waterleveldifferences wsts from csv");
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1432 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1433 for (final ImportWst dWst: this.waterlevelDifferences) {
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1434 log.debug("water.diff.: name " + dWst.getDescription());
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1435 dWst.storeDependencies(river);
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1436 }
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1437 }
5280
dba703edfff1 Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5262
diff changeset
1438
5232
11b2a0c55318 ImportRiver: Import WaterlevelDifferences as Wst.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5227
diff changeset
1439
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1440 public void storeExtraWsts() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1441 if (!Config.INSTANCE.skipExtraWsts()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1442 log.info("store extra wsts");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1443 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1444 for (final ImportWst wst: this.extraWsts) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1445 log.debug("name: " + wst.getDescription());
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1446 wst.storeDependencies(river);
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1447 }
482
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1448 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1449 }
3a99d0295006 Importer: Support parsing "zusaetzliche Laengsschnitte".
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 201
diff changeset
1450
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1451 public void storeOfficialLines() {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1452 if (Config.INSTANCE.skipOfficialLines() || this.officialLines.isEmpty()) {
6347
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1453 return;
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1454 }
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1455
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1456 log.info("store official lines wsts");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1457 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1458 for (final ImportWst wst: this.officialLines) {
6347
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1459 log.debug("name: " + wst.getDescription());
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1460 wst.storeDependencies(river);
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1461
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1462 // Store the official lines after the columns are store.
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1463 for (final ImportWstColumn wc: wst.getColumns()) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1464 final ImportOfficialWstColumn owc = (ImportOfficialWstColumn)wc;
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1465 final ImportOfficialLine ioc = owc.getOfficialLine();
6347
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1466 if (ioc != null) {
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1467 if (ioc.getPeer(river) == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8811
diff changeset
1468 log.warn("Cannot store official line: "
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1469 + ioc.getName());
6347
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1470 }
75c483450c96 Backend: Store official lines from config if they are any.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 6345
diff changeset
1471 }
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1472 }
484
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1473 }
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1474 }
a9e9a8a44d19 Parse and store "amtliche Linien" wst files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 483
diff changeset
1475
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
1476 public void storeFloodWater() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1477 if (!Config.INSTANCE.skipFloodWater()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1478 log.info("store flood water wsts");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1479 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1480 for (final ImportWst wst: this.floodWater) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1481 log.debug("name: " + wst.getDescription());
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1482 wst.storeDependencies(river);
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1483 }
490
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
1484 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
1485 }
13af9318a4a2 Import "Hochwasser-Marken", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 484
diff changeset
1486
5262
0d9ad1c432b8 ImportRiver: Cosmetics, resolved todo.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5261
diff changeset
1487
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
1488 public void storeFloodProtection() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1489 if (!Config.INSTANCE.skipFloodProtection()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1490 log.info("store flood protection wsts");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1491 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1492 for (final ImportWst wst: this.floodProtection) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1493 log.debug("name: " + wst.getDescription());
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1494 wst.storeDependencies(river);
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1495 }
494
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
1496 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
1497 }
88d5b02ff0c1 Importer: Import the "HW-Schutzanlagen", too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 491
diff changeset
1498
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
1499
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
1500 public void storeBedHeight() {
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1501 if (!Config.INSTANCE.skipBedHeight()) {
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1502 log.info("store bed heights");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1503 final River river = getPeer();
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1504
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1505 if (this.bedHeights != null) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1506 for (final ImportBedHeight tmp: this.bedHeights) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1507 final ImportBedHeight single = tmp;
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1508
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1509 final String desc = single.getDescription();
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1510
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1511 log.debug("name: " + desc);
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1512
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1513 single.storeDependencies(river);
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1514 }
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
1515 }
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1516 else {
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1517 log.info("No bed heights to store.");
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8557
diff changeset
1518 }
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1519 }
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1520 }
2806
33f40b23edd8 Initial checkin for parsing MINFO bed heights.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2347
diff changeset
1521
2810
04eeb45df27b Implemented model classes and importer classes for bed height epochs.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2809
diff changeset
1522
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1523 public void storeSedimentDensity() {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1524 if (!Config.INSTANCE.skipSedimentDensity()) {
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1525 log.info("store sediment density");
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1526
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1527 final River river = getPeer();
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
1528
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1529 for (final ImportSedimentDensity density: this.sedimentDensities) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1530 final String desc = density.getDescription();
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
1531
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
1532 log.debug("name: " + desc);
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
1533
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1534 density.storeDependencies(river);
2817
8979f2294af9 Finished parsing MINFO specific sediment density.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2815
diff changeset
1535 }
2815
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1536 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1537 }
3febaed762b8 Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2811
diff changeset
1538
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1539 public void storePorosity() {
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1540 if (!Config.INSTANCE.skipPorosity()) {
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1541 log.info("store porosity");
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1542
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1543 final River river = getPeer();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1544
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1545 for (final ImportPorosity porosity: this.porosities) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1546 final String desc = porosity.getDescription();
7841
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1547
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1548 log.debug("name: " + desc);
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1549
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1550 porosity.storeDependencies(river);
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1551 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1552 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1553 }
8036688f24e1 Parse and import porosities.
Raimund Renkert <rrenkert@intevation.de>
parents: 7767
diff changeset
1554
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1555 public void storeMorphologicalWidth() {
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1556 if (!Config.INSTANCE.skipMorphologicalWidth()) {
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1557 log.info("store morphological width");
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1558
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1559 final River river = getPeer();
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1560
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1561 for (final ImportMorphWidth width: this.morphologicalWidths) {
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1562 width.storeDependencies(river);
2821
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1563 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1564 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1565 }
0a536eb5d668 Added parser for parsing morphological widths.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2817
diff changeset
1566
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1567 public void storeFlowVelocity() {
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1568 if (!Config.INSTANCE.skipFlowVelocity()) {
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1569 log.info("store flow velocity");
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1570
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1571 final River river = getPeer();
2827
85b25e74594f Added temp classes used during the import process of flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2826
diff changeset
1572
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1573 for (final ImportFlowVelocityModel flowVelocityModel: this.flowVelocityModels
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1574 ) {
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1575 flowVelocityModel.storeDependencies(river);
2827
85b25e74594f Added temp classes used during the import process of flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2826
diff changeset
1576 }
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
1577
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1578 for (final ImportFlowVelocityMeasurement m: this.flowVelocityMeasurements) {
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1579 m.storeDependencies(river);
2832
ac5bd90697c1 Added new parser for flow velocity measurements and fixed some smaller bugs while importing flow velocity data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2828
diff changeset
1580 }
2826
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1581 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1582 }
c3f8cf0cdf69 Prepared the importer to parse flow velocity files and added a config option to skip that process.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2821
diff changeset
1583
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1584
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
1585 public void storeSedimentLoadLS() {
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
1586 if (!Config.INSTANCE.skipSedimentLoadLS()) {
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
1587 log.info("store sediment load longitudinal section data");
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1588
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1589 final River river = getPeer();
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1590
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1591 for (final ImportSedimentLoadLS sedimentLoadLS: this.sedimentLoadLSs) {
8032
fd3a24336e6a SCHEMA CHANGE and Importer (only longitudinal section data so far): only grain fractions given now in schema are valid. We are handling sediment loads, not yields.
"Tom Gottfried <tom@intevation.de>"
parents: 8031
diff changeset
1592 sedimentLoadLS.storeDependencies(river);
2839
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1593 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1594 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1595 }
163c037f2c7e Added config option to skip parsing sediment yield data and prepared the importer to read/store those data.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2832
diff changeset
1596
2844
c4db0f75a94a Prepared the importer to import MINFO specific waterlevel values and added a stub for a parser.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2840
diff changeset
1597
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1598 public void storeSedimentLoad() {
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1599 if (!Config.INSTANCE.skipSedimentLoad()) {
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1600 log.info("store sediment load data at measurement stations");
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1601
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1602 for (final ImportSedimentLoad sedimentLoad: this.sedimentLoads) {
8056
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1603 sedimentLoad.storeDependencies();
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1604 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1605 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1606 }
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1607
d86cc6a17b7a Importer: Import sediment load at measurement stations.
Tom Gottfried <tom@intevation.de>
parents: 8032
diff changeset
1608
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1609 public void storeMeasurementStations() {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1610 if (!Config.INSTANCE.skipMeasurementStations()) {
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1611 log.info("store measurement stations");
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1612
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1613 final River river = getPeer();
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1614
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1615 int count = 0;
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1616
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1617 for (final ImportMeasurementStation station: this.measurementStations) {
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1618 final boolean success = station.storeDependencies(river);
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1619 if (success) {
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1620 count++;
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1621 }
4193
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1622 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1623
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1624 log.info("stored " + count + " measurement stations.");
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1625 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1626 }
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1627
f63b39799d2d Adapted DB schema (added relation measurement_station); improved importer to read files from filesystem with measurement stations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3660
diff changeset
1628
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1629 public void storeSQRelations() {
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1630 if (!Config.INSTANCE.skipSQRelation()) {
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1631 log.info("store sq relations");
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1632
3329
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
1633 int count = 0;
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
1634
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1635 for (final ImportSQRelation sqRelation: this.sqRelations) {
8641
c851d1ea543a SCHEMA CHANGE: Remove unnecessary direct relation of sq_relation with rivers.
Tom Gottfried <tom@intevation.de>
parents: 8559
diff changeset
1636 sqRelation.storeDependencies();
7252
c894b7b45c4c Replaced some tabs by spaces. Guys, please configure your editors not to insert tabs!
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7183
diff changeset
1637 count++;
3329
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
1638 }
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
1639
cc8fc6b29649 Store sq relations into database after parsing.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3328
diff changeset
1640 log.info("stored " + count + " sq relations.");
3328
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1641 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1642 }
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1643
a41f279a66e2 Added parser and import classes to import MINFO sq relations.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3327
diff changeset
1644
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1645 public void storeAnnotations() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1646 if (!Config.INSTANCE.skipAnnotations()) {
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1647 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1648 for (final ImportAnnotation annotation: this.annotations) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1649 annotation.getPeer(river);
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1650 }
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1651 }
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1652 }
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1653
190
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1654 public void storeGauges() {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1655 if (!Config.INSTANCE.skipGauges()) {
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1656 log.info("store gauges:");
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1657 final River river = getPeer();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1658 final Session session = ImporterSession.getInstance()
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1659 .getDatabaseSession();
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1660 for (final ImportGauge gauge: this.gauges) {
1223
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1661 log.info("\tgauge: " + gauge.getName());
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1662 gauge.storeDependencies(river);
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1663 ImporterSession.getInstance().getDatabaseSession();
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1664 session.flush();
268f8da412e3 Importer: Added a central configuration to allow skipping of parsing/storing individual sub systems.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 1221
diff changeset
1665 }
191
c4fb5141ce11 Propagate river into storing of gauges.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 190
diff changeset
1666 }
190
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1667 }
d40da430d2fe Added stub code to write gauges
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 189
diff changeset
1668
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1669 public River getPeer() {
9650
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1670 return getPeer(true);
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1671 }
2347
0acf28a3d28a Removed the Unit from Wsts - added a WstUnit column to rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1234
diff changeset
1672
9650
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1673 public River getPeer(final boolean storeIfNew) {
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1674
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1675 if (this.peer != null)
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1676 return this.peer;
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1677
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1678 final Session session = ImporterSession.getInstance().getDatabaseSession();
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1679 final Query query = session.createQuery("FROM River WHERE name=:name");
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1680
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1681 Unit u = null;
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1682 if (storeIfNew && (this.wstUnit != null)) {
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1683 u = this.wstUnit.getPeer();
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1684 }
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1685
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1686 query.setString("name", this.name);
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1687 final List<River> rivers = query.list();
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1688 if (rivers.isEmpty() && storeIfNew) {
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1689 log.info("Store new river '" + this.name + "'");
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1690 this.peer = new River(this.name, u, this.modelUuid);
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1691 if (!Config.INSTANCE.skipBWASTR()) {
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1692 this.peer.setOfficialNumber(this.officialNumber);
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1693 }
9650
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1694 session.save(this.peer);
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1695 }
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1696 else {
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1697 this.peer = rivers.get(0);
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1698 }
8971
50416a0df385 Importer for the Schifffahrt (S-INFO) and Oekologie (U-INFO) files
mschaefer
parents: 8856
diff changeset
1699 return this.peer;
188
003ac16812dd Store annotations in backend.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 186
diff changeset
1700 }
177
31895d24387e Importer: Added info gew parser.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1701 }
9650
a2a42a6bac6b Importer (s/u-info) extensions:
mschaefer
parents: 8988
diff changeset
1702

http://dive4elements.wald.intevation.org