Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-15826

Improvements on reading VOTable in Firefly

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: Firefly
    • Labels:
    • Story Points:
      16
    • Sprint:
      SUIT Sprint 2018-09, SUIT Sprint 2018-10
    • Team:
      Science User Interface

      Description

      In order to make better use of the UCD and other attributes in VOTable, we need to improve the current function to read in a VOTable in Firefly. The goal is to read and store all the attributes available in VOTable, making them accessible for later usage. 

       This will result in substantial modification to Firefly internal table data model DataGroup. 

      Two new object classes added to the DataGroup: LinkInfo, GroupInfo. (i.e. LinkObject and GroupObject in the attached draft). 

        Attachments

          Issue Links

            Activity

            Hide
            cwang Cindy Wang [X] (Inactive) added a comment -

            Implementation decisions and updates: 

            - Using Starlink votable-aware DOM parser to traverse the xml elements in the votable file to collect more details from all TABLE elements and the FIELD elements under the TABLE elements.

            • The JAVA class implementation regarding the table (class DataGroup) and table column (class DatType) are updated accordingly.
            • Create class GroupInfo and class LinkInfo to store the details for Group element and LINK element under the TABLE elements. 

            For TABLE element,  collect 

            • attributes including ID, name, ucd, utype, ref (values assigned to ID, title, ucd, utype, ref in DataGroup object),
            • child elements DESCRIPTION (value assigned to desc in DataGroup object).
            • child element FIELD (values assigned to columns in DataGroup object).
            • child elements  GROUP, LINK, (values assigned to groups, list of GroupInfo,  and links, list of LinkInfo,  in DataGroup object).
            • child element PARAM (assigned to staticColumns, list of DataType objects,  in DataGroup and the value of each PARAM is assigned to staticValue in each DataType object). Note: PARAM is treated as columns with static value. 
            • child element INFO (assigned to meta in DataGroup)
            • table data in DATA element if the condition of not only collecting table header is set  (assigned to data in DataGroup)

            For FIELD element, collect

            • attributes including ID, name, datatype, unit, precision, width, ref, ucd, utype (values assigned to ID, keyName, type, units, precision, ref, ucd, utype in DataType). Note: values of attributes precision and width are concatenated like 'wwEn' or 'wwFn'  and stored as 'precision' in DataType, where 'ww' stands for the value from attribute width and  'En' or 'Fn' stands for value from  attribute precision. If the original precision value contains numeric digit only like '2', it is converted to be 'F2'. 
            • child element DESCRIPTION (value assigned to desc in DataType object).
            • child element LINK, (values assigned to links, list of LinkInfo,  in DataType object).
            • child element Values, (values assigned to minValue, maxValue, options, nullstring in DataType).

             

            Show
            cwang Cindy Wang [X] (Inactive) added a comment - Implementation decisions and updates:  - Using Starlink votable-aware DOM parser to traverse the xml elements in the votable file to collect more details from all TABLE elements and the FIELD elements under the TABLE elements. The JAVA class implementation regarding the table (class DataGroup ) and table column (class DatType ) are updated accordingly. Create class GroupInfo and class LinkInfo  to store the details for Group element and LINK element under the TABLE elements.  For TABLE element,  collect  attributes including ID, name, ucd, utype, ref (values assigned to ID, title, ucd, utype, ref in DataGroup object), child elements DESCRIPTION (value assigned to desc in DataGroup object). child element FIELD (values assigned to columns in DataGroup object). child elements  GROUP, LINK, (values assigned to groups , list of GroupInfo ,  and links , list of LinkInfo,   in DataGroup object). child element PARAM (assigned to staticColumns , list of DataType objects,  in DataGroup and the value of each PARAM is assigned to staticValue in each DataType object). Note: PARAM is treated as columns with static value.  child element INFO (assigned to meta  in DataGroup ) table data in DATA element if the condition of not only collecting table header is set  (assigned to data in DataGroup ) For FIELD element, collect attributes including ID, name, datatype, unit, precision, width, ref, ucd, utype (values assigned to  ID, keyName, type, units, precision, ref, ucd, utype in DataType ). Note: values of attributes precision and width are concatenated like ' wwEn' or ' wwFn'   and stored as ' precision ' in DataType,  where 'ww' stands for the value from attribute width and  'En' or 'Fn' stands for value from  attribute precision. If the original precision value contains numeric digit only like '2', it is converted to be 'F2'.  child element DESCRIPTION (value assigned to desc in DataType  object). child element LINK, (values assigned to links , list of LinkInfo,   in DataType  object). child element Values, (values assigned to  minValue, maxValue, options, nullstring in DataType ).  

              People

              Assignee:
              cwang Cindy Wang [X] (Inactive)
              Reporter:
              xiuqin Xiuqin Wu [X] (Inactive)
              Reviewers:
              Loi Ly
              Watchers:
              Cindy Wang [X] (Inactive), Emmanuel Joliet, Gregory Dubois-Felsmann, Loi Ly, Xiuqin Wu [X] (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.