Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/LogSQ.java @ 7727:3d772f52080a
Removed obsolete imports. Fixed Logger in SQ measurement.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 13 Jan 2014 11:52:22 +0100 |
parents | 1c3b2f7dc9a4 |
children | 84929f882fa2 |
rev | line source |
---|---|
6821
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
3 * |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU AGPL (>=v3) |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
6 * documentation coming with Dive4Elements River for details. |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
7 */ |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
8 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
9 package org.dive4elements.river.artifacts.model.sq; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
10 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
11 public class LogSQ extends SQ { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
12 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
13 public static final View LOG_SQ_VIEW = new View() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
14 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
15 public double getS(SQ sq) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
16 return ((LogSQ)sq).getLogS(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
17 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
18 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
19 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
20 public double getQ(SQ sq) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
21 return ((LogSQ)sq).getLogQ(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
22 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
23 }; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
24 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
25 public static final Factory LOG_SQ_FACTORY = new Factory() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
26 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
27 public SQ createSQ(double s, double q) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
28 return new LogSQ(s, q); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
29 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
30 }; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
31 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
32 protected double logS; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
33 protected double logQ; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
34 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
35 protected boolean logTrans; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
36 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
37 public LogSQ() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
38 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
39 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
40 public LogSQ(double s, double q) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
41 super(s, q); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
42 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
43 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
44 /** important: We cannot process negative s/q. */ |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
45 @Override |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
46 public boolean isValid() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
47 return super.isValid() && s > 0d && q > 0d; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
48 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
49 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
50 protected void ensureLogTrans() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
51 if (!logTrans) { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
52 logTrans = true; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
53 logS = Math.log(s); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
54 logQ = Math.log(q); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
55 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
56 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
57 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
58 public double getLogS() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
59 ensureLogTrans(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
60 return logS; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
61 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
62 |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
63 public double getLogQ() { |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
64 ensureLogTrans(); |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
65 return logQ; |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
66 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
67 } |
1c3b2f7dc9a4
S/Q relation: Added forgotten class.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff
changeset
|
68 |