comparison flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 3328:a41f279a66e2

Added parser and import classes to import MINFO sq relations. flys-backend/trunk@4646 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Wed, 13 Jun 2012 06:22:04 +0000
parents bf8d9a4f4cd4
children cc8fc6b29649
comparison
equal deleted inserted replaced
3327:bf8d9a4f4cd4 3328:a41f279a66e2
14 import de.intevation.flys.importer.parsers.MorphologicalWidthParser; 14 import de.intevation.flys.importer.parsers.MorphologicalWidthParser;
15 import de.intevation.flys.importer.parsers.PRFParser; 15 import de.intevation.flys.importer.parsers.PRFParser;
16 import de.intevation.flys.importer.parsers.PegelGltParser; 16 import de.intevation.flys.importer.parsers.PegelGltParser;
17 import de.intevation.flys.importer.parsers.SedimentDensityParser; 17 import de.intevation.flys.importer.parsers.SedimentDensityParser;
18 import de.intevation.flys.importer.parsers.SedimentYieldParser; 18 import de.intevation.flys.importer.parsers.SedimentYieldParser;
19 import de.intevation.flys.importer.parsers.SQRelationParser;
19 import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser; 20 import de.intevation.flys.importer.parsers.WaterlevelDifferencesParser;
20 import de.intevation.flys.importer.parsers.WaterlevelParser; 21 import de.intevation.flys.importer.parsers.WaterlevelParser;
21 import de.intevation.flys.importer.parsers.WstParser; 22 import de.intevation.flys.importer.parsers.WstParser;
22 23
23 import de.intevation.flys.model.River; 24 import de.intevation.flys.model.River;
94 95
95 public static final String MINFO_WATERLEVELS_DIR = "Wasserspiegellagen"; 96 public static final String MINFO_WATERLEVELS_DIR = "Wasserspiegellagen";
96 97
97 public static final String MINFO_WATERLEVEL_DIFF_DIR = "Wasserspiegeldifferenzen"; 98 public static final String MINFO_WATERLEVEL_DIFF_DIR = "Wasserspiegeldifferenzen";
98 99
100 public static final String MINFO_SQ_DIR = "Feststofftransport-Abfluss-Beziehung";
101
99 102
100 protected String name; 103 protected String name;
101 104
102 protected File wstFile; 105 protected File wstFile;
103 106
136 protected List<ImportSedimentYield> sedimentYields; 139 protected List<ImportSedimentYield> sedimentYields;
137 140
138 protected List<ImportWaterlevel> waterlevels; 141 protected List<ImportWaterlevel> waterlevels;
139 142
140 protected List<ImportWaterlevelDifference> waterlevelDiffs; 143 protected List<ImportWaterlevelDifference> waterlevelDiffs;
144
145 protected List<ImportSQRelation> sqRelations;
141 146
142 protected ImportWst wst; 147 protected ImportWst wst;
143 148
144 protected ImportUnit wstUnit; 149 protected ImportUnit wstUnit;
145 150
160 flowVelocityModels = new ArrayList<ImportFlowVelocityModel>(); 165 flowVelocityModels = new ArrayList<ImportFlowVelocityModel>();
161 flowVelocityMeasurements = new ArrayList<ImportFlowVelocityMeasurement>(); 166 flowVelocityMeasurements = new ArrayList<ImportFlowVelocityMeasurement>();
162 sedimentYields = new ArrayList<ImportSedimentYield>(); 167 sedimentYields = new ArrayList<ImportSedimentYield>();
163 waterlevels = new ArrayList<ImportWaterlevel>(); 168 waterlevels = new ArrayList<ImportWaterlevel>();
164 waterlevelDiffs = new ArrayList<ImportWaterlevelDifference>(); 169 waterlevelDiffs = new ArrayList<ImportWaterlevelDifference>();
170 sqRelations = new ArrayList<ImportSQRelation>();
165 } 171 }
166 172
167 public ImportRiver( 173 public ImportRiver(
168 String name, 174 String name,
169 File wstFile, 175 File wstFile,
230 parseMorphologicalWidth(); 236 parseMorphologicalWidth();
231 parseFlowVelocity(); 237 parseFlowVelocity();
232 parseSedimentYield(); 238 parseSedimentYield();
233 parseWaterlevels(); 239 parseWaterlevels();
234 parseWaterlevelDifferences(); 240 parseWaterlevelDifferences();
241 parseSQRelation();
235 } 242 }
236 243
237 public void parseFloodProtection() throws IOException { 244 public void parseFloodProtection() throws IOException {
238 if (Config.INSTANCE.skipFloodProtection()) { 245 if (Config.INSTANCE.skipFloodProtection()) {
239 log.info("skip parsing flood protection"); 246 log.info("skip parsing flood protection");
360 log.info("Parsed " + morphologicalWidths.size() + " morph. widths files."); 367 log.info("Parsed " + morphologicalWidths.size() + " morph. widths files.");
361 } 368 }
362 369
363 370
364 protected void parseFlowVelocity() throws IOException { 371 protected void parseFlowVelocity() throws IOException {
365 log.debug("Parse flow velocity");
366
367 if (Config.INSTANCE.skipFlowVelocity()) { 372 if (Config.INSTANCE.skipFlowVelocity()) {
368 log.info("skip parsing flow velocity"); 373 log.info("skip parsing flow velocity");
369 return; 374 return;
370 } 375 }
376
377 log.debug("Parse flow velocity");
371 378
372 File minfoDir = getMinfoDir(); 379 File minfoDir = getMinfoDir();
373 File flowDir = new File(minfoDir, FLOW_VELOCITY_DIR); 380 File flowDir = new File(minfoDir, FLOW_VELOCITY_DIR);
374 File modelDir = new File(flowDir, FLOW_VELOCITY_MODEL); 381 File modelDir = new File(flowDir, FLOW_VELOCITY_MODEL);
375 File measureDir = new File(flowDir, FLOW_VELOCITY_MEASUREMENTS); 382 File measureDir = new File(flowDir, FLOW_VELOCITY_MEASUREMENTS);
516 for (File file: files) { 523 for (File file: files) {
517 parser.parse(file); 524 parser.parse(file);
518 } 525 }
519 526
520 waterlevelDiffs = parser.getDifferences(); 527 waterlevelDiffs = parser.getDifferences();
528 }
529
530
531 protected void parseSQRelation() throws IOException {
532 if (Config.INSTANCE.skipSQRelation()) {
533 log.info("skip sq relation");
534 return;
535 }
536
537 log.info("Parse sq relations");
538
539 File minfo = getMinfoDir();
540 File sqDir = new File(minfo, MINFO_SQ_DIR);
541
542 File[] files = sqDir.listFiles();
543
544 if (files == null) {
545 log.warn("Cannot read directory '" + sqDir + "'");
546 return;
547 }
548
549 SQRelationParser parser = new SQRelationParser();
550
551 for (File file: files) {
552 parser.parse(file);
553 }
554
555 sqRelations = parser.getSQRelations();
556
557 log.debug("Parsed " + sqRelations.size() + " SQ relations.");
521 } 558 }
522 559
523 560
524 protected void parseBedHeightSingles(File dir) throws IOException { 561 protected void parseBedHeightSingles(File dir) throws IOException {
525 log.debug("Parse bed height singles"); 562 log.debug("Parse bed height singles");
890 storeMorphologicalWidth(); 927 storeMorphologicalWidth();
891 storeFlowVelocity(); 928 storeFlowVelocity();
892 storeSedimentYield(); 929 storeSedimentYield();
893 storeWaterlevels(); 930 storeWaterlevels();
894 storeWaterlevelDifferences(); 931 storeWaterlevelDifferences();
932 storeSQRelations();
895 } 933 }
896 934
897 public void storeWstUnit() { 935 public void storeWstUnit() {
898 if (wst == null) { 936 if (wst == null) {
899 wstUnit = new ImportUnit("NN + m"); 937 wstUnit = new ImportUnit("NN + m");
1180 } 1218 }
1181 catch (ConstraintViolationException cve) { 1219 catch (ConstraintViolationException cve) {
1182 log.error("Error while storing waterlevel diff.", cve); 1220 log.error("Error while storing waterlevel diff.", cve);
1183 } 1221 }
1184 } 1222 }
1223 }
1224 }
1225
1226
1227 public void storeSQRelations() {
1228 if (!Config.INSTANCE.skipSQRelation()) {
1229 log.info("store sq relations");
1230
1231 // TODO
1185 } 1232 }
1186 } 1233 }
1187 1234
1188 1235
1189 public void storeAnnotations() { 1236 public void storeAnnotations() {

http://dive4elements.wald.intevation.org