Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/DefaultBedHeights.java @ 9709:b74f817435fe
comment removed
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Wed, 27 Jan 2021 11:47:38 +0100 |
parents | 299c1c61d8ef |
children |
rev | line source |
---|---|
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
2 * Software engineering by |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
3 * Björnsen Beratende Ingenieure GmbH |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
5 * |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
6 * This file is Free Software under the GNU AGPL (>=v3) |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
8 * documentation coming with Dive4Elements River for details. |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
9 */ |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
10 package org.dive4elements.river.artifacts.sinfo.tkhstate; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
11 |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
12 import java.util.ArrayList; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
13 import java.util.Collection; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
14 import java.util.Collections; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
15 import java.util.List; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
16 |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
17 import org.apache.commons.lang.math.NumberRange; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
18 import org.dive4elements.river.artifacts.model.Calculation; |
9211
aca5a7a57a3a
SINFO-TKH: definition der standard sohlhöhen jetzt mit Gültigkeitsstrecke. Definitionsdateien aufgeteilt in eine pro Gewässer.
gernotbelger
parents:
9192
diff
changeset
|
19 import org.dive4elements.river.artifacts.sinfo.tkhstate.DefaultBedHeightsConfig.DefaultBedHeight; |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
20 import org.dive4elements.river.model.BedHeight; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
21 import org.dive4elements.river.model.Range; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
22 import org.dive4elements.river.model.River; |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
23 |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
24 /** |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
25 * This class knows how to find the default bed levels defined for tkh and other |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
26 * calculations |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
27 * |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
28 * @author Gernot Belger |
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
29 */ |
9394
439699ff9b2d
Added U-Info iota (prev. salix) calculation for historical scenario
mschaefer
parents:
9211
diff
changeset
|
30 public final class DefaultBedHeights { |
9211
aca5a7a57a3a
SINFO-TKH: definition der standard sohlhöhen jetzt mit Gültigkeitsstrecke. Definitionsdateien aufgeteilt in eine pro Gewässer.
gernotbelger
parents:
9192
diff
changeset
|
31 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
32 private final River river; |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
33 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
34 public DefaultBedHeights(final River river) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
35 this.river = river; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
36 } |
9211
aca5a7a57a3a
SINFO-TKH: definition der standard sohlhöhen jetzt mit Gültigkeitsstrecke. Definitionsdateien aufgeteilt in eine pro Gewässer.
gernotbelger
parents:
9192
diff
changeset
|
37 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
38 public List<BedHeight> getBedHeights(final Calculation problems) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
39 final Collection<DefaultBedHeight> defaults = DefaultBedHeightsConfig.getDefaults(this.river, problems); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
40 // check ob jede default-range irgendeine andere überlappt |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
41 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
42 for (DefaultBedHeight check : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
43 double end = check.endKm > check.startKm ? check.endKm : check.startKm; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
44 double start = check.startKm < check.endKm ? check.startKm : check.endKm; |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
45 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
46 for (DefaultBedHeight checkInner : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
47 if (!checkInner.description.equals(check.description) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
48 && (checkInner.startKm < end && checkInner.endKm > start)) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
49 problems.addProblem("sinfo.bedheightsfinder.overlappingrange", check.description); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
50 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
51 } |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
52 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
53 final List<BedHeight> defaultBedHeights = loadBedHeightsByName(this.river, defaults, problems); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
54 if (defaultBedHeights.isEmpty()) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
55 problems.addProblem("sinfo.bedheightsfinder.nobedheightsforriver", this.river.getName()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
56 return Collections.emptyList(); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
57 } |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
58 |
9706
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
59 /* |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
60 * check for overlapping ranges, N2-search, but we expect only have small |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
61 * numbers of bed levels |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
62 */ |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
63 final List<BedHeight> result = new ArrayList<>(defaultBedHeights.size()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
64 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
65 for (int i = 0; i < defaultBedHeights.size(); i++) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
66 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
67 final BedHeight bedHeight = defaultBedHeights.get(i); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
68 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
69 DefaultBedHeight configuredBH = getConfiguredBedheightByDescription(problems, defaults, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
70 bedHeight.getDescription()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
71 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
72 final double startKm = configuredBH.startKm < configuredBH.endKm ? configuredBH.startKm |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
73 : configuredBH.endKm; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
74 final double endKm = configuredBH.endKm > configuredBH.startKm ? configuredBH.endKm : configuredBH.startKm; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
75 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
76 // FIXME: optional: deckt die echte Range (Datenbank) die |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
77 // konfigurierte Range ab? |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
78 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
79 // copy bedheight and restrict to configured ranges |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
80 BedHeight rangedBedheight = BedHeight.copyPojoFrom(bedHeight, startKm, endKm); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
81 result.add(rangedBedheight); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
82 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
83 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
84 final List<BedHeight> validBedHeights = new ArrayList<>(defaultBedHeights.size()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
85 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
86 // REMARK: check for bad ranges because db schema allow for incomplete ranges, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
87 // and ignore if this is the case |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
88 for (final BedHeight bedHeight : defaultBedHeights) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
89 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
90 final Range range = bedHeight.getRange(); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
91 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
92 if (range.getA() == null || range.getB() == null) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
93 problems.addProblem("sinfo.bedheightsfinder.badrange", bedHeight.getDescription()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
94 else |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
95 validBedHeights.add(bedHeight); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
96 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
97 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
98 return result; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
99 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
100 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
101 private DefaultBedHeight getConfiguredBedheightByDescription(Calculation problems, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
102 Collection<DefaultBedHeight> defaults, String description) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
103 for (DefaultBedHeight bh : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
104 if (bh.description.equals(description)) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
105 return bh; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
106 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
107 problems.addProblem("could not find the configured bedheight, which is not possible", description); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
108 return null; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
109 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
110 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
111 private static List<BedHeight> loadBedHeightsByName(final River river, final Collection<DefaultBedHeight> defaults, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
112 final Calculation problems) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
113 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
114 final List<BedHeight> bedHeights = new ArrayList<>(defaults.size()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
115 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
116 for (final DefaultBedHeight heightDefault : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
117 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
118 final String description = heightDefault.description; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
119 try { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
120 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
121 final BedHeight bedHeight = BedHeight.getBedHeightByDescription(river, description, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
122 heightDefault.startKm, heightDefault.endKm); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
123 if (bedHeight == null) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
124 problems.addProblem("sinfo.bedheightsfinder.missingdescription", river.getName(), description); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
125 else |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
126 bedHeights.add(bedHeight); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
127 } catch (final Exception e) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
128 e.printStackTrace(); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
129 problems.addProblem("sinfo.bedheightsfinder.missingdescription", river.getName(), description); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
130 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
131 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
132 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
133 return bedHeights; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
134 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
135 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
136 /* |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
137 * this check is replaced by configRangeCheck private static boolean |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
138 * overlapsRange(final NumberRange bedRange, final List<BedHeight> result, final |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
139 * int startIndex) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
140 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
141 * for (int i = startIndex; i < result.size(); i++) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
142 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
143 * final BedHeight compareBed = result.get(i); final Range range = |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
144 * compareBed.getRange(); final NumberRange compareRange = new |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
145 * NumberRange(range.getA(), range.getB()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
146 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
147 * if (compareRange.overlapsRange(bedRange)) return true; } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
148 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
149 * return false; } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
150 */ |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
151 } |