Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.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 | 238803b2cb8b |
children |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.java Fri Jul 27 08:36:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.java Fri Jul 27 12:36:09 2012 +0000 @@ -1,17 +1,17 @@ package de.intevation.flys.artifacts.model.sq; -import org.apache.log4j.Logger; - import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; + import de.intevation.flys.artifacts.model.CalculationResult; import de.intevation.flys.artifacts.model.DataFacet; import de.intevation.flys.artifacts.model.FacetTypes; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; +import org.apache.log4j.Logger; /** * Facet to show the curve in a sq relation. @@ -24,14 +24,11 @@ public static final int BITMASK_ITERATION = (1 << 16) - 1; - private int fractionIdx; - public SQOutlierFacet() { } - public SQOutlierFacet( int idx, int fractionIdx, @@ -49,39 +46,43 @@ public Object getData(Artifact artifact, CallContext context) { log.debug("SQOutlierFacet.getData"); - if (artifact instanceof FLYSArtifact) { - FLYSArtifact flys = (FLYSArtifact) artifact; - - CalculationResult res = (CalculationResult) flys.compute( - context, ComputeType.ADVANCE, false); - - int idx = this.index >> 16; - int iter = this.index & BITMASK_ITERATION; - - if (log.isDebugEnabled()) { - log.debug("Fetch data for index : " + this.index); - log.debug(" > index: " + idx); - log.debug(" > fraction: " + fractionIdx); - log.debug(" > iteration: " + iter); - } - - SQResult[] result = (SQResult[]) res.getData(); - SQFractionResult fResult = result[idx].getFraction(fractionIdx); - - if (fResult == null) { - log.warn("No SQFractionResult at " + idx + "|" + fractionIdx); - } - else if (log.isDebugEnabled()) { - SQ[] outliers = fResult.getOutliers(iter); - int num = outliers != null ? outliers.length : 0; - - log.debug("Found " + num + " outliers for iteration " + iter); - } - - return fResult.getOutliers(iter); + if (!(artifact instanceof FLYSArtifact)) { + return null; } - return null; + FLYSArtifact flys = (FLYSArtifact) artifact; + + CalculationResult res = (CalculationResult) flys.compute( + context, ComputeType.ADVANCE, false); + + int idx = this.index >> 16; + int iter = this.index & BITMASK_ITERATION; + + boolean debug = log.isDebugEnabled(); + + if (debug) { + log.debug("Fetch data for index : " + this.index); + log.debug(" > index: " + idx); + log.debug(" > fraction: " + fractionIdx); + log.debug(" > iteration: " + iter); + } + + SQResult[] result = (SQResult[]) res.getData(); + SQFractionResult fResult = result[idx].getFraction(fractionIdx); + + if (fResult == null) { + log.warn("No SQFractionResult at " + idx + "|" + fractionIdx); + return null; + } + + SQ [] outliers = fResult.getOutliers(iter); + + if (debug) { + int num = outliers != null ? outliers.length : 0; + log.debug("Found " + num + " outliers for iteration " + iter); + } + + return outliers; }