Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixWQCurveFacet.java @ 3074:6502b17931b9
FixA: W/Q facet code cleanup.
flys-artifacts/trunk@4665 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 14 Jun 2012 14:09:02 +0000 |
parents | 0ace00c0c12a |
children | dc2765e31e1f |
comparison
equal
deleted
inserted
replaced
3073:0ace00c0c12a | 3074:6502b17931b9 |
---|---|
1 package de.intevation.flys.artifacts.model.fixings; | 1 package de.intevation.flys.artifacts.model.fixings; |
2 | |
3 import org.apache.log4j.Logger; | |
4 | 2 |
5 import de.intevation.artifacts.Artifact; | 3 import de.intevation.artifacts.Artifact; |
6 import de.intevation.artifacts.CallContext; | 4 import de.intevation.artifacts.CallContext; |
7 | 5 |
8 import de.intevation.flys.utils.KMIndex; | |
9 | |
10 import de.intevation.flys.artifacts.FLYSArtifact; | 6 import de.intevation.flys.artifacts.FLYSArtifact; |
11 import de.intevation.flys.artifacts.FixationArtifactAccess; | 7 import de.intevation.flys.artifacts.FixationArtifactAccess; |
12 | 8 |
9 import de.intevation.flys.artifacts.math.fitting.Function; | |
10 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; | |
11 | |
12 import de.intevation.flys.artifacts.model.CalculationResult; | |
13 import de.intevation.flys.artifacts.model.DataFacet; | |
13 import de.intevation.flys.artifacts.model.FacetTypes; | 14 import de.intevation.flys.artifacts.model.FacetTypes; |
14 import de.intevation.flys.artifacts.model.DataFacet; | |
15 import de.intevation.flys.artifacts.model.CalculationResult; | |
16 import de.intevation.flys.artifacts.model.Parameters; | 15 import de.intevation.flys.artifacts.model.Parameters; |
17 | 16 |
18 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; | 17 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; |
19 import de.intevation.flys.artifacts.math.fitting.Function; | |
20 | 18 |
21 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | 19 import org.apache.log4j.Logger; |
22 | 20 |
23 /** | 21 /** |
24 * Facet to show the W|Q values. | 22 * Facet to show the W|Q values. |
25 * | 23 * |
26 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> | 24 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> |
71 logger.debug("FixWQCurveFacet.getData: km = " + km); | 69 logger.debug("FixWQCurveFacet.getData: km = " + km); |
72 | 70 |
73 String function = access.getFunction(); | 71 String function = access.getFunction(); |
74 Function ff = FunctionFactory.getInstance().getFunction(function); | 72 Function ff = FunctionFactory.getInstance().getFunction(function); |
75 | 73 |
74 if (ff == null) { | |
75 return null; | |
76 } | |
77 | |
76 Parameters params = result.getParameters(); | 78 Parameters params = result.getParameters(); |
77 String[] columnNames = params.getColumnNames(); | |
78 | |
79 String[] paramNames = ff.getParameterNames(); | 79 String[] paramNames = ff.getParameterNames(); |
80 | 80 |
81 double [] coeffs = params.interpolate("km", km, paramNames); | 81 double [] coeffs = params.interpolate("km", km, paramNames); |
82 | 82 |
83 if (coeffs == null) { | 83 if (coeffs == null) { |
86 | 86 |
87 de.intevation.flys.artifacts.math.Function mf = | 87 de.intevation.flys.artifacts.math.Function mf = |
88 ff.instantiate(coeffs); | 88 ff.instantiate(coeffs); |
89 | 89 |
90 double maxQ = getMaxQ(params, km); | 90 double maxQ = getMaxQ(params, km); |
91 | |
91 logger.debug("getData: maxQ = " + maxQ); | 92 logger.debug("getData: maxQ = " + maxQ); |
92 | 93 |
93 FixFunction fix = new FixFunction( | 94 FixFunction fix = new FixFunction( |
94 ff.getName(), | 95 ff.getName(), |
95 ff.getDescription(), | 96 ff.getDescription(), |
103 return null; | 104 return null; |
104 } | 105 } |
105 } | 106 } |
106 | 107 |
107 | 108 |
108 protected double getMaxQ(Parameters params, double km) { | 109 public static double getMaxQ(Parameters params, double km) { |
109 double [] maxQ = params.interpolate("km", km, new String[] { "max_q" }); | 110 double [] maxQ = params.interpolate("km", km, new String[] { "max_q" }); |
110 if (maxQ == null) { | 111 if (maxQ == null) { |
111 return 1000; | 112 return 1000; |
112 } | 113 } |
113 double mQ = Math.min(10000, Math.abs(maxQ[0])); | 114 double mQ = Math.min(10000, Math.abs(maxQ[0])); |