Mercurial > dive4elements > river
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 : |