A coadd is the sum of many depth-1 maps, for example all maps of one band in one week. A coadd has less noise than one depth-1 map. Thus, the pipeline can find fainter sources on longer time scales.
There are two stages:
- Make the coadds. The
sotrp-coaddcommand reads depth-1 maps from mapcat and makes one coadd. It writes the coadd to FITS files and registers it in mapcat. - Analyze the coadds. The
sotrpcommand reads the registered coadds from mapcat. It runs the time-resolved pipeline on each coadd, as it does on a depth-1 map.
Mapcat connects the two stages. The second stage uses the coadds that the first stage registered.
flowchart LR
d1db[(mapcat:<br/>depth-1 maps)]
d1fits@{ shape: procs, label: "depth-1 FITS"}
coadd["sotrp-coadd"]
cfits@{ shape: procs, label: "coadd FITS"}
cdb[(mapcat:<br/>coadds + links)]
trp["sotrp"]
out@{ shape: procs, label: "pipeline outputs"}
d1db --> coadd
d1fits --> coadd
coadd --> cfits
coadd --> cdb
cdb --> trp
cfits --> trp
trp --> out
sotrp-coadd does these steps for each depth-1 map in the time window, one
map at a time:
- It reads the map from disk.
- It applies the preprocessors: masks, the matched filter and cleaning.
- It merges the map into the coadd.
- It removes the map from memory.
There are two reasons for this sequence:
- The preprocessors must see each observation separately. A source that moves (an asteroid or a planet) crosses many pixels in a sum of several days. The matched filter must use the noise properties of each observation.
- Only one input map is in memory at a time. Thus, memory use does not increase with the number of maps.
The sotrp command also has a map_coadder, but it makes the coadd first
and applies the preprocessors after. Thus, use sotrp-coadd for coadds of
raw depth-1 maps.
When the coadd is complete, sotrp-coadd writes the coadd to FITS files. It
then registers the coadd in mapcat, with a link to each depth-1 map in the
coadd.
sotrp reads the registered coadds from mapcat. The coadds already have the
preprocessors applied. Thus, sotrp starts with the postprocessors. Then it
does the same steps as for a depth-1 map: forced photometry, source
subtraction, blind search, the sifter and the outputs.
The two commands use functions and classes in the sotrplib library. You can
also use them directly in Python:
| Function or class | Module | What it does |
|---|---|---|
stream_coadd() |
sotrplib.maps.map_coadding |
Builds, preprocesses and merges maps one at a time. |
RhoKappaMapCoadder |
sotrplib.maps.map_coadding |
Merges rho/kappa maps. |
IntensityMapReader |
sotrplib.maps.database |
Selects depth-1 maps from mapcat. |
register_coadd() |
sotrplib.maps.database |
Registers a coadd and its map links in mapcat. |
CoaddRhoKappaMapReader |
sotrplib.maps.database |
Reads registered coadds from mapcat. |
CoaddRhoAndKappaMap |
sotrplib.maps.core |
A registered coadd, read from disk. |
MapOutputSerializer |
sotrplib.outputs.core |
Writes map fields to FITS files. |
- Make coadds with
sotrp-coadd: the configuration, map selection, preprocessors, outputs and registration. - Analyze coadds with
sotrp: the configuration, the dependencies and the processing status. - Helper scripts: scripts that write configs and SLURM jobs for many time windows.