Mercurial > dive4elements > river
diff flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java @ 2815:3febaed762b8
Added new parser (stub) to read MINFO sediment density files; prepared import process to handle those files.
flys-backend/trunk@4232 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 13 Apr 2012 09:57:37 +0000 |
parents | 8926571e47fb |
children | 8979f2294af9 |
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Fri Apr 13 09:52:22 2012 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportRiver.java Fri Apr 13 09:57:37 2012 +0000 @@ -30,6 +30,7 @@ import de.intevation.flys.importer.parsers.AnnotationsParser; import de.intevation.flys.importer.parsers.AnnotationClassifier; import de.intevation.flys.importer.parsers.PegelGltParser; +import de.intevation.flys.importer.parsers.SedimentDensityParser; import de.intevation.flys.importer.parsers.WstParser; import org.hibernate.Session; @@ -67,6 +68,8 @@ public static final String BED_HEIGHT_EPOCH_DIR = "Epochen"; + public static final String SEDIMENT_DENSITY_DIR = "Sedimentdichte"; + protected String name; @@ -96,6 +99,8 @@ protected List<ImportBedHeight> bedHeightEpochs; + protected List<ImportSedimentDensity> sedimentDensities; + protected ImportWst wst; protected ImportUnit wstUnit; @@ -105,13 +110,14 @@ protected River peer; public ImportRiver() { - hyks = new ArrayList<ImportHYK>(); - crossSections = new ArrayList<ImportCrossSection>(); - extraWsts = new ArrayList<ImportWst>(); - fixations = new ArrayList<ImportWst>(); - officialLines = new ArrayList<ImportWst>(); - floodWater = new ArrayList<ImportWst>(); - floodProtection = new ArrayList<ImportWst>(); + hyks = new ArrayList<ImportHYK>(); + crossSections = new ArrayList<ImportCrossSection>(); + extraWsts = new ArrayList<ImportWst>(); + fixations = new ArrayList<ImportWst>(); + officialLines = new ArrayList<ImportWst>(); + floodWater = new ArrayList<ImportWst>(); + floodProtection = new ArrayList<ImportWst>(); + sedimentDensities = new ArrayList<ImportSedimentDensity>(); } public ImportRiver( @@ -176,6 +182,7 @@ parseFloodWater(); parseFloodProtection(); parseBedHeight(); + parseSedimentDensity(); } public void parseFloodProtection() throws IOException { @@ -247,6 +254,36 @@ } + protected void parseSedimentDensity() throws IOException { + log.debug("Parse sediment density"); + + if (Config.INSTANCE.skipSedimentDensity()) { + log.info("skip parsing sediment density."); + return; + } + + File minfoDir = getMinfoDir(); + File sediment = new File(minfoDir, SEDIMENT_DENSITY_DIR); + + File[] files = sediment.listFiles(); + + if (files == null) { + log.warn("Cannot parse directory '" + sediment + "'"); + return; + } + + SedimentDensityParser parser = new SedimentDensityParser(); + + for (File file: files) { + parser.parse(file); + } + + sedimentDensities = parser.getSedimentDensities(); + + log.info("Parsed " + sedimentDensities.size() + " sediment densities."); + } + + protected void parseBedHeightSingles(File dir) throws IOException { log.debug("Parse bed height singles"); @@ -612,6 +649,7 @@ storeFloodWater(); storeFloodProtection(); storeBedHeight(); + storeSedimentDensity(); } public void storeWstUnit() { @@ -774,6 +812,14 @@ } } + public void storeSedimentDensity() { + if (!Config.INSTANCE.skipSedimentDensity()) { + log.info("store sediment density"); + + // TODO + } + } + public void storeAnnotations() { if (!Config.INSTANCE.skipAnnotations()) { River river = getPeer();