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