Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedloadDiameterDataFacet.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 | 48d4921665e3 |
children | 5e38e2924c07 |
rev | line source |
---|---|
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.artifacts.model.minfo; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import gnu.trove.TDoubleArrayList; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.apache.log4j.Logger; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.artifactdatabase.state.Facet; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.artifacts.Artifact; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.artifacts.CallContext; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.dive4elements.river.artifacts.D4EArtifact; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.dive4elements.river.artifacts.access.BedQualityAccess; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.dive4elements.river.artifacts.model.DataFacet; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 public class BedloadDiameterDataFacet |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 extends DataFacet |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
17 { |
8202
e4606eae8ea5
sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents:
7988
diff
changeset
|
18 private static final Logger log = Logger.getLogger(BedloadDiameterDataFacet.class); |
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 public BedloadDiameterDataFacet() { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 public BedloadDiameterDataFacet( |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 int ndx, |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 String name, |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 String description, |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 ComputeType type, |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 String stateId, |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 String hash |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 ) { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
31 super(ndx, name, description, type, hash, stateId); |
7894
42076d94977e
Added metadata to facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7540
diff
changeset
|
32 this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); |
8260
48d4921665e3
Making i18n work was just easier using less wrappers in this case (issue1631).
Tom Gottfried <tom@intevation.de>
parents:
8202
diff
changeset
|
33 this.metaData.put("Y", "chart.bedquality.yaxis.label.diameter"); |
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 public Object getData(Artifact artifact, CallContext context) { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 D4EArtifact d4e = (D4EArtifact) artifact; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 BedQualityAccess access = new BedQualityAccess(d4e, context); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 int ndx = getIndex() & 7; |
6357
673e146e7793
Fixed bed quality data facet index to get the correct diameter.
Raimund Renkert <rrenkert@intevation.de>
parents:
6260
diff
changeset
|
40 int diam = (getIndex() >> 4); |
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 String diameter = ""; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 switch (diam) { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 case 1: diameter = "d10"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 case 2: diameter = "d16"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 case 3: diameter = "d20"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 case 4: diameter = "d25"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 case 5: diameter = "d30"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 case 6: diameter = "d40"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 case 7: diameter = "d50"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 case 8: diameter = "d60"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 case 9: diameter = "d70"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 case 10: diameter = "d75"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 case 11: diameter = "d80"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 case 12: diameter = "d84"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 case 13: diameter = "d90"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 case 14: diameter = "dmin"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 case 15: diameter = "dmax"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 case 16: diameter = "dm"; break; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 default: return null; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 QualityMeasurements measurements = |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 QualityMeasurementFactory.getBedloadMeasurements( |
7261
a56fe3bc6700
Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6357
diff
changeset
|
64 access.getRiverName(), |
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
65 access.getFrom(), |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 access.getTo(), |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 access.getDateRanges().get(ndx).getFrom(), |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 access.getDateRanges().get(ndx).getTo()); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 TDoubleArrayList kms = new TDoubleArrayList(); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 TDoubleArrayList data = new TDoubleArrayList(); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 for (QualityMeasurement m : measurements.getMeasurements()) { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 kms.add(m.getKm()); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 data.add(m.getDiameter(diameter)*1000); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
75 BedDiameterData bdd = new BedDiameterData(diameter, kms, data); |
7987
98ca61cb58fb
Split bed quality facets and updated processors and state.
Raimund Renkert <rrenkert@intevation.de>
parents:
7894
diff
changeset
|
76 return bdd.getDiameterData(); |
6260
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
79 /** Copy deeply. */ |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 @Override |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 public Facet deepCopy() { |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 BedloadDiameterDataFacet copy = new BedloadDiameterDataFacet(); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
83 copy.set(this); |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 copy.type = type; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 copy.hash = hash; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 copy.stateId = stateId; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 return copy; |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 } |
947434874937
New facet for bedload diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 } |