Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiameterDataFacet.java @ 8856:5e38e2924c07 3.2.x
Fix code style.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 18 Jan 2018 20:12:01 +0100 |
parents | e4606eae8ea5 |
children | a805211690f7 |
rev | line source |
---|---|
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
1 package org.dive4elements.river.artifacts.model.minfo; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
2 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
3 import gnu.trove.TDoubleArrayList; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
4 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
5 import org.apache.log4j.Logger; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
6 import org.dive4elements.artifactdatabase.state.Facet; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
7 import org.dive4elements.artifacts.Artifact; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
8 import org.dive4elements.artifacts.CallContext; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
9 import org.dive4elements.river.artifacts.D4EArtifact; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
10 import org.dive4elements.river.artifacts.access.BedQualityAccess; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
11 import org.dive4elements.river.artifacts.model.DataFacet; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
12 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
13 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
14 public class BedDiameterDataFacet |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
15 extends DataFacet |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
16 { |
8856 | 17 private static final Logger log = Logger.getLogger( |
18 BedDiameterDataFacet.class); | |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
19 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
20 public BedDiameterDataFacet() { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
21 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
22 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
23 public BedDiameterDataFacet( |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
24 int ndx, |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
25 String name, |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
26 String description, |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
27 ComputeType type, |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
28 String stateId, |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
29 String hash |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
30 ) { |
267119b38779
Added container and facet for bed 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:
7261
diff
changeset
|
32 this.metaData.put("X", "chart.longitudinal.section.xaxis.label"); |
42076d94977e
Added metadata to facets.
Raimund Renkert <rrenkert@intevation.de>
parents:
7261
diff
changeset
|
33 this.metaData.put("Y", "chart.bedquality.yaxis.label.diameter"); |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
34 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
35 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
36 public Object getData(Artifact artifact, CallContext context) { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
37 D4EArtifact d4e = (D4EArtifact) artifact; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
38 BedQualityAccess access = new BedQualityAccess(d4e, context); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
39 int ndx = getIndex() & 7; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
40 int top = (getIndex() >> 3) & 1; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
41 int diam = (getIndex() >> 4); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
42 String diameter = ""; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
43 switch (diam) { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
44 case 1: diameter = "d10"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
45 case 2: diameter = "d16"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
46 case 3: diameter = "d20"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
47 case 4: diameter = "d25"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
48 case 5: diameter = "d30"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
49 case 6: diameter = "d40"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
50 case 7: diameter = "d50"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
51 case 8: diameter = "d60"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
52 case 9: diameter = "d70"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
53 case 10: diameter = "d75"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
54 case 11: diameter = "d80"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
55 case 12: diameter = "d84"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
56 case 13: diameter = "d90"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
57 case 14: diameter = "dmin"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
58 case 15: diameter = "dmax"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
59 case 16: diameter = "dm"; break; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
60 default: return null; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
61 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
62 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
63 QualityMeasurements measurements = |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
64 QualityMeasurementFactory.getBedMeasurements( |
7261
a56fe3bc6700
Refactoring: Let RiverAccess.getRiver return an River.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents:
6259
diff
changeset
|
65 access.getRiverName(), |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
66 access.getFrom(), |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
67 access.getTo(), |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
68 access.getDateRanges().get(ndx).getFrom(), |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
69 access.getDateRanges().get(ndx).getTo()); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
70 TDoubleArrayList kms = new TDoubleArrayList(); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
71 TDoubleArrayList data = new TDoubleArrayList(); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
72 for (QualityMeasurement m : measurements.getMeasurements()) { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
73 if (top == 1 && m.getDepth1() == 0d && m.getDepth2() <= 0.3) { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
74 kms.add(m.getKm()); |
6259
06ee8e2f8b0b
Removed obsolete member and minor code style.
Raimund Renkert <rrenkert@intevation.de>
parents:
6250
diff
changeset
|
75 data.add(m.getDiameter(diameter) * 1000); |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
76 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
77 else if (top == 0 && m.getDepth1() > 0d && m.getDepth2() <= 0.5){ |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
78 kms.add(m.getKm()); |
6259
06ee8e2f8b0b
Removed obsolete member and minor code style.
Raimund Renkert <rrenkert@intevation.de>
parents:
6250
diff
changeset
|
79 data.add(m.getDiameter(diameter) * 1000); |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
80 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
81 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
82 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
|
83 return bdd.getDiameterData(); |
6250
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
84 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
85 |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
86 /** Copy deeply. */ |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
87 @Override |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
88 public Facet deepCopy() { |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
89 BedDiameterDataFacet copy = new BedDiameterDataFacet(); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
90 copy.set(this); |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
91 copy.type = type; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
92 copy.hash = hash; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
93 copy.stateId = stateId; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
94 return copy; |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
95 } |
267119b38779
Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff
changeset
|
96 } |