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