asn_from_list
Create an association using either the command line tool
asn_from_list or through the Python API using
romancal.associations.asn_from_list.asn_from_list()
Associations
Refer to TBD for a full description of associations.
To create an association programmatically, use:
import romancal.associations.asn_from_list as asn_from_list
product_name = 'test_product'
items = {
'r0000101001001001001_0001_wfi01_uncal.asdf': 'science',
'r0000101001001001001_3_0001_wfi01_uncal.asdf': 'guide_window',
'c': 'somethingelse'
}
# Items should be a list of (filename, exptype) tuples if using with_exptype=True
asn = asn_from_list.asn_from_list(
[(item, type_) for item, type_ in items.items()],
product_name=product_name,
with_exptype=True
)
asn['asn_rule']
# 'DMS_ELPP_Base'
An example product that has both science and guide window exposures would look like:
asn['products']
[ { 'members': [ { 'expname': 'r0000101001001001001_0001_wfi01_uncal.asdf',
'exptype': 'science'},
{ 'expname': 'r0000101001001001001_3_0001_wfi01_uncal.asdf',
'exptype': 'guide_window'},
{'expname': 'c', 'exptype': 'somethingelse'}],
'name': 'test_product'}]
To create an association with all the detectors for a given exposure from the command line:
asn_from_list -o detector_asn.json --product-name r0000101001001001001_0001_wfi data/*_cal.asdf
where the individual calibrated detector files are in a data subdirectory.
You can also specify a target for the association file:
asn_from_list -o level3_mosaic_asn.json --product-name level3_mosaic --target 270p65x48y69 data/*_cal.asdf
To specify a data release ID in the metadata and filename:
asn_from_list -o my_asn.json --product-name my_product --data-release-id r0 data/*_cal.asdf
Notes
The CLI expects a list of filenames as positional arguments.
The Python API allows more advanced usage, such as passing (filename, exptype) tuples.
The
"data_release_id"field will always appear immediately after"program"in the output ASN metadata for consistency.