Mercurial > dive4elements > river
changeset 8185:76e1e9d81ce2
Removed obsolete average and renamed some symbols to make the difference between single fractions and sums of them clearer in the calculation.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 04 Sep 2014 12:03:02 +0200 |
parents | 143b24546b26 |
children | a1ceacf15d3a |
files | artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java |
diffstat | 2 files changed, 32 insertions(+), 38 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java Thu Sep 04 12:00:17 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadData.java Thu Sep 04 12:03:02 2014 +0200 @@ -31,8 +31,7 @@ public static final int GF_TOTAL = 6; public static final int GF_BED_LOAD = 7; public static final int GF_BED_LOAD_SUSP_SAND = 8; - public static final int GF_AVERAGE = 9; - public static final int GF_MAX = 9; + public static final int GF_MAX = 8; public static final int [] MEASUREMENT_STATION_GF = { /* GF_COARSE */ Station.BED_LOAD, @@ -62,7 +61,6 @@ if ("total".equals(name)) return GF_TOTAL; if ("bed_load".equals(name)) return GF_BED_LOAD; if ("bed_load_susp_sand".equals(name)) return GF_BED_LOAD_SUSP_SAND; - if ("average".equals(name)) return GF_AVERAGE; return GF_UNKNOWN; } @@ -116,7 +114,7 @@ } public Load( - int id, + int id, int kind, String description, Date startTime, @@ -152,7 +150,7 @@ public boolean isEpoch() { return startTime != null && stopTime != null; } - } // class SedimentLoad + } // class Load public static class Station implements Serializable {
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java Thu Sep 04 12:00:17 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataCalculation.java Thu Sep 04 12:03:02 2014 +0200 @@ -79,20 +79,16 @@ SedimentLoadData.GF_SUSP_SEDIMENT }; - public static final int [] AVERAGE = { - SedimentLoadData.GF_AVERAGE - }; - - public static final class GrainFraction { + public static final class LoadSum { private String description; private int [] grainFractions; - public GrainFraction(String description, int [] grainFractions) { + public LoadSum(String description, int [] grainFractions) { this.description = description; this.grainFractions = grainFractions; } - public static final GrainFraction make(String description, int [] grainFractions) { - return new GrainFraction(description, grainFractions); + public static final LoadSum make(String description, int [] grainFractions) { + return new LoadSum(description, grainFractions); } public String getDescription() { @@ -102,20 +98,19 @@ public int [] getGrainFractions() { return grainFractions; } - } // class GrainFraction + } // class LoadSum - public static final GrainFraction [] GRAIN_FRACTIONS = { - // Grain fraction names are alignt to the grain_fractions table - GrainFraction.make("total", TOTAL_LOAD), - GrainFraction.make("bed_load", BED_LOAD), - GrainFraction.make("bed_load_susp_sand", BED_LOAD_SUSP_SAND), - GrainFraction.make("coarse", COARSE), - GrainFraction.make("fine_middle", FINE_MIDDLE), - GrainFraction.make("sand", SAND) , - GrainFraction.make("susp_sand", SUSP_SAND), - GrainFraction.make("susp_sand_bed", SUSP_SAND_BED), - GrainFraction.make("suspended_sediment", SUSP_SEDIMENT), - GrainFraction.make("average", AVERAGE), + public static final LoadSum [] LOAD_SUMS = { + // Names are alignt to the grain_fractions table + LoadSum.make("total", TOTAL_LOAD), + LoadSum.make("bed_load", BED_LOAD), + LoadSum.make("bed_load_susp_sand", BED_LOAD_SUSP_SAND), + LoadSum.make("coarse", COARSE), + LoadSum.make("fine_middle", FINE_MIDDLE), + LoadSum.make("sand", SAND) , + LoadSum.make("susp_sand", SUSP_SAND), + LoadSum.make("susp_sand_bed", SUSP_SAND_BED), + LoadSum.make("suspended_sediment", SUSP_SEDIMENT), }; public static class Sum implements Value.Visitor { @@ -245,22 +240,23 @@ .add(new TimeRangeIntersects(year)); String period = Integer.toString(year); - for (GrainFraction gf: GRAIN_FRACTIONS) { + for (LoadSum ls: LOAD_SUMS) { + double [][] result = sum( - sld, gf.getGrainFractions(), filter, sum, isKmUp, + sld, ls.getGrainFractions(), filter, sum, isKmUp, missingFractions); if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) { // TODO: resolve i18n addProblem("minfo.sediment.load.no.fractions", - gf.getDescription()); + ls.getDescription()); continue; } transformT2M3(sd, year, result); SedimentLoadDataResult.Fraction sldrf = - new SedimentLoadDataResult.Fraction(gf.getDescription(), result, period); + new SedimentLoadDataResult.Fraction(ls.getDescription(), result, period); sldr.addFraction(sldrf); } @@ -298,7 +294,7 @@ String period = Integer.toString(epoch[0]) + " - " + Integer.toString(epoch[1]); - for (GrainFraction gf: GRAIN_FRACTIONS) { + for (LoadSum ls: LOAD_SUMS) { List<double [][]> results = new ArrayList<double [][]>(); @@ -307,13 +303,13 @@ .add(new TimeRangeIntersects(year)); double [][] result = sum( - sld, gf.getGrainFractions(), filter, sum, isKmUp, + sld, ls.getGrainFractions(), filter, sum, isKmUp, missingFractions); if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) { // TODO: resolve i18n addProblem("minfo.sediment.load.no.fractions", - gf.getDescription()); + ls.getDescription()); continue; } @@ -324,7 +320,7 @@ double [][] result = average(results); SedimentLoadDataResult.Fraction sldrf = - new SedimentLoadDataResult.Fraction(gf.getDescription(), + new SedimentLoadDataResult.Fraction(ls.getDescription(), result, period); sldr.addFraction(sldrf); } @@ -360,20 +356,20 @@ Sum sum = new Sum(); - for (GrainFraction gf: GRAIN_FRACTIONS) { + for (LoadSum ls: LOAD_SUMS) { double [][] result = sum( - sld, gf.getGrainFractions(), filter, sum, isKmUp, + sld, ls.getGrainFractions(), filter, sum, isKmUp, missingFractions); if (result[0].length == 0 || DoubleUtil.isNaN(result[1])) { // TODO: resolve i18n addProblem("minfo.sediment.load.no.fractions", - gf.getDescription()); + ls.getDescription()); continue; } transformT2M3(sd, year, result); SedimentLoadDataResult.Fraction sldrf = - new SedimentLoadDataResult.Fraction(gf.getDescription(), result, period); + new SedimentLoadDataResult.Fraction(ls.getDescription(), result, period); sldr.addFraction(sldrf); } }