Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQCurveFacet.java @ 3105:9592b7d76633
Generate fake data for SQ curves; Implemented the Facet and Generator stuff.
flys-artifacts/trunk@4704 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Tue, 19 Jun 2012 13:55:14 +0000 |
parents | b31397addf2f |
children | 8af1111af180 |
comparison
equal
deleted
inserted
replaced
3104:6391ca82141c | 3105:9592b7d76633 |
---|---|
3 import org.apache.log4j.Logger; | 3 import org.apache.log4j.Logger; |
4 | 4 |
5 import de.intevation.artifacts.Artifact; | 5 import de.intevation.artifacts.Artifact; |
6 import de.intevation.artifacts.CallContext; | 6 import de.intevation.artifacts.CallContext; |
7 | 7 |
8 | 8 import de.intevation.flys.artifacts.FLYSArtifact; |
9 import de.intevation.flys.artifacts.math.fitting.Function; | |
10 import de.intevation.flys.artifacts.math.fitting.FunctionFactory; | |
11 import de.intevation.flys.artifacts.model.CalculationResult; | |
12 import de.intevation.flys.artifacts.model.DataFacet; | |
9 import de.intevation.flys.artifacts.model.FacetTypes; | 13 import de.intevation.flys.artifacts.model.FacetTypes; |
10 import de.intevation.flys.artifacts.model.DataFacet; | 14 import de.intevation.flys.artifacts.model.Parameters; |
11 | 15 |
12 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | 16 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; |
13 | 17 |
14 | 18 |
15 /** | 19 /** |
18 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 22 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
19 */ | 23 */ |
20 public class SQCurveFacet extends DataFacet implements FacetTypes { | 24 public class SQCurveFacet extends DataFacet implements FacetTypes { |
21 | 25 |
22 private static final Logger log = Logger.getLogger(SQCurveFacet.class); | 26 private static final Logger log = Logger.getLogger(SQCurveFacet.class); |
27 | |
28 | |
29 public static final String FUNCTION = "sq-pow"; | |
23 | 30 |
24 | 31 |
25 private int fractionIdx; | 32 private int fractionIdx; |
26 | 33 |
27 | 34 |
43 | 50 |
44 | 51 |
45 @Override | 52 @Override |
46 public Object getData(Artifact artifact, CallContext context) { | 53 public Object getData(Artifact artifact, CallContext context) { |
47 log.debug("SQCurveFacet.getData"); | 54 log.debug("SQCurveFacet.getData"); |
48 log.error("NOT IMPLEMENTED!"); | 55 |
56 if (artifact instanceof FLYSArtifact) { | |
57 FLYSArtifact flys = (FLYSArtifact) artifact; | |
58 | |
59 CalculationResult res = (CalculationResult) flys.compute( | |
60 context, ComputeType.ADVANCE, false); | |
61 | |
62 SQResult[] results = (SQResult[]) res.getData(); | |
63 SQFractionResult result = results[index].getFraction(fractionIdx); | |
64 | |
65 Function func = FunctionFactory.getInstance().getFunction(FUNCTION); | |
66 String[] paramNames = func.getParameterNames(); | |
67 | |
68 Parameters params = result.getParameters(); | |
69 double[] coeffs = params.get(0, paramNames); | |
70 | |
71 if (log.isDebugEnabled()) { | |
72 for (int i = 0, N = paramNames.length; i < N; i++) { | |
73 log.debug("retrieved parameter " + paramNames[i] + | |
74 " = " + coeffs[i]); | |
75 } | |
76 } | |
77 | |
78 de.intevation.flys.artifacts.math.Function mf = | |
79 func.instantiate(coeffs); | |
80 | |
81 return new SQFunction(mf, result.getMinQ(), result.getMaxQ()); | |
82 } | |
49 | 83 |
50 return null; | 84 return null; |
51 } | 85 } |
52 | 86 |
53 | 87 |