Image Service can be divided into two services: cutout service (fast and easy) and mosaic service (complex and expensive). In the first implementation we will build a single service, in future iterations we might decide to split these two services.
Cutout service provides access to individual images / cutouts of images. Internally, it uses Butler, which uses afw facilities to extract rectangular sub-images. Note that if complex operations on multiple images are needed, Mosaic Service handles that.
cutout size and shape (circle, rectangular box, convex polygon; anything other than a rectangular box requires extracting the surrounding box and then masking to generate the desired image)
preferences. E.g., what to return if cutout is near the edge and it is falling outsize of image area (Undersized cutout or full size? If full size, how to pad: with NaN or user-defined value?)
Related page: Image Cutout Details
Mosaic service builds a product that involves complex operations on multiple images (composition, blending images, subtracting, stitching, etc.). Different images might have different weight. Might need to do cross-matching, where user provides match function for cross match.
(note about who does what: IPAC drives the UI, SLAC unpacks the commands, converts to calls to the butler to retrieve data and then calls Apps algorithms to assemble the final product).
Initial use cases to be implemented in the first prototype:
- return portions of a focal plane (up to a full focal plane) from raw data or calibrated exposures
- return portions of a coadd or template all-sky track/patch-organized image.