view artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResult.java @ 8854:7bbfb24e6eec

SINFO - first prototype of BArt Fließtiefen
author gernotbelger
date Thu, 18 Jan 2018 18:34:41 +0100
parents
children 9f7a285b0ee3
line wrap: on
line source
/* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
 * Software engineering by 
 *  Björnsen Beratende Ingenieure GmbH 
 *  Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */
package org.dive4elements.river.artifacts.sinfo.flowdepth;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;

import gnu.trove.TDoubleArrayList;

/**
 * Contains the results of a {@link FlowDepthCalculation}.
 *
 * @author Gernot Belger
 */
class FlowDepthCalculationResult
implements Serializable {
	
	private static final long serialVersionUID = 1L;

	private final Collection<FlowDepthRow> rows = new ArrayList<>();

	private final String wstLabel;
	
	private final String soundingLabel;

	public FlowDepthCalculationResult(final String wstLabel, final String soundingLabel) {
		this.wstLabel = wstLabel;
		this.soundingLabel = soundingLabel;
	}

	public void addRow(double station, double flowDepth, double flowDepthWithTkh, double tkh, double waterlevel, double discharge, String waterlevelLabel, String gauge, double meanBedHeight, String sondageLabel, String location) {
		rows.add(new FlowDepthRow(station, flowDepth, flowDepthWithTkh, tkh, waterlevel, discharge, waterlevelLabel, gauge, meanBedHeight, sondageLabel, location));
	}
	
	public String getWstLabel() {
		return this.wstLabel;
	}

	public String getSoundingLabel() {
		return this.soundingLabel;
	}

	public Collection<FlowDepthRow> getRows() {
		return  Collections.unmodifiableCollection( rows );
	}
	
    public double[][] getFlowDepthPoints() {

    	TDoubleArrayList xPoints = new TDoubleArrayList(rows.size());
    	TDoubleArrayList yPoints = new TDoubleArrayList(rows.size());
    	
        for (FlowDepthRow row : rows) {
        	xPoints.add(row.getStation());
			yPoints.add(row.getFlowDepth());
		}
        
        return new double[][] { xPoints.toNativeArray(), yPoints.toNativeArray() };
    }
}

http://dive4elements.wald.intevation.org