Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/ExtremeAccess.java @ 5744:5bb179d4fd5f
SedimentLoadFacet: Avoid weird steps, find correct measurement stations.
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 17 Apr 2013 14:53:16 +0200 |
parents | f8217f1fef2e |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.access; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.RangeWithValues; import de.intevation.flys.utils.DoubleUtil; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; /** Access data used for extreme value analysis. */ public class ExtremeAccess extends RangeAccess { /** Our private logger. */ private static Logger logger = Logger.getLogger(ExtremeAccess.class); protected Long start; protected Long end; protected Double percent; protected String function; protected List<RangeWithValues> ranges; public ExtremeAccess(FLYSArtifact artifact, CallContext context) { super(artifact, context); } /** Returns the percent given. */ public Double getPercent() { if (percent == null) { percent = getDouble("percent"); } if (logger.isDebugEnabled()) { logger.debug("percent: '" + percent + "'"); } return percent; } public String getFunction() { if (function == null) { function = getString("function"); } if (logger.isDebugEnabled()) { logger.debug("function: '" + function + "'"); } return function; } /** Find first RangeWithValues for which the given location * is within the range and return its values. * @return values of first suitable rangewithvalues or null. */ public double[] getValuesForRange(double location) { logger.debug("ExtemeAcces.getValuesForRange"); for (RangeWithValues rangeValues: getRanges()) { if (rangeValues.inside(location)) { return rangeValues.getValues(); } } return null; } public List<RangeWithValues> getRanges() { if (ranges == null) { String rangesS = getString("ranges"); if (rangesS == null) { return null; } ranges = new ArrayList<RangeWithValues>(); DoubleUtil.parseSegments(rangesS, new DoubleUtil.SegmentCallback() { @Override public void newSegment(double from, double to, double [] values) { ranges.add(new RangeWithValues(from, to, values)); } }); } if (logger.isDebugEnabled()) { logger.debug("ranges: " + ranges); } return ranges; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :