- DM-9769Getting issue details... STATUS
Requirements on LSST Image Cutout Service (DRAFT!!)
A. Requirements
LSST has two kinds of images, single exposure images and deep co-adds. After the image search, the cutout service shall return the cutout image made from the search result, based on user's inputs.
For cutouts from the single exposure images:
- The focal plane array is 189 separate CCDs so the cutout very likely needs to stitch multiple single exposure images together. Those single exposure images in one cutout must be from the same full field of view (FOV), in other words, they are all taken at the same time.
- When stitch single exposure images together, the cutout service needs to be able to cross image edges and to handle gaps in the coverage (e.g., gaps between CCDs) and set those pixels to some value (NULL?) that can be read by the visualizers and set to 'black'.
- User could request the orientation of the cutout be in the camera array coordinate system or any world coordinate system. For the single exposure images, the camera array coordinate should be the pixel coordinate.
- If the orientation of the cutout is in the camera array coordinate system, the cutout service should respect that and do not do re-projection. The flux value in the output should be the original measured.
- If the orientation of the cutout is in any world coordinate system, the image re-projection will be needed to generate the cutout.
For cutouts from the deep co-add images:
- The deep co-adds will be stored in some form of tiling across the sky. There are no gaps between co-adds. The cutout image can be a sub image from one co-adds image or when the cutout is large the cutout service might need to stitch several co-adds together.
- User could request the orientation of the cutout, either in the pixel coordinate of the co-adds image where the cutout center locates or in any of the world coordinate systems.
- If the cutout is a sub image from one single co-adds image and the cutout orientation is the pixel coordinate, the cutout service should respect that and do not do re-projection. The flux value in the output should be the originals in the co-adds image.
- If the orientation of the cutout is in any world coordinate system, the image re-projection might be needed to generate the cutout and the flux value in the output should be interpreted from the co-adds images.
- If the cutout is from several co-adds images, and the cutout size reaches a boundary of a co-adds image, the cutout service must be able to cross that boundary and build the remainder of the image from the next image over. Re-projection might be needed.
The cutout service should be able to handle many calls without performance degrading.
B. Inputs to the cutout service
The users will specify the type, the orientation, the center position, and the size of the cutout.
(1)Cutout Type (string):
This input defines the cutout is from the single exposure images or the deep co-adds images:
- Single exposure images
- Deep co-adds images
(2)Cutout Orientation (string):
This input defines the orientation of the cutout, or the cutout would be done along which coordinate system.
The orientation choices are:
- Pixel Coordinate
- Equatorial J2000
- Equatorial B1950
- Ecliptic J2000
- Ecliptic B1950
- Galactic
- Super Galactic
Note. If the cutout contains more than one input images, the Pixel Coordinate is the one of the image where the cutout center locates.
(3)Cutout Center (decimal, decimal (string)):
The Cutout Center parameter defines the center of the cutout, in the coordinate system defined in Cutout Orientation. If the Cutout Orientation is Pixel Coordinate, the Cutout Center is in Equatorial J2000.
The Cutout Center must consist of a comma separated coordinate pair followed by an optional units specification. If units is set to px, pix or pixels, then x,y are interpreted as the pixel space coordinates of the desired cutout center. If units are angular (rad, deg, etc...), then x,y are interpreted as the J2000 right ascension (x) and declination (y) of the desired cutout center. If no units are specified, degrees are assumed. Declinations outside of [-90, 90] degrees are illegal; right ascensions are range-reduced, so any value will do.
Examples: center=10,10deg center=10,10 center=3.141,1.56rad center=300.5,120px
- If Cutout Type = "Single exposure images" and Cutout Orientation = "Pixel Coordinates", Cutout Center must consist of three numbers and an optional string, separated by comma: pixel1, pixel2, #CCD (, units) where pixel1 and pixel2 are in the CCD where the cutout center locates. Units are optional and can be pixels (px, pix, pixels). Any angular units, like deg, rad, arcmin and arcsec, are illegal.
- If Cutout Type = "Deep co-adds images" and Cutout Orientation = "Pixel Coordinates", Cutout Center must consist of two numbers and an optional string, separated by comma: pixel1, pixel2 (, units) where pixel1 and pixel2 are in the co-adds image where the cutout center locates. Units are optional and can be pixels (px, pix, pixels). Any angular units, like deg, rad, arcmin and arcsec, are illegal.
- If Cutout Orientation is any world coordinate system, Cutout Center must be consist of two numbers and an optional string, separated by comma: RA (or longitude), Dec (or latitude) (, units). Units are angular units, like deg, arcmin, arcsec, and rad. The default is deg.
Examples:
Cutout Center | Cutout Type | Cutout Orientation | interpretation |
---|---|---|---|
1000, 2000, 50 | Single exposure images | Pixel Coordinates | The cutout is centered at pixel1= 1000, pixel2 = 2000 of the 50th CCD. |
1000, 2000 px | Deep co-adds images | Pixel Coordinates | The cutout is centered at pixel1 = 1000, pixel2 = 2000 of the co-adds |
100, 200 arcmin | Equatorial B1950 | (RA = 100 arcmin, Dec = 200 arcmin) in Equatorial B1950 | |
45, 89 rad | Ecliptic J2000 | (Long = 45 rad, Lat = 89 rad) in Ecliptic J2000 | |
30, 60 | Galactic | (Long = 30 deg, Lat = 60 deg) in Galactic |
(4)Cutout Size (decimal (, decimal) (, string)):
The Cutout Size parameter defines the width and the height of the output cutout.
The Cutout Size consists of one or two (comma separated) values followed by an optional units specification. Units can be pixels (px, pix, pixels) or angular (arcsec, arcmin, deg, rad); the default is degrees.
The first input is the full-width along the first image axis (NAXIS1), and the second (y) is taken to be the full-height along the second axis (NAXIS2). If only one size value is specified, it is used as both the full-width and full-height. Negative sizes are illegal.
Examples:
Cutout Size | Cutout Orientation | Interpretation |
---|---|---|
100, 200 pix | Cameral Array Coordinates | The width is 100 pixels and the height is 200 pixel along the Cameral Array Coordinates of the single exposure images. |
200, 300 pix | Pixel Coordinates | The width is 200 pixels and the height is 300 pixels along the Pixel Coordinates of the co-adds. |
200, 150 arcmin | Equatorial J2000 | The width, which is also the length of the bottom side, of the cutout is 200 arcminutes along Equatorial J2000 RA direction. The height through the cutout center is 150 arcminutes along Equatorial J2000 Dec direction. |
45, 60 deg | Ecliptic J2000 | The width, which is also the length of the bottom side, of the cutout is 45 degrees along Ecliptic J2000 longitude direction. The height through the cutout center is 60 degrees along the Ecliptic J2000 latitude direction. |
0.1 | Galactic | The length of the bottom side of the cutout is 0.1 degrees along the Galactic longitude direction and the height through the cutout center is 0.1 degrees along the Galactic latitude direction. |
C. Notes
We require that all the cutout images shall be North Up. In other words, if the Cutout Orientation is one of the world coordinates, the line of the equatorial RA or of the ecliptic/galactic longitude through the center of the cutout must be upright and at the middle of the image. (Detail wording TBD. ) See attached images which are from https://skyview.gsfc.nasa.gov.