File Amplifier.h

namespace lsst

Class for a simple mapping implementing a generic AstrometryTransform.

Remove all non-astronomical counts from the Chunk Exposure’s pixels.

Forward declarations for lsst::utils::Cache

For details on the Cache class, see the Cache.h file.

It uses a template rather than a pointer so that the derived classes can use the specifics of the transform. The class simplePolyMapping overloads a few routines.

A base class for image defects

Numeric constants used by the Integrate.h integrator routines.

Compute Image Statistics

Note

Gauss-Kronrod-Patterson quadrature coefficients for use in quadpack routine qng. These coefficients were calculated with 101 decimal digit arithmetic by L. W. Fullerton, Bell Labs, Nov 1981.

Note

The Statistics class itself can only handle lsst::afw::image::MaskedImage() types. The philosophy has been to handle other types by making them look like lsst::afw::image::MaskedImage() and reusing that code. Users should have no need to instantiate a Statistics object directly, but should use the overloaded makeStatistics() factory functions.

namespace afw
namespace cameraGeom

Enums

enum ReadoutCorner

Readout corner, in the frame of reference of the assembled image

Values:

LL
LR
UR
UL
enum AssemblyState

Assembly state of the amplifier, used to identify bounding boxes and component existence.

Values:

RAW
SCIENCE
class Amplifier
#include <Amplifier.h>

Geometry and electronic information about raw amplifier images

The Amplifier class itself is an abstract base class that provides no mutation or copy interfaces. Typically Amplifiers are constructed via the Builder subclass, which can produce a shared_ptr to an immutable Amplifier instance.

Here is a pictorial example showing the meaning of flipX and flipY:

    CCD with 4 amps        Desired assembled output      Use these parameters

    --x         x--            y
   |  amp1    amp2 |           |                               flipX       flipY
   y               y           |                       amp1    False       True
                               | CCD image             amp2    True        True
   y               y           |                       amp3    False       False
   |  amp3    amp4 |           |                       amp4    True        False
    --x         x--             ----------- x
Note

  • All bounding boxes are parent boxes with respect to the raw image.

  • The overscan and prescan bounding boxes represent the full regions; unusable regions are set via ISR configuration parameters.

  • xyOffset is not used for instrument signature removal (ISR); it is intended for use by display utilities. It supports construction of a raw CCD image in the case that raw data is provided as individual amplifier images (which is uncommon):

    • Use 0,0 for cameras that supply raw data as a raw CCD image (most cameras)

    • Use nonzero for cameras that supply raw data as separate amplifier images with xy0=0,0 (LSST)

  • This design assumes assembled X is always +/- raw X, which we require for CCDs (so that bleed trails are always along the Y axis).

Subclassed by lsst::afw::cameraGeom::Amplifier::Builder

Public Functions

virtual ~Amplifier()
void toRecord(table::BaseRecord &record) const

Copy the Amplifier’s fields into the given record.

Parameters
  • [out] record: Record to modify. record.getSchema().contains(this->getRecordSchema()) must be true.

Builder rebuild() const

Return a Builder object initialized with the fields of this.

This is simply a shortcut for Amplifier::Builder(*this).

std::string getName() const

Name of the amplifier.

lsst::geom::Box2I getBBox() const

Bounding box of amplifier pixels in the trimmed, assembled image.

double getGain() const

Amplifier gain in e-/ADU.

double getReadNoise() const

Amplifier read noise, in e-.

double getSaturation() const

Level in ADU above which pixels are considered saturated; use nan if no such level applies.

double getSuspectLevel() const

Level in ADU above which pixels are considered suspicious, meaning they may be affected by unknown systematics; for example if non-linearity corrections above a certain level are unstable then that would be a useful value for suspectLevel. Use nan if no such level applies.

ReadoutCorner getReadoutCorner() const

Readout corner in the trimmed, assembled image.

ndarray::Array<double const, 1, 1> getLinearityCoeffs() const

Vector of linearity coefficients.

std::string getLinearityType() const

Name of linearity parameterization.

double getLinearityThreshold() const

Level in ADU above which linearity should be applied. This should be set to 0.0 if no other value is known.

double getLinearityMaximum() const

Level in ADU above which the linearity relation is poorly defined. Should be set to the saturation level if no other value is known.

std::string getLinearityUnits() const

Units for the input to the linearity relation (DN).

bool getHasRawInfo() const

Does this table have raw amplifier information?

lsst::geom::Box2I getRawBBox() const

Bounding box of all amplifier pixels on untrimmed, assembled raw image.

lsst::geom::Box2I getRawDataBBox() const

Bounding box of amplifier image pixels on untrimmed, assembled raw image.

bool getRawFlipX() const

Flip row order in transformation from untrimmed, assembled raw image to trimmed, assembled post-ISR image?

bool getRawFlipY() const

Flip column order in transformation from untrimmed, assembled raw image to trimmed, assembled post-ISR image?

lsst::geom::Extent2I getRawXYOffset() const

Offset in transformation from pre-raw, unassembled image to trimmed, assembled post-ISR image: final xy0 - pre-raw xy0.

lsst::geom::Box2I getRawHorizontalOverscanBBox() const

The bounding box of horizontal overscan pixels in the assembled, untrimmed raw image.

