LSSTApplications
16.0-11-g09ed895+2,16.0-11-g12e47bd,16.0-11-g9bb73b2+6,16.0-12-g5c924a4+6,16.0-14-g9a974b3+1,16.0-15-g1417920+1,16.0-15-gdd5ca33+1,16.0-16-gf0259e2,16.0-17-g31abd91+7,16.0-17-g7d7456e+7,16.0-17-ga3d2e9f+13,16.0-18-ga4d4bcb+1,16.0-18-gd06566c+1,16.0-2-g0febb12+21,16.0-2-g9d5294e+69,16.0-2-ga8830df+6,16.0-20-g21842373+7,16.0-24-g3eae5ec,16.0-28-gfc9ea6c+4,16.0-29-ge8801f9,16.0-3-ge00e371+34,16.0-4-g18f3627+13,16.0-4-g5f3a788+20,16.0-4-ga3eb747+10,16.0-4-gabf74b7+29,16.0-4-gb13d127+6,16.0-49-g42e581f7+6,16.0-5-g27fb78a+7,16.0-5-g6a53317+34,16.0-5-gb3f8a4b+87,16.0-6-g9321be7+4,16.0-6-gcbc7b31+42,16.0-6-gf49912c+29,16.0-7-gd2eeba5+51,16.0-71-ge89f8615e,16.0-8-g21fd5fe+29,16.0-8-g3a9f023+20,16.0-8-g4734f7a+1,16.0-8-g5858431+3,16.0-9-gf5c1f43+8,master-gd73dc1d098+1,w.2019.01
LSSTDataManagementBasePackage
|
The cameraGeom package describes the geometry of an imaging camera, including the location of each detector (e.g. CCD) on the focal plane, information about the amplifier subregions of each detector, and the location of known bad pixels in each detector. The cameraGeom package supports operations such as:
Data for constructing a Camera comes from the appropriate observatory-specific obs_ package. For example obs_lsstSim contains data for the LSST camera simulator, obs_sdss contains data for the SDSS imager, and obs_subaru contains data for both Suprime-Cam and Hyper Suprime-Cam (HSC).
There are a few utilities available for visualizing and debugging Camera objects. Examples of available utility methods are: display a particular amp, display an assembled sensor, display a the full camera modaic, plot the sensor boundaries with a grid of test points in FOCAL_PLANE coordinates. An example of how to use the utilities to visualize a camera is available in the obs_lsstSim package as $OBS_LSSTSIM_DIR/bin/displayCamera.py. Following is the help from displayCamera.py:
usage: displayCamera.py [-h] [--showAmp SHOWAMP [SHOWAMP ...]] [--showCcd SHOWCCD [SHOWCCD ...]] [--showRaft SHOWRAFT [SHOWRAFT ...]] [--showCamera] [--cameraBinSize CAMERABINSIZE] [--plotFocalPlane] Display the lsstSim camera optional arguments: -h, --help show this help message and exit --showAmp SHOWAMP [SHOWAMP ...] Show an amplifier segment on an image display. May occur multiple times. Format like R:Rx,Ry S:Sx,Sy A:Ax,Ay e.g. "R:2,2 S:1,1 A:0,0" --showCcd SHOWCCD [SHOWCCD ...] Show a CCD from the mosaic on an image display. May occur multiple times. Format like R:Rx,Ry S:Sx,Sy e.g. "R:2,2 S:1,1" --showRaft SHOWRAFT [SHOWRAFT ...] Show a Raft from the mosaic on an image display. May occur multiple times. Format like R:Rx,Ry e.g. "R:2,2" --showCamera Show the camera mosaic an image display. --cameraBinSize CAMERABINSIZE Size of binning when displaying the full camera mosaic --plotFocalPlane Plot the focalplane in an interactive matplotlib window
The cameraGeom package supports the following camera-based 2-dimensional coordinate systems, and it is possible to add others:
The file examples/cameraGeomExample.py shows some basic usage of the cameraGeom package
The cameraGeom package contains the following important objects; unless otherwise noted, all are available in both C++ and Python:
Camera is a collection of Detectors.
Camera also supports coordinate transformation between all camera coordinate systems.
Detector contains information about a given imaging detector (typically a CCD), including its position and orientation in the focal plane and information about amplifiers (such as the image region, overscan and readout corner). Amplifier data is stored as records in an amp info table, and Detector acts as a collection of amp info records.
Detector also supports transformation between focal plane, pixels, and (if a suitable transform has been provided) actual pixels coordinates. However Detector does not support FIELD_ANGLE coordinates; use a Camera for that.
CameraSys represents a camera coordinate system. It contains a coordinate system name and a detector name. The detector name is blank for non-detector-based camera coordinate systems such as FOCAL_PLANE and FIELD_ANGLE, but must always name a specific detector for detector-based coordinate systems.
CameraSysPrefix is a specialized variant of CameraSys that represents a detector-based coordinate system when the detector is not specified. CameraSysPrefix contains a coordinate system name but no detector name.
A constant is provided each camera coordinate system:
All Detector methods that take a CameraSys also accept a CameraSysPrefix instead. For example to transform a list of points from PIXELS to FOCAL_PLANE system using a Detector:
focalPlanePoints = Detector.transform(pixelPoints, PIXELS, FOCAL_PLANE)
Camera methods always require a CameraSys; a CameraSysPrefix is not acceptable because the camera does not know which detector to use. For example to transform a list of points from PIXELS on a specific detector to FIELD_ANGLE:
fieldAnglePoints = camera.transform(pixelPoints, detector.makeCameraSys(PIXELS), FIELD_ANGLE)
TransformMap is a collection of Transforms from one camera coordinate system to another.
Camera and Detector both contain TransformMaps. The transform map in Camera does not support detector-based coordinate systems (e.g. PIXELS), but Camera::getTransform and Camera::transform do support detector-based coordinate systems (since the camera contains information about the detectors).