comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/extreme/ExtremeCompute.java @ 4302:ce10b846bc86

ExtremeCompute: Generate LS-Facets.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 29 Oct 2012 13:46:39 +0100
parents 1f304cb5729b
children e7b923cf3a9c
comparison
equal deleted inserted replaced
4301:1f304cb5729b 4302:ce10b846bc86
6 6
7 import de.intevation.flys.artifacts.FLYSArtifact; 7 import de.intevation.flys.artifacts.FLYSArtifact;
8 8
9 import de.intevation.flys.artifacts.access.ExtremeAccess; 9 import de.intevation.flys.artifacts.access.ExtremeAccess;
10 10
11 import de.intevation.flys.artifacts.model.Calculation;
11 import de.intevation.flys.artifacts.model.CalculationResult; 12 import de.intevation.flys.artifacts.model.CalculationResult;
13 import de.intevation.flys.artifacts.model.FacetTypes;
12 import de.intevation.flys.artifacts.model.ReportFacet; 14 import de.intevation.flys.artifacts.model.ReportFacet;
15 import de.intevation.flys.artifacts.model.WaterlevelFacet;
16 import de.intevation.flys.artifacts.model.WQKms;
13 17
14 import de.intevation.flys.artifacts.model.extreme.ExtremeCalculation; 18 import de.intevation.flys.artifacts.model.extreme.ExtremeCalculation;
19 import de.intevation.flys.artifacts.model.extreme.ExtremeResult;
15 20
16 import de.intevation.flys.artifacts.states.DefaultState; 21 import de.intevation.flys.artifacts.states.DefaultState;
22
23 import de.intevation.flys.utils.FLYSUtils;
17 24
18 import java.util.List; 25 import java.util.List;
19 26
20 import org.apache.log4j.Logger; 27 import org.apache.log4j.Logger;
21 28
22 /** State in which to deliver extreme value analysis result. */ 29 /** State in which to deliver extreme value analysis result. */
23 public class ExtremeCompute 30 public class ExtremeCompute
24 extends DefaultState 31 extends DefaultState
32 implements FacetTypes
25 { 33 {
26 /** Private logger. */ 34 /** Private logger. */
27 private static Logger logger = Logger.getLogger(ExtremeCompute.class); 35 private static Logger logger = Logger.getLogger(ExtremeCompute.class);
28 36
29 public ExtremeCompute() { 37 public ExtremeCompute() {
57 65
58 if (res.getReport().hasProblems()) { 66 if (res.getReport().hasProblems()) {
59 facets.add(new ReportFacet()); 67 facets.add(new ReportFacet());
60 } 68 }
61 69
62 // TODO: Add more facets. 70 ExtremeResult eres = (ExtremeResult) res.getData();
71 WQKms [] wqkms = (WQKms []) eres.getWQKms();
72
73 if (wqkms == null) {
74 logger.error("No computation result!");
75 }
76
77 for (int i = 0; i < wqkms.length; i++) {
78 String name = wqkms[i].getName();
79
80 // Ext.Calc has wqkmsName(i)
81 String nameW = "WW";//TODO: FLYSUtils.createWspWTitle(artifact, context, name);
82 String nameQ = "QQ";//FLYSUtils.createWspQTitle(artifact, context, name);
83
84 // Hotfix for theme names. Themes with the same name cause problems
85 // aggregating chart legend items.
86 if (i > 0 && name.equals(wqkms[i - 1].getName())) {
87 nameW += "; Q=" + wqkms[i].get(0, new double[3])[1];
88 nameQ += " = " + wqkms[i].get(0, new double[3])[1];
89 }
90
91 Facet w = new WaterlevelFacet(
92 i, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, id, hash);
93 Facet q = new WaterlevelFacet(
94 i, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, id, hash);
95
96 // TODO add more facets like:
97 // csv, data, pdf wst facet
98 // furthermore, waterlevel
99 //facets.add(new CrossSectionWaterLineFacet(i, nameW));
100
101 facets.add(w);
102 facets.add(q);
103 }
104
63 105
64 return res; 106 return res;
65 } 107 }
66 } 108 }
67 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 109 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org