annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/fixings/FixRealizingCalculationExtended.java @ 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. The facets also put the valid station range into their xml-metadata
author gernotbelger
date Thu, 16 Aug 2018 16:27:53 +0200
parents 7565d7dce850
children
rev   line source
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
2 * Software engineering by
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
3 * Björnsen Beratende Ingenieure GmbH
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
5 *
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
6 * This file is Free Software under the GNU AGPL (>=v3)
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
8 * documentation coming with Dive4Elements River for details.
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
9 */
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
10 package org.dive4elements.river.artifacts.model.fixings;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
11
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
12 import java.util.Calendar;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
13 import java.util.Date;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
14 import java.util.List;
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
15 import java.util.SortedSet;
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
16 import java.util.TreeSet;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
17
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.access.FixRealizingAccess;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
19
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
20 /**
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
21 * REMARK: this inheritance is only needed, beause changing the orignal calculation will probably break the
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
22 * serialization of the artifact....
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
23 *
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
24 * @author Gernot Belger
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
25 */
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
26 public class FixRealizingCalculationExtended extends FixRealizingCalculation {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
27 private static final long serialVersionUID = 1L;
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
28
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
29 public FixRealizingCalculationExtended(final FixRealizingAccess fixAccess) {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
30 super(fixAccess);
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
31 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
32
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
33 public int determineMeanYear() {
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
34 final FixingsOverview overview = FixingsOverviewFactory.getOverview(this.river);
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
35 final ColumnCache cc = new ColumnCache();
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
36
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
37 final SortedSet<Integer> years = new TreeSet<>();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
38
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
39 final Calendar cal = Calendar.getInstance();
8904
d9f2ce1d6bef Yust another fixme
gernotbelger
parents: 8883
diff changeset
40
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: 8957
diff changeset
41 final List<FixingColumnWithData> columns = getEventColumns(overview, 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: 8957
diff changeset
42 for (final FixingColumnWithData column : columns) {
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
43 final Date date = column.getDate();
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
44 cal.setTime(date);
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
45
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
46 final int year = cal.get(Calendar.YEAR);
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
47 years.add(year);
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
48 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
49
8957
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
50 final Integer first = years.first();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
51 final Integer last = years.last();
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
52 if (first == null || last == null)
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
53 return -1;
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
54
7565d7dce850 Implemented calculation of 'year' for fixations
gernotbelger
parents: 8906
diff changeset
55 return (first + last) / 2;
8883
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
56 }
a536e1aacf0f Further work on SINFO-FlowDepth
gernotbelger
parents:
diff changeset
57 }

http://dive4elements.wald.intevation.org