Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/ComputedDischargeCurveGenerator.java @ 3054:8bd4cf11c25a
Interpolate wkms in computed discharges.
flys-artifacts/trunk@4628 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 08 Jun 2012 04:53:33 +0000 |
parents | de60d1dfdcdf |
children | 97ad960f5579 |
comparison
equal
deleted
inserted
replaced
3053:bb576facbe50 | 3054:8bd4cf11c25a |
---|---|
12 import org.jfree.data.xy.XYSeries; | 12 import org.jfree.data.xy.XYSeries; |
13 | 13 |
14 import de.intevation.artifactdatabase.state.ArtifactAndFacet; | 14 import de.intevation.artifactdatabase.state.ArtifactAndFacet; |
15 import de.intevation.artifactdatabase.state.Facet; | 15 import de.intevation.artifactdatabase.state.Facet; |
16 | 16 |
17 import de.intevation.flys.artifacts.StaticWKmsArtifact; | |
17 import de.intevation.flys.artifacts.WINFOArtifact; | 18 import de.intevation.flys.artifacts.WINFOArtifact; |
18 | 19 |
19 import de.intevation.flys.artifacts.model.FacetTypes; | 20 import de.intevation.flys.artifacts.model.FacetTypes; |
20 import de.intevation.flys.artifacts.model.WQKms; | 21 import de.intevation.flys.artifacts.model.WQKms; |
21 import de.intevation.flys.artifacts.model.WKms; | 22 import de.intevation.flys.artifacts.model.WKms; |
177 Object wqkms, | 178 Object wqkms, |
178 ArtifactAndFacet aaf, | 179 ArtifactAndFacet aaf, |
179 Document theme, | 180 Document theme, |
180 boolean visible | 181 boolean visible |
181 ) { | 182 ) { |
183 logger.debug("ComputedDischargeCurveGenerator: doWQOut"); | |
182 double [][] data = (double [][]) wqkms; | 184 double [][] data = (double [][]) wqkms; |
183 | 185 |
184 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | 186 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); |
185 StyledSeriesBuilder.addPoints(series, data, true); | 187 StyledSeriesBuilder.addPoints(series, data, true); |
186 | 188 |
197 WQKms wqkms, | 199 WQKms wqkms, |
198 ArtifactAndFacet aaf, | 200 ArtifactAndFacet aaf, |
199 Document theme, | 201 Document theme, |
200 boolean visible | 202 boolean visible |
201 ) { | 203 ) { |
204 logger.debug("ComputedDischargeCurveGenerator: doWQOut"); | |
202 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); | 205 XYSeries series = new StyledXYSeries(aaf.getFacetDescription(), theme); |
203 StyledSeriesBuilder.addPointsQW(series, wqkms); | 206 StyledSeriesBuilder.addPointsQW(series, wqkms); |
204 | 207 |
205 addAxisSeries(series, YAXIS.W.idx, visible); | 208 addAxisSeries(series, YAXIS.W.idx, visible); |
206 } | 209 } |
218 boolean visible | 221 boolean visible |
219 ) { | 222 ) { |
220 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>(); | 223 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>(); |
221 double [][] data = (double [][]) wqkms; | 224 double [][] data = (double [][]) wqkms; |
222 for (int i = 0; i< data[0].length; i++) { | 225 for (int i = 0; i< data[0].length; i++) { |
226 // TODO we need linear interpolation? | |
223 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), | 227 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
224 (float) data[0][i], StickyAxisAnnotation.SimpleAxis.X_AXIS)); | 228 (float) data[0][i], StickyAxisAnnotation.SimpleAxis.X_AXIS)); |
225 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), | 229 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
226 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS)); | 230 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
227 } | 231 } |
245 Facet facet = aandf.getFacet(); | 249 Facet facet = aandf.getFacet(); |
246 | 250 |
247 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>(); | 251 List<StickyAxisAnnotation> xy = new ArrayList<StickyAxisAnnotation>(); |
248 // Try to find them as WKms as well... | 252 // Try to find them as WKms as well... |
249 if (wqkms instanceof double[][]) { | 253 if (wqkms instanceof double[][]) { |
254 logger.debug("its double[][] time, baby"); | |
250 double [][] data = (double [][]) wqkms; | 255 double [][] data = (double [][]) wqkms; |
256 // TODO Do we need interpolation? | |
251 for (int i = 0; i< data[0].length; i++) { | 257 for (int i = 0; i< data[0].length; i++) { |
252 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), | 258 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
253 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS)); | 259 (float) data[1][i], StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
254 } | 260 } |
255 | 261 |
256 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy), | 262 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy), |
257 aandf, theme, visible); | 263 aandf, theme, visible); |
258 } | 264 } |
259 else { | 265 else { |
266 logger.debug("its wkms time, baby"); | |
260 WKms data = (WKms) wqkms; | 267 WKms data = (WKms) wqkms; |
261 // assume its WKms | 268 // Assume its WKms. |
269 double location = getRange()[0]; | |
270 double w = ((StaticWKmsArtifact) aandf.getArtifact()) | |
271 .getWAtKmLin(data, getRange()[0]); | |
262 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), | 272 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), |
263 (float) data.getW(0), StickyAxisAnnotation.SimpleAxis.Y_AXIS)); | 273 (float) w, StickyAxisAnnotation.SimpleAxis.Y_AXIS)); |
264 xy.add(new StickyAxisAnnotation(aandf.getFacetDescription(), | |
265 (float) 180f, StickyAxisAnnotation.SimpleAxis.Y_AXIS)); | |
266 | 274 |
267 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy), | 275 doAnnotations(new FLYSAnnotation(facet.getDescription(), xy), |
268 aandf, theme, visible); | 276 aandf, theme, visible); |
269 } | 277 } |
270 } | 278 } |