LatticeStatsBase.h

Classes

LatticeStatsBase -- Base class for LatticeStatistics class (full description)

class LatticeStatsBase

Types

enum StatisticsTypes

NPTS
The number of points
SUM
The sum
SUMSQ
The sum squared
MEDIAN
The median - the robust stats does not fit well into storage lattice approach
MEDABSDEVMED
median of absolute deviation from median
QUARTILE
inter-quartile range
MIN
The minimum
MAX
The maximum
MEAN
The mean
VARIANCE
The variance about the mean
SIGMA
The standard deviation about the mean
RMS
The rms
FLUX
The flux density (can't always compute this - needs the beam)
NSTATS
The total number of available statistics to plot
NACCUM = MAX+1
The total number of accumulation image items (not for general use: note that the accumulation items MUST come first in this enum)

Interface

Public Members
static Vector<Int> toStatisticTypes (const String& statistics, const Regex& delimiter)
static Vector<Int> toStatisticTypes (const Vector<String>& statistics)
static String toStatisticName (StatisticsTypes type)
static String toStatisticName (Int type)
static Int toStatisticType (const String& statistic)
static Bool setNxy (Vector<Int>& nxy, ostream& os)
static void setStorageImageShape (IPosition& storeImageShape, const Bool& last, const Int& axisSize, const Vector<Int>& displayAxes, const IPosition& shape)
static void stretchMinMax (Float& min, Float& max)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

A simple base class for the LatticeStatistics class

Synopsis

This base class provides an enum defining allowed statistics types and a helper function to convert between a String and a Vector<Int> describing the desired statistics to plot. The reason for having it as a base class rather than just part of LatticeStatistics is that the latter is templated, and it doesn't make much sense to invoke the static function setStatisticTypes function with a templated type.

Example

    Vector<Int> statsToPlot = LatticeStatsBase::toStatisticTypes("mean,rms,sigma");

Motivation

My sensibilities were offended at having to say

Vector<Int> statsToPlot = LatticeStatistics<Float>::toStatisticTypes("mean,rms,sigma");

when the <Float> was meaningless.

To Do

Member Description

enum StatisticsTypes

This enum StatisticTypes is provided for use with the LatticeStatistics<T>::setPlotting function. It gives the allowed statistics types that you can ask for.

static Vector<Int> toStatisticTypes (const String& statistics, const Regex& delimiter)
static Vector<Int> toStatisticTypes (const Vector<String>& statistics)

Helper function to convert a String containing a list of desired statistics to the correct Vector required for the LatticeStatistics::setPlotting function. This may be usful if your user interface involves strings rather than integers. A new value is added to the output vector (which is resized appropriately) if any of the substrings "npts", "min", "max", "sum", "sumsq", "mean", "sigma", "rms", and "flux" is present. An empty vector results if there are no matches

static String toStatisticName (StatisticsTypes type)
static String toStatisticName (Int type)

Convert type to string.

static Int toStatisticType (const String& statistic)

Returns -1 if the statistic string is not valid

static Bool setNxy (Vector<Int>& nxy, ostream& os)

Check and fill in defaults for a Vector<Int> containing the number of subplots in x and y to be put on a plot. The Vector<Int> is resized to 2 before assignment. A return value of False indicates invalid arguments.

static void setStorageImageShape (IPosition& storeImageShape, const Bool& last, const Int& axisSize, const Vector<Int>& displayAxes, const IPosition& shape)

A storage image is used to accumulate information as a function of the display axes as an image is iterated through. This function sets the storage image shape to that appropriate to the shape of the display axes and the desired size of the first or last dimension.

static void stretchMinMax (Float& min, Float& max)

Stretch a range by 10%