[Dive4elements-commits] [PATCH 1 of 4] Added facet for filtered flow velocity and removed filter from default facet
Wald Commits
scm-commit at wald.intevation.org
Thu Dec 13 15:58:14 CET 2012
# HG changeset patch
# User Raimund Renkert <rrenkert at intevation.de>
# Date 1355410489 -3600
# Node ID 87c938d082d6c78701444675dafbdd8f00f9eee2
# Parent e6a282844a3380696fb7b14e35d1b8b7cf929c63
Added facet for filtered flow velocity and removed filter from default facet.
diff -r e6a282844a33 -r 87c938d082d6 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Wed Dec 12 10:42:38 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FacetTypes.java Thu Dec 13 15:54:49 2012 +0100
@@ -237,12 +237,15 @@
String REFERENCE_CURVE = "reference_curve";
String REFERENCE_CURVE_NORMALIZED = "reference_curve_normalized";
- String FLOW_VELOCITY_MAINCHANNEL = "flow_velocity.mainchannel";
- String FLOW_VELOCITY_TOTALCHANNEL = "flow_velocity.totalchannel";
- String FLOW_VELOCITY_TAU = "flow_velocity.tau";
- String FLOW_VELOCITY_ANNOTATION = "flow_velocity.annotation";
- String FLOW_VELOCITY_MEASUREMENT = "flow_velocity.measurement";
- String FLOW_VELOCITY_DISCHARGE = "flow_velocity.discharge";
+ String FLOW_VELOCITY_MAINCHANNEL = "flow_velocity.mainchannel";
+ String FLOW_VELOCITY_TOTALCHANNEL = "flow_velocity.totalchannel";
+ String FLOW_VELOCITY_TAU = "flow_velocity.tau";
+ String FLOW_VELOCITY_MAINCHANNEL_FILTERED = "flow_velocity.mainchannel.filtered";
+ String FLOW_VELOCITY_TOTALCHANNEL_FILTERED = "flow_velocity.totalchannel.filtered";
+ String FLOW_VELOCITY_TAU_FILTERED = "flow_velocity.tau.filtered";
+ String FLOW_VELOCITY_ANNOTATION = "flow_velocity.annotation";
+ String FLOW_VELOCITY_MEASUREMENT = "flow_velocity.measurement";
+ String FLOW_VELOCITY_DISCHARGE = "flow_velocity.discharge";
String MIDDLE_BED_HEIGHT_SINGLE = "bedheight_middle.single";
String MIDDLE_BED_HEIGHT_EPOCH = "bedheight_middle.epoch";
diff -r e6a282844a33 -r 87c938d082d6 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFacet.java
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFacet.java Wed Dec 12 10:42:38 2012 +0100
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFacet.java Thu Dec 13 15:54:49 2012 +0100
@@ -42,36 +42,13 @@
public Object getData(Artifact artifact, CallContext context) {
logger.debug("Get data for flow velocity at index: " + index);
- Double start = (Double)context.getContextValue("startkm");
- Double end = (Double)context.getContextValue("endkm");
FLYSArtifact flys = (FLYSArtifact) artifact;
CalculationResult res = (CalculationResult)
flys.compute(context, hash, stateId, type, false);
FlowVelocityData[] data = (FlowVelocityData[]) res.getData();
- if(start != null && end != null) {
- FLYSContext fc = (FLYSContext)context.globalContext();
- ZoomScale scales = (ZoomScale)fc.get("zoomscale");
- RiverAccess access = new RiverAccess((FLYSArtifact)artifact);
- String river = access.getRiver();
- double radius = scales.getRadius(river, start, end);
- FlowVelocityData oldData = data[index];
- FlowVelocityData newData = new FlowVelocityData();
- double[][] q = oldData.getQPoints();
- double[][] totalV = MovingAverage.weighted(oldData.getTotalChannelPoints(), radius);
- double[][] mainV = MovingAverage.weighted(oldData.getMainChannelPoints(), radius);
- double[][] tau = MovingAverage.weighted(oldData.getTauPoints(), radius);
- for(int j = 0; j < q[0].length; j++) {
- newData.addKM(q[0][j]);
- newData.addQ(q[1][j]);
- newData.addTauMain(tau[1][j]);
- newData.addVMain(mainV[1][j]);
- newData.addVTotal(totalV[1][j]);
- }
- return newData;
- }
return data[index];
}
diff -r e6a282844a33 -r 87c938d082d6 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFilterFacet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFilterFacet.java Thu Dec 13 15:54:49 2012 +0100
@@ -0,0 +1,90 @@
+package de.intevation.flys.artifacts.model;
+
+import de.intevation.artifactdatabase.state.Facet;
+
+import de.intevation.artifacts.Artifact;
+import de.intevation.artifacts.CallContext;
+
+import de.intevation.flys.artifacts.FLYSArtifact;
+
+import de.intevation.flys.artifacts.access.RiverAccess;
+import de.intevation.flys.artifacts.context.FLYSContext;
+
+import de.intevation.flys.artifacts.math.MovingAverage;
+import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Facet of a FlowVelocity curve.
+ */
+public class FlowVelocityFilterFacet extends DataFacet {
+
+ private static Logger logger = Logger.getLogger(FlowVelocityFilterFacet.class);
+
+ public FlowVelocityFilterFacet() {
+ // required for clone operation deepCopy()
+ }
+
+
+ public FlowVelocityFilterFacet(
+ int idx,
+ String name,
+ String description,
+ ComputeType type,
+ String stateId,
+ String hash
+ ) {
+ super(idx, name, description, type, hash, stateId);
+ }
+
+
+ public Object getData(Artifact artifact, CallContext context) {
+ logger.debug("Get data for flow velocity at index: " + index);
+
+ Double start = (Double)context.getContextValue("startkm");
+ Double end = (Double)context.getContextValue("endkm");
+ FLYSArtifact flys = (FLYSArtifact) artifact;
+
+ CalculationResult res = (CalculationResult)
+ flys.compute(context, hash, stateId, type, false);
+
+ FlowVelocityData[] data = (FlowVelocityData[]) res.getData();
+ if(start != null && end != null) {
+ FLYSContext fc = (FLYSContext)context.globalContext();
+ ZoomScale scales = (ZoomScale)fc.get("zoomscale");
+ RiverAccess access = new RiverAccess((FLYSArtifact)artifact);
+ String river = access.getRiver();
+
+ double radius = scales.getRadius(river, start, end);
+ FlowVelocityData oldData = data[index];
+ FlowVelocityData newData = new FlowVelocityData();
+ double[][] q = oldData.getQPoints();
+ double[][] totalV = MovingAverage.weighted(oldData.getTotalChannelPoints(), radius);
+ double[][] mainV = MovingAverage.weighted(oldData.getMainChannelPoints(), radius);
+ double[][] tau = MovingAverage.weighted(oldData.getTauPoints(), radius);
+ for(int j = 0; j < q[0].length; j++) {
+ newData.addKM(q[0][j]);
+ newData.addQ(q[1][j]);
+ newData.addTauMain(tau[1][j]);
+ newData.addVMain(mainV[1][j]);
+ newData.addVTotal(totalV[1][j]);
+ }
+ return newData;
+ }
+ return data[index];
+ }
+
+
+ /** Copy deeply. */
+ @Override
+ public Facet deepCopy() {
+ FlowVelocityFilterFacet copy = new FlowVelocityFilterFacet();
+ copy.set(this);
+ copy.type = type;
+ copy.hash = hash;
+ copy.stateId = stateId;
+ return copy;
+ }
+}
+// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
More information about the Dive4elements-commits
mailing list