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 :

http://dive4elements.wald.intevation.org