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

http://dive4elements.wald.intevation.org