annotate flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/FlowVelocityFilterFacet.java @ 5831:bd047b71ab37

Repaired internal references
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 12:06:39 +0200
parents flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FlowVelocityFilterFacet.java@87c938d082d6
children
rev   line source
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
1 package org.dive4elements.river.artifacts.model;
4668
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
3 import org.dive4elements.artifactdatabase.state.Facet;
4668
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
5 import org.dive4elements.artifacts.Artifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
6 import org.dive4elements.artifacts.CallContext;
4668
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
8 import org.dive4elements.river.artifacts.FLYSArtifact;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
9
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
10 import org.dive4elements.river.artifacts.access.RiverAccess;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
11 import org.dive4elements.river.artifacts.context.FLYSContext;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
12
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
13 import org.dive4elements.river.artifacts.math.MovingAverage;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4668
diff changeset
14 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
4668
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 import org.apache.log4j.Logger;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 /**
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 * Facet of a FlowVelocity curve.
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 */
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 public class FlowVelocityFilterFacet extends DataFacet {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 private static Logger logger = Logger.getLogger(FlowVelocityFilterFacet.class);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 public FlowVelocityFilterFacet() {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 // required for clone operation deepCopy()
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 public FlowVelocityFilterFacet(
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 int idx,
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 String name,
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 String description,
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 ComputeType type,
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 String stateId,
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 String hash
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 ) {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 super(idx, name, description, type, hash, stateId);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 public Object getData(Artifact artifact, CallContext context) {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 logger.debug("Get data for flow velocity at index: " + index);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 Double start = (Double)context.getContextValue("startkm");
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 Double end = (Double)context.getContextValue("endkm");
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 FLYSArtifact flys = (FLYSArtifact) artifact;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 CalculationResult res = (CalculationResult)
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 flys.compute(context, hash, stateId, type, false);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 FlowVelocityData[] data = (FlowVelocityData[]) res.getData();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 if(start != null && end != null) {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 FLYSContext fc = (FLYSContext)context.globalContext();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 ZoomScale scales = (ZoomScale)fc.get("zoomscale");
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 RiverAccess access = new RiverAccess((FLYSArtifact)artifact);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 String river = access.getRiver();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 double radius = scales.getRadius(river, start, end);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 FlowVelocityData oldData = data[index];
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 FlowVelocityData newData = new FlowVelocityData();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 double[][] q = oldData.getQPoints();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 double[][] totalV = MovingAverage.weighted(oldData.getTotalChannelPoints(), radius);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 double[][] mainV = MovingAverage.weighted(oldData.getMainChannelPoints(), radius);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 double[][] tau = MovingAverage.weighted(oldData.getTauPoints(), radius);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 for(int j = 0; j < q[0].length; j++) {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 newData.addKM(q[0][j]);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 newData.addQ(q[1][j]);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 newData.addTauMain(tau[1][j]);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 newData.addVMain(mainV[1][j]);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 newData.addVTotal(totalV[1][j]);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
72 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 return newData;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 return data[index];
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 /** Copy deeply. */
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 @Override
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 public Facet deepCopy() {
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82 FlowVelocityFilterFacet copy = new FlowVelocityFilterFacet();
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 copy.set(this);
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 copy.type = type;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 copy.hash = hash;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 copy.stateId = stateId;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 return copy;
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 }
87c938d082d6 Added facet for filtered flow velocity and removed filter from default facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org