comparison artifacts/src/main/java/org/dive4elements/river/exports/ATExporter.java @ 6304:152e1ba8e5bd

Rework ATWriter/Exporter - Make the write function static as both data and gauge information is necessary for writing. - Use the rivers WST unit for the gauge datum - Handle the case that we are at a gauge - Differentiate between calculated values - Always work with w in CM and thus avoid double number format problems
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 12 Jun 2013 16:07:28 +0200
parents 02ea1c3fba8c
children 1b35b2ddfc28
comparison
equal deleted inserted replaced
6303:5fda7065b74a 6304:152e1ba8e5bd
83 if (data == null) { 83 if (data == null) {
84 logger.debug("no W/Q data"); 84 logger.debug("no W/Q data");
85 return; 85 return;
86 } 86 }
87 87
88 ATWriter at;
89 try {
90 at = new ATWriter(data);
91 }
92 catch (IllegalArgumentException iae) {
93 logger.error("creating ATWriter failed", iae);
94 throw new IOException(iae);
95 }
96
97 River river = RiverUtils.getRiver(master); 88 River river = RiverUtils.getRiver(master);
98 RangeAccess rangeAccess = new RangeAccess(master); 89 RangeAccess rangeAccess = new RangeAccess(master);
99 double[] kms = rangeAccess.getLocations(); 90 double[] kms = rangeAccess.getLocations();
100 91
101 Gauge gauge = river.determineGaugeByPosition(kms[0]); 92 Gauge gauge = river.determineGaugeByPosition(kms[0]);
102 if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) { 93 if (Math.abs(kms[0] - gauge.getStation().doubleValue()) < 1e-4) {
103 // at gauge. 94 // at gauge.
104 TimeInterval interval = 95 TimeInterval interval =
105 gauge.fetchMasterDischargeTable().getTimeInterval(); 96 gauge.fetchMasterDischargeTable().getTimeInterval();
106 at.write( 97 ATWriter.write(
98 data,
107 new OutputStreamWriter(out, DEFAULT_ENCODING), 99 new OutputStreamWriter(out, DEFAULT_ENCODING),
108 context.getMeta(), 100 context.getMeta(),
109 river.getName(), 101 river.getName(),
110 kms[0], 102 kms[0],
111 gauge.getName(), 103 gauge.getName(),
112 gauge.getDatum(), 104 gauge.getDatum(),
113 interval.getStartTime(), 105 interval.getStartTime(),
114 false); 106 river.getWstUnit().getName());
115 } 107 }
116 else { 108 else {
117 // at km 109 // at km
118 at.write( 110 ATWriter.write(
111 data,
119 new OutputStreamWriter(out), 112 new OutputStreamWriter(out),
120 context.getMeta(), 113 context.getMeta(),
121 river.getName(), 114 river.getName(),
122 kms[0], 115 kms[0],
123 null, 116 null,
124 null, 117 null,
125 null, 118 null,
126 true); 119 river.getWstUnit().getName());
127 } 120 }
128 121
129 } 122 }
130 123
131 124

http://dive4elements.wald.intevation.org