comparison artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flood_duration/FloodDurationCurveFacet.java @ 9269:83ebeb620b5a

Station specific main value annotations in S-Info flood duration curve, corrected infrastructure flood duration calculation
author mschaefer
date Thu, 19 Jul 2018 08:07:03 +0200
parents ae9dee74e43e
children 669ab639c56b
comparison
equal deleted inserted replaced
9268:ae9dee74e43e 9269:83ebeb620b5a
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde 1 /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
2 * Software engineering by Intevation GmbH 2 * Software engineering by
3 * Björnsen Beratende Ingenieure GmbH
4 * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
3 * 5 *
4 * This file is Free Software under the GNU AGPL (>=v3) 6 * This file is Free Software under the GNU AGPL (>=v3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the
6 * documentation coming with Dive4Elements River for details. 8 * documentation coming with Dive4Elements River for details.
7 */ 9 */
17 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact; 19 import org.dive4elements.river.artifacts.sinfo.SINFOArtifact;
18 import org.dive4elements.river.exports.fixings.FixChartGenerator; 20 import org.dive4elements.river.exports.fixings.FixChartGenerator;
19 21
20 22
21 /** 23 /**
22 * Data of a duration curve. 24 * Data of a flood duration curve.
23 */ 25 */
24 public class FloodDurationCurveFacet extends DefaultFacet { 26 public class FloodDurationCurveFacet extends DefaultFacet {
25 27
26 private static final long serialVersionUID = 1L; 28 private static final long serialVersionUID = 1L;
27 29
28 private static Logger log = Logger.getLogger(FloodDurationCurveFacet.class); 30 private static Logger log = Logger.getLogger(FloodDurationCurveFacet.class);
29
30 // /** Blackboard data provider key for durationcurve (wqday) data. */
31 // public static String BB_DURATIONCURVE = "durationcurve";
32 //
33 // /** Blackboard data provider key for km of durationcurve. */
34 // public static String BB_DURATIONCURVE_KM = "durationcurve.km";
35 31
36 public FloodDurationCurveFacet() { 32 public FloodDurationCurveFacet() {
37 } 33 }
38 34
39 public FloodDurationCurveFacet(final String name, final String description) { 35 public FloodDurationCurveFacet(final String name, final String description) {
49 45
50 log.debug("Get data for flood duration curve data"); 46 log.debug("Get data for flood duration curve data");
51 47
52 final D4EArtifact flys = (D4EArtifact) artifact; 48 final D4EArtifact flys = (D4EArtifact) artifact;
53 49
54 // TODO: wird das hier noch benötigt?
55 // final CalculationResult res = (CalculationResult) flys.compute(context, ComputeType.ADVANCE, false);
56 // final FloodDurationCalculationResults data = (FloodDurationCalculationResults) res.getData();
57
58 final double currentKm = FixChartGenerator.getCurrentKm(context); 50 final double currentKm = FixChartGenerator.getCurrentKm(context);
59 return new FloodDurationCalculation(context).calcStationCurve(currentKm, (SINFOArtifact) flys); 51 return new FloodDurationCalculation(context).calcStationCurve(currentKm, (SINFOArtifact) flys);
60 } 52 }
61
62 // private WQDay getTestData() {
63 // final int[] days = new int[366];
64 // final double[] ws = new double[366];
65 // final double[] qs = new double[366];
66 // for (int i = 0; i <= 365; i++) {
67 // days[i] = i;
68 // final double x = (i - 182.5) / 182.5;
69 // ws[i] = 102.0 - (Math.pow(x, 5) + x);
70 // qs[i] = 1600.0 - 800 * (Math.pow(x, 9) + x);
71 // }
72 // return new WQDay(days, ws, qs);
73 // }
74
75 // @Override
76 // public List getStaticDataProviderKeys(final Artifact art) {
77 // final List list = new ArrayList();
78 // list.add(BB_DURATIONCURVE);
79 // list.add(BB_DURATIONCURVE_KM);
80 // return list;
81 // }
82
83
84 // /**
85 // * Can provide whatever getData returns and additionally the location.
86 // * @param key will respond on BB_DURATIONCURVE +KM
87 // * @param param ignored
88 // * @param context ignored
89 // * @return whatever getData delivers or location.
90 // */
91 // @Override
92 // public Object provideBlackboardData(final Artifact artifact,
93 // final Object key,
94 // final Object param,
95 // final CallContext context
96 // ) {
97 // if (key.equals(BB_DURATIONCURVE)) {
98 // return getData(artifact, context);
99 // }
100 // else if (key.equals(BB_DURATIONCURVE_KM)) {
101 // return ((D4EArtifact)artifact).getDataAsString("ld_locations");
102 // }
103 // else {
104 // return null;
105 // }
106 // }
107 53
108 54
109 /** Create a deep copy. */ 55 /** Create a deep copy. */
110 @Override 56 @Override
111 public Facet deepCopy() { 57 public Facet deepCopy() {
112 final FloodDurationCurveFacet copy = new FloodDurationCurveFacet(); 58 final FloodDurationCurveFacet copy = new FloodDurationCurveFacet();
113 copy.set(this); 59 copy.set(this);
114 return copy; 60 return copy;
115 } 61 }
116 } 62 }
117 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 63

http://dive4elements.wald.intevation.org