File CameraSys.h

template<>
struct hash<lsst::afw::cameraGeom::CameraSysPrefix>

Public Types

template<>
using argument_type = lsst::afw::cameraGeom::CameraSysPrefix
template<>
using result_type = size_t

Public Functions

size_t operator()(lsst::afw::cameraGeom::CameraSysPrefix const &obj) const
template<>
struct hash<lsst::afw::cameraGeom::CameraSys>

Public Types

template<>
using argument_type = lsst::afw::cameraGeom::CameraSys
template<>
using result_type = size_t

Public Functions

size_t operator()(lsst::afw::cameraGeom::CameraSys const &obj) const
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

Functions

void swap(CameraSys &a, CameraSys &b)
std::ostream &operator<<(std::ostream &os, CameraSysPrefix const &detSysPrefix)
std::ostream &operator<<(std::ostream &os, CameraSys const &cameraSys)

Variables

CameraSys const FOCAL_PLANE

Focal plane coordinates: Position on a 2-d planar approximation to the focal plane (x,y mm).

The origin and orientation may be defined by the camera team, but we strongly recommend that the origin be on the optical axis and (if using CCD detectors) that the X axis be aligned along CCD rows.

Note

Location and orientation of detectors are defined in a 3-d version of FOCAL_PLANE coordinates (the z axis is also relevant). Rectilinear x, y (and z when talking about the location of a detector) on the camera focal plane (mm). For z=0 choose a convenient point near the focus at x, y = 0.

CameraSys const FIELD_ANGLE

Field angle coordinates: Angle of a principal ray relative to the optical axis (x,y radians).

The orientation of the x,y axes is the same as FOCAL_PLANE.

CameraSysPrefix const PIXELS

Pixel coordinates: Nominal position on the entry surface of a given detector (x, y unbinned pixels).

For CCD detectors the x axis must be along rows (the direction of the serial register). This is required for our interpolation algorithm to interpolate across bad columns.

This ignores manufacturing imperfections, “tree ring” distortions and all other such effects. It is a uniform grid of rectangular (usually square) pixels.

Warning

This is a detector prefix; call Detector.makeCameraSys(PIXELS) to make a full CameraSys.

CameraSysPrefix const TAN_PIXELS

Tangent-plane pixels on the detector (x, y unbinned pixels)

Converting from PIXELS to TAN_PIXELS has the effect of removing optical distortion (and the distortion due to rectangular pixels) with the point at the center of the detector being unaffected by the transformation.

In detail, PIXELS->TAN_PIXELS is PIXELS->FIELD_ANGLE plus an affine transformation, such that:

  • The x,y axes are parallel to the detector axes

  • The dimensions are nominal pixels at the center of the focal plane (where nominal pixels size is mean of x, y pixel size).

  • The point at the center of the detector has the same value in PIXELS and TAN_PIXELS

This is a detector prefix; call Detector.makeCameraSys(TAN_PIXELS) to make a full CameraSys.

CameraSysPrefix const ACTUAL_PIXELS

The actual pixels where the photon lands and electrons are generated (x,y unbinned) This takes into account manufacturing defects, “tree ring” distortions and other such effects.

This is a detector prefix; call Detector.makeCameraSys(ACTUAL_PIXELS) to make a full CameraSys.

class CameraSys
#include <CameraSys.h>

Camera coordinate system; used as a key in in TransformMap

Public Functions

CameraSys(std::string const &sysName, std::string const &detectorName = "")

Parameters
  • sysName: coordinate system name

  • detectorName: detector name

Construct a CameraSys from a sysName and a detectorName

CameraSys(CameraSysPrefix const &sysPrefix, std::string const &detectorName = "")

Parameters
  • sysPrefix: coordinate system prefix

  • detectorName: detector name

Construct a CameraSys from a CameraSysPrefix and a detectorName

~CameraSys()
CameraSys(CameraSys const&)
CameraSys(CameraSys&&)
CameraSys &operator=(CameraSys const&)
CameraSys &operator=(CameraSys&&)
void swap(CameraSys &other)
std::string getSysName() const

Get coordinate system name

std::string getDetectorName() const

Get detector name, or “” if not a detector-specific coordinate system

bool hasDetectorName() const

Does this have a non-blank detector name?

bool operator==(CameraSys const &rhs) const
bool operator!=(CameraSys const &rhs) const
bool operator<(CameraSys const &rhs) const
size_t hash_value() const

Hash function for this object.

Return

a value that is guaranteed equal for any two equal CameraSys, and unlikely to be equal for any two unequal CameraSys.

Note

Workhorse for std::hash<CameraSys>.

Private Members

std::string _sysName

coordinate system name

std::string _detectorName

detector name; “” if not a detector-specific coordinate system

class CameraSysPrefix
#include <CameraSys.h>

Camera coordinate system prefix

Used for coordinate systems that are detector-based before the detector name is known (e.g. for constants such as PIXELS).

This is Jim Bosch’s clever idea for simplifying Detector.convert; CameraSys is always complete and CameraSysPrefix is not.

Public Functions

CameraSysPrefix(std::string const &sysName)

Parameters
  • sysName: coordinate system name

~CameraSysPrefix()
CameraSysPrefix(CameraSysPrefix const&)
CameraSysPrefix(CameraSysPrefix&&)
CameraSysPrefix &operator=(CameraSysPrefix const&)
CameraSysPrefix &operator=(CameraSysPrefix&&)
std::string getSysName() const

Get coordinate system name

bool operator==(CameraSysPrefix const &rhs) const
bool operator!=(CameraSysPrefix const &rhs) const
std::size_t hash_value() const

Hash function for this object.

Return

a value that is guaranteed equal for any two equal CameraSysPrefix, and unlikely to be equal for any two unequal CameraSysPrefix.

Note

Workhorse for std::hash<CameraSysPrefix>.

Private Members

std::string _sysName

coordinate system name

namespace std

Functions

void swap(lsst::afw::cameraGeom::CameraSys &a, lsst::afw::cameraGeom::CameraSys &b)
template<>
struct hash<lsst::afw::cameraGeom::CameraSys>

Public Types

template<>
using argument_type = lsst::afw::cameraGeom::CameraSys
template<>
using result_type = size_t

Public Functions

size_t operator()(lsst::afw::cameraGeom::CameraSys const &obj) const
template<>
struct hash<lsst::afw::cameraGeom::CameraSysPrefix>

Public Types

template<>
using argument_type = lsst::afw::cameraGeom::CameraSysPrefix
template<>
using result_type = size_t

Public Functions

size_t operator()(lsst::afw::cameraGeom::CameraSysPrefix const &obj) const