diff artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadResult.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadResult.java@bd047b71ab37
children 4897a58c8746
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadResult.java	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,213 @@
+package org.dive4elements.river.artifacts.model.minfo;
+
+import gnu.trove.TDoubleArrayList;
+
+import java.io.Serializable;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+
+
+/** Result from a SedimentLoadCalculation. */
+public class SedimentLoadResult
+implements Serializable
+{
+    private static final Logger logger = Logger
+        .getLogger(SedimentLoadResult.class);
+    protected int startYear;
+    protected int endYear;
+    protected SedimentLoad load;
+
+    public SedimentLoadResult() {
+    }
+
+    public SedimentLoadResult(
+        int startYear,
+        int endYear,
+        SedimentLoad load
+    ) {
+        this.startYear = startYear;
+        this.endYear = endYear;
+        this.load = load;
+    }
+
+    public int getStartYear() {
+        return this.startYear;
+    }
+
+    public void setStartYear(int year) {
+        this.startYear = year;
+    }
+
+    public int getEndYear() {
+        return this.endYear;
+    }
+
+    public void setEndYear(int year) {
+        this.endYear = year;
+    }
+
+    public double[][] getTotalData () {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList total = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getTotal() > 0d) {
+                k.add(km);
+                total.add(load.getFraction(km).getTotal());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            total.toNativeArray()
+        };
+    }
+
+    /** Search all SedimenLoads fractions for sand and returns
+     * an array [[km1, km2][sand1, sand2]]. */
+    public double[][] getSandData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList sand = new TDoubleArrayList();
+        for(double km : kms) {
+            if (load.getFraction(km).getSand() > 0d) {
+                k.add(km);
+                sand.add(load.getFraction(km).getSand());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            sand.toNativeArray()
+        };
+    }
+
+    public double[][] getFineMiddleData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList fm = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getFine_middle() > 0d) {
+                k.add(km);
+                fm.add(load.getFraction(km).getFine_middle());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            fm.toNativeArray()
+        };
+    }
+
+    public double[][] getCoarseData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList coarse = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getCoarse() > 0d) {
+                k.add(km);
+                coarse.add(load.getFraction(km).getCoarse());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            coarse.toNativeArray()
+        };
+    }
+
+    public double[][] getSuspSandData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList ss = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getSusp_sand() > 0d) {
+                k.add(km);
+                ss.add(load.getFraction(km).getSusp_sand());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            ss.toNativeArray()
+        };
+    }
+
+    public double[][] getSuspSandBedData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList ss = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getSusp_sand_bed() > 0d) {
+                k.add(km);
+                ss.add(load.getFraction(km).getSusp_sand_bed());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            ss.toNativeArray()
+        };
+    }
+
+    public double[][] getSuspSedimentData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList ss = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getSusp_sediment() > 0d) {
+                k.add(km);
+                ss.add(load.getFraction(km).getSusp_sediment());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            ss.toNativeArray()
+        };
+    }
+
+    public double[][] getTotalLoadData() {
+        Set<Double> kms = this.load.getKms();
+        TDoubleArrayList k = new TDoubleArrayList();
+        TDoubleArrayList ss = new TDoubleArrayList();
+        for (double km : kms) {
+            if (load.getFraction(km).getLoadTotal() > 0d) {
+                k.add(km);
+                ss.add(load.getFraction(km).getLoadTotal());
+            }
+        }
+        return new double [][] {
+            k.toNativeArray(),
+            ss.toNativeArray()
+        };
+    }
+
+    public boolean hasCoarseData() {
+        return getCoarseData()[0].length > 0;
+    }
+
+    public boolean hasFineMiddleData() {
+        return getFineMiddleData()[0].length > 0;
+    }
+
+    public boolean hasSandData() {
+        return getSandData()[0].length > 0;
+    }
+
+    public boolean hasSuspSandData() {
+        return getSuspSandData()[0].length > 0;
+    }
+
+    public boolean hasSuspSandBedData() {
+        return getSuspSandBedData()[0].length > 0;
+    }
+
+    public boolean hasSuspSedimentData() {
+        return getSuspSedimentData()[0].length > 0;
+    }
+
+    public boolean hasTotalLoadData() {
+        return getTotalLoadData()[0].length > 0;
+    }
+
+    public boolean hasTotalData() {
+        return getTotalData()[0].length > 0;
+    }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
+

http://dive4elements.wald.intevation.org