comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/MiddleBedHeightCalculation.java @ 2715:250a370c377d

Added chart generator for middle bed height charts. flys-artifacts/trunk@4441 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Fri, 18 May 2012 11:58:38 +0000
parents b60751cfdd6c
children b888c5eb65b3
comparison
equal deleted inserted replaced
2714:2952f6dee5cf 2715:250a370c377d
90 List<BedHeightSingle> singles, 90 List<BedHeightSingle> singles,
91 List<BedHeightEpoch> epochs 91 List<BedHeightEpoch> epochs
92 ) { 92 ) {
93 logger.info("MiddleBedHeightCalculation.buildCalculationResult"); 93 logger.info("MiddleBedHeightCalculation.buildCalculationResult");
94 94
95 int size = singles.size() + epochs.size(); 95 int size = singles.size() + epochs.size();
96 double kmLo = artifact.getDataAsDouble("ld_from");
97 double kmHi = artifact.getDataAsDouble("ld_to");
96 98
97 List<MiddleBedHeightData> data = new ArrayList<MiddleBedHeightData>(); 99 List<MiddleBedHeightData> data = new ArrayList<MiddleBedHeightData>();
98 100
99 for (BedHeightSingle single: singles) { 101 for (BedHeightSingle single: singles) {
100 MiddleBedHeightData d = prepareSingleData(single); 102 MiddleBedHeightData d = prepareSingleData(single, kmLo, kmHi);
101 103
102 if (d != null) { 104 if (d != null) {
103 data.add(d); 105 data.add(d);
104 } 106 }
105 } 107 }
106 108
107 for (BedHeightEpoch epoch: epochs) { 109 for (BedHeightEpoch epoch: epochs) {
108 MiddleBedHeightData d = prepareEpochData(epoch); 110 MiddleBedHeightData d = prepareEpochData(epoch, kmLo, kmHi);
109 111
110 if (d != null) { 112 if (d != null) {
111 data.add(d); 113 data.add(d);
112 } 114 }
113 } 115 }
117 return new CalculationResult((MiddleBedHeightData[]) 119 return new CalculationResult((MiddleBedHeightData[])
118 data.toArray(new MiddleBedHeightData[data.size()]), this); 120 data.toArray(new MiddleBedHeightData[data.size()]), this);
119 } 121 }
120 122
121 123
122 protected MiddleBedHeightData prepareSingleData(BedHeightSingle single) { 124 protected MiddleBedHeightData prepareSingleData(
125 BedHeightSingle single,
126 double kmLo,
127 double kmHi
128 ) {
123 logger.debug("Prepare data for single: " + single.getDescription()); 129 logger.debug("Prepare data for single: " + single.getDescription());
124 130
125 List<BedHeightSingleValue> values = single.getValues(); 131 List<BedHeightSingleValue> values =
132 BedHeightSingleValue.getBedHeightSingleValues(single, kmLo, kmHi);
126 133
127 MiddleBedHeightData data = new MiddleBedHeightData( 134 MiddleBedHeightData data = new MiddleBedHeightData(
128 single.getYear(), 135 single.getYear(),
129 single.getYear(), 136 single.getYear(),
130 single.getEvaluationBy(), 137 single.getEvaluationBy(),
143 150
144 return data; 151 return data;
145 } 152 }
146 153
147 154
148 protected MiddleBedHeightData prepareEpochData(BedHeightEpoch epoch) { 155 protected MiddleBedHeightData prepareEpochData(
156 BedHeightEpoch epoch,
157 double kmLo,
158 double kmHi
159 ) {
149 logger.debug("Prepare data for epoch: " + epoch.getDescription()); 160 logger.debug("Prepare data for epoch: " + epoch.getDescription());
150 161
151 TimeInterval ti = epoch.getTimeInterval(); 162 TimeInterval ti = epoch.getTimeInterval();
152 163
153 List<BedHeightEpochValue> values = epoch.getValues(); 164 List<BedHeightEpochValue> values =
165 BedHeightEpochValue.getBedHeightEpochValues(epoch, kmLo, kmHi);
154 166
155 MiddleBedHeightData data = new MiddleBedHeightData( 167 MiddleBedHeightData data = new MiddleBedHeightData(
156 DateUtils.getYearFromDate(ti.getStartTime()), 168 DateUtils.getYearFromDate(ti.getStartTime()),
157 DateUtils.getYearFromDate(ti.getStopTime()), 169 DateUtils.getYearFromDate(ti.getStopTime()),
158 epoch.getEvaluationBy(), 170 epoch.getEvaluationBy(),

http://dive4elements.wald.intevation.org