comparison artifacts/src/main/java/org/dive4elements/river/artifacts/states/fixation/FixRealizingCompute.java @ 7525:6650485c2c9b

Part fix for flys/issue1585: Use result from fitting to display interpolated W/Q points, too. TODO: Draw interpolated as circles.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 06 Nov 2013 19:12:46 +0100
parents ed0e4208facd
children e4606eae8ea5
comparison
equal deleted inserted replaced
7524:25d890e3eb69 7525:6650485c2c9b
6 * documentation coming with Dive4Elements River for details. 6 * documentation coming with Dive4Elements River for details.
7 */ 7 */
8 8
9 package org.dive4elements.river.artifacts.states.fixation; 9 package org.dive4elements.river.artifacts.states.fixation;
10 10
11 import java.text.DateFormat;
12 import java.util.Collection;
13 import java.util.Date;
11 import java.util.List; 14 import java.util.List;
12 15
13 import org.apache.log4j.Logger; 16 import org.apache.log4j.Logger;
14 17
15 import org.dive4elements.artifactdatabase.state.Facet; 18 import org.dive4elements.artifactdatabase.state.Facet;
22 import org.dive4elements.river.artifacts.model.DataFacet; 25 import org.dive4elements.river.artifacts.model.DataFacet;
23 import org.dive4elements.river.artifacts.model.FacetTypes; 26 import org.dive4elements.river.artifacts.model.FacetTypes;
24 import org.dive4elements.river.artifacts.model.ReportFacet; 27 import org.dive4elements.river.artifacts.model.ReportFacet;
25 import org.dive4elements.river.artifacts.model.WQCKms; 28 import org.dive4elements.river.artifacts.model.WQCKms;
26 import org.dive4elements.river.artifacts.model.WQKms; 29 import org.dive4elements.river.artifacts.model.WQKms;
27 import org.dive4elements.river.artifacts.model.WQKmsFactory;
28 import org.dive4elements.river.artifacts.model.fixings.FixOutlierFacet; 30 import org.dive4elements.river.artifacts.model.fixings.FixOutlierFacet;
29 import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculation; 31 import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculation;
30 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult; 32 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
31 import org.dive4elements.river.artifacts.model.fixings.FixEventFacet; 33 import org.dive4elements.river.artifacts.model.fixings.FixReferenceEventsFacet;
32 import org.dive4elements.river.artifacts.model.fixings.FixWQCurveFacet; 34 import org.dive4elements.river.artifacts.model.fixings.FixWQCurveFacet;
33 import org.dive4elements.river.artifacts.model.fixings.FixWaterlevelFacet; 35 import org.dive4elements.river.artifacts.model.fixings.FixWaterlevelFacet;
34 import org.dive4elements.river.artifacts.resources.Resources; 36 import org.dive4elements.river.artifacts.resources.Resources;
35 import org.dive4elements.river.artifacts.states.DefaultState; 37 import org.dive4elements.river.artifacts.states.DefaultState;
38 import org.dive4elements.river.utils.Formatter;
39 import org.dive4elements.river.utils.UniqueDateFormatter;
36 40
37 /** 41 /**
38 * State to compute the fixation realizing (vollmer) results. 42 * State to compute the fixation realizing (vollmer) results.
39 * 43 *
40 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a> 44 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
45 private static Logger logger = Logger.getLogger(FixRealizingCompute.class); 49 private static Logger logger = Logger.getLogger(FixRealizingCompute.class);
46 50
47 public static final String I18N_WQ_CURVE = "fix.vollmer.wq.curve"; 51 public static final String I18N_WQ_CURVE = "fix.vollmer.wq.curve";
48 52
49 public static final String I18N_WQ_OUTLIER = "fix.vollmer.wq.outliers"; 53 public static final String I18N_WQ_OUTLIER = "fix.vollmer.wq.outliers";
50
51 public static final String I18N_WQ_EVENTS = "fix.vollmer.wq.events";
52
53 54
54 /** 55 /**
55 * The default constructor that initializes an empty State object. 56 * The default constructor that initializes an empty State object.
56 */ 57 */
57 public FixRealizingCompute() { 58 public FixRealizingCompute() {
120 facets.add(wq); 121 facets.add(wq);
121 facets.add(w); 122 facets.add(w);
122 facets.add(q); 123 facets.add(q);
123 facets.add(csFacet); 124 facets.add(csFacet);
124 125
126 // XXX: THIS CAN NOT HAPPEN! REMOVE IT!
125 if (wqkms[i] instanceof WQCKms) { 127 if (wqkms[i] instanceof WQCKms) {
126 String nameC = nameW.replace( 128 String nameC = nameW.replace(
127 "benutzerdefiniert", 129 "benutzerdefiniert",
128 "benutzerdefiniert [korrigiert]"); 130 "benutzerdefiniert [korrigiert]");
129 131
132 134
133 facets.add(c); 135 facets.add(c);
134 } 136 }
135 } 137 }
136 138
137 // Add one facet per event. 139 DateFormat df = Formatter.getDateFormatter(context.getMeta(), "dd.MM.yyyy");
140 DateFormat lf = Formatter.getDateFormatter(context.getMeta(), "dd.MM.yyyy'T'HH:mm");
141
142 Collection<Date> reds = fixRes.getReferenceEventsDates();
143 UniqueDateFormatter cf = new UniqueDateFormatter(df, lf, reds);
144
138 int i = 0; 145 int i = 0;
139 for (int event: access.getEvents()) { 146 for (Date d: reds) {
140 facets.add(new FixEventFacet(i, FIX_EVENTS, WQKmsFactory.getWQKmsName(event))); 147 facets.add(new FixReferenceEventsFacet(
148 (1 << 9) | i,
149 FIX_EVENTS,
150 cf.format(d)));
141 i++; 151 i++;
142 } 152 }
143 153
144 if (wqkms.length > 0) { 154 if (wqkms.length > 0) {
145 facets.add( 155 facets.add(

http://dive4elements.wald.intevation.org