Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/FixDerivedCurveGenerator.java @ 3095:6ea299c208cd
Themes for fixing curves and debug output
flys-artifacts/trunk@4694 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Mon, 18 Jun 2012 14:37:10 +0000 |
parents | 179e38aa678d |
children | 2d4d9050b1c6 |
rev | line source |
---|---|
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.exports.fixings; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
2 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
3 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
4 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
5 import de.intevation.flys.artifacts.model.FacetTypes; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
6 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
7 import de.intevation.flys.artifacts.model.fixings.FixDerivateFacet; |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
8 import de.intevation.flys.artifacts.model.fixings.FixFunction; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
9 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
10 import de.intevation.flys.exports.ChartGenerator; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.flys.exports.XYChartGenerator; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
12 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
13 import de.intevation.flys.jfree.Function2DAdapter; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
14 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
16 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
17 import org.jfree.data.general.DatasetUtilities; |
3068
2fc9d0c65dc9
Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3067
diff
changeset
|
18 |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
19 import org.jfree.data.xy.XYSeries; |
3068
2fc9d0c65dc9
Removed superfluous import.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3067
diff
changeset
|
20 |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
21 import org.w3c.dom.Document; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
22 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
23 /** |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
24 * Generator for fixation derived function curve. |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
25 * |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
26 * @author <a href="mailto:christian.lins@intevation.de">Christian Lins</a> |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
27 */ |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
28 public class FixDerivedCurveGenerator |
3088
960307cf2adc
Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3081
diff
changeset
|
29 extends FixChartGenerator |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
30 implements FacetTypes |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
31 { |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
32 private static Logger logger = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
33 Logger.getLogger(FixDerivedCurveGenerator.class); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
34 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
35 public static final String I18N_CHART_TITLE = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
36 "chart.fixings.derived.title"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
37 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
38 public static final String I18N_CHART_SUBTITLE = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
39 "chart.fixings.derived.subtitle"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
40 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
41 public static final String I18N_XAXIS_LABEL = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
42 "chart.fixings.derived.xaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
43 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
44 public static final String I18N_YAXIS_LABEL = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
45 "chart.fixings.derived.yaxis.label"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
46 |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
47 public static final String I18N_CHART_TITLE_DEFAULT = |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
48 "Ableitungskurve"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
49 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
50 public static final String I18N_XAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
51 "Q [m\u00B3/s]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
52 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
53 public static final String I18N_YAXIS_LABEL_DEFAULT = |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
54 "W [NN + m]"; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
55 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
56 public static enum YAXIS { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
57 W(0), |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
58 Q(1); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
59 public int idx; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
60 private YAXIS(int c) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
61 idx = c; |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
62 } |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
63 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
64 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
65 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
66 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
67 public void doOut(ArtifactAndFacet aaf, Document doc, boolean visible) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
68 logger.debug("doOut"); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
69 |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
70 FixDerivateFacet facet = (FixDerivateFacet)aaf.getFacet(); |
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
71 FixFunction func = (FixFunction)facet.getData( |
3088
960307cf2adc
Moved current km to context and added an abstract generator for fix analysis
Raimund Renkert <raimund.renkert@intevation.de>
parents:
3081
diff
changeset
|
72 aaf.getArtifact(), context); |
3091
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
73 |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
74 if(func != null) { |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
75 double maxQ = func.getMaxQ(); |
3081
26119b7b3154
Fixing output generator hacking
Christian Lins <christian.lins@intevation.de>
parents:
3076
diff
changeset
|
76 |
3091
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
77 if(maxQ > 0) { |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
78 XYSeries series = DatasetUtilities.sampleFunction2DToSeries( |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
79 new Function2DAdapter(func.getFunction()), |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
80 0, // start |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
81 maxQ, // end |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
82 500, // number of samples |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
83 aaf.getFacetDescription()); |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
84 addAxisSeries(series, 0, visible); |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
85 } |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
86 } |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
87 else { |
179e38aa678d
Some fixing charts are generated now
Christian Lins <christian.lins@intevation.de>
parents:
3088
diff
changeset
|
88 logger.debug("doOut: func == null"); |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
89 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
90 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
91 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
92 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
93 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
94 protected String getDefaultChartTitle() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
95 return msg(I18N_CHART_TITLE, I18N_CHART_TITLE_DEFAULT); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
96 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
97 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
98 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
99 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
100 protected String getDefaultXAxisLabel() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
101 return msg(I18N_XAXIS_LABEL, I18N_XAXIS_LABEL_DEFAULT); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
102 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
103 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
104 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
105 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
106 protected String getDefaultYAxisLabel(int pos) { |
3076
5642a83420f2
FLYS artifacts: Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3068
diff
changeset
|
107 return msg(I18N_YAXIS_LABEL, I18N_YAXIS_LABEL_DEFAULT); |
3067
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
108 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
109 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
110 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
111 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
112 protected ChartGenerator.YAxisWalker getYAxisWalker() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
113 return new YAxisWalker() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
114 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
115 public int length() { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
116 return YAXIS.values().length; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
117 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
118 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
119 @Override |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
120 public String getId(int idx) { |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
121 YAXIS[] yaxes = YAXIS.values(); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
122 return yaxes[idx].toString(); |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
123 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
124 }; |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
125 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
126 } |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
127 |
d87aadaa4f7e
Add FixDerivedCurveGenerator class
Christian Lins <christian.lins@intevation.de>
parents:
diff
changeset
|
128 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |