16.4. Flat file format

16.4.1. Introduction to Flat file (SAM) format
16.4.2. Schema for Flat file format

16.4.1. Introduction to Flat file (SAM) format

One Debrief user organisation frequently has to use exported Debrief tracks in a subsequent analysis application (SAM). This application requires tab-separated columns of data using a flat-earth measurements in imperial units. The data is formatted as specified below. Note that records are only included for times for which there is sensor datums - which may be a shorter time period than that which the user specified.

16.4.2. Schema for Flat file format

STRAND Scenario Report 1.00
<Operation_Name>
<Platform_Name>
<Ownship_Track_Name>
<Sensor_Track_Name>
<Measured_Tgt_Name>
<Predicted_Tgt_Name>
<Start_Time>
<End_Time>
<Bearing_SIF>
<Range_SIF>
<Combined_SIF>
<Num_Records>
<Geo_Origin_X> <Geo_Origin_Y>
Time OS_Status OS_X OS_Y OS_Speed OS_Heading Sensor_Status Sensor_X Sensor_Y
Sensor_Brg Sensor_Bacc Sensor_Freq Sensor_Facc Sensor_Speed Sensor_Heading 
Sensor_Type Msd_Status Msd_X Msd_Y Msd_Speed Msd_Heading Prd_Status Prd_X Prd_Y 
Prd_Brg Prd_Brg_Acc Prd_Range Prd_Range_Acc Prd_Course Prd_Cacc Prd_Speed Prd_Sacc 
Prd_Freq Prd_Freq_Acc
<scenario_sample_time> <OS_Data_Status> <OS_X> <OS_Y> <OS_Speed> <OS_Heading> 
  <Sensor_Data_Status> <Sensor_X> <Sensor_Y> <Sensor_Brg> <Sensor_Bacc> <Sensor_Freq> 
  <Sensor_Facc> <Sensor_Speed> <Sensor_Heading> <Sensor_Type> <Msd_status> <Msd_X>
  <Msd_Y> <Msd_Speed> <Msd_Heading> <Prd_Status> <Prd_X> <Prd_Y> <Prd_Brg>
  <Prd_Brg_Acc> <Prd_Range> <Prd_Range_Acc> <Prd_Course> <Prd_Cacc> <Prd_Speed>
  <Prd_Sacc> <Prd_Freq> <Prd_Freq_Acc>
<scenario_sample_time> <OS_Data_Status> <OS_X> <OS_Y> <OS_Speed> <OS_Heading> 
  <Sensor_Data_Status> <Sensor_X> <Sensor_Y> <Sensor_Brg> <Sensor_Bacc> <Sensor_Freq> 
  <Sensor_Facc> <Sensor_Speed> <Sensor_Heading> <Sensor_Type> <Msd_status> <Msd_X>
  <Msd_Y> <Msd_Speed> <Msd_Heading> <Prd_Status> <Prd_X> <Prd_Y> <Prd_Brg>
  <Prd_Brg_Acc> <Prd_Range> <Prd_Range_Acc> <Prd_Course> <Prd_Cacc> <Prd_Speed>
  <Prd_Sacc> <Prd_Freq> <Prd_Freq_Acc>
<scenario_sample_time> <OS_Data_Status> <OS_X> <OS_Y> <OS_Speed> <OS_Heading> 
  <Sensor_Data_Status> <Sensor_X> <Sensor_Y> <Sensor_Brg> <Sensor_Bacc> <Sensor_Freq> 
  <Sensor_Facc> <Sensor_Speed> <Sensor_Heading> <Sensor_Type> <Msd_status> <Msd_X>
  <Msd_Y> <Msd_Speed> <Msd_Heading> <Prd_Status> <Prd_X> <Prd_Y> <Prd_Brg>
  <Prd_Brg_Acc> <Prd_Range> <Prd_Range_Acc> <Prd_Course> <Prd_Cacc> <Prd_Speed>
  <Prd_Sacc> <Prd_Freq> <Prd_Freq_Acc>
<scenario_sample_time> <OS_Data_Status> <OS_X> <OS_Y> <OS_Speed> <OS_Heading> 
  <Sensor_Data_Status> <Sensor_X> <Sensor_Y> <Sensor_Brg> <Sensor_Bacc> <Sensor_Freq> 
  <Sensor_Facc> <Sensor_Speed> <Sensor_Heading> <Sensor_Type> <Msd_status> <Msd_X>
  <Msd_Y> <Msd_Speed> <Msd_Heading> <Prd_Status> <Prd_X> <Prd_Y> <Prd_Brg>
  <Prd_Brg_Acc> <Prd_Range> <Prd_Range_Acc> <Prd_Course> <Prd_Cacc> <Prd_Speed>
  <Prd_Sacc> <Prd_Freq> <Prd_Freq_Acc>
....
  Own Ship Data Fields    Sensor Data Fields    Measured Target Data Fields  
  Predicted Target Data Fields

Data Dictionary
All fields are tab delimited.  All text shown in bold is to be included in the output file exactly as shown.

Header Information
<Operation_Name>     The name of the operation taken from the header Information of the own ship file
<Platform_Name>      The name of the own ship platform taken from the headerinformation of the own ship track.
<Ownship_Track_Name> The name of the own ship track taken from the header information of the own ship track
<Sensor_Track_Name>  The name of the sensor track taken from the header informationof the sensor track
<Measured_Tgt_Name>  The name of the measured target track taken form the target trackheader information
<Predicted_Tgt_Name> The name of the predicted target track taken from the targettrack header information
<Start_Time>         The time of the first data record in the form:
                      hh:mm:ss <TAB> dd/mm/yyyy
<End_Time>           The time of the last data record in the form: 
                      hh:mm:ss <TAB> dd/mm/yyyy
<Bearing_SIF>        The system integrity factor based on bearing information
<Range_SIF>          The system integrity factor based on range information
<Combined_SIF>       The system integrity factor for the whole system
<Num_Records>        The number of data records in the file's body
<Geo_Origin_X>       The X component of the geographical origin in cartesian coordinates
<Geo_Origin_Y>       The Y component of the geographical origin in cartesiancoordinates

Body Information
All records consist of a sequence of TAB delimited fields generating a tabular output.  Each column will be identified by a title as shown in bold type.

<scenario_sample_time> The time of the scenario information contained in the record.
                        Measured in seconds from the start time given in the header.
<OS_Data_Status>      Flag defining the availability of own ship data built from the sum of the following codes.
                        0 = No own ship data, 1 = OS Position, 2 = Os Speed, 
                        4 = OS Heading.  For example if all own ship data is available the status = 1+2+4 = 7
<OS_X>                The X component of the own ship position in cartesiancoordinates at scenario sample time.  
                        Use STRANDPos type - integers measuring scenario location in yards
<OS_Y>                The Y component of the own ship position in cartesiancoordinates at scenario sample time.
                        Use STRANDPos type - integers measuring scenario location in yards
<OS_Speed>            The speed of the own ship at scenario_sample_time in knots.
                       Positive float
<OS_Heading>          The heading of the own ship at scenario_sample_time in degrees.
                       Float in range 0 to 359.99
<Sensor_Data_Status>  Flag defining the availability of sensor data built from the sum of the following codes.
                       0 = No sensor data, 1 = Sensor position, 2 = sensor bearing, 
                       4 = sensor frequency, 8 = Sensor Speed, 16 = Sensor Heading,
                       32 = Sensor Type.  For example if all sensor data is available
                       the status = 63
<Sensor_X>            The X component of the sensor position in cartesian coordinates at scenario sample time.
                       Use STRANDPos type - integers measured in yards
<Sensor_Y>            The Y component of the sensor position in cartesian coordinates at scenario sample time.
                       Use STRANDPos type - integers measured in yards
<Sensor_Brg>          The true bearing measured by the sensor in degrees. 
                       Float in range 0 to 359.99
<Sensor_Bacc>         The accuracy of the measured bearing in degrees.  Float in 
                       range 0 to 180.0
<Sensor_Freq>         The frequency measured by the sensor in hertz. Positive Float
<Sensor_Facc>         The accuracy of the measured frequency in hertz.  Positive float
<Sensor_Speed>        The speed of the sensor in knots. Positive float
<Sensor_Heading>      The heading of the sensor in degrees. Float in range 0 to 359.99
<Sensor_Type>         The type of sensor the data refers to.  
                       1 character H = hull or T = towed array
<Msd_status>          Flag defining the availability of measured target data built from the sum of the following codes.  
                       0 = no measured target data, 1 = measured target position, 
                       2 = measured target speed, 4 = measured target heading.
<Msd_X>               The X component of the measured target position in cartesian coordinates at scenario sample time. 
                       Use STRANDPos type - integers measured in yards
<Msd_Y>               The Y component of the measured target position in cartesian coordinates at scenario sample time. 
                       Use STRANDPos type - integers measured in yards
<Msd_Speed>           The measured target speed in knots. Positive float
<Msd_Heading>         The measured target heading in degrees. Float in range 0 to
                       359.99
<Prd_status>          Flag defining the availability of predicted target data built from the sum of the following codes.
                       0 = no predicted target data, 1 = predicted position, 
                       2 = predicted  bearing, 4 = predicted bearing accuracy, 
                       8 = predicted range, 16 = predicted range accuracy, 
                       32 = predicted course, 64 = predicted course accuracy, 
                       128 = predicted speed, 256 = predicted speed accuracy, 
                       512 = predicted frequency, 1024 = predicted frequency accuracy 
<Prd_X>               The X component of the predicted target position in cartesian coordinates at scenario sample time. 
                       Use STRANDPos type - integers measured in yards
<Prd_Y>               The Y component of the predicted target position in cartesian coordinates at scenario sample time.
                       Use STRANDPos type - integers measured in yards
<Prd_Brg>             The predicted target bearing in degrees.  Float in range 0 to
                       359.99
<Prd_Brg_Acc>         The predicted target bearing accuracy in degrees.  Float in 
                       range 0 to 180.0
<Prd_Range>           The predicted target range in yards.  Positive float
<Prd_Range_Acc>       The predicted target range accuracy in yards.  Positive float
<Prd_Course>          The predicted target course in degrees.  Float in range 0 to 
                       359.99
<Prd_Cacc>            The accuracy of the predicted course in degrees.  Positive 
                       float in range 0 to 359.99
<Prd_Speed>           The predicted target speed in knots.  Positive float
<Prd_Sacc>            The accuracy of the measured speed in knots.  Positive float
<Prd_Freq>            The predicted target range in hertz  Positive float
<Prd_Freq_Acc>        The predicted target frequency accuracy in hertz  Positive float