comparison 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
comparison
equal deleted inserted replaced
8321:a5e7e2d833ea 8326:10917ec29625
21 import org.dive4elements.river.model.Gauge; 21 import org.dive4elements.river.model.Gauge;
22 22
23 import org.dive4elements.river.utils.RiverUtils; 23 import org.dive4elements.river.utils.RiverUtils;
24 24
25 import org.apache.log4j.Logger; 25 import org.apache.log4j.Logger;
26
27 import static org.dive4elements.river.exports.injector.InjectorConstants.PNP;
26 28
27 /** 29 /**
28 * A Facet that returns discharge curve data at a gauge 30 * A Facet that returns discharge curve data at a gauge
29 * 31 *
30 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a> 32 * @author <a href="mailto:bjoern.ricks@intevation.de">Björn Ricks</a>
75 if (values == null) { 77 if (values == null) {
76 return null; 78 return null;
77 } 79 }
78 double [] kms = new double[values[0].length]; 80 double [] kms = new double[values[0].length];
79 Arrays.fill(kms, gauge.getStation().doubleValue()); 81 Arrays.fill(kms, gauge.getStation().doubleValue());
80 return new WQKms(kms, values[0], values[1], name, WQKms.CENTIMETER_AT_GAUGE); 82
83 Object pnpObject = context.getContextValue(PNP);
84 if (!(pnpObject instanceof Number)) {
85 return new WQKms(kms, values[0], values[1], name, W.CENTIMETER_AT_GAUGE);
86 }
87 double pnp = Double.valueOf(pnpObject.toString());
88 double[] ws = transformToM(values[1], pnp);
89
90 return new WQKms(kms, values[0], ws, name);
91 }
92
93 private double[] transformToM(double[] ws, double pnp) {
94 double[] retVals = new double[ws.length];
95 for (int i = 0; i < ws.length; i++) {
96 retVals[i] = ws[i]/100 + pnp;
97 }
98 return retVals;
81 } 99 }
82 100
83 @Override 101 @Override
84 public Facet deepCopy() { 102 public Facet deepCopy() {
85 GaugeDischargeCurveFacet copy = new GaugeDischargeCurveFacet( 103 GaugeDischargeCurveFacet copy = new GaugeDischargeCurveFacet(

http://dive4elements.wald.intevation.org