Common Pipeline Library Reference 7.3.2
|
Macros | |
#define | CPL_DFS_PRO_CATG "ESO PRO CATG" |
The name of the Product Category key. | |
#define | CPL_DFS_PRO_SCIENCE "ESO PRO SCIENCE" |
The name of the Product Science key. | |
#define | CPL_DFS_PRO_TECH "ESO PRO TECH" |
The name of the Product Tech key. | |
#define | CPL_DFS_PRO_TYPE "ESO PRO TYPE" |
The name of the Product Type key. | |
Enumerations | |
enum | { CPL_DFS_SIGNATURE_NONE , CPL_DFS_SIGNATURE_DATAMD5 , CPL_DFS_SIGNATURE_CHECKSUM } |
Pipeline products digital signature flags. More... | |
Functions | |
cpl_error_code | cpl_dfs_save_imagelist (cpl_frameset *allframes, cpl_propertylist *header, const cpl_parameterlist *parlist, const cpl_frameset *usedframes, const cpl_frame *inherit, const cpl_imagelist *imagelist, cpl_type type, const char *recipe, const cpl_propertylist *applist, const char *remregexp, const char *pipe_id, const char *filename) |
Save an imagelist as a DFS-compliant pipeline product. | |
cpl_error_code | cpl_dfs_save_paf (const char *instrume, const char *recipe, const cpl_propertylist *paflist, const char *filename) |
Create a new PAF file. | |
cpl_error_code | cpl_dfs_save_propertylist (cpl_frameset *allframes, cpl_propertylist *header, const cpl_parameterlist *parlist, const cpl_frameset *usedframes, const cpl_frame *inherit, const char *recipe, const cpl_propertylist *applist, const char *remregexp, const char *pipe_id, const char *filename) |
Save a propertylist as a DFS-compliant pipeline product. | |
cpl_error_code | cpl_dfs_save_table (cpl_frameset *allframes, cpl_propertylist *header, const cpl_parameterlist *parlist, const cpl_frameset *usedframes, const cpl_frame *inherit, const cpl_table *table, const cpl_propertylist *tablelist, const char *recipe, const cpl_propertylist *applist, const char *remregexp, const char *pipe_id, const char *filename) |
Save a table as a DFS-compliant pipeline product. | |
cpl_error_code | cpl_dfs_setup_product_header (cpl_propertylist *header, const cpl_frame *product_frame, const cpl_frameset *framelist, const cpl_parameterlist *parlist, const char *recid, const char *pipeline_id, const char *dictionary_id, const cpl_frame *inherit_frame) |
Add product keywords to a pipeline product property list. | |
cpl_error_code | cpl_dfs_sign_products (const cpl_frameset *set, unsigned int flags) |
Update DFS and DICB required header information of product frames. | |
cpl_error_code | cpl_dfs_update_product_header (cpl_frameset *self) |
Perform any DFS-compliancy required actions (DATAMD5/PIPEFILE update) | |
#define CPL_DFS_PRO_CATG "ESO PRO CATG" |
The name of the Product Category key.
#define CPL_DFS_PRO_SCIENCE "ESO PRO SCIENCE" |
The name of the Product Science key.
#define CPL_DFS_PRO_TECH "ESO PRO TECH" |
The name of the Product Tech key.
#define CPL_DFS_PRO_TYPE "ESO PRO TYPE" |
The name of the Product Type key.
anonymous enum |
Pipeline products digital signature flags.
Flags to select the different digital signatures to compute for pipeline product files. The values may be combined using bitwise or.
Enumerator | |
---|---|
CPL_DFS_SIGNATURE_NONE | Do not compute any signatures |
CPL_DFS_SIGNATURE_DATAMD5 | Compute the DATAMD5 data hash |
CPL_DFS_SIGNATURE_CHECKSUM | Compute FITS standard CHECKSUM and DATASUM |
cpl_error_code cpl_dfs_save_imagelist | ( | cpl_frameset * | allframes, |
cpl_propertylist * | header, | ||
const cpl_parameterlist * | parlist, | ||
const cpl_frameset * | usedframes, | ||
const cpl_frame * | inherit, | ||
const cpl_imagelist * | imagelist, | ||
cpl_type | type, | ||
const char * | recipe, | ||
const cpl_propertylist * | applist, | ||
const char * | remregexp, | ||
const char * | pipe_id, | ||
const char * | filename | ||
) |
Save an imagelist as a DFS-compliant pipeline product.
allframes | The list of input frames for the recipe |
header | NULL, or filled with properties written to product header |
parlist | The list of input parameters |
usedframes | The list of raw/calibration frames used for this product |
inherit | NULL or product frames inherit their header from this frame |
imagelist | The imagelist to be saved |
type | The type used to represent the data in the file |
recipe | The recipe name |
applist | Propertylist to append to primary header, w. PRO.CATG |
remregexp | Optional regexp of properties not to put in main header |
pipe_id | PACKAGE "/" PACKAGE_VERSION |
filename | Filename of created product |
References cpl_ensure_code, CPL_ERROR_NONE, and CPL_ERROR_NULL_INPUT.
cpl_error_code cpl_dfs_save_paf | ( | const char * | instrume, |
const char * | recipe, | ||
const cpl_propertylist * | paflist, | ||
const char * | filename | ||
) |
Create a new PAF file.
instrume | Name of instrument in capitals (NACO, VISIR, etc.) |
recipe | Name of recipe |
paflist | Propertylist to save |
filename | Filename of created PArameter File |
The example below shows how to create a PAF from some FITS cards from the file ref_file and QC parameters in a propertylist qclist. Please note that qclist can be used also in calls to cpl_dfs_save_image() and cpl_dfs_save_table(). Error handling is omitted for brevity:
References cpl_ensure_code, CPL_ERROR_FILE_IO, cpl_error_get_code(), CPL_ERROR_NONE, and CPL_ERROR_NULL_INPUT.
cpl_error_code cpl_dfs_save_propertylist | ( | cpl_frameset * | allframes, |
cpl_propertylist * | header, | ||
const cpl_parameterlist * | parlist, | ||
const cpl_frameset * | usedframes, | ||
const cpl_frame * | inherit, | ||
const char * | recipe, | ||
const cpl_propertylist * | applist, | ||
const char * | remregexp, | ||
const char * | pipe_id, | ||
const char * | filename | ||
) |
Save a propertylist as a DFS-compliant pipeline product.
allframes | The list of input frames for the recipe |
header | NULL, or filled with properties written to product header |
parlist | The list of input parameters |
usedframes | The list of raw/calibration frames used for this product |
inherit | NULL or product frames inherit their header from this frame |
recipe | The recipe name |
applist | Propertylist to append to primary header, w. PRO.CATG |
remregexp | Optional regexp of properties not to put in main header |
pipe_id | PACKAGE "/" PACKAGE_VERSION |
filename | Filename of created product |
The FITS header of the created product is created from the provided applist and the cards copied by cpl_dfs_setup_product_header(), with exception of the cards whose keys match the provided remregexp.
The FITS data unit will be empty.
References CPL_ERROR_NONE, and CPL_TYPE_INVALID.
cpl_error_code cpl_dfs_save_table | ( | cpl_frameset * | allframes, |
cpl_propertylist * | header, | ||
const cpl_parameterlist * | parlist, | ||
const cpl_frameset * | usedframes, | ||
const cpl_frame * | inherit, | ||
const cpl_table * | table, | ||
const cpl_propertylist * | tablelist, | ||
const char * | recipe, | ||
const cpl_propertylist * | applist, | ||
const char * | remregexp, | ||
const char * | pipe_id, | ||
const char * | filename | ||
) |
Save a table as a DFS-compliant pipeline product.
allframes | The list of input frames for the recipe |
header | NULL, or filled with properties written to product header |
parlist | The list of input parameters |
usedframes | The list of raw/calibration frames used for this product |
inherit | NULL or product frames inherit their header from this frame |
table | The table to be saved |
tablelist | Optional propertylist to use in table extension or NULL |
recipe | The recipe name |
applist | Propertylist to append to primary header, w. PRO.CATG |
remregexp | Optional regexp of properties not to put in main header |
pipe_id | PACKAGE "/" PACKAGE_VERSION |
filename | Filename of created product |
References cpl_ensure_code, CPL_ERROR_NONE, CPL_ERROR_NULL_INPUT, and CPL_TYPE_INVALID.
cpl_error_code cpl_dfs_setup_product_header | ( | cpl_propertylist * | header, |
const cpl_frame * | product_frame, | ||
const cpl_frameset * | framelist, | ||
const cpl_parameterlist * | parlist, | ||
const char * | recid, | ||
const char * | pipeline_id, | ||
const char * | dictionary_id, | ||
const cpl_frame * | inherit_frame | ||
) |
Add product keywords to a pipeline product property list.
header | Property list where keywords must be written |
product_frame | Frame describing the product |
framelist | List of frames including all input frames |
parlist | Recipe parameter list |
recid | Recipe name |
pipeline_id | Pipeline unique identifier |
dictionary_id | PRO dictionary identifier |
inherit_frame | Frame from which header information is inherited |
CPL_ERROR_NONE
on success.CPL_ERROR_NULL_INPUT | An input pointer is NULL . |
CPL_ERROR_DATA_NOT_FOUND | The input framelist contains no input frames or a frame in the input framelist does not specify a file. In the former case the string "Empty set-of-frames" is appended to the error message returned by cpl_error_get_message(). |
CPL_ERROR_ILLEGAL_INPUT | The product frame is not tagged or not grouped as CPL_FRAME_GROUP_PRODUCT . A specified inherit_frame doesn't belong to the input frame list, or it is not in FITS format. |
CPL_ERROR_FILE_NOT_FOUND | A frame in the input framelist specifies a non-existing file. |
CPL_ERROR_BAD_FILE_FORMAT | A frame in the input framelist specifies an invalid file. |
This function checks the header associated to a pipeline product, to ensure that it is DICB compliant. In particular, this function does the following:
See the DICB PRO dictionary to have details on the mentioned PRO keywords.
References cpl_ensure_code, CPL_ERROR_ACCESS_OUT_OF_RANGE, CPL_ERROR_DATA_NOT_FOUND, CPL_ERROR_FILE_NOT_FOUND, cpl_error_get_code(), CPL_ERROR_ILLEGAL_INPUT, CPL_ERROR_NONE, CPL_ERROR_NULL_INPUT, CPL_ERROR_UNSPECIFIED, cpl_errorstate_get(), cpl_errorstate_set(), cpl_frame_get_filename(), cpl_frame_get_group(), cpl_frame_get_tag(), CPL_FRAME_GROUP_CALIB, CPL_FRAME_GROUP_PRODUCT, CPL_FRAME_GROUP_RAW, cpl_frameset_get_size(), cpl_frameset_iterator_advance(), cpl_frameset_iterator_delete(), cpl_frameset_iterator_get_const(), cpl_frameset_iterator_new(), cpl_frameset_iterator_reset(), cpl_free(), cpl_msg_warning(), cpl_parameter_get_alias(), cpl_parameter_get_bool(), cpl_parameter_get_default_bool(), cpl_parameter_get_default_double(), cpl_parameter_get_default_int(), cpl_parameter_get_default_string(), cpl_parameter_get_double(), cpl_parameter_get_help(), cpl_parameter_get_int(), cpl_parameter_get_string(), cpl_parameter_get_type(), CPL_PARAMETER_MODE_CLI, cpl_parameterlist_get_first_const(), cpl_parameterlist_get_next_const(), cpl_property_delete(), cpl_property_duplicate(), cpl_property_get_bool(), cpl_property_get_size(), cpl_property_get_string(), cpl_property_get_type(), cpl_property_set_bool(), cpl_property_set_comment(), cpl_property_set_int(), cpl_property_set_name(), cpl_propertylist_append(), cpl_propertylist_append_property(), cpl_propertylist_delete(), cpl_propertylist_erase(), cpl_propertylist_get_property_const(), cpl_propertylist_has(), cpl_propertylist_new(), cpl_sprintf(), cpl_strdup(), CPL_TYPE_BOOL, CPL_TYPE_DOUBLE, cpl_type_get_name(), CPL_TYPE_INT, and CPL_TYPE_STRING.
cpl_error_code cpl_dfs_sign_products | ( | const cpl_frameset * | set, |
unsigned int | flags | ||
) |
Update DFS and DICB required header information of product frames.
set | The frameset from which the product frames are taken. |
flags | Bit mask for selecting the digital signatures to be written. |
CPL_ERROR_NONE
on success, or an appropriate CPL error code otherwise.The function takes all frames marked as products from the input frameset set. For each product the header information PIPEFILE
is updated unconditionally. In addition, depending on the bit mask flags, the DATAMD5
data hash and/or the standard FITS checksums are computed and written to the product header. If a digital signature is not selected by flags when the function is called, its corresponding header keyword(s) are removed from the product frame.
CPL_ERROR_NULL_INPUT | An input pointer is NULL . |
CPL_ERROR_DATA_NOT_FOUND | The input framelist contains a frame of type product with a missing filename. |
CPL_ERROR_BAD_FILE_FORMAT | The input framelist contains a frame of type product without a FITS card with key 'DATAMD5'. |
CPL_ERROR_FILE_IO | The input framelist contains a frame of type product for which the FITS card with key 'DATAMD5' could not be updated. |
References CPL_DFS_SIGNATURE_NONE, cpl_ensure_code, CPL_ERROR_ACCESS_OUT_OF_RANGE, cpl_error_get_code(), CPL_ERROR_NONE, CPL_ERROR_NULL_INPUT, cpl_errorstate_get(), cpl_errorstate_set(), cpl_frame_get_group(), CPL_FRAME_GROUP_PRODUCT, cpl_frameset_is_empty(), cpl_frameset_iterator_advance(), cpl_frameset_iterator_delete(), cpl_frameset_iterator_get_const(), and cpl_frameset_iterator_new().
cpl_error_code cpl_dfs_update_product_header | ( | cpl_frameset * | self | ) |
Perform any DFS-compliancy required actions (DATAMD5/PIPEFILE update)
self | The list of frames with FITS products created by the recipe |
CPL_ERROR_NULL_INPUT | An input pointer is NULL . |
CPL_ERROR_DATA_NOT_FOUND | The input framelist contains a frame of type product with a missing filename. |
CPL_ERROR_BAD_FILE_FORMAT | The input framelist contains a frame of type product without a FITS card with key 'DATAMD5'. |
CPL_ERROR_FILE_IO | The input framelist contains a frame of type product for which the FITS card with key 'DATAMD5' could not be updated. |
References CPL_ERROR_NONE.