Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/ExtremeAccess.java @ 4837:9e25c7523485
Fixed calculation of effective width in MINFO SQ relation.
* Get all (including empty datasets) from db.
* Filter empty datasets when processing data of the same date.
* Added debug outputs.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 23 Jan 2013 11:14:41 +0100 |
parents | 2d3f8af87b7b |
children | f8217f1fef2e |
line wrap: on
line source
package de.intevation.flys.artifacts.access; 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 RiverAccess { /** Our private logger. */ private static Logger logger = Logger.getLogger(ExtremeAccess.class); protected Double from; protected Double to; protected Double step; protected Long start; protected Long end; protected Double percent; protected String function; protected List<RangeWithValues> ranges; public ExtremeAccess() { } public ExtremeAccess(FLYSArtifact artifact) { super(artifact); } /** From (km) for calculation. */ public Double getFrom() { if (from == null) { from = getDouble("ld_from"); } if (logger.isDebugEnabled()) { logger.debug("from: '" + from + "'"); } return from; } /** To (km) for calculation. */ public Double getTo() { if (to == null) { to = getDouble("ld_to"); } if (logger.isDebugEnabled()) { logger.debug("to: '" + to + "'"); } return to; } /** Step width for calculation. */ public Double getStep() { if (step == null) { step = getDouble("ld_step"); } if (logger.isDebugEnabled()) { logger.debug("step: '" + step + "'"); } return step; } /** 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 :