[Dive4elements-commits] [PATCH 1 of 2] Fixed calculation of effective width in MINFO SQ relation
Wald Commits
scm-commit at wald.intevation.org
Wed Jan 23 11:15:47 CET 2013
# HG changeset patch
# User Raimund Renkert <rrenkert at intevation.de>
# Date 1358936081 -3600
# Node ID 9e25c75234858f7a267ba57b84c43982dfead94e
# Parent 47c529e2be268551bb9da579c6437ff4f74999e6
Fixed calculation of effective width in MINFO SQ relation.
* Get all (including empty datasets) from db.
* Filter empty datasets when processing data of the same date.
* Added debug outputs.
diff -r 47c529e2be26 -r 9e25c7523485 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Measurement.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Measurement.java Sun Jan 20 15:04:32 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Measurement.java Wed Jan 23 11:14:41 2013 +0100
@@ -1,5 +1,6 @@
package de.intevation.flys.artifacts.model.sq;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -181,6 +182,8 @@
sieveArray.adjust(
eightValue/sieveArray.totalLoad(),
newFourValue/sieveArray.totalLoad());
+ log.debug("Adjusted loads: " + Arrays.toString(sieveArray.getLoads()));
+ log.debug("Adjusted norm loads:" + Arrays.toString(sieveArray.getNormLoads()));
}
protected SieveArray calculateSieveArray() {
diff -r 47c529e2be26 -r 9e25c7523485 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java Sun Jan 20 15:04:32 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/MeasurementFactory.java Wed Jan 23 11:14:41 2013 +0100
@@ -102,7 +102,7 @@
"COALESCE(gs.RSIEB15, 0) + COALESCE(gs.RSIEB16, 0) +" +
"COALESCE(gs.RSIEB17, 0) + COALESCE(gs.RSIEB18, 0) +" +
"COALESCE(gs.RSIEB19, 0) + COALESCE(gs.RSIEB20, 0) +" +
- "COALESCE(gs.RSIEB21, 0) + COALESCE(gs.REST, 0)) > 0 " +
+ "COALESCE(gs.RSIEB21, 0) + COALESCE(gs.REST, 0)) >= 0 " +
"ORDER BY " +
"m.DATUM, g.UFERABST, g.GLOTRECHTEID, gp.LFDNR";
@@ -309,7 +309,6 @@
List<Measurement> accumulated = new ArrayList<Measurement>();
for (Measurement m: measuments) {
-
Integer currentLR = (Integer)m.getData("GLOTRECHTEID");
boolean newDS = lastLR == null
@@ -373,6 +372,9 @@
protected static Measurement processSameDate(List<Measurement> measurements) {
int N = measurements.size();
+ if (N > 0) {
+ log.debug("process same date for Q: " + measurements.get(0).Q());
+ }
if (N == 1) {
Measurement current = measurements.get(0);
double left = current.get("UFERABLINKS");
@@ -402,6 +404,7 @@
double distNext = next.get("UFERABST");
current.set("EFFWIDTH", 0.5*(distNext - distPrev));
}
+ log.debug("effective width: " + current.get("EFFWIDTH"));
}
}
@@ -412,6 +415,9 @@
for (Measurement m: measurements) {
SieveArray sa = m.getSieveArray();
+ if (sa.totalLoad() < SieveArray.EPSILON) {
+ continue;
+ }
double sandF = sa.sandNormFraction();
double coarseF = sa.coarseNormFraction();
double gravelF = sa.gravelNormFraction();
@@ -422,6 +428,11 @@
sumCoarseF += scale*coarseF;
sumGravelF += scale*gravelF;
sumNorm += scale;
+ log.debug("fractions - s: " +
+ sandF + " c: " +
+ coarseF + " g: " +
+ gravelF);
+ log.debug("scale: " + scale + " = " + effWidth + " * " + gt);
}
Map<String, Object> data =
@@ -434,7 +445,7 @@
m.set("BL_S", sumNorm*sumSandF);
m.set("BL_G", sumNorm*sumGravelF);
m.set("BL_C", sumNorm*sumCoarseF);
-
+ log.debug("BL_S: " + m.get("BL_S") + " BL_G: " + m.get("BL_G") + " BL_C: " + m.get("BL_C"));
return m;
}
@@ -483,6 +494,7 @@
new HashMap<String, Object>(measuments.get(0).getData());
data.put("GTRIEB", sumGTrieb/N);
+
return new Measurement(data, accumulatedSieves);
}
}
diff -r 47c529e2be26 -r 9e25c7523485 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SieveArray.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SieveArray.java Sun Jan 20 15:04:32 2013 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SieveArray.java Wed Jan 23 11:14:41 2013 +0100
@@ -1,7 +1,14 @@
package de.intevation.flys.artifacts.model.sq;
+import java.util.Arrays;
+
+import org.apache.log4j.Logger;
+
public class SieveArray
{
+ private static final Logger log =
+ Logger.getLogger(SieveArray.class);
+
public static final double EPSILON = 1e-8;
public static final double [] SIEVE_DIAMETERS = {
@@ -49,6 +56,7 @@
for (int i = 0; i < normLoads.length; ++i) {
normLoads[i] = total*loads[i];
}
+ log.debug("calculated norm loads: " + Arrays.toString(normLoads));
}
public void adjust(double eight, double four) {
More information about the Dive4elements-commits
mailing list