AggregatedProcess

(Source code, png, hires.png, pdf)

../../_images/openturns-AggregatedProcess-1.png
class AggregatedProcess(*args)

Aggregation of several processes in one process.

Available constructor:
AggregatedProcess(collProc)
Parameters:

collProc : sequence of Process

Collection of processes which all have the same spatial dimension.

Notes

If we note X_i: \Omega \times\cD_i \mapsto \Rset^{d_i} for 0 \leq i \leq N the collection of processes, where \cD_i \in \Rset^n for all i. Then the resulting aggregated process Y: \Omega \times\cD_0 \mapsto \Rset^d where d=\sum_{i=0}^N d_i. The mesh of the first process X_0 has been assigned to the process Y.

Examples

Create an aggregated process:

>>> import openturns as ot
>>> myMesher = ot.IntervalMesher(ot.Indices([5,10]))
>>> lowerbound = [0.0, 0.0]
>>> upperBound = [2.0, 4.0]
>>> myInterval = ot.Interval(lowerbound, upperBound)
>>> myMesh = myMesher.build(myInterval)
>>> myProcess1 = ot.WhiteNoise(ot.Normal(), myMesh)
>>> myProcess2 = ot.WhiteNoise(ot.Triangular(), myMesh)
>>> myAggregatedProcess = ot.AggregatedProcess([myProcess1, myProcess2])

Draw one realization:

>>> myGraph = myAggregatedProcess.getRealization().drawMarginal(0)

Methods

getClassName() Accessor to the object’s name.
getContinuousRealization() Get a continuous realization.
getCovarianceModel() Accessor to the covariance model.
getDescription() Get the description of the process.
getDimension()
getFuture(*args) Prediction of the N future iterations of the process.
getId() Accessor to the object’s id.
getInputDimension() Get the dimension of the domain \cD.
getMarginal(*args) Accessor the marginal processes.
getMesh() Get the mesh.
getName() Accessor to the object’s name.
getOutputDimension() Get the dimension of the domain \cD.
getProcessCollection() Get the collection of processes.
getRealization() Get one realization of the aggregated process.
getSample(size) Get n realizations of the process.
getShadowedId() Accessor to the object’s shadowed id.
getSpatialDimension()
getTimeGrid() Get the time grid of observation of the process.
getTrend() Accessor to the trend.
getVisibility() Accessor to the object’s visibility state.
hasName() Test if the object is named.
hasVisibleName() Test if the object has a distinguishable name.
isComposite() Test whether the process is composite or not.
isNormal() Test whether the process is normal or not.
isStationary() Test whether the process is stationary or not.
setDescription(description) Set the description of the process.
setMesh(mesh) Set the mesh.
setName(name) Accessor to the object’s name.
setProcessCollection(coll) Set the collection of processes.
setShadowedId(id) Accessor to the object’s shadowed id.
setTimeGrid(timeGrid) Set the time grid of observation of the process.
setVisibility(visible) Accessor to the object’s visibility state.
__init__(*args)

x.__init__(…) initializes x; see help(type(x)) for signature

getClassName()

Accessor to the object’s name.

Returns:

class_name : str

The object class name (object.__class__.__name__).

getContinuousRealization()

Get a continuous realization.

Returns:

realization : Function

Each process of the collection is continuously realized on the common domain \cD_0.

getCovarianceModel()

Accessor to the covariance model.

Returns:

cov_model : CovarianceModel

Covariance model, if any.

getDescription()

Get the description of the process.

Returns:

description : Description

Description of the process.

getFuture(*args)

Prediction of the N future iterations of the process.

Parameters:

stepNumber : int, N \geq 0

Number of future steps.

size : int, size \geq 0, optional

Number of futures needed. Default is 1.

Returns:

prediction : ProcessSample or TimeSeries

N future iterations of the process. If size = 1, prediction is a TimeSeries. Otherwise, it is a ProcessSample.

getId()

Accessor to the object’s id.

Returns:

id : int

Internal unique identifier.

getInputDimension()

Get the dimension of the domain \cD.

Returns:

n : int

Dimension of the domain \cD: n.

getMarginal(*args)

Accessor the marginal processes.

Available usages:

getMarginal(index)

getMarginal(indices)

Parameters:

index : int

Index of the selected marginal process.

indices : Indices

List of indices of the selected marginal processes.

Notes

The selected marginal processes are extracted if the list of indices does not mingle the processes of the initial collection: take care to extract all the marginal processes process by process. For example, if X_0=(X_0^0, X_0^1), X_1=(X_1^0, X_1^1) and X_2=(X_2^0, X_2^1, X_2^2) then you can extract Indices([1,0,2,4,6]) but not Indices([1,2,0,4,6]).

getMesh()

Get the mesh.

Returns:

mesh : Mesh

Mesh over which the domain \cD is discretized.

getName()

Accessor to the object’s name.

Returns:

name : str

The name of the object.

getOutputDimension()

Get the dimension of the domain \cD.

Returns:

d : int

Dimension of the domain \cD.

getProcessCollection()

Get the collection of processes.

Returns:

collProc : ProcessCollection

Collection of processes which all have the same spatial dimension.

getRealization()

Get one realization of the aggregated process.

Returns:

realization : Field

Each process of the collection is realized on the common mesh defined on \cD_0.

getSample(size)

Get n realizations of the process.

Parameters:

n : int, n \geq 0

Number of realizations of the process needed.

Returns:

processSample : ProcessSample

n realizations of the random process. A process sample is a collection of fields which share the same mesh \cM \in \Rset^n.

getShadowedId()

Accessor to the object’s shadowed id.

Returns:

id : int

Internal unique identifier.

getTimeGrid()

Get the time grid of observation of the process.

Returns:

timeGrid : RegularGrid

Time grid of a process when the mesh associated to the process can be interpreted as a RegularGrid. We check if the vertices of the mesh are scalar and are regularly spaced in \Rset but we don’t check if the connectivity of the mesh is conform to the one of a regular grid (without any hole and composed of ordered instants).

getTrend()

Accessor to the trend.

Returns:

trend : TrendTransform

Trend, if any.

getVisibility()

Accessor to the object’s visibility state.

Returns:

visible : bool

Visibility flag.

hasName()

Test if the object is named.

Returns:

hasName : bool

True if the name is not empty.

hasVisibleName()

Test if the object has a distinguishable name.

Returns:

hasVisibleName : bool

True if the name is not empty and not the default one.

isComposite()

Test whether the process is composite or not.

Returns:

isComposite : bool

True if the process is composite (built upon a function and a process).

isNormal()

Test whether the process is normal or not.

Returns:

isNormal : bool

True if the process is normal.

Notes

A stochastic process is normal if all its finite dimensional joint distributions are normal, which means that for all k \in \Nset and I_k \in \Nset^*, with cardI_k=k, there is \vect{m}_1, \dots, \vect{m}_k \in \Rset^d and \mat{C}_{1,\dots,k}\in\mathcal{M}_{kd,kd}(\Rset) such that:

\Expect{\exp\left\{i\Tr{\vect{X}}_{I_k} \vect{U}_{k}  \right\}} =
\exp{\left\{i\Tr{\vect{U}}_{k}\vect{M}_{k}-\frac{1}{2}\Tr{\vect{U}}_{k}\mat{C}_{1,\dots,k}\vect{U}_{k}\right\}}

where \Tr{\vect{X}}_{I_k} = (\Tr{X}_{\vect{t}_1}, \hdots, \Tr{X}_{\vect{t}_k}), \\Tr{vect{U}}_{k} = (\Tr{\vect{u}}_{1}, \hdots, \Tr{\vect{u}}_{k}) and \Tr{\vect{M}}_{k} = (\Tr{\vect{m}}_{1}, \hdots, \Tr{\vect{m}}_{k}) and \mat{C}_{1,\dots,k} is the symmetric matrix:

\mat{C}_{1,\dots,k} = \left(
\begin{array}{cccc}
  C(\vect{t}_1, \vect{t}_1) &C(\vect{t}_1, \vect{t}_2) & \hdots & C(\vect{t}_1, \vect{t}_{k}) \\
  \hdots & C(\vect{t}_2, \vect{t}_2)  & \hdots & C(\vect{t}_2, \vect{t}_{k}) \\
  \hdots & \hdots & \hdots & \hdots \\
  \hdots & \hdots & \hdots & C(\vect{t}_{k}, \vect{t}_{k})
\end{array}
\right)

A Gaussian process is entirely defined by its mean function m and its covariance function C (or correlation function R).

isStationary()

Test whether the process is stationary or not.

Returns:

isStationary : bool

True if the process is stationary.

Notes

A process X is stationary if its distribution is invariant by translation: \forall k \in \Nset, \forall (\vect{t}_1, \dots, \vect{t}_k) \in \cD, \forall \vect{h}\in \Rset^n, we have:

(X_{\vect{t}_1}, \dots, X_{\vect{t}_k})
\stackrel{\mathcal{D}}{=} (X_{\vect{t}_1+\vect{h}}, \dots, X_{\vect{t}_k+\vect{h}})

setDescription(description)

Set the description of the process.

Parameters:

description : sequence of str

Description of the process.

setMesh(mesh)

Set the mesh.

Parameters:

mesh : Mesh

Mesh over which the domain \cD is discretized.

setName(name)

Accessor to the object’s name.

Parameters:

name : str

The name of the object.

setProcessCollection(coll)

Set the collection of processes.

Parameters:

collProc : sequence of Process

Collection of processes which all have the same spatial dimension.

setShadowedId(id)

Accessor to the object’s shadowed id.

Parameters:

id : int

Internal unique identifier.

setTimeGrid(timeGrid)

Set the time grid of observation of the process.

Returns:

timeGrid : RegularGrid

Time grid of observation of the process when the mesh associated to the process can be interpreted as a RegularGrid. We check if the vertices of the mesh are scalar and are regularly spaced in \Rset but we don’t check if the connectivity of the mesh is conform to the one of a regular grid (without any hole and composed of ordered instants).

setVisibility(visible)

Accessor to the object’s visibility state.

Parameters:

visible : bool

Visibility flag.