# HG changeset patch # User Sascha L. Teichmann # Date 1366033518 -7200 # Node ID 53134ccc4a645e873d967d352b8d1506a2bb7346 # Parent 8a198db28de0da4b0270daf1bd429edeb8c87f87 Backend: Import Flow Velocity Model: Use unique km for station. diff -r 8a198db28de0 -r 53134ccc4a64 flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java Mon Apr 15 12:56:43 2013 +0200 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportFlowVelocityModelValue.java Mon Apr 15 15:45:18 2013 +0200 @@ -49,7 +49,7 @@ Query query = session.createQuery( "from FlowVelocityModelValue where " + " flowVelocity=:model and " + - " station=:station" + " station between :station - 0.00001 and :station + 0.00001" ); query.setParameter("model", model); diff -r 8a198db28de0 -r 53134ccc4a64 flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java --- a/flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java Mon Apr 15 12:56:43 2013 +0200 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/parsers/FlowVelocityModelParser.java Mon Apr 15 15:45:18 2013 +0200 @@ -8,6 +8,7 @@ import java.text.ParseException; import java.util.ArrayList; import java.util.List; +import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -16,6 +17,7 @@ import de.intevation.flys.importer.ImportDischargeZone; import de.intevation.flys.importer.ImportFlowVelocityModel; import de.intevation.flys.importer.ImportFlowVelocityModelValue; +import de.intevation.flys.utils.EpsilonComparator; public class FlowVelocityModelParser extends LineParser { @@ -54,9 +56,12 @@ protected String description; + protected TreeSet kmExists; + public FlowVelocityModelParser() { models = new ArrayList(); + kmExists = new TreeSet(EpsilonComparator.CMP); } @@ -231,7 +236,15 @@ } try { - double km = nf.parse(cols[0]).doubleValue(); + double km = nf.parse(cols[0]).doubleValue(); + + Double key = Double.valueOf(km); + + if (kmExists.contains(key)) { + log.warn("duplicate stattion '" + km + "': -> ignored"); + return; + } + double q = nf.parse(cols[1]).doubleValue(); double total = nf.parse(cols[2]).doubleValue(); double main = nf.parse(cols[3]).doubleValue(); @@ -244,6 +257,8 @@ new BigDecimal(main), new BigDecimal(stress) )); + + kmExists.add(key); } catch (ParseException pe) { log.warn("Unparseable flow velocity values:", pe);