comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierMeasurementFacet.java @ 3552:1df6984628c3

S/Q: Extented the result data model of the S/Q calculation to store the curve coefficients for each iteration step of the outlier elimination. flys-artifacts/trunk@5146 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 27 Jul 2012 12:36:09 +0000
parents
children
comparison
equal deleted inserted replaced
3551:e7f1556192b3 3552:1df6984628c3
1 package de.intevation.flys.artifacts.model.sq;
2
3 import de.intevation.artifactdatabase.state.Facet;
4
5 import de.intevation.artifacts.Artifact;
6 import de.intevation.artifacts.CallContext;
7
8 import de.intevation.flys.artifacts.FLYSArtifact;
9
10 import de.intevation.flys.artifacts.model.CalculationResult;
11 import de.intevation.flys.artifacts.model.DataFacet;
12 import de.intevation.flys.artifacts.model.FacetTypes;
13
14 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
15
16 import org.apache.log4j.Logger;
17
18 public class SQOutlierMeasurementFacet
19 extends DataFacet
20 implements FacetTypes
21 {
22 private static final Logger log =
23 Logger.getLogger(SQOutlierMeasurementFacet.class);
24
25 private int fractionIdx;
26
27 public static final int BITMASK_ITERATION = (1 << 16) - 1;
28
29 public SQOutlierMeasurementFacet() {
30 }
31
32 public SQOutlierMeasurementFacet(
33 int idx,
34 int fractionIdx,
35 String name,
36 String description,
37 String hash,
38 String stateId
39 ) {
40 super(idx, name, description, ComputeType.ADVANCE, hash, stateId);
41 this.fractionIdx = fractionIdx;
42 }
43
44 @Override
45 public Object getData(Artifact artifact, CallContext context) {
46 log.debug("SQOutlierMeasurementFacet.getData");
47
48 if (!(artifact instanceof FLYSArtifact)) {
49 return null;
50 }
51
52 FLYSArtifact flys = (FLYSArtifact) artifact;
53
54 CalculationResult res = (CalculationResult) flys.compute(
55 context, ComputeType.ADVANCE, false);
56
57 int idx = this.index >> 16;
58 int iter = this.index & BITMASK_ITERATION;
59
60 SQResult[] result = (SQResult[]) res.getData();
61 SQFractionResult fResult = result[idx].getFraction(fractionIdx);
62
63 return fResult.getMeasurements(iter);
64 }
65
66 @Override
67 public Facet deepCopy() {
68 SQOutlierMeasurementFacet copy = new SQOutlierMeasurementFacet();
69 copy.set(this);
70 return copy;
71 }
72 }
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org