Mercurial > dive4elements > river
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 : |