Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/exports/ComputedDischargeCurveExporter.java @ 8383:4de385d58a3e
Transform export in cm at gauge. TODO: don't transfrom twice if coming from PegelInfo.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 06 Oct 2014 19:07:57 +0200 |
parents | 3508d625092f |
children | 47199406994a |
comparison
equal
deleted
inserted
replaced
8382:15f4e4785288 | 8383:4de385d58a3e |
---|---|
45 import org.dive4elements.river.model.River; | 45 import org.dive4elements.river.model.River; |
46 | 46 |
47 import org.dive4elements.river.utils.RiverUtils; | 47 import org.dive4elements.river.utils.RiverUtils; |
48 import org.dive4elements.river.utils.Formatter; | 48 import org.dive4elements.river.utils.Formatter; |
49 | 49 |
50 import static org.dive4elements.river.exports.injector.InjectorConstants.PNP; | 50 import static org.dive4elements.river.exports.injector.InjectorConstants.GAUGE_EPSILON; |
51 | 51 |
52 /** | 52 /** |
53 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 53 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
54 */ | 54 */ |
55 public class ComputedDischargeCurveExporter extends AbstractExporter { | 55 public class ComputedDischargeCurveExporter extends AbstractExporter { |
110 RangeAccess rangeAccess = new RangeAccess(arti); | 110 RangeAccess rangeAccess = new RangeAccess(arti); |
111 | 111 |
112 double[] kms = rangeAccess.getKmRange(); | 112 double[] kms = rangeAccess.getKmRange(); |
113 | 113 |
114 Gauge gauge = river.determineGaugeByPosition(kms[0]); | 114 Gauge gauge = river.determineGaugeByPosition(kms[0]); |
115 if (context.getContextValue(PNP) instanceof Number) { | 115 if (Math.abs(kms[0] - gauge.getStation().doubleValue()) |
116 < GAUGE_EPSILON) { | |
116 wUnit = "cm"; | 117 wUnit = "cm"; |
117 gaugeName = gauge.getName(); | 118 gaugeName = gauge.getName(); |
118 gaugeDatum = gauge.getDatum().doubleValue(); | 119 gaugeDatum = gauge.getDatum().doubleValue(); |
119 | 120 |
120 // Now convert the data to cm because we are at gauge | 121 // Now convert the data to cm because we are at gauge |
121 List<WQKms> newData = new ArrayList<WQKms>(); | 122 List<WQKms> newData = new ArrayList<WQKms>(); |
122 for (WQKms d2: data) { | 123 for (WQKms d2: data) { |
123 newData.add(new WQKms(d2.getKms(), | 124 newData.add(new WQKms(d2.getKms(), |
124 WQ.getFixedWQforExportAtGauge((WQ)d2, gauge.getDatum()))); | 125 WQ.getFixedWQforExportAtGauge( |
126 (WQ)d2, | |
127 gauge.getDatum() | |
128 ))); | |
125 } | 129 } |
126 data = newData; // All hail the garbage collector | 130 data = newData; // All hail the garbage collector |
127 | 131 |
128 validSince = gauge.fetchMasterDischargeTable().getTimeInterval().getStartTime(); | 132 validSince = gauge.fetchMasterDischargeTable() |
133 .getTimeInterval().getStartTime(); | |
129 } else { | 134 } else { |
130 gaugeName = ""; | 135 gaugeName = ""; |
131 validSince = null; | 136 validSince = null; |
132 gaugeDatum = Double.NaN; | 137 gaugeDatum = Double.NaN; |
133 } | 138 } |
259 RangeAccess rangeAccess = new RangeAccess(flys); | 264 RangeAccess rangeAccess = new RangeAccess(flys); |
260 double[] kms = rangeAccess.getKmRange(); | 265 double[] kms = rangeAccess.getKmRange(); |
261 source.addMetaData("range", | 266 source.addMetaData("range", |
262 Formatter.getCalculationKm(context.getMeta()).format(kms[0])); | 267 Formatter.getCalculationKm(context.getMeta()).format(kms[0])); |
263 | 268 |
264 if (!(context.getContextValue(PNP) instanceof Number)) { | 269 if (!"cm".equals(wUnit)) { |
265 source.addMetaData("valid_since", ""); | 270 source.addMetaData("valid_since", ""); |
266 source.addMetaData("calculation", Resources.getMsg( | 271 source.addMetaData("calculation", Resources.getMsg( |
267 locale, | 272 locale, |
268 PDF_HEADER_CALC_MODE, | 273 PDF_HEADER_CALC_MODE, |
269 "Computed Discharge")); | 274 "Computed Discharge")); |