annotate artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BunduAccess.java @ 9396:6ebc9357550c

Fixed: bundu bzws start year plus one
author mschaefer
date Mon, 13 Aug 2018 17:15:05 +0200
parents 3d006afee054
children d194c5b24bf8
rev   line source
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
3 *
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
7 */
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
8
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.artifacts.bundu.bezugswst;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
10
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
11 import org.apache.log4j.Logger;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
12 import org.dive4elements.river.artifacts.D4EArtifact;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
13 import org.dive4elements.river.artifacts.access.FixAnalysisAccess;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
14
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
15 public class BunduAccess extends FixAnalysisAccess {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
16
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
17 private static Logger log = Logger.getLogger(BunduAccess.class);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
18
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
19 // Alles, was in super steht, auskommentiert. TODO: endgültig löschen, nachdem ich es etwas verstanden habe
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
20
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
21 // protected DateRange referencePeriod;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
22 // protected DateRange[] analysisPeriods;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
23 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
24 // protected double[] qs;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
25
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
26 public BunduAccess(final D4EArtifact artifact) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
27 super(artifact);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
28 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
29
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
30 public boolean isAutoSelect() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
31 final String fixChoice = this.artifact.getDataAsString("fix_choice");
9366
3d006afee054 bundu.bezugswst workflow reviewed
gernotbelger
parents: 9323
diff changeset
32 if (fixChoice != null && fixChoice.equals("state.bundu.wst.fix.auto")) {
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
33 return true;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
34 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
35 return false;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
36 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
37
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
38 public Integer getBezugsJahr() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
39 return this.artifact.getDataAsInteger("singleyear");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
40 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
41
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
42 public int[] getEventsTemp() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
43 return getIntArray("events_temp");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
44 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
45
9277
2323d005f9a5 compile error fix
gernotbelger
parents: 9267
diff changeset
46 public int getQSeriesLength() {
2323d005f9a5 compile error fix
gernotbelger
parents: 9267
diff changeset
47 return this.artifact.getDataAsInteger("year_input_q_series");
2323d005f9a5 compile error fix
gernotbelger
parents: 9267
diff changeset
48 }
2323d005f9a5 compile error fix
gernotbelger
parents: 9267
diff changeset
49
9323
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
50 public int getStartYear() {
9396
6ebc9357550c Fixed: bundu bzws start year plus one
mschaefer
parents: 9366
diff changeset
51 return this.getBezugsJahr() - this.getQSeriesLength() + 1;
9323
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
52 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
53
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
54 public Integer getUd() {
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
55 if (getUd_Q_mode().equals("UD"))
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
56 return getInteger("bundu.wst.ud_value");
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
57 else
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
58 return null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
59 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
60
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
61 @Override
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
62 public double[] getQs() {
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
63 if (getUd_Q_mode().equals("Q"))
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
64 return super.getQs();
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
65 else
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
66 return null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
67 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
68
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
69 private String getUd_Q_mode() {
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
70 return getString("bundu.wst.mode");
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
71 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
72
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
73 public Double getMissingVolFrom() {
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
74 if (isCalculateMissingValue())
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
75 return getDouble("ld_from_part");
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
76 else
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
77 return null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
78 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
79
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
80 public Double getMissingVolTo() {
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
81 if (isCalculateMissingValue())
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
82 return getDouble("ld_to_part");
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
83 else
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
84 return null;
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
85 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
86
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
87 private boolean isCalculateMissingValue() { // probably public
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
88 return getBoolean("missing_volume");
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
89 }
86d2cbfe7f7f bundu bezugswst excel metadaten
gernotbelger
parents: 9277
diff changeset
90
9267
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
91 // /** Access the reference date period, return null in case of 'errors'. */
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
92 // public DateRange getReferencePeriod() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
93 // if (this.referencePeriod == null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
94 // final StateData refStart = artifact.getData("ref_start");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
95 // final StateData refEnd = artifact.getData("ref_end");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
96 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
97 // if (refStart == null || refEnd == null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
98 // log.warn("missing 'ref_start' or 'ref_start' value");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
99 // return null;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
100 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
101 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
102 // try {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
103 // long rs = Long.parseLong((String) refStart.getValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
104 // long re = Long.parseLong((String) refEnd.getValue());
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
105 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
106 // if (rs > re) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
107 // final long t = rs;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
108 // rs = re;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
109 // re = t;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
110 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
111 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
112 // final Date from = new Date(rs);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
113 // final Date to = new Date(re);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
114 // this.referencePeriod = new DateRange(from, to);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
115 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
116 // catch (final NumberFormatException nfe) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
117 // log.warn("ref_start or ref_end is not an integer.");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
118 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
119 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
120 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
121 // return this.referencePeriod;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
122 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
123
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
124 // @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
125 // public DateRange[] getAnalysisPeriods() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
126 // if (this.analysisPeriods == null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
127 // this.analysisPeriods = getDateRange("ana_data");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
128 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
129 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
130 // return this.analysisPeriods;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
131 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
132
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
133 /**
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
134 * @return DateRange object ranging from eldest to youngest date
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
135 * of analysis and reference periods.
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
136 */
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
137 // @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
138 // public DateRange getDateRange() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
139 // final DateRange refP = getReferencePeriod();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
140 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
141 // if (refP == null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
142 // return null;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
143 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
144 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
145 // Date from = refP.getFrom();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
146 // Date to = refP.getTo();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
147 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
148 // final DateRange[] rs = getAnalysisPeriods();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
149 // for (final DateRange r : rs) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
150 // if (r.getFrom().before(from)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
151 // from = r.getFrom();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
152 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
153 // if (r.getTo().after(to)) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
154 // to = r.getTo();
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
155 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
156 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
157 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
158 // return new DateRange(from, to);
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
159 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
160
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
161 // @Override
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
162 // public double[] getQs() {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
163 // if (this.qs == null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
164 // this.qs = getDoubleArray("qs");
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
165 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
166 //
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
167 // if (log.isDebugEnabled() && this.qs != null) {
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
168 // log.debug("qs: " + Arrays.toString(this.qs));
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
169 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
170 // return this.qs;
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
171 // }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
172 }
c7e5285d434f bundu bezugswst work
gernotbelger
parents:
diff changeset
173 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org