# HG changeset patch # User mschaefer # Date 1532539734 -7200 # Node ID 9055afc19ec6aa9177a6e0735f60a927e9f1a098 # Parent 45bbd2c232f828a1ed22ca62f442d71f37a382b6 Fixed capturing invalid heights/discharges in S-Info flood duration calculation diff -r 45bbd2c232f8 -r 9055afc19ec6 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Wed Jul 25 19:27:25 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCalculator.java Wed Jul 25 19:28:54 2018 +0200 @@ -449,18 +449,21 @@ final double[] qs = wst.findQsForW(infrastructure.getStation().doubleValue(), infrastructure.getHeight().doubleValue(), problems); // TODO Fehlerbehandlung (kein Q gefunden) final double q = (qs.length >= 1) ? qs[0] : Double.NaN; + // Set the result row + row.putValue(SInfoResultType.riverside, infrastructure.getAttributeKey()); + row.putValue(SInfoResultType.floodDischarge, q); + row.putValue(SInfoResultType.infrastructureHeight, infrastructure.getHeight()); + row.putValue(SInfoResultType.infrastructuretype, infrastructure.getInfrastructure().getType().getName()); // Determine the relative column position of the Q of the infrastructure height final QPosition qPos = wst.getQPosition(infrastructure.getStation().doubleValue(), q); + if (qPos == null) + return; // Get the Q for the found column position for the station of the gauge final double qGauge = wst.getQ(qPos, gauge.getStation().doubleValue()); // Interpolate the Q-D-table of the gauge final double dur = underflowDaysToOverflowDays(durFinders.get(gauge).getDuration(qGauge)); - // Set the result row - row.putValue(SInfoResultType.riverside, infrastructure.getAttributeKey()); + // Set D in the result row row.putValue(SInfoResultType.floodDuration, dur); - row.putValue(SInfoResultType.floodDischarge, q); - row.putValue(SInfoResultType.infrastructureHeight, infrastructure.getHeight()); - row.putValue(SInfoResultType.infrastructuretype, infrastructure.getInfrastructure().getType().getName()); } /**