lsst::geom::Box2I getRawVerticalOverscanBBox() const

The bounding box of vertical overscan pixels in the assembled, untrimmed raw image.

lsst::geom::Box2I getRawPrescanBBox() const

The bounding box of (horizontal) prescan pixels in the assembled, untrimmed raw image.

Public Static Functions

static table::Schema getRecordSchema()

Return the schema used in the afw.table representation of amplifiers.

Protected Functions

Amplifier()
Amplifier(Amplifier const&)
Amplifier(Amplifier&&)
Amplifier &operator=(Amplifier const&)
Amplifier &operator=(Amplifier&&)
virtual Fields const &getFields() const = 0
class Builder : public lsst::afw::cameraGeom::Amplifier
#include <Amplifier.h>

A mutable Amplifier subclass class that can be used to incrementally construct or modify Amplifiers.

Public Functions

Builder()

Construct a Builder with default values for all fields.

Builder(Builder const&)

Standard copy constructor.

Builder(Builder&&)

Standard move constructor.

Builder(Amplifier const &other)

Construct a Builder with values initialized from the given Amplifier.

Builder &operator=(Builder const&)

Standard copy assignment.

Builder &operator=(Builder&&)

Standard move assignment.

Builder &operator=(Amplifier const &other)

Set the Builder’s fields to those of the given Amplifier.

~Builder()
std::shared_ptr<Amplifier const> finish() const

Construct an immutable Amplifier with the same values as the Builder.

The derived type of the return instance is unspecified, and should be considered an implementation detail.

void setName(std::string const &name)

Name of the amplifier.

void setBBox(lsst::geom::Box2I const &bbox)

Bounding box of amplifier pixels in the trimmed, assembled image.

void setGain(double gain)

Amplifier gain in e-/ADU.

void setReadNoise(double readNoise)

Amplifier read noise, in e-.

void setSaturation(double saturation)

Level in ADU above which pixels are considered saturated; use nan if no such level applies.

void setSuspectLevel(double suspectLevel)

Level in ADU above which pixels are considered suspicious, meaning they may be affected by unknown systematics; for example if non-linearity corrections above a certain level are unstable then that would be a useful value for suspectLevel. Use nan if no such level applies.

void setReadoutCorner(ReadoutCorner readoutCorner)

Readout corner in the trimmed, assembled image.

void setLinearityCoeffs(ndarray::Array<double const, 1, 1> const &coeffs)

Vector of linearity coefficients.

void setLinearityType(std::string const &type)

Name of linearity parameterization.

void setLinearityThreshold(double threshold)

Level in ADU above which linearity should be applied. This should be set to 0.0 if no other value is known.

void setLinearityMaximum(double maximum)

Level in ADU above which the linearity relation is poorly defined. Should be set to the saturation level if no other value is known.

void setLinearityUnits(std::string const &units)

Units for the input to the linearity relation (DN).

void setRawBBox(lsst::geom::Box2I const &bbox)

Bounding box of all amplifier pixels on untrimmed, assembled raw image.

void setRawDataBBox(lsst::geom::Box2I const &bbox)

Bounding box of amplifier image pixels on untrimmed, assembled raw image.

void setRawFlipX(bool rawFlipX)

Flip row order in transformation from untrimmed, assembled raw image to trimmed, assembled post-ISR image?

void setRawFlipY(bool rawFlipY)

Flip column order in transformation from untrimmed, assembled raw image to trimmed, assembled post-ISR image?

void setRawXYOffset(lsst::geom::Extent2I const &xy)

Offset in transformation from pre-raw, unassembled image to trimmed, assembled post-ISR image: final xy0 - pre-raw xy0.

void setRawHorizontalOverscanBBox(lsst::geom::Box2I const &bbox)

The bounding box of horizontal overscan pixels in the assembled, untrimmed raw image.

void setRawVerticalOverscanBBox(lsst::geom::Box2I const &bbox)

The bounding box of vertical overscan pixels in the assembled, untrimmed raw image.

void setRawPrescanBBox(lsst::geom::Box2I const &bbox)

The bounding box of (horizontal) prescan pixels in the assembled, untrimmed raw image.

Public Static Functions

static Builder fromRecord(table::BaseRecord const &record)

Construct a new Builder object from the fields in the given record.

Parameters
  • [in] record: Record to copy fields from.

Protected Functions

Fields const &getFields() const

Private Members

Fields _fields
struct Fields

Public Members

std::string name
lsst::geom::Box2I bbox
double gain = 0.0
double readNoise = 0.0
double saturation = 0.0
double suspectLevel = 0.0
ReadoutCorner readoutCorner = ReadoutCorner::LL
ndarray::Array<double const, 1, 1> linearityCoeffs
std::string linearityType
double linearityThreshold
double linearityMaximum
std::string linearityUnits
lsst::geom::Box2I rawBBox
lsst::geom::Box2I rawDataBBox
bool rawFlipX = false
bool rawFlipY = false
lsst::geom::Extent2I rawXYOffset
lsst::geom::Box2I rawHorizontalOverscanBBox
lsst::geom::Box2I rawVerticalOverscanBBox
lsst::geom::Box2I rawPrescanBBox