Mercurial > dive4elements > river
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 |