Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java @ 7841:8036688f24e1
Parse and import porosities.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 30 Apr 2014 14:12:59 +0200 |
parents | 754ed00963d6 |
children | 5813c206ff64 |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java Wed Apr 30 14:11:29 2014 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportRiver.java Wed Apr 30 14:12:59 2014 +0200 @@ -27,6 +27,7 @@ import org.dive4elements.river.importer.parsers.OfficialLinesConfigParser; import org.dive4elements.river.importer.parsers.PRFParser; import org.dive4elements.river.importer.parsers.PegelGltParser; +import org.dive4elements.river.importer.parsers.PorosityParser; import org.dive4elements.river.importer.parsers.SQRelationParser; import org.dive4elements.river.importer.parsers.SedimentDensityParser; import org.dive4elements.river.importer.parsers.SedimentYieldParser; @@ -96,6 +97,8 @@ public static final String SEDIMENT_DENSITY_DIR = "Sedimentdichte"; + public static final String POROSITY_DIR = "Porositaet"; + public static final String MORPHOLOGICAL_WIDTH_DIR = "morphologische_Breite"; public static final String FLOW_VELOCITY_DIR = "Geschwindigkeit_Schubspannung"; @@ -164,6 +167,8 @@ protected List<ImportSedimentDensity> sedimentDensities; + protected List<ImportPorosity> porosities; + protected List<ImportMorphWidth> morphologicalWidths; protected List<ImportFlowVelocityModel> flowVelocityModels; @@ -282,6 +287,7 @@ waterlevelDifferences = new ArrayList<ImportWst>(); floodProtection = new ArrayList<ImportWst>(); sedimentDensities = new ArrayList<ImportSedimentDensity>(); + porosities = new ArrayList<ImportPorosity>(); morphologicalWidths = new ArrayList<ImportMorphWidth>(); flowVelocityModels = new ArrayList<ImportFlowVelocityModel>(); flowVelocityMeasurements = new ArrayList<ImportFlowVelocityMeasurement>(); @@ -375,6 +381,7 @@ parseFloodProtection(); parseBedHeight(); parseSedimentDensity(); + parsePorosity(); parseMorphologicalWidth(); parseFlowVelocity(); parseSedimentYield(); @@ -492,6 +499,34 @@ log.info("Parsed " + sedimentDensities.size() + " sediment densities."); } + protected void parsePorosity() throws IOException { + if (Config.INSTANCE.skipPorosity()) { + log.info("skip parsing porosity."); + return; + } + + log.debug("Parse porosity"); + + File minfoDir = getMinfoDir(); + File porosity = new File(minfoDir, POROSITY_DIR); + + File[] files = porosity.listFiles(); + + if (files == null) { + log.warn("Cannot read directory '" + porosity + "'"); + return; + } + + PorosityParser parser = new PorosityParser(); + + for (File file: files) { + parser.parse(file); + } + + porosities = parser.getPorosities(); + + log.info("Parsed " + porosities.size() + " porosities."); + } protected void parseMorphologicalWidth() throws IOException { if (Config.INSTANCE.skipMorphologicalWidth()) { @@ -1250,6 +1285,7 @@ storeFloodProtection(); storeBedHeight(); storeSedimentDensity(); + storePorosity(); storeMorphologicalWidth(); storeFlowVelocity(); storeSedimentYield(); @@ -1471,6 +1507,22 @@ } } + public void storePorosity() { + if (!Config.INSTANCE.skipPorosity()) { + log.info("store porosity"); + + River river = getPeer(); + + for (ImportPorosity porosity: porosities) { + String desc = porosity.getDescription(); + + log.debug("name: " + desc); + + porosity.storeDependencies(river); + } + } + } + public void storeMorphologicalWidth() { if (!Config.INSTANCE.skipMorphologicalWidth()) { log.info("store morphological width");