annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightFacet.java @ 8653:dbec49147f54

(issue1755) Do not create interpolated themes and disable export of non interpolatable data. Due to the fact that data can contain NaN's which will be filtered out before creating the interpolator this requires the actual check for interpolatable data when data is set in the ResultValue
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 01 Apr 2015 17:10:03 +0200
parents cd5e0662f75c
children 4e8c80ff07e3
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5867
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
9 package org.dive4elements.river.artifacts.model.minfo;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
11 import gnu.trove.TDoubleArrayList;
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
12
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
13 import java.util.List;
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
14
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
15 import org.apache.log4j.Logger;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
16 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
17 import org.dive4elements.artifacts.CallContext;
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
18 import org.dive4elements.river.artifacts.D4EArtifact;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
19 import org.dive4elements.river.artifacts.access.BedHeightAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
20 import org.dive4elements.river.artifacts.model.BlackboardDataFacet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4826
diff changeset
21 import org.dive4elements.river.artifacts.model.FacetTypes;
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
22 import org.dive4elements.river.model.BedHeight;
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
23 import org.dive4elements.river.model.BedHeightValue;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 public class BedHeightFacet
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 extends BlackboardDataFacet
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 implements FacetTypes {
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8151
diff changeset
29 private static final Logger log = Logger.getLogger(BedHeightFacet.class);
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
30
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
31 private String type;
3633
ebfce31c7eec Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3614
diff changeset
32
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
33 public BedHeightFacet(String name, String description, String type) {
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 this.name = name;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 this.description = description;
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
36 this.type = type;
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 this.index = 0;
7894
42076d94977e Added metadata to facets.
Raimund Renkert <rrenkert@intevation.de>
parents: 7391
diff changeset
38 this.metaData.put("X", "chart.longitudinal.section.xaxis.label");
8267
99912f51468d A bit less chaos in i18n for bed heights.
"Tom Gottfried <tom@intevation.de>"
parents: 8202
diff changeset
39 this.metaData.put("Y", "chart.bedheight_middle.section.yaxis.label");
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 /**
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 * Returns the data this facet requires.
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 *
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 * @param artifact the owner artifact.
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 * @param context the CallContext (ignored).
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 *
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 * @return the data.
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 */
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 @Override
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 public Object getData(Artifact artifact, CallContext context) {
6101
a0078e5e3b39 Removed unused context from RangeAccess and subclasses leading to some dead code removal.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
52 BedHeightAccess access = new BedHeightAccess((D4EArtifact)artifact);
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
53 if (type.equals("singlevalues")) {
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
54 /* Former doc (from BedHeightAccess):
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
55 * Return a {@link List} of {@link BedHeightValue}s
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
56 * at the range of the artifact
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
57 * @return List of {@link BedHeightValue}s */
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
58 BedHeight single = BedHeight.getBedHeightById(
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
59 access.getHeightId());
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
60 List<BedHeightValue> bedheightValues =
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
61 BedHeightValue.getBedHeightValues(
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
62 single,
8648
cd5e0662f75c (issue1754) Handle a>b in static BedHeight facets.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8559
diff changeset
63 access.getFrom(true),
cd5e0662f75c (issue1754) Handle a>b in static BedHeight facets.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8559
diff changeset
64 access.getTo(true));
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
65 double[][] values = new double[2][bedheightValues.size()];
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
66 int i = 0;
8559
6d8d7425a6b5 Bed heights are just bed heights since a while ('single' is obsolete).
"Tom Gottfried <tom@intevation.de>"
parents: 8267
diff changeset
67 for (BedHeightValue bedheightValue : bedheightValues) {
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
68 values[0][i] = bedheightValue.getStation();
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
69 values[1][i] = bedheightValue.getHeight();
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
70 i++;
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
71 }
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
72 return values;
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
73 }
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
74 else {
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
75 /* Former doc (from BedHeightAccess):
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
76 * Return the {@link BedHeight} at the height_id and time of the artifact
7391
9513d1af7d58 Renamed artifacts/**/BedHeight(Single) to BedHeight(Single)Data, to resolve
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 7373
diff changeset
77 * @return {@link BedHeight} */
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
78 BedHeightData data = BedHeightFactory.getHeight(
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
79 access.getType(),
8151
a709e6334c4a IDs can be assumed to be unique.
Tom Gottfried <tom@intevation.de>
parents: 7986
diff changeset
80 access.getHeightId());
7984
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
81 //data.removeNaNs();
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
82 TDoubleArrayList stations= data.getStations();
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
83 double[][] values = new double[2][stations.size()];
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
84 for (int i = 0; i < stations.size(); i++) {
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
85 values[0][i] = stations.get(i);
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
86 values[1][i] = data.getHeight(i);
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
87 }
cf674b03901a Bedheight facet now returns double[][]. Removed obsolete processor code.
Raimund Renkert <rrenkert@intevation.de>
parents: 7894
diff changeset
88 return values;
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
89 }
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 }
7357
9d3e44ab25f2 Refactoring: Move functionality of BedHeightAccess into BedHeightFacet for now.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6101
diff changeset
91
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 /**
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 * Create a deep copy of this Facet.
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 * @return a deep copy.
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 */
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
96 @Override
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 public BedHeightFacet deepCopy() {
4534
1619f80eb62e Add type member variable to BedHeightFacet
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3633
diff changeset
98 BedHeightFacet copy = new BedHeightFacet(name, description, type);
3614
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99 copy.set(this);
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 return copy;
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 }
68beaa827751 MINFO: Implemented UI and facet/artifact stack for bed height differences.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org