comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadCalculation.java @ 6543:1ca0688dddc7

issue1235: Prevent division by zeros leading to NaNs.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 08 Jul 2013 10:25:25 +0200
parents f3b3742fbdad
children 0a70a320bfca
comparison
equal deleted inserted replaced
6542:c5945aca0c8d 6543:1ca0688dddc7
185 resLoad.setSuspSediment(km, s + f.getSuspSediment(), f.getSuspSedimentRange()); 185 resLoad.setSuspSediment(km, s + f.getSuspSediment(), f.getSuspSedimentRange());
186 sseSum++; 186 sseSum++;
187 } 187 }
188 } 188 }
189 SedimentLoadFraction fr = resLoad.getFraction(km); 189 SedimentLoadFraction fr = resLoad.getFraction(km);
190 resLoad.setCoarse(km, fr.getCoarse()/cSum, fr.getCoarseRange()); 190 // Prevent divisions by zero, the fraction defaults to 0d.
191 resLoad.setFineMiddle(km, fr.getFineMiddle()/fmSum, fr.getFineMiddleRange()); 191 if (cSum != 0) {
192 resLoad.setSand(km, fr.getSand()/sSum, fr.getSandRange()); 192 resLoad.setCoarse(km, fr.getCoarse()/cSum, fr.getCoarseRange());
193 resLoad.setSuspSand(km, fr.getSuspSand()/ssSum, fr.getSuspSandRange()); 193 }
194 resLoad.setSuspSandBed(km, fr.getSuspSandBed()/ssbSum, fr.getSuspSandBedRange()); 194 if (fmSum != 0) {
195 resLoad.setSuspSediment(km, fr.getSuspSediment()/sseSum, fr.getSuspSedimentRange()); 195 resLoad.setFineMiddle(km, fr.getFineMiddle()/fmSum,
196 fr.getFineMiddleRange());
197 }
198 if (sSum != 0) {
199 resLoad.setSand(km, fr.getSand()/sSum, fr.getSandRange());
200 }
201 if (ssSum != 0) {
202 resLoad.setSuspSand(km, fr.getSuspSand()/ssSum,
203 fr.getSuspSandRange());
204 }
205 if (ssbSum != 0) {
206 resLoad.setSuspSandBed(km, fr.getSuspSandBed()/ssbSum,
207 fr.getSuspSandBedRange());
208 }
209 if (sseSum != 0) {
210 resLoad.setSuspSediment(km, fr.getSuspSediment()/sseSum, fr.getSuspSedimentRange());
211 }
196 } 212 }
197 resLoad.setDescription(""); 213 resLoad.setDescription("");
198 resLoad.setEpoch(true); 214 resLoad.setEpoch(true);
199 215
200 SedimentLoadResult result; 216 SedimentLoadResult result;

http://dive4elements.wald.intevation.org