casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::LatticeAddNoise Class Reference

Add noise from specified distribution to a lattice. More...

#include <LatticeAddNoise.h>

Public Member Functions

 LatticeAddNoise ()
 Default constructor. More...
 
 LatticeAddNoise (Random::Types type, const Vector< Double > &parameters, Int seed1=0, Int seed2=1)
 Constructor. More...
 
 LatticeAddNoise (const LatticeAddNoise &other)
 Copy constructor (copy semantics) More...
 
LatticeAddNoiseoperator= (const LatticeAddNoise &other)
 Assignment (copy semantics) More...
 
 ~LatticeAddNoise ()
 Destructor. More...
 
void set (Random::Types type, const Vector< Double > &parameters)
 Set a new distribution. More...
 
template<class T >
void add (Lattice< T > &lattice)
 Add noise of given type to lattice. More...
 
template<class T >
void add (MaskedLattice< T > &lattice)
 

Private Member Functions

void addNoiseToArray (Array< Float > &data)
 Add noise to array. More...
 
void addNoiseToArray (Array< Complex > &data)
 
void addNoiseToArray (Array< Double > &data)
 
void addNoiseToArray (Array< DComplex > &data)
 
void makeDistribution ()
 Make noise generator. More...
 

Private Attributes

Random::Types itsType
 
Vector< DoubleitsParameters
 
MLCG itsGen
 
RandomitsNoise
 

Detailed Description

Add noise from specified distribution to a lattice.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Synopsis

This class allows you to add noise from one of many enumerated types to a Lattice. If the Lattice is Complex, then the noise is added to real and imaginary separately.

Example

Vector<Double> pars(2):
pars(0) = 0.5; // Mean
pars(1) = 0.2; // Variance
ArrayLattice<Float> lat(IPosition(2,100,100));
lan.add(lat);

Definition at line 82 of file LatticeAddNoise.h.

Constructor & Destructor Documentation

casacore::LatticeAddNoise::LatticeAddNoise ( )

Default constructor.

casacore::LatticeAddNoise::LatticeAddNoise ( Random::Types  type,
const Vector< Double > &  parameters,
Int  seed1 = 0,
Int  seed2 = 1 
)

Constructor.

An exception will occur if we cannot generate the distribution (e.g. illegal parameters). seed1 and seed2 are used to seed the MLCG object.

casacore::LatticeAddNoise::LatticeAddNoise ( const LatticeAddNoise other)

Copy constructor (copy semantics)

casacore::LatticeAddNoise::~LatticeAddNoise ( )

Destructor.

Member Function Documentation

template<class T >
void casacore::LatticeAddNoise::add ( Lattice< T > &  lattice)

Add noise of given type to lattice.

For complex types, the noise is added to real and imaginary separately. Any mask is ignored when adding the noise. I.e. noise is added to masked pixels.

template<class T >
void casacore::LatticeAddNoise::add ( MaskedLattice< T > &  lattice)
void casacore::LatticeAddNoise::addNoiseToArray ( Array< Float > &  data)
private

Add noise to array.

For Complex, noise is added to real and imaginary separately.

void casacore::LatticeAddNoise::addNoiseToArray ( Array< Complex > &  data)
private
void casacore::LatticeAddNoise::addNoiseToArray ( Array< Double > &  data)
private
void casacore::LatticeAddNoise::addNoiseToArray ( Array< DComplex > &  data)
private
void casacore::LatticeAddNoise::makeDistribution ( )
private

Make noise generator.

LatticeAddNoise& casacore::LatticeAddNoise::operator= ( const LatticeAddNoise other)

Assignment (copy semantics)

void casacore::LatticeAddNoise::set ( Random::Types  type,
const Vector< Double > &  parameters 
)

Set a new distribution.

An exception will occur if we cannot generate the distribution (e.g. illegal parameters).

Member Data Documentation

MLCG casacore::LatticeAddNoise::itsGen
private

Definition at line 123 of file LatticeAddNoise.h.

Random* casacore::LatticeAddNoise::itsNoise
private

Definition at line 124 of file LatticeAddNoise.h.

Vector<Double> casacore::LatticeAddNoise::itsParameters
private

Definition at line 122 of file LatticeAddNoise.h.

Random::Types casacore::LatticeAddNoise::itsType
private

Definition at line 121 of file LatticeAddNoise.h.


The documentation for this class was generated from the following file: