/* MOD_V2.0
* Copyright (c) 2012 OpenDA Association
* All rights reserved.
*
* This file is part of OpenDA.
*
* OpenDA is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of
* the License, or (at your option) any later version.
*
* OpenDA is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with OpenDA. If not, see .
*/
using System;
using System.Collections.Generic;
namespace OpenDA.DotNet.Interfaces
{
/**
* Stochastic Observer
*/
public interface IStochObserver
{
/**
*
* Initialize the Stochastic Observer
* @param workingDir directory containing configuration
* @param arguments arguments needed to configure the instance
*/
void Initialize(String workingDir, String[] arguments);
/**
*
* Create an new Stochastic Observer, containing a selection of the present stochastic observer.
* The selection criteria is a timeSpan. The start time of the interval is not included, the end time is
* included, i.e. t_start
* The selection criteria is the type of observations: assimilation or validation
*
* @param observationType The requested type of observations.
* @return Stochastic Observer containing the required selection.
*/
IStochObserver createSelection(Type observationType);
/**
* Number of observations in the Stochastic Observer.
* @return The number of observations.
*/
int getCount();
/**
* Get the values for all observations.
* @return The observed values.
*/
double[] getValues();
/**
* Get realization values for all observations, for one ensemble member.
* @return The realizations.
*/
double[] getRealizations();
/**
* Get expectation values for all stochastic observations.
* @return The expectations.
*/
double[] getExpectations();
/**
* Evaluate the PDF for stochastic observations, given the values for those observation.
* @param values values for observation's PDF-evaluation.
* @return The PDF evaluations.
*/
double evaluatePDF(double[] values);
/**
* Evaluate the PDF for stochastic observations, given the values for those observation.
* @param values values for observation's PDF-evaluation.
* @return The PDF evaluations.
*/
double[] evaluateMarginalPDFs(double[] values);
/**
* Get the covariance matrix (as a vector) for the stochastic observations.
* @return The covariance matrix.
*/
ISqrtCovariance getSqrtCovariance();
/**
* Get the standard deviation for each each stochastic observation.
* @return The standard deviations.
*/
double[] getStandardDeviations();
ITime[] Times { get; }
/**
* free the Stochastic Observer.
*/
void free();
/**
* Get the observation descriptions.
* @return The Observation Descriptions
*/
IObservationDescriptions getObservationDescriptions();
}
}