Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/exports/process/SedimentLoadProcessor.java @ 8098:09725b65955a
Add new and simplyfied SedimentLoadFacet
The SedimentLoadFacet is intended to work with the Measurement stations.
It uses the same mechanismn to access the Mesurement station values
as the calculation does.
SedimentLoadLS values need a different facet that will come soon.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 15 Aug 2014 18:27:19 +0200 |
parents | 963ede7b32bb |
children | ca072278ad02 |
rev | line source |
---|---|
7685
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesanstalt für Gewässerkunde |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
3 * |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
7 */ |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
8 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.exports.process; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
10 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
11 import java.util.Set; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
12 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
13 import org.apache.log4j.Logger; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
14 import org.jfree.data.xy.XYSeries; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
15 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
16 import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
17 import org.dive4elements.artifacts.CallContext; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.FacetTypes; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
19 import org.dive4elements.river.exports.DiagramGenerator; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
20 import org.dive4elements.river.exports.StyledSeriesBuilder; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
21 import org.dive4elements.river.jfree.StyledXYSeries; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
22 import org.dive4elements.river.themes.ThemeDocument; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
23 |
8024
963ede7b32bb
Renamed SedimentLoad to SedimentLoadLSData to make place for SedimentLoad in backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7685
diff
changeset
|
24 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadLSData; |
7685
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
25 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadFraction; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
26 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
27 // Base class for SedimantLoad$UNITProcessors |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
28 public class SedimentLoadProcessor extends DefaultProcessor |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
29 { |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
30 private final static Logger logger = |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
31 Logger.getLogger(SedimentLoadProcessor.class); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
32 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
33 @Override |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
34 public void doOut( |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
35 DiagramGenerator generator, |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
36 ArtifactAndFacet bundle, |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
37 ThemeDocument theme, |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
38 boolean visible) { |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
39 logger.debug("doOut " + bundle.getFacetName()); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
40 CallContext context = generator.getCallContext(); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
41 XYSeries series = new StyledXYSeries(bundle.getFacetDescription(), |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
42 false, // Handle NaN |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
43 theme); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
44 Object data = bundle.getData(context); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
45 String facetName = bundle.getFacetName(); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
46 double [][] points; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
47 |
8098
09725b65955a
Add new and simplyfied SedimentLoadFacet
Andre Heinecke <andre.heinecke@intevation.de>
parents:
8024
diff
changeset
|
48 logger.debug("Do out for: " + facetName); |
7685
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
49 if (FacetTypes.IS.SEDIMENT_LOAD_M3A(facetName) || |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
50 FacetTypes.IS.SEDIMENT_LOAD_TA(facetName)) { |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
51 points = (double[][]) data; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
52 } else if (FacetTypes.IS.SEDIMENT_LOAD_UNKNOWN(facetName)) { |
8024
963ede7b32bb
Renamed SedimentLoad to SedimentLoadLSData to make place for SedimentLoad in backend.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7685
diff
changeset
|
53 SedimentLoadLSData load = (SedimentLoadLSData) data; |
7685
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
54 Set<Double> kms = load.getKms(); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
55 points = new double[2][kms.size()]; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
56 int counter = 0; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
57 for (Double km: kms) { |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
58 SedimentLoadFraction fraction = load.getFraction(km); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
59 points[0][counter] = km; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
60 points[1][counter] = fraction.getUnknown(); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
61 counter++; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
62 } |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
63 } else { |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
64 logger.error("Unknown facet name: " + facetName); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
65 return; |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
66 } |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
67 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
68 StyledSeriesBuilder.addPoints(series, points, false); // Keep NaN |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
69 |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
70 generator.addAxisSeries(series, axisName, visible); |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
71 } |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
72 } |
270946b97539
(issue1614) Handle NaN in Styled Series created by SedimentLoadProcessors
Andre Heinecke <aheinecke@intevation.de>
parents:
diff
changeset
|
73 |