Class Camera

Nested Relationships

Inheritance Relationships

Base Types

Class Documentation

class Camera : public lsst::afw::cameraGeom::DetectorCollection, public lsst::afw::table::io::PersistableFacade<Camera>

An immutable representation of a camera.

Cameras are created (and modified, when necessary) via the Camera::Builder helper class.

Public Types

using DetectorList = DetectorCollection::List

Public Functions

Camera(Camera const&)
Camera(Camera&&)
Camera &operator=(Camera const&)
Camera &operator=(Camera&&)
virtual ~Camera()
Camera::Builder rebuild() const

Create a Camera::Builder object initialized with this camera’s state.

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

std::string getName() const

Return the name of the camera

std::string getPupilFactoryName() const

Return the fully-qualified name of the Python class that provides this Camera’s PupilFactory.

DetectorList findDetectors(lsst::geom::Point2D const &point, CameraSys const &cameraSys) const

Find the detectors that cover a point in any camera system

Return

a list of zero or more Detectors that overlap the specified point

Parameters
  • [in] point: position to use in lookup (lsst::geom::Point2D)

  • [in] cameraSys: camera coordinate system of point

std::vector<DetectorList> findDetectorsList(std::vector<lsst::geom::Point2D> const &pointList, CameraSys const &cameraSys) const

Find the detectors that cover a list of points in any camera system

Return

a list of lists; each list contains the names of all detectors which contain the corresponding point

Parameters
  • [in] pointList: a list of points (lsst::geom::Point2D)

  • [in] cameraSys: the camera coordinate system of the points in pointList

std::shared_ptr<afw::geom::TransformPoint2ToPoint2> getTransform(CameraSys const &fromSys, CameraSys const &toSys) const

Get a transform from one CameraSys to another

Return

an afw::geom::TransformPoint2ToPoint2 that transforms from fromSys to toSys in the forward direction

Parameters
Exceptions
  • lsst::pex::exceptions::InvalidParameterError: if no transform is available.

  • KeyError: if an unknown detector is specified

std::shared_ptr<TransformMap const> getTransformMap() const

Obtain the transform registry.

Return

_transformMap a TransformMap

Note

_transformMap is immutable, so this should be safe.

lsst::geom::Point2D transform(lsst::geom::Point2D const &point, CameraSys const &fromSys, CameraSys const &toSys) const

Transform a point from one camera coordinate system to another

Return

point transformed to toSys (an lsst::geom::Point2D)

Parameters
  • [in] point: an lsst::geom::Point2d

  • [in] fromSys: transform from this CameraSys

  • [in] toSys: transform to this CameraSys

std::vector<lsst::geom::Point2D> transform(std::vector<lsst::geom::Point2D> const &points, CameraSys const &fromSys, CameraSys const &toSys) const

Transform a vector of points from one camera coordinate system to another

Return

points transformed to toSys (a vector of lsst::geom::Point2D)

Parameters
  • [in] points: an vector of lsst::geom::Point2d

  • [in] fromSys: transform from this CameraSys

  • [in] toSys: transform to this CameraSys

bool isPersistable() const

Cameras are always persistable.

Protected Functions

void write(OutputArchiveHandle &handle) const

Write the object to one or more catalogs.

The handle object passed to this function provides an interface for adding new catalogs and adding nested objects to the same archive (while checking for duplicates). See OutputArchiveHandle for more information.

class Builder : public lsst::afw::cameraGeom::DetectorCollectionBase<Detector::InCameraBuilder>

A helper class for creating and modifying cameras.

Camera and Camera::Builder have no direct inheritance relationship, but both inherit from different specializations of DetectorCollectionBase, so their container-of-detectors interfaces can generally be used the same way in both Python and templated C++.

Unnamed Group

void remove(std::string const &name)

Remove the detector with the given name or ID.

Wrapped as __delitem__ in Python.

Exceptions
  • pex::exceptions::NotFoundError: if no such detector exists.

void remove(int id)

Public Functions

virtual ~Builder()
Builder(std::string const &name)

Construct a Builder for a completely new Camera with the given name.

Builder(Camera const &camera)

Construct a Builder with the state of an existing Camera.

std::shared_ptr<Camera const> finish() const

Construct a new Camera from the state of the Builder.

std::string getName() const

Return the name of the camera

void setName(std::string const &name)

Set the name of the camera.

std::string getPupilFactoryName() const

Return the fully-qualified name of the Python class that provides this Camera’s PupilFactory.

void setPupilFactoryName(std::string const &pupilFactoryName)

Set the fully-qualified name of the Python class that provides this Camera’s PupilFactory.

void setTransformFromFocalPlaneTo(CameraSys const &toSys, std::shared_ptr<afw::geom::TransformPoint2ToPoint2 const> transform)

Set the transformation from FOCAL_PLANE to the given coordinate system.

If a transform already exists from FOCAL_PLANE to

toSys, it is overwritten.
Parameters
  • toSys: Coordinate system this transform returns points in.

  • transform: Transform from FOCAL_PLANE to toSys.

bool discardTransformFromFocalPlaneTo(CameraSys const &toSys)

Remove any transformation from FOCAL_PLANE to the given coordinate system.

Return

true if a transform was removed; false otherwise.

Parameters
  • toSys: Coordinate system this transform returns points in.

std::shared_ptr<Detector::InCameraBuilder> add(std::string const &name, int id)

Add a new Detector with the given name and ID.

This is the only way to create a completely new detector (as opposed to a copy of an existing one), and it permanently sets that Detector’s name and ID.

Strong for pex::exceptions::RuntimeError, none otherwise.

Exceptions
  • pex::exceptions::RuntimeError: Thrown if the ID and/or name conflict with those of detectors already in the collection.