comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadCalculation.java @ 6374:48e92ff57f23

SedimentLoad*: Set range to fraction/fractions values.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 20 Jun 2013 09:06:23 +0200
parents af13ceeba52a
children 2f39cf68a1dd
comparison
equal deleted inserted replaced
6373:be283f9bc079 6374:48e92ff57f23
153 double km = kms.get(j); 153 double km = kms.get(j);
154 for (SedimentLoad load : epochLoads) { 154 for (SedimentLoad load : epochLoads) {
155 SedimentLoadFraction f = load.getFraction(km); 155 SedimentLoadFraction f = load.getFraction(km);
156 if (f.getCoarse() > 0d) { 156 if (f.getCoarse() > 0d) {
157 double c = resLoad.getFraction(km).getCoarse(); 157 double c = resLoad.getFraction(km).getCoarse();
158 resLoad.setCoarse(km, c + f.getCoarse()); 158 resLoad.setCoarse(km, c + f.getCoarse(), f.getCoarseRange());
159 cSum++; 159 cSum++;
160 } 160 }
161 if (f.getFine_middle() > 0d) { 161 if (f.getFine_middle() > 0d) {
162 double fm = resLoad.getFraction(km).getFine_middle(); 162 double fm = resLoad.getFraction(km).getFine_middle();
163 resLoad.setFineMiddle(km, fm + f.getFine_middle()); 163 resLoad.setFineMiddle(km, fm + f.getFine_middle(), f.getFineMiddleRange());
164 fmSum++; 164 fmSum++;
165 } 165 }
166 if (f.getSand() > 0d) { 166 if (f.getSand() > 0d) {
167 double s = resLoad.getFraction(km).getSand(); 167 double s = resLoad.getFraction(km).getSand();
168 resLoad.setSand(km, s + f.getSand()); 168 resLoad.setSand(km, s + f.getSand(), f.getSandRange());
169 sSum++; 169 sSum++;
170 } 170 }
171 if (f.getSusp_sand() > 0d) { 171 if (f.getSusp_sand() > 0d) {
172 double s = resLoad.getFraction(km).getSusp_sand(); 172 double s = resLoad.getFraction(km).getSusp_sand();
173 resLoad.setSuspSand(km, s + f.getSusp_sand()); 173 resLoad.setSuspSand(km, s + f.getSusp_sand(), f.getSuspSandRange());
174 ssSum++; 174 ssSum++;
175 } 175 }
176 if (f.getSusp_sand_bed() > 0d) { 176 if (f.getSusp_sand_bed() > 0d) {
177 double s = resLoad.getFraction(km).getSusp_sand_bed(); 177 double s = resLoad.getFraction(km).getSusp_sand_bed();
178 resLoad.setSuspSandBed(km, s + f.getSusp_sand_bed()); 178 resLoad.setSuspSandBed(km, s + f.getSusp_sand_bed(), f.getSuspSandBedRange());
179 ssbSum++; 179 ssbSum++;
180 } 180 }
181 if (f.getSusp_sediment() > 0d) { 181 if (f.getSusp_sediment() > 0d) {
182 double s = resLoad.getFraction(km).getSusp_sediment(); 182 double s = resLoad.getFraction(km).getSusp_sediment();
183 resLoad.setSuspSediment(km, s + f.getSusp_sediment()); 183 resLoad.setSuspSediment(km, s + f.getSusp_sediment(), f.getSuspSedimentRange());
184 sseSum++; 184 sseSum++;
185 } 185 }
186 } 186 }
187 SedimentLoadFraction fr = resLoad.getFraction(km); 187 SedimentLoadFraction fr = resLoad.getFraction(km);
188 resLoad.setCoarse(km, fr.getCoarse()/cSum); 188 resLoad.setCoarse(km, fr.getCoarse()/cSum, fr.getCoarseRange());
189 resLoad.setFineMiddle(km, fr.getFine_middle()/fmSum); 189 resLoad.setFineMiddle(km, fr.getFine_middle()/fmSum, fr.getFineMiddleRange());
190 resLoad.setSand(km, fr.getSand()/sSum); 190 resLoad.setSand(km, fr.getSand()/sSum, fr.getSandRange());
191 resLoad.setSuspSand(km, fr.getSusp_sand()/ssSum); 191 resLoad.setSuspSand(km, fr.getSusp_sand()/ssSum, fr.getSuspSandRange());
192 resLoad.setSuspSandBed(km, fr.getSusp_sand_bed()/ssbSum); 192 resLoad.setSuspSandBed(km, fr.getSusp_sand_bed()/ssbSum, fr.getSuspSandBedRange());
193 resLoad.setSuspSediment(km, fr.getSusp_sediment()/sseSum); 193 resLoad.setSuspSediment(km, fr.getSusp_sediment()/sseSum, fr.getSuspSedimentRange());
194 } 194 }
195 resLoad.setDescription(""); 195 resLoad.setDescription("");
196 resLoad.setEpoch(true); 196 resLoad.setEpoch(true);
197 197
198 SedimentLoadResult result; 198 SedimentLoadResult result;
262 result = new SedimentLoadResult(y, 0, sl); 262 result = new SedimentLoadResult(y, 0, sl);
263 } 263 }
264 return result; 264 return result;
265 } 265 }
266 266
267 /** Add up the loads of a year. */
267 private SedimentLoad calculateTotalLoad(SedimentLoad load, int year) { 268 private SedimentLoad calculateTotalLoad(SedimentLoad load, int year) {
268 logger.debug("calculateTotalLoad"); 269 logger.debug("calculateTotalLoad");
269 boolean problemThisYear = false; 270 boolean problemThisYear = false;
270 if (!load.hasCoarse()) { 271 if (!load.hasCoarse()) {
271 addProblem("missing.fraction.coarse", Integer.toString(year)); 272 addProblem("missing.fraction.coarse", Integer.toString(year));
317 total += fraction.getCoarse() + 318 total += fraction.getCoarse() +
318 fraction.getFine_middle() + 319 fraction.getFine_middle() +
319 fraction.getSand() + 320 fraction.getSand() +
320 fraction.getSusp_sand() + 321 fraction.getSusp_sand() +
321 fraction.getSusp_sediment(); 322 fraction.getSusp_sediment();
322 load.setTotal(km, total); 323 load.setTotal(km, total, fraction.getTotalRange());
323 } 324 }
324 return load; 325 return load;
325 } 326 }
326 327
327 private SedimentLoad calculateUnit(SedimentLoad load, int year) { 328 private SedimentLoad calculateUnit(SedimentLoad load, int year) {
335 double sand = fraction.getSand(); 336 double sand = fraction.getSand();
336 double suspSand = fraction.getSusp_sand(); 337 double suspSand = fraction.getSusp_sand();
337 double bedSand = fraction.getSusp_sand_bed(); 338 double bedSand = fraction.getSusp_sand_bed();
338 double sediment = fraction.getSusp_sediment(); 339 double sediment = fraction.getSusp_sediment();
339 double total = fraction.getTotal(); 340 double total = fraction.getTotal();
340 load.setCoarse(km, (coarse * dens)); 341 load.setCoarse(km, (coarse * dens), fraction.getCoarseRange());
341 load.setFineMiddle(km, (fineMiddle * dens)); 342 load.setFineMiddle(km, (fineMiddle * dens), fraction.getFineMiddleRange());
342 load.setSand(km, (sand * dens)); 343 load.setSand(km, (sand * dens), fraction.getSandRange());
343 load.setSuspSand(km, (suspSand * dens)); 344 load.setSuspSand(km, (suspSand * dens), fraction.getSuspSandRange());
344 load.setSuspSandBed(km, (bedSand * dens)); 345 load.setSuspSandBed(km, (bedSand * dens), fraction.getSuspSandBedRange());
345 load.setSuspSediment(km, (sediment * dens)); 346 load.setSuspSediment(km, (sediment * dens), fraction.getSuspSedimentRange());
346 load.setTotal(km, (total * dens)); 347 load.setTotal(km, (total * dens), fraction.getTotalRange());
347 } 348 }
348 return load; 349 return load;
349 } 350 }
350 } 351 }
351 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : 352 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org