annotate artifacts/src/main/java/org/dive4elements/river/artifacts/AbstractFixBunduArtifact.java @ 9486:ce13a2f07290

pdf exports added for fixation+bundu (waterlevel)
author gernotbelger
date Mon, 17 Sep 2018 19:07:57 +0200
parents da7b5f07303d
children
rev   line source
9461
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
2 * Software engineering by Intevation GmbH
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
3 *
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
7 */
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
8
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
9 package org.dive4elements.river.artifacts;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
10
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
11 import java.io.Serializable;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
12
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
13 import org.apache.log4j.Logger;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
14 import org.dive4elements.artifacts.CallContext;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
15 import org.dive4elements.river.artifacts.model.CalculationResult;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
16 import org.dive4elements.river.artifacts.model.WKms;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
17 import org.dive4elements.river.artifacts.model.fixings.FixRealizingResult;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
18 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
19
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
20 /**
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
21 * The default fixation analysis artifact.
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
22 *
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
23 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
24 */
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
25 public class AbstractFixBunduArtifact extends D4EArtifact implements WaterLineArtifact {
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
26
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
27 private static final long serialVersionUID = 1L;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
28
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
29 /** The log for this class. */
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
30 private static Logger log = Logger.getLogger(AbstractFixBunduArtifact.class);
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
31
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
32 /**
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
33 * The default constructor.
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
34 */
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
35 public AbstractFixBunduArtifact() {
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
36 log.debug("ctor()");
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
37 }
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
38
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
39 /** Calculate waterlines against a cross section. */
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
40 @Override
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
41 public double getWaterLevel(final ComputeType type, final String hash, final String stateId, final double currentKm, final Serializable waterLineIndex,
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
42 final double nextKm, final double prevKm, final CallContext context) {
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
43 final FixRealizingResult result = (FixRealizingResult) ((CalculationResult) this.compute(context, ComputeType.ADVANCE, false)).getData();
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
44
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
45 final int wstIndex = (Integer) waterLineIndex;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
46
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
47 final WKms wkms = result.getWQKms()[wstIndex];
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
48
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
49 // Find W at km.
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
50 final double wAtKm = StaticWKmsArtifact.getWAtKm(wkms, currentKm);
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
51
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
52 if (wAtKm == -1 || Double.isNaN(wAtKm)) {
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
53 log.warn("Waterlevel at km " + currentKm + " unknown.");
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
54 return Double.NaN;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
55 }
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
56
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
57 return wAtKm;
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
58 }
9486
ce13a2f07290 pdf exports added for fixation+bundu (waterlevel)
gernotbelger
parents: 9461
diff changeset
59
ce13a2f07290 pdf exports added for fixation+bundu (waterlevel)
gernotbelger
parents: 9461
diff changeset
60 public String getCalculationModeString() {
ce13a2f07290 pdf exports added for fixation+bundu (waterlevel)
gernotbelger
parents: 9461
diff changeset
61 return null; // must be implemented in inheriting classes. cannot declare this class abstract
ce13a2f07290 pdf exports added for fixation+bundu (waterlevel)
gernotbelger
parents: 9461
diff changeset
62 }
ce13a2f07290 pdf exports added for fixation+bundu (waterlevel)
gernotbelger
parents: 9461
diff changeset
63
9461
da7b5f07303d vergessen
gernotbelger
parents:
diff changeset
64 }

http://dive4elements.wald.intevation.org