Mercurial > dive4elements > river
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() { |