Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/access/Calculation4Access.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 | 65bfb6faa538 |
children | 61ebb6fb2ac4 |
line wrap: on
line source
package de.intevation.flys.artifacts.access; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.model.Segment; import java.util.Collections; import java.util.List; import org.apache.log4j.Logger; import de.intevation.flys.utils.DoubleUtil; import de.intevation.flys.utils.FLYSUtils; public class Calculation4Access extends RiverAccess { private static Logger log = Logger.getLogger(Calculation4Access.class); protected List<Segment> segments; protected double [] fromToStep; protected Boolean isQ; protected Boolean isRange; public Calculation4Access() { } public Calculation4Access(FLYSArtifact artifact) { super(artifact); } public List<Segment> getSegments() { if (segments == null) { String input = getString("wq_values"); if (input == null || (input = input.trim()).length() == 0) { log.warn("no wq_values given"); segments = Collections.<Segment>emptyList(); } } return segments; } public boolean isQ() { if (isQ == null) { Boolean value = getBoolean("wq_isq"); isQ = value != null && value; } return isQ; } public boolean isRange() { if (isRange == null) { String mode = getString("ld_mode"); isRange = mode == null || mode.equals("distance"); } return isRange; } public double [] getFromToStep() { if (fromToStep == null) { // XXX: Is this really needed in this calculation? if (!isRange()) { return null; } // XXX: FLYSArtifact sucks! double [] fromTo = FLYSUtils.getKmRange(artifact); if (fromTo == null) { return null; } Double dStep = getDouble("ld_step"); if (dStep == null) { return null; } fromToStep = new double [] { fromTo[0], fromTo[1], DoubleUtil.round(dStep / 1000d) }; } return fromToStep; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :