public void add(TimeSeriesContainer tsc)

//Completes collection when TimeSeriesContainers have been added. Re-computes sequences, etc.
public void finishedAdding()  

public void set(TimeSeriesContainer[] containers)

public boolean set(TimeSeriesContainer[] containers, int startingSequenceNumber)

public boolean set(TimeSeriesContainer[] containers, String[] sequences)



public TimeSeriesContainer[] get()

public int size()

public TimeSeriesContainer get(int index)

// the collections sequence i.e. (000042) must be 6 characters long
public TimeSeriesContainer get(String sequence)

// Gets an int array containing all times in all containers in collection. * (No times duplicated)
public int[] getTimes() 



protected boolean contains(int array[], int arrayCount, int value)

public int numberOfSequences()
public String[] getSequences()

public String[] getPathnameList()

public boolean remove(TimeSeriesContainer tsc)
public boolean remove(int index)

JAVA



DSSPathname functions for Collections

public static boolean isaCollectionPath(String pathname)

public void setCollectionSequence(String collectionSequence)

public void setCollectionSequence(int collectionSequence)

public static String getCollectionSequence(String pathname)

public String getCollectionSequence()
JAVA


Example: Time-Series Collection

import java.util.Arrays;
import java.util.Vector;

import hec.gfx2d.G2dDialog;
import hec.heclib.dss.*;
import hec.heclib.util.HecTime;
import hec.hecmath.TimeSeriesMath;
import hec.io.TimeSeriesCollectionContainer;
import hec.io.TimeSeriesContainer;

//  Example time series collection
//
public class ExampleCollection {

	public static void main (String args[])  {

		//  Create a collection from daily precip for POR for Sacramento in sample DSS file
		HecDataManager.setDefaultDSSFileName("C:/temp/Sample7.dss");
		String pathname = "//SACRAMENTO/PRECIP-INC/*/1DAY/OBS/";
		HecDssCatalog catalog = new HecDssCatalog();
		String paths[] = catalog.getCatalog(true, pathname);
		if ((paths == null)  || (paths.length < 2)) {
			System.out.println("Incorrect DSS file - please copy HEC-DSSVue sample.dss to C:/temp/Sample7.dss");
			return;
		}
		
		TimeSeriesCollectionContainer tscc = new TimeSeriesCollectionContainer();
		for (int i=0; i<paths.length; i++) {
			HecTimeSeries timeSeries = new HecTimeSeries();
			TimeSeriesContainer tsc = new TimeSeriesContainer();
			tsc.setName(paths[i]);
			int status = timeSeries.read(tsc, true);
			if (status < 0) {
				System.out.println("Error reading " + tsc.getName() + ", status: " + status);
				return;
			}
			//  For simplicty, only use years with 365 days.
			if (tsc.getNumberValues() == 365) {
				//  Accumulate precip
				try {
					TimeSeriesMath math = new TimeSeriesMath();
					math.setData(tsc);
					math = (TimeSeriesMath)math.accumulation();
					math = (TimeSeriesMath)math.shiftInTime(new HecTime("01Jan3000, 2400"));
					tsc = math.getContainer();
				}
				catch (Exception e) {
					System.out.println(e);
					return;
				}
				//  Store collection for year 3000 (usual when doing statistical)
				//  (Could also use HecMath shiftInTime)
				tsc.setTimes(null);
				tsc.setStartTime(new HecTime("01Jan3000, 2400"));
				DSSPathname path = new DSSPathname(paths[i]);
				path.setDPart("01Jan3000");
				path.setCollectionSequence(i);
				tsc.setName(path.pathname());
				tscc.add(tsc);
			}
		}
		//  finish causes collections calculations to be run
		tscc.finishedAdding();
		
		if (tscc.numberOfSequences() > 0) {
			HecTimeSeries timeSeries1 = new HecTimeSeries();
			int status = timeSeries1.write(tscc);
			if (status < 0) {
				System.out.println("Error writting " + tscc.getName() + ", status: " + status);
				return;
			}
			else {
				System.out.println("Collection container " + tscc.getName() + " written.");  
				System.out.println("Number sequences: " + tscc.numberOfSequences());
			}
		}
		
		//  Read collection, then plot
		HecTimeSeries timeSeries2 = new HecTimeSeries();
		TimeSeriesCollectionContainer tscc2 = new TimeSeriesCollectionContainer();
		tscc2.setName(tscc.getName());
		int status = timeSeries2.read(tscc2, true);
		if (status < 0) {
			System.out.println("Error reading " + tscc2.getName() + ", status: " + status);
			return;
		}

		//  Show in a plot
		Vector<TimeSeriesContainer> v = new Vector<TimeSeriesContainer>(Arrays.asList(tscc2.get()));
		hec.gfx2d.G2dDialog plot =  new G2dDialog(null, "My Plot", false, v);
		plot.setVisible(true);

		HecDataManager.closeAllFiles();  //  Only at the end of the program
	}
}

JAVA