ISP Transform

The ISP Transform (isp_transform) updates specific ISP field(s) according to a transformation specification. This tool traverses all ISPs in the provided ISP stream, and updates the fields based on transformation configuration.

A transformation has two components:
  • selection criteria, which can be based on time_selection (e.g. the ISP time

is inside a given time interval) or on field_selection (e.g. a certain field had a value inside a given interval

  • update definition, which defines the field(s) and value(s) to be used

ISP Transform Options

  • -h [ –help ] : Displays options help

  • -v [ –version ] : Displays version information

  • –verbose : Display progress bar while processing the file

  • –schema arg : Schema of the ISP [REQUIRED]

  • –isp arg : ISP file [REQUIRED]

  • –timeline arg : Timeline file that defines the ISP fields to be updated [REQUIRED]

The Timeline, provided by using option –fields is a JSON file which provides a list of time_segments and for each segment the time period when it is applicable and the fields to be updated.

{
  "transformations": [
    {
      "field_selection": {
        "path": "/Packet_Primary_Header/Packet_Sequence_Ctrl/SSC",
        "minimum": "5",
        "maximum": "10"
      },
      "updates": [
        {
          "path": [
            "/Packet_Data_Field/NAVATT_Packet_Secondary_Header/Destination_Id"
          ],
          "type": "uint8_t",
          "value": "3"
        }
      ]
    },
    {
      "time_selection": {
        "path": "/Packet_Data_Field/NAVATT_Packet_Secondary_Header/Time_Code_Field/Time_Code/Coarse_Time",
        "gps_time_start": "2019-09-14T10:36:33.000",
        "gps_time_stop": "2019-09-14T10:36:38.000",

        "__1.COMMENT": "Notice that 2019-09-14T10:36:33.000 (GPS) represents 2019-09-14T10:36:15.000 (UTC)",
        "__2.COMMENT": "Notice that time interval is defined as [gps_time_start, gps_time_stop["
      },
      "updates": [
        {
          "path": [
            "/Packet_Data_Field/NAVATT_Packet_Secondary_Header/Time_Code_Field/Quality_Field"
          ],
          "type": "uint8_t",
          "value": "0"
        }
      ]
    },
    {
      "time_selection": {
        "path": "/Packet_Data_Field/NAVATT_Packet_Secondary_Header/Time_Code_Field/Time_Code/Coarse_Time",
        "gps_time_start": "2019-10-16T00:04:00",
        "gps_time_stop": "2019-10-16T00:08:00"
      },
      "updates": [
        {
          "path": [
            "/Packet_Data_Field/NAVATT_User_Data_Field/ISP_Data/GNSR_Raw_Navigation_Data_ECEF/GNSR1_PVT_Status_Flags",
            "/Packet_Data_Field/NAVATT_User_Data_Field/ISP_Data/GNSR_Raw_Navigation_Data_ECEF/GNSR2_PVT_Status_Flags"
          ],
          "type": "uint32_t",
          "value": "0"
        },
        {
          "path": [
            "/Packet_Data_Field/NAVATT_User_Data_Field/ISP_Data/AOCS_Attitude_Data_ECI_J2000/Attitude_Quality"
          ],
          "type": "uint32_t",
          "value": "0"
        }
      ]
    }
  ]
}