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]));

http://dive4elements.wald.intevation.org