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