Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/MiddleBedHeightData.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 | 5fced192b95c |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model; import java.io.Serializable; import java.util.ArrayList; import gnu.trove.TDoubleArrayList; import de.intevation.artifacts.CallContext; import de.intevation.flys.artifacts.resources.Resources; import org.apache.log4j.Logger; public class MiddleBedHeightData implements Serializable { /** Very private logger. */ private static final Logger logger = Logger.getLogger(MiddleBedHeightData.class); public static final String I18N_SINGLE_NAME = "facet.bedheight_middle.single"; public static final String I18N_EPOCH_NAME = "facet.bedheight_middle.epoch"; private int startYear; private int endYear; private String evaluatedBy; private String description; private TDoubleArrayList km; private TDoubleArrayList middleHeight; private TDoubleArrayList uncertainty; private TDoubleArrayList soundingWidth; private TDoubleArrayList dataGap; private TDoubleArrayList width; private ArrayList empty; protected MiddleBedHeightData(int start, int end, String eval, String desc) { this.startYear = start; this.endYear = end; this.evaluatedBy = eval; this.description = desc; this.km = new TDoubleArrayList(); this.middleHeight = new TDoubleArrayList(); this.uncertainty = new TDoubleArrayList(); this.soundingWidth = new TDoubleArrayList(); this.dataGap = new TDoubleArrayList(); this.width = new TDoubleArrayList(); this.empty = new ArrayList(); } public void addAll(double station, double height, double uncertainty, double soundingWidth, double dataGap, double width, boolean isEmpty) { addKM(station); addMiddleHeight(height); addUncertainty(uncertainty); addSoundingWidth(soundingWidth); addDataGap(dataGap); addWidth(width); addIsEmpty(isEmpty); } public int getStartYear() { return startYear; } public int getEndYear() { return endYear; } public String getEvaluatedBy() { return evaluatedBy; } public String getDescription() { return description; } protected void addKM(double km) { this.km.add(km); } public double getKM(int idx) { return km.get(idx); } protected void addMiddleHeight(double middleHeight) { this.middleHeight.add(middleHeight); } public double getMiddleHeight(int idx) { return middleHeight.get(idx); } protected void addUncertainty(double uncertainty) { this.uncertainty.add(uncertainty); } public double getUncertainty(int idx) { return uncertainty.get(idx); } protected void addSoundingWidth(double soundingWidth) { this.soundingWidth.add(soundingWidth); } public double getSoundingWidth(int idx) { return soundingWidth.get(idx); } protected void addDataGap(double gap) { this.dataGap.add(gap); } public double getDataGap(int idx) { return dataGap.get(idx); } protected void addIsEmpty(boolean empty) { this.empty.add(empty); } public boolean isEmpty(int idx) { return (Boolean) empty.get(idx); } protected void addWidth(double width) { this.width.add(width); } public double getWidth(int idx) { return width.get(idx); } public int size() { return km.size(); } /** * Get the points, ready to be drawn * @return [[km1, km2,...],[height1,height2,...]] */ public double[][] getMiddleHeightsPoints() { double[][] points = new double[2][size()]; for (int i = 0, n = size(); i < n; i++) { if (isEmpty(i)) { points[0][i] = getKM(i); points[1][i] = Double.NaN; } else { points[0][i] = getKM(i); points[1][i] = getMiddleHeight(i); } } return points; } public String getSoundingName(CallContext context) { if (getStartYear() == getEndYear()) { return Resources.getMsg( context.getMeta(), I18N_SINGLE_NAME, I18N_SINGLE_NAME, new Object[] { getStartYear() } ); } else { return Resources.getMsg( context.getMeta(), I18N_EPOCH_NAME, I18N_EPOCH_NAME, new Object[] { getStartYear(), getEndYear() } ); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :