Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java @ 4282:8b4988815974
Added marker for Ws and Qs in Historical Discharge WQ charts.
Therefore, the XYChartGenerator got two new methods addDomainMarker(Marker, boolean) and addValueMarker(Marker, boolean).
The boolean parameters determine, if the marker should be visible or not. This is analogous to addAxisSeries(XYSeries, int, boolean).
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Mon, 29 Oct 2012 05:59:27 +0100 |
parents | ab3a4ad82ae1 |
children |
rev | line source |
---|---|
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts.model.sq; |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
2 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
3 import java.util.Comparator; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
4 |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
5 public class Sieve |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
6 { |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
7 public static final double EPSILON = 1e-6; |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
8 |
4001
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
9 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
|
10 new Comparator<Double>() { |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
11 @Override |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
12 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
|
13 double diff = a - b; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
14 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
|
15 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
|
16 return 0; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
17 } |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
18 }; |
ab3a4ad82ae1
S(Q) accumulated same diameter meassurements per bank distance.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3992
diff
changeset
|
19 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
20 protected double diameter; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
21 protected double load; |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
22 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
23 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
24 * Constructs a new instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
25 */ |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
26 public Sieve() { |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
27 this(Double.NaN, Double.NaN); |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
28 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
29 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
30 public Sieve(double diameter, double load) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
31 this.diameter = diameter; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
32 this.load = load; |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
33 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
34 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
35 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
36 * Gets the diameter for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
37 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
38 * @return The diameter. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
39 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
40 public double getDiameter() { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
41 return this.diameter; |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
42 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
43 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
44 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
45 * Sets the diameter for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
46 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
47 * @param diameter The diameter. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
48 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
49 public void setDiameter(double diameter) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
50 this.diameter = diameter; |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
51 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
52 |
3992
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
53 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
54 * Gets the load for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
55 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
56 * @return The load. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
57 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
58 public double getLoad() { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
59 return this.load; |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
60 } |
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 /** |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
63 * Sets the load for this instance. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
64 * |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
65 * @param load The load. |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
66 */ |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
67 public void setLoad(double load) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
68 this.load = load; |
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 public boolean matchesDiameter(double diameter) { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
72 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
|
73 } |
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 boolean hasDiameter() { |
a9c93b7c9da1
Simpify the S(Q) fraction sieving stuff.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
3281
diff
changeset
|
76 return !Double.isNaN(diameter); |
3281
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
77 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
78 } |
3c61d9e64ca0
SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff
changeset
|
79 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |