Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/GaugeDischargeCurveFacet.java @ 8326:10917ec29625
Inject current km and pnp into the context used to calculate W in cm at gauge.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 25 Sep 2014 17:23:12 +0200 |
parents | d4c501d2c098 |
children | 1c732c88a2d6 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/GaugeDischargeCurveFacet.java Wed Sep 24 18:33:11 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/GaugeDischargeCurveFacet.java Thu Sep 25 17:23:12 2014 +0200 @@ -24,6 +24,8 @@ import org.apache.log4j.Logger; +import static org.dive4elements.river.exports.injector.InjectorConstants.PNP; + /** * A Facet that returns discharge curve data at a gauge * @@ -77,7 +79,23 @@ } double [] kms = new double[values[0].length]; Arrays.fill(kms, gauge.getStation().doubleValue()); - return new WQKms(kms, values[0], values[1], name, WQKms.CENTIMETER_AT_GAUGE); + + Object pnpObject = context.getContextValue(PNP); + if (!(pnpObject instanceof Number)) { + return new WQKms(kms, values[0], values[1], name, W.CENTIMETER_AT_GAUGE); + } + double pnp = Double.valueOf(pnpObject.toString()); + double[] ws = transformToM(values[1], pnp); + + return new WQKms(kms, values[0], ws, name); + } + + private double[] transformToM(double[] ws, double pnp) { + double[] retVals = new double[ws.length]; + for (int i = 0; i < ws.length; i++) { + retVals[i] = ws[i]/100 + pnp; + } + return retVals; } @Override