annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixCalculation.java @ 9479:2b83d3a96703

i18n TODO "benutzerdefiniert" = "custom" fixed
author gernotbelger
date Mon, 10 Sep 2018 15:31:55 +0200
parents 9744ce3c3853
children
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: 5863
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: 5863
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: 5741
diff changeset
9 package org.dive4elements.river.artifacts.model.fixings;
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 import java.util.ArrayList;
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
12 import java.util.List;
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 import org.apache.log4j.Logger;
9479
2b83d3a96703 i18n TODO "benutzerdefiniert" = "custom" fixed
gernotbelger
parents: 9415
diff changeset
15 import org.dive4elements.artifacts.CallMeta;
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
16 import org.dive4elements.artifacts.common.utils.StringUtils;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
17 import org.dive4elements.river.artifacts.access.FixAccess;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
18 import org.dive4elements.river.artifacts.math.fitting.Function;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
19 import org.dive4elements.river.artifacts.math.fitting.FunctionFactory;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
20 import org.dive4elements.river.artifacts.model.Calculation;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
21 import org.dive4elements.river.artifacts.model.CalculationResult;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
22 import org.dive4elements.river.artifacts.model.Parameters;
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
23 import org.dive4elements.river.artifacts.model.fixings.FixingsOverview.IdsFilter;
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
24 import org.dive4elements.river.utils.DoubleUtil;
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25
5150
345f3bba6f15 Doc fixes.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3970
diff changeset
26 /** Calculation base class for fix. */
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
27 public abstract class FixCalculation extends Calculation {
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
28
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
29 private static final long serialVersionUID = 1L;
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
30
2786
f9e62e76ee1f FixA: Return correct data structure from calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2783
diff changeset
31 private static Logger log = Logger.getLogger(FixCalculation.class);
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
33 private static final String[] STANDARD_COLUMNS = { "km", "chi_sqr", "max_q", "std-dev" };
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
34
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
35 protected static class FitResult {
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
36
9363
0274c7444b2d Fixed: missing commit
gernotbelger
parents: 9356
diff changeset
37 private final Parameters parameters;
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
38
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
39 private final FixResultColumns resultColumns;
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
40
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
41 public FitResult(final Parameters parameters, final FixResultColumns resultColumns) {
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
42 this.parameters = parameters;
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
43 this.resultColumns = resultColumns;
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
44 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
45
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
46 public Parameters getParameters() {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
47 return this.parameters;
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
48 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
49
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
50 public FixResultColumns getResultColumns() {
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
51 return this.resultColumns;
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
52 }
9363
0274c7444b2d Fixed: missing commit
gernotbelger
parents: 9356
diff changeset
53 }
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
54
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
55 protected String river;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
56 protected double from;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
57 protected double to;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
58 protected double step;
3419
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 protected boolean preprocessing;
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
60 protected String function;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
61 protected int[] events;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
62 protected int qSectorStart;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
63 protected int qSectorEnd;
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
64
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
65 public FixCalculation() {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
66 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
67
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
68 public FixCalculation(final FixAccess access) {
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
69 final String river = access.getRiverName();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
70 final Double from = access.getLowerKm();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
71 final Double to = access.getUpperKm();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
72 final Double step = access.getStep();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
73 final String function = access.getFunction();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
74 final int[] events = access.getEvents();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
75 final Integer qSectorStart = access.getQSectorStart();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
76 final Integer qSectorEnd = access.getQSectorEnd();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
77 final Boolean preprocessing = access.getPreprocessing();
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
78
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
79 if (river == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
80 addProblem("fix.missing.river");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
81 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
82
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
83 if (from == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
84 addProblem("fix.missing.from");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
86
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
87 if (to == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
88 addProblem("fix.missing.to");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
89 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
90
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91 if (step == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
92 addProblem("fix.missing.step");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
93 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 if (function == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
96 addProblem("fix.missing.function");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
97 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
98
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
99 if (events == null || events.length < 1) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
100 addProblem("fix.missing.events");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
101 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
102
2744
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
103 if (qSectorStart == null) {
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
104 addProblem("fix.missing.qstart.sector");
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
105 }
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
106
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
107 if (qSectorEnd == null) {
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
108 addProblem("fix.missing.qend.sector");
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
109 }
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
110
3419
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
111 if (preprocessing == null) {
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
112 addProblem("fix.missing.preprocessing");
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
113 }
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
114
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
115 if (!hasProblems()) {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
116 this.river = river;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
117 this.from = from;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
118 this.to = to;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
119 this.step = step;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
120 this.function = function;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
121 this.events = events;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
122 this.qSectorStart = qSectorStart;
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
123 this.qSectorEnd = qSectorEnd;
3419
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
124 this.preprocessing = preprocessing;
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
125 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
126 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
127
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
128 protected static String toString(final String[] parameterNames, final double[] values) {
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
129 final StringBuilder sb = new StringBuilder();
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
130 for (int i = 0; i < parameterNames.length; ++i) {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
131 if (i > 0)
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
132 sb.append(", ");
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
133 sb.append(parameterNames[i]).append(": ").append(values[i]);
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
134 }
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
135 return sb.toString();
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
136 }
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
137
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
138 /**
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
139 * Create filter to accept only the chosen events.
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
140 * This factored out out to be overwritten.
5741
6e6753b9757f FLYS artifacts: Rollback function renaming.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5733
diff changeset
141 */
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
142 protected FixingColumnFilter createFilter() {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
143 return new IdsFilter(this.events);
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
144 }
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
145
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
146 protected List<FixingColumnWithData> getEventColumns(final FixingsOverview overview, final ColumnCache cc) {
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
147 final FixingColumnFilter filter = createFilter();
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
148
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
149 final List<FixingColumn> metas = overview.filter(null, filter);
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
150
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
151 final List<FixingColumnWithData> columns = new ArrayList<>(metas.size());
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
152
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
153 for (final FixingColumn meta : metas) {
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
154
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
155 final FixingColumnWithData data = cc.getColumn(meta);
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
156 if (data == null) {
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
157 addProblem("fix.cannot.load.data");
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
158 } else {
3603
d2ae58f6730d FixA: Use the column cache to establish a consistent index scheme.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3451
diff changeset
159 columns.add(data);
3434
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
160 }
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
161 }
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
162
1a636be7612b FixA: Moved more common calculation code into base class.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3419
diff changeset
163 return columns;
3419
da7cf0e3ccaa FixA: Created a common base class for the fixing related calculations.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
164 }
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
165
5733
b7d631e45ee7 FixCalculation: Cosmetics, renamed function, doc.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5150
diff changeset
166 // Fit a function to the given points from fixation.
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
167 protected final FitResult doFitting(final FixingsOverview overview, final ColumnCache cc, final Function func) {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
168 final boolean debug = log.isDebugEnabled();
2792
fe987587ebc9 Merged revisions 4539-4540,4543,4545-4546 via svnmerge from
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2788
diff changeset
169
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
170 final FixResultColumns resultColumns = new FixResultColumns();
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
171
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
172 final List<FixingColumnWithData> eventColumns = getEventColumns(overview, cc);
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
173
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
174 if (eventColumns.size() < 2) {
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
175 addProblem("fix.too.less.data.columns");
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
176 return null;
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
177 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
178
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
179 final String[] parameterNames = func.getParameterNames();
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
180
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
181 final Parameters results = new Parameters(StringUtils.join(STANDARD_COLUMNS, parameterNames));
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
182
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
183 boolean invalid = false;
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
184
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
185 final double[] kms = DoubleUtil.explode(this.from, this.to, this.step / 1000.0);
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
186
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
187 if (debug) {
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
188 log.debug("number of kms: " + kms.length);
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
189 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
190
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
191 final int kmIndex = results.columnIndex("km");
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
192 final int chiSqrIndex = results.columnIndex("chi_sqr");
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
193 final int maxQIndex = results.columnIndex("max_q");
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
194 final int stdDevIndex = results.columnIndex("std-dev");
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
195 final int[] parameterIndices = results.columnIndices(parameterNames);
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
196
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
197 int numFailed = 0;
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
198
9363
0274c7444b2d Fixed: missing commit
gernotbelger
parents: 9356
diff changeset
199 for (final double km : kms) {
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
200
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
201 final Fitting fitting = Fitting.fit(resultColumns, km, func, this.preprocessing, eventColumns);
9363
0274c7444b2d Fixed: missing commit
gernotbelger
parents: 9356
diff changeset
202 if (fitting == null) {
7300
83bb52fa0c32 (issue1529) Be more tolerant in the fitting.
Andre Heinecke <aheinecke@intevation.de>
parents: 7261
diff changeset
203 log.debug("Fitting for km: " + km + " failed");
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
204 ++numFailed;
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
205 addProblem(km, "fix.fitting.failed");
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
206 continue;
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
207 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
208
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
209 final int row = results.newRow();
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
210 final double[] values = fitting.getParameters();
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
211
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
212 results.set(row, kmIndex, km);
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
213 results.set(row, chiSqrIndex, fitting.getChiSquare());
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
214 results.set(row, stdDevIndex, fitting.getStandardDeviation());
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
215 results.set(row, maxQIndex, fitting.getMaxQ());
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
216 invalid |= results.set(row, parameterIndices, values);
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
217
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
218 if (debug) {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
219 log.debug("km: " + km + " " + toString(parameterNames, values));
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
220 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
221 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
222
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
223 if (debug) {
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
224 log.debug("success: " + (kms.length - numFailed));
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
225 log.debug("failed: " + numFailed);
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
226 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
227
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
228 if (invalid) {
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
229 addProblem("fix.invalid.values");
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
230 results.removeNaNs();
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
231 }
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
232
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
233 resultColumns.sortAll();
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
234
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
235 return new FitResult(results, resultColumns);
3435
262e7d7e58fe FixA: Made curve fitting over the given calculation range reusable. Removed dead code.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3434
diff changeset
236 }
3437
e111902834d3 FixA: Made calculation base class abstract. Sub classes are called with fixings overview an function to fit.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3435
diff changeset
237
9479
2b83d3a96703 i18n TODO "benutzerdefiniert" = "custom" fixed
gernotbelger
parents: 9415
diff changeset
238 public CalculationResult calculate(final CallMeta meta) {
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
239 final FixingsOverview overview = FixingsOverviewFactory.getOverview(this.river);
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
240
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
241 if (overview == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
242 addProblem("fix.no.overview.available");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
243 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
244
9099
850ce16034e9 2.3.4.1.10 Berechnung mit Start-km > End-km
gernotbelger
parents: 7525
diff changeset
245 final Function func = FunctionFactory.getInstance().getFunction(this.function);
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
246
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
247 if (func == null) {
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
248 addProblem("fix.invalid.function.name");
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
249 }
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
250
9415
9744ce3c3853 Rework of fixanalysis computation and dWt and WQ facets. Got rid of strange remapping and bitshifting code by explicitely saving the column information and using it in the facets.
gernotbelger
parents: 9363
diff changeset
251 if (hasProblems())
2729
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
252 return new CalculationResult(this);
a441be7f1589 Added Fix calculation.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
253
9479
2b83d3a96703 i18n TODO "benutzerdefiniert" = "custom" fixed
gernotbelger
parents: 9415
diff changeset
254 return innerCalculate(overview, func, meta);
2744
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
255 }
c1f2e792704a FixA: Calculate Delta W/t, too.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2729
diff changeset
256
9479
2b83d3a96703 i18n TODO "benutzerdefiniert" = "custom" fixed
gernotbelger
parents: 9415
diff changeset
257 protected abstract CalculationResult innerCalculate(FixingsOverview overview, Function function, CallMeta meta);
9363
0274c7444b2d Fixed: missing commit
gernotbelger
parents: 9356
diff changeset
258 }

http://dive4elements.wald.intevation.org