annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Sieve.java @ 8870:c26fb37899ca

Introduced groups for modules. Modules marked with the same group-id, will be put together in the ui. Also using now the localization info from the server instead of localizing the modules again on the client side.
author gernotbelger
date Wed, 07 Feb 2018 11:59:13 +0100
parents a8fd76b15d41
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: 4001
diff changeset
9 package org.dive4elements.river.artifacts.model.sq;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
11 import java.util.Comparator;
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
12
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 public class Sieve
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 {
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
15 public static final double EPSILON = 1e-6;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16
4001
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
17 public static final Comparator<Double> DIAMETER_CMP =
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
18 new Comparator<Double>() {
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
19 @Override
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
20 public int compare(Double a, Double b) {
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
21 double diff = a - b;
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
22 if (diff < -EPSILON) return -1;
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
23 if (diff > EPSILON) return +1;
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
24 return 0;
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
25 }
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
26 };
ab3a4ad82ae1 S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3992
diff changeset
27
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
28 protected double diameter;
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
29 protected double load;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
31 /**
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
32 * Constructs a new instance.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
33 */
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 public Sieve() {
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
35 this(Double.NaN, Double.NaN);
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
38 public Sieve(double diameter, double load) {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
39 this.diameter = diameter;
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
40 this.load = load;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
43 /**
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
44 * Gets the diameter for this instance.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
45 *
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
46 * @return The diameter.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
47 */
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
48 public double getDiameter() {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
49 return this.diameter;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
52 /**
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
53 * Sets the diameter for this instance.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
54 *
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
55 * @param diameter The diameter.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
56 */
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
57 public void setDiameter(double diameter) {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
58 this.diameter = diameter;
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
59 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
60
3992
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
61 /**
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
62 * Gets the load for this instance.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
63 *
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
64 * @return The load.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
65 */
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
66 public double getLoad() {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
67 return this.load;
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
68 }
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
69
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
70 /**
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
71 * Sets the load for this instance.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
72 *
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
73 * @param load The load.
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
74 */
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
75 public void setLoad(double load) {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
76 this.load = load;
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
77 }
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
78
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
79 public boolean matchesDiameter(double diameter) {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
80 return Math.abs(diameter - this.diameter) < EPSILON;
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
81 }
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
82
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
83 public boolean hasDiameter() {
a9c93b7c9da1 Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3281
diff changeset
84 return !Double.isNaN(diameter);
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
85 }
7710
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
86
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
87 public boolean hasLoad() {
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
88 return !Double.isNaN(load);
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
89 }
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
90
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
91 public boolean isValid() {
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
92 return hasDiameter() && hasLoad();
a8fd76b15d41 S/Q relation be more correct with judgment if a sieve is correct. Needs load and diameter.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5994
diff changeset
93 }
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
94 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
95 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org