annotate artifacts/src/main/java/org/dive4elements/river/artifacts/FixationArtifact.java @ 7167:2fd238b681a9

Add debug output triggered by debugging the last commit
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 26 Sep 2013 12:22:01 +0200
parents c18098d0151a
children e4606eae8ea5
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: 5869
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: 5869
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: 4736
diff changeset
9 package org.dive4elements.river.artifacts;
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
10
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
11 import org.dive4elements.artifacts.CallContext;
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
12
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
13 import org.dive4elements.river.artifacts.geom.Lines;
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
14
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
15 import org.dive4elements.river.artifacts.model.CalculationResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
16 import org.dive4elements.river.artifacts.model.WKms;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
17 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
18
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
19 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
20
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4736
diff changeset
21 import org.dive4elements.river.model.FastCrossSectionLine;
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
22
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import org.apache.log4j.Logger;
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 /**
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 * The default fixation analysis artifact.
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 *
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 */
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 public class FixationArtifact
5867
59ff03ff48f1 River artifacts: Renamed FLYSArtifact(Collection) to D4EArtifact(Collection).
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
31 extends D4EArtifact
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
32 implements WaterLineArtifact
3774
a66df8e8d3df flys-artifacts: Removed some superfluous implementations of FacetTypes.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3193
diff changeset
33 {
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 /** The logger for this class. */
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 private static Logger logger = Logger.getLogger(FixationArtifact.class);
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 /** The name of the artifact. */
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 public static final String ARTIFACT_NAME = "fixanalysis";
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
4418
e0a355d0c771 FixationArtifact: In doc, mention where the FacetActivity is registered.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3917
diff changeset
40 /* FacetActivity for this artifact is registered in FixAnalysisCompute . */
e0a355d0c771 FixationArtifact: In doc, mention where the FacetActivity is registered.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 3917
diff changeset
41
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 /**
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 * The default constructor.
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 */
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 public FixationArtifact() {
3917
1ff257ab38ca Rename fix_derivate to fix_derivate_curve to enable manual points on it
Christian Lins <christian.lins@intevation.de>
parents: 3774
diff changeset
46 logger.debug("ctor()");
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 }
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 /**
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 * Returns the name of the concrete artifact.
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 *
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 * @return the name of the concrete artifact.
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 */
3193
2f922be407ea Moved common code of the *Artifacts into FLYSArtifact.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2728
diff changeset
54 @Override
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 public String getName() {
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 return ARTIFACT_NAME;
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 }
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
58
6496
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 5994
diff changeset
59 /** Calculate waterlines against a cross section. */
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
60 @Override
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
61 public Lines.LineData getWaterLines(
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
62 int facetIdx,
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
63 FastCrossSectionLine csl,
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
64 double d,
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
65 double w,
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
66 CallContext context
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
67 ) {
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
68 FixRealizingResult result = (FixRealizingResult)
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
69 ((CalculationResult)this.compute(context, ComputeType.ADVANCE, false)).getData();
4736
b195fede1c3b Remove trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4508
diff changeset
70
4508
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
71 WKms wkms = result.getWQKms()[facetIdx];
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
72
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
73 double km = csl.getKm();
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
74
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
75 // Find W at km.
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
76 double wAtKm;
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
77
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
78 wAtKm = StaticWKmsArtifact.getWAtKm(wkms, km);
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
79
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
80 if (wAtKm == -1 || Double.isNaN(wAtKm)) {
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
81 logger.warn("Waterlevel at km " + km + " unknown.");
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
82 return new Lines.LineData(new double[][] {{}}, 0d, 0d);
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
83 }
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
84
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
85 // This should be FixRealizationResult, which can be getWQKms()ed
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
86 return Lines.createWaterLines(csl.getPoints(), wAtKm);
03b8d10a99c0 FixationArtifact: implement WaterLineArtifact, deliver lines for cross-sections.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 4418
diff changeset
87 }
2651
9e9eb9d97548 Initial transition configuration and artifact/state stubs for fixation
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 }
2728
306b9d0f0fb3 Cosmetics.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 2699
diff changeset
89 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org