annotate artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java @ 9331:127638669052

bundu bezugswst result 2
author gernotbelger
date Fri, 27 Jul 2018 18:49:55 +0200
parents 0a0937f33bb5
children c64de8cc4e97
rev   line source
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
2 * Software engineering by
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
5 *
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
9 */
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.bundu.bezugswst;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
11
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
12 import java.util.ArrayList;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
13 import java.util.List;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
14
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
15 import org.dive4elements.artifacts.CallContext;
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
16 import org.dive4elements.artifacts.CallMeta;
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.bundu.BUNDUArtifact;
9318
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9313
diff changeset
18 import org.dive4elements.river.artifacts.bundu.BunduResultType;
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
19 import org.dive4elements.river.artifacts.common.GeneralResultType;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
20 import org.dive4elements.river.artifacts.common.ResultRow;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
21 import org.dive4elements.river.artifacts.model.CalculationResult;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
22 import org.dive4elements.river.artifacts.resources.Resources;
9323
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
23 import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo;
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
24 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
25 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
9323
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
26 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
27 import org.dive4elements.river.model.River;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
28
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
29 class BezugswstCalculation {
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
30
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
31 // private static Logger log = Logger.getLogger(FloodDurationCalculation.class);
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
32
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
33 private final CallContext context;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
34
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
35 public BezugswstCalculation(final CallContext context) {
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
36 this.context = context;
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
37 }
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
38
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
39 public CalculationResult calculate(final BUNDUArtifact bunduartifact) {
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
40
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
41 final String user = CalculationUtils.findArtifactUser(this.context, bunduartifact);
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
42 final CallMeta m = this.context.getMeta();
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
43 /* access input data */
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
44 final BunduAccess access = new BunduAccess(bunduartifact);
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
45
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
46 final River river = access.getRiver();
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
47 final RiverInfo riverInfo = new RiverInfo(river);
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
48 final String calcModeLabel = Resources.getMsg(m, "bundu_bezugswst");
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
49 final BezugswstCalculationResults results = new BezugswstCalculationResults(calcModeLabel, user, riverInfo, access.getRange());
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
50
9323
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
51 // TODO: get wst, sounding for river
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
52 final WstInfo wstInfo = null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
53 final BedHeightInfo sounding = null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
54 // final int wspYear = waterlevel.getYear();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
55 // final WstInfo wstInfo = new WstInfo(wspLabel, wspYear, riverInfo.getReferenceGauge());
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
56 final String function = access.getFunction();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
57 final boolean preprocessing = access.getPreprocessing();// nullpointer dürfen nicht entstehen; Fehler läge woanders
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
58 final int startYear = access.getStartYear();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
59 final int endYear = access.getBezugsJahr();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
60 final Integer ud = access.getUd();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
61 final double[] qs = access.getQs();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
62 final Double missingVolFrom = access.getMissingVolFrom();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9318
diff changeset
63 final Double missingVolTo = access.getMissingVolTo();
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
64
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
65 final List<ResultRow> list = new ArrayList<>();
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
66 final ResultRow row = ResultRow.create();
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
67 row.putValue(GeneralResultType.station, 666.666);
9318
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9313
diff changeset
68 row.putValue(BunduResultType.bezugswst, 22.15);
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
69 row.putValue(GeneralResultType.dischargeQwithUnit, 77.666);
9318
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9313
diff changeset
70 row.putValue(GeneralResultType.waterlevelLabel, "GLQ");
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9313
diff changeset
71 row.putValue(GeneralResultType.gaugeLabel, "Bonn");
7b2b086e45f0 collision pdf details, ResultType refactoring, bezugswst result
gernotbelger
parents: 9313
diff changeset
72 row.putValue(GeneralResultType.location, "keine Lage");
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
73 list.add(row);
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
74
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
75 final BezugswstMainCalculationResult result = new BezugswstMainCalculationResult("label? was fürn label?", list, sounding, wstInfo, function,
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
76 preprocessing, startYear, endYear, ud, qs, missingVolFrom, missingVolTo);
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
77 results.addResult(result, null);
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
78
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
79 // missing volume calculation
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
80 if (access.getMissingVolFrom() != null) {
9331
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
81 /// FIRST RESULT
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
82 final List<ResultRow> listResult1 = new ArrayList<>();
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
83 final ResultRow rowResult1 = ResultRow.create();
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
84 rowResult1.putValue(BunduResultType.bezugswst, 45.15);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
85 rowResult1.putValue(GeneralResultType.dischargeQwithUnit, 890);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
86 rowResult1.putValue(GeneralResultType.waterlevelLabel, "GLQ");
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
87 rowResult1.putValue(GeneralResultType.gaugeLabel, "Bonn");
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
88
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
89 rowResult1.putValue(BunduResultType.sounding, "NIEDERRHEIN_QP-2002");
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
90 rowResult1.putValue(BunduResultType.channelLowerEdge, 42.65);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
91 rowResult1.putValue(BunduResultType.channelMinDepth, 2.5);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
92 rowResult1.putValue(BunduResultType.hasMissingDepth, Resources.getMsg(m, "true"));
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
93 rowResult1.putValue(BunduResultType.missVolume, 2250);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
94 rowResult1.putValue(BunduResultType.missMass, 3897);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
95 rowResult1.putValue(BunduResultType.excavationVolume, 2475);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
96 rowResult1.putValue(BunduResultType.excavationCosts, 999.99);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
97 rowResult1.putValue(BunduResultType.channelWidth, 150);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
98 rowResult1.putValue(BunduResultType.density, 1732);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
99
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
100 rowResult1.putValue(GeneralResultType.location, "Spitzenlage");
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
101 listResult1.add(rowResult1);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
102
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
103 final BezugswstMissVolCalculationResult1 r1 = new BezugswstMissVolCalculationResult1(
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
104 Resources.getMsg(m, "bundu.export.csv.title.bezugswst.result1"), listResult1);
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
105 results.addResult(r1, null);
9331
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
106
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
107 // SECOND RESULT
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
108 final List<ResultRow> listResult2 = new ArrayList<>();
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
109 final ResultRow rowResult2 = ResultRow.create();
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
110
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
111 rowResult2.putValue(GeneralResultType.station, 890);
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
112 final List<String> fieldValues = new ArrayList<>();
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
113 fieldValues.add("444 [m³] / 765 [t]");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
114 fieldValues.add("4.444 [m³] / 1.765 [t]");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
115 fieldValues.add("444 [m³] / 765 [t]");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
116 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
117 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
118 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
119 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
120 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
121 fieldValues.add("");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
122 fieldValues.add("444 [m³] / 765 [t]");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
123 rowResult2.putValue(BunduResultType.fields, fieldValues);
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
124 rowResult2.putValue(BunduResultType.meanBedheight, "9.444 [m³] / 8.765 [t]");
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
125
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
126 listResult2.add(rowResult2);
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
127
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
128 final BezugswstMissVolCalculationResult2 r2 = new BezugswstMissVolCalculationResult2(
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
129 Resources.getMsg(m, "bundu.export.csv.title.bezugswst.result2"), listResult2);
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
130 results.addResult(r2, null);
127638669052 bundu bezugswst result 2
gernotbelger
parents: 9330
diff changeset
131
9330
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
132 }
0a0937f33bb5 bundu.bezugswst first result for missing volume added
gernotbelger
parents: 9323
diff changeset
133
9313
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
134 return new CalculationResult(results, null);// problems);
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
135 }
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
136
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
137 /**
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
138 * Calculates one W-MSH differences pair.
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
139 *
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
140 * @param infoProvider
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
141 */
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
142
6ffcbb4f35d5 bundu.bezugswst first result stump
gernotbelger
parents:
diff changeset
143 }

http://dive4elements.wald.intevation.org