ICS Data Formats ICS Data Formats Overview In

  • Slides: 9
Download presentation
ICS Data Formats

ICS Data Formats

ICS Data Formats Overview Ø In the scope of this talk the following data

ICS Data Formats Overview Ø In the scope of this talk the following data formats are considered: Ø Configuration Files. Ø Data Interface Dictionaries. Ø FITS files. Ø Documents (to be updated): Ø ICS Framework - Data Interface Definition, ESO-284681. Ø ICS Framework - Data Interface Formats & Tools Design, ESO-312057. Ø Other formats used, e. g. CII application MAL ICD (XML) definition or RAD SCXML files, are outside the scope of this talk. Instrument Control Systems Seminar 2019 2

ICS Data Formats Configuration Files Ø ICS V 1 based on basic YAML files

ICS Data Formats Configuration Files Ø ICS V 1 based on basic YAML files as temporary solution. Ø Intention to switch to the CII Cfg Service as soon as released. Ø CII Cfg Service undergoing review right now. Ø TBD: Ø if CII Cfg Service used locally (file-based) or with the central/remote repository. Ø if YAML or JSON will be used as file-based format. Ø Intention to deliver ICS V 2 with the final solution for handling of the configuration data. Instrument Control Systems Seminar 2019 3

ICS Data Formats Data Interface Dictionaries/1 Ø ELT ICS: Dictionaries only used for generating

ICS Data Formats Data Interface Dictionaries/1 Ø ELT ICS: Dictionaries only used for generating FITS header keyword cards. Ø First implementation provided for ICS V 1, based on YAML. Ø Based on VLTSW DID. #======================================== Header: Name: dit/stddid/primary. did Scope: FITS Creation. Date: 2018 -11 -12 Version: "@(#) $Id$" Include: () Description: | Dictionary defining the non-hierarchical keyword cards used in ESO FITS files. DICB: Reviewed for compliance with ESO-044156/6. #=============================================================================== # Mandatory keywords: #======================================== SIMPLE: Class: (FITS) Type: Boolean Format: c Default: Unit: Range: () Comment: Standard FITS Tags: () Description: | SIMPLE must be equal to 'T' to conform to FITS. #---------------------------------------… (Source: Git: ifw-hl/core/dit/stddid/resource/dictionary/dit/stddid/primary. did) Instrument Control Systems Seminar 2019 4

ICS Data Formats Data Interface Dictionaries/2 Ø Intention to evaluate the CII Cfg Service

ICS Data Formats Data Interface Dictionaries/2 Ø Intention to evaluate the CII Cfg Service as ‘platform’ for handling dictionaries. Ø Dictionary in the end a sort of ‘configuration’ … Ø Advantageous to use the same tools to reduce complexity and obtain a more homogeneous system. Ø CII Cfg Service provides tools for schema validation etc. (JSON based). Ø Evaluation on-going, to be concluded before releasing ICS V 2. Instrument Control Systems Seminar 2019 5

ICS Data Formats Data Interface Dictionaries/3 Ø Features of the ELT ICS Dictionary: Ø

ICS Data Formats Data Interface Dictionaries/3 Ø Features of the ELT ICS Dictionary: Ø No specific format of keys (casing). • “INS FILT 1 NO”, “Ins Filt No”, “Ins. Filt. No”, allowed. Ø Hierarchical keys supported with dot or space as separater. Ø Mandatory index indicated with hash sign. Ø Optional index indicated with hash sign in parentheses. Ø Format Field based on C ‘printf’ formatting. INS(#) FILT# ID: Class: (FITS) Type: String Format: s Default: None Unit: None Range: () Comment: Filter ID Tags: () Description: | ESO identification number for the filter. Format: #n where n is a unique number for the observatory. Ø Similar features shall be provided if CII Cfg Service used, but format and software platform will be different. Ø If CII Cfg Service used: TBD if YAML or JSON is used. Instrument Control Systems Seminar 2019 6

ICS Data Formats Data Interface Dictionaries/4 Ø Tools for dictionary handling: Git: “ifw-hl/coredit/cpp/didlib”. dit:

ICS Data Formats Data Interface Dictionaries/4 Ø Tools for dictionary handling: Git: “ifw-hl/coredit/cpp/didlib”. dit: : did: : Did did; did. Load("dit/stddid/primary. did"); cout << did. To. String(dit: : did: : DID_HDR_LAST, "", true); dit: : did: : Record record; did. Look. Up("Fcs#. F. *", records); // … use result … std: : vector<dit: : did: : Record> records; did. Look. Up("FCS 2 MOT 5 POS", record); // … use result … did. Look. Up("Fcs#. Io. Dev 2. Ch#. Name", records); // … use result … Ø The “didlib” tool will be re-engineered if CII Cfg Service will be used. Ø It will be considered to have an online (central) storage of all dictionaries used + a WEB interface for browsing purposes. Instrument Control Systems Seminar 2019 7

ICS Data Formats FITS Header Handling/1 Ø FITS is the standard format for storing

ICS Data Formats FITS Header Handling/1 Ø FITS is the standard format for storing image data. Ø The CCFits library is the official tool for FITS file I/O. Ø https: //heasarc. gsfc. nasa. gov/fitsio/CCfits/ Ø CCFits is based on cfitsio, which is the reference implementation. Ø https: //heasarc. gsfc. nasa. gov/docs/software/fitsio. html Ø Possible to use cfitsio in conjunction with CCFits (seamlessly). Instrument Control Systems Seminar 2019 8

ICS Data Formats FITS Header Handling/2 Ø To support handling FITS headers, small library

ICS Data Formats FITS Header Handling/2 Ø To support handling FITS headers, small library with convenience functions provided: Git: “ifw-hl/coredit/cpp/fitslib” Ø Not the intention to encapsulate CCFits. Ø Mostly providing support for dictionary generated FITS keyword cards. #include "dit/fits. hpp" dit: : did: : Did did; did. Load("prj/pkg/mod/Test. did"); std: : vector<int 32_t> naxes = {128, 256}; std: : shared_ptr<CCfits: : FITS> fits_handle; std: : string target_filename; dit: : fits: : Create. File(fits_handle, “My. Fits. File", did, -32, naxes, target_filename, true); dit: : fits: : Add. Key(fits_handle, did, "INS 1 FILT 2 ID", "Filter. Id", 1); dit: : fits: : Add. Key(fits_handle, did, "INS 4 FILT 5 NO", 11, 1); dit: : fits: : Add. Double. Key(fits_handle, did, "MY 1 DBL 2 KEY 3", 123. 456, 1); // Replace int 32 key: dit: : fits: : Add. Key(fits_handle, did, "INS 4 FILT 5 NO", 22, 1); Instrument Control Systems Seminar 2019 9