Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/tkhstate/DefaultBedHeights.java @ 9706:299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
author | dnt_bjoernsen <d.tironi@bjoernsen.de> |
---|---|
date | Fri, 22 Jan 2021 12:28:58 +0100 |
parents | b9c87bbff6a4 |
children | b74f817435fe |
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 // final NumberRange bedRange = new NumberRange(range.getA(), range.getB()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
76 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
77 // 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
|
78 // konfigurierte Range ab? |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
79 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
80 // copy bedheight and restrict to configured ranges |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
81 BedHeight rangedBedheight = BedHeight.copyPojoFrom(bedHeight, startKm, endKm); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
82 result.add(rangedBedheight); |
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 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
85 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
|
86 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
87 // 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
|
88 // and ignore if this is the case |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
89 for (final BedHeight bedHeight : defaultBedHeights) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
90 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
91 final Range range = bedHeight.getRange(); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
92 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
93 if (range.getA() == null || range.getB() == null) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
94 problems.addProblem("sinfo.bedheightsfinder.badrange", bedHeight.getDescription()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
95 else |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
96 validBedHeights.add(bedHeight); |
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 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
99 return result; |
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 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
102 private DefaultBedHeight getConfiguredBedheightByDescription(Calculation problems, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
103 Collection<DefaultBedHeight> defaults, String description) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
104 for (DefaultBedHeight bh : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
105 if (bh.description.equals(description)) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
106 return bh; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
107 } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
108 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
|
109 return null; |
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 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
112 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
|
113 final Calculation problems) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
114 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
115 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
|
116 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
117 for (final DefaultBedHeight heightDefault : defaults) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
118 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
119 final String description = heightDefault.description; |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
120 try { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
121 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
122 final BedHeight bedHeight = BedHeight.getBedHeightByDescription(river, description, |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
123 heightDefault.startKm, heightDefault.endKm); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
124 if (bedHeight == null) |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
125 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
|
126 else |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
127 bedHeights.add(bedHeight); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
128 } catch (final Exception e) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
129 e.printStackTrace(); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
130 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
|
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 |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
134 return bedHeights; |
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 /* |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
138 * 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
|
139 * 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
|
140 * int startIndex) { |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
141 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
142 * 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
|
143 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
144 * 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
|
145 * compareBed.getRange(); final NumberRange compareRange = new |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
146 * NumberRange(range.getA(), range.getB()); |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
147 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
148 * if (compareRange.overlapsRange(bedRange)) return true; } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
149 * |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
150 * return false; } |
299c1c61d8ef
zu 1.1. Sohlhöhen-Überlappung
dnt_bjoernsen <d.tironi@bjoernsen.de>
parents:
9573
diff
changeset
|
151 */ |
8942
11bf13cf0463
Minor changes to tkh calculation. Loading default bed heights form config file.
gernotbelger
parents:
diff
changeset
|
152 } |