Fisheries and Oceans Canada
Symbol of the Government of Canada

Ocean Profile Data Format

The format used for the delivery of the data is moderately complex since it provides information in addition to the actual observations.  Software is provided to help read the format.  The data format makes use of a number of international codes to describe the data and how they were collected.  International vessel call sign tables and ship platform names are also provided.

The data are organized in the following manner.  A 'Station' record always appears first followed by one or more 'Profile' records.  All records are of variable length, with the exact number of fields to be found being provided in the record.

The 'Station' Record

The 'Station' record is built of a number of components. The first component always has a fixed number of fields and is always present.  This component provides information about the location and time of the station, information about how the data were received and the number of repeats of other components found in the 'Station' record.

The second component provides information about the number of profiles measured at the station, whether or not a profile is a duplicate of another, higher resolution copy, and some information about the accuracy and precision of the variables measured.  The deepest depth of each profile is recorded here. Because of limitations of records lengths on some computers, profiles are broken into a number of segments. Each segment has up to 1500 depth-variable pairs.  There are as many repeats of this component as required to describe all profiles present.  The actual number of profile records associated with a station is the sum of the number of segments of each profile.

The third component carries information about other variables measured at the station, such as winds, air temperature, and so on.  The measurements are expressed as numeric values. A code table is used to indicate the variable measured.  There are as many repeats of this component as required to describe all numeric variables present.

The fourth component carries information about other variables measured at the station but which are recorded as alphanumerics.  Such measurements as Beaufort winds, QC tests executed, etc. are to be found here. There are as many repeats of this component as required to describe all alphanumeric variables present.

The last component records the processing history of the station. It provides information about who carried out which actions against what variable and when.  If values have been changed, the original value is stored in this component.  There are as many repeats of this component as required to describe all the processing that has taken place on the station.

Suppose that a temperature and a salinity profile were collected at a station.  Suppose also that there were observations every meter to 3500 m depth.  Suppose also that wind speed and direction were measured, that the Beaufort wind speed was recorded and that the station had 5 different actions taken against it.  The layout of the station record is then as follows.

Component Contents
1 Station location, time and other information.
2 Two repeats of profile information, one for temperature and one for salinity.
3 Two repeats, one for each of wind speed and direction.
4 One repeat for the Beaufort code.
5 Five repeats of the history information, one to describe each action taken against the record.

The 'Profile' Record

There may be one or more 'Profile' records associated with each station record.  The associated 'Profile' records always follow immediately after the station record to which they are linked.

There are two components to a 'Profile' record.  The first always has a fixed number of fields and is always present.  This component provides a repeat of the station location and time.  It identifies the profile type and segment of that profile.  It indicates if depths or pressures are recorded and how many depth-variable pairs are to be found.

The second component records the depth and measured variable as well as quality control flags that have been applied at each depth.  There are as many repeats of this component as required to describe all depths (pressures) measured in the profile.

For the example data collection described above, the layout of the profile records is as follows.

Component Contents
1 Station location, time, profile and segment identifiers.
2 Up to 1500 repeats of depth-variable information and associated quality control flags.

File Organization

For the above example, the organization of a data file would be as follows.

Record Contents
1 'Station' record saying both TEMP (temperature) and PSAL (salinity) profiles are present and that both of these consist of 3 segments (3500/1500 = 3 segments).
2 'Profile' record consisting of segment 1 (depths 0-1499m) of the temperature profile.
3 'Profile' record consisting of segment 2 (depths 1500-2999m) of the temperature profile.
4 'Profile' record consisting of segment 3 (depths 3000-3500m) of the temperature profile.
5 'Profile' record consisting of segment 1 (depths 0-1499m) of the salinity profile.
6 'Profile' record consisting of segment 2 (depths 1500-2999m) of the salinity profile.
7 'Profile' record consisting of segment 3 (depths3000-3500m) of the salinity profile.

Format Description

    Field        Field  Starting  Justify   Field
    Name         Size   Position   Left     Description
                                   Right               
  ---------     -------  ------  --------   -------------

  MKey          char*08    01       L       Sort Key      
  One_Deg_sq    char*08    09       R       MEDS geographic 1 degree square
  Cruise_ID     char*10    17       L       Radio call sign + year for real time 
                                              data or NODC reference number for
                                              delayed mode data.
  Obs_Year      char*04    27       L       Century and year of observation 
  Obs_Month     char*02    31       L       Month of Observation
  Obs_Day       char*02    33       L       Day of Observation 01-31
  Obs_Time      char*04    35       L       Time of Observation 
  Data_Type     char*02    39       L       Instrument type or type of IGOSS radio
                                              message
  Iumsgno       char*12    41       R       A unique identifier used by MEDS 
                                             in their processing 
  Stream_Source char*01    53       L       A field used by MEDS to track if
                                             the data are new or have been
                                             retrieved from its archives. 
  Uflag         char*01    54       L       Record update action  
  Stn_Number    char*08    55       R       MEDS Station Number for real-time data,
                                              or cruise consec number for delayed
                                              mode data.
  Latitude      char*08    63       R       Decimal degrees 
                                              (+ = north, - = south)
  Longitude     char*09    71       R       Decimal degrees
                                              (+ = west, - = east)
  Q_Pos         char*01    80       L       Station Position Quality 
  Q_Date_Time   char*01    81       L       Date-Time Quality 
  Q_Record      char*01    82       L       Worst Quality flag in the station
  Up_Date       char*08    83       L       Date of last action on record
  Bul_Time      char*12    91       L       Time bulletin was placed on GTS
  Bul_Header    char*06   103       L       GTS bulletin header
  Source_ID     char*04   109       L       GTS node which placed message on the GTS
  Stream_Ident  char*04   113       L       Source and type of data 
  QC_Version    char*04   117       L       Version of the QC program used.      
  Data_Avail    char*01   121       L       Data Availability 
  No_Prof       char*02   122       R       Number of Parameter profiles in station
  Nparms        char*02   124       R       Number of Surface Parameter groups
  Nsurfc        char*02   126       R       Number of Surface Codes groups
  Num_Hists     char*03   128       R       Number of History groups


     Profile Information; repeats No_prof (1-30) times

 No_Seg        char*02    01       R        Number of Profile Records in the profile
 Prof_Type     char*04    03       L        Type of data in profile 
 Dup_flag      char*01    07       L        'Y'indicates this station duplicates
                                              another of higher quality.
 Digit_Code    char*01    08       L        Data Digitization method 
 Standard      char*01    09       L        Standards to which the observations were
                                              made
 Deep_Depth    char*05    10       R        Depth (m) of the deepest observation in
                                              the profile.

  
     Surface Parameter Group; repeats Nparms (0-30) times
                                                              
 Pcode         char*04    01       L        Parameter - GF3 or User code. 
 Parm          char*10    05       R        Measured surface parameter value.
 Q_Parm        char*01    15       L        Parameter Quality 

  
     Surface Codes Group; repeats Nsurfc (0-30) times

 SRFC_Code     char*04    01       L        Parameter - GF3 or User code.
 SRFC_Parm     char*10    05       L        Surface code 
 SRFC_Q_Parm   char*01    15       L        Parameter Quality 

  
     History Group; repeats Num_Hists (0-100) times

 Ident_Code    char*02    01       L        Organization which created the record 
 PRC_Code      char*04    03       L        Computer program which modified the
                                              station and created a history group)
 Version       char*04    07       L        Version of the above program
 PRC_Date      char*08    11       R        Date of action (YYYYMM)
 Act_Code      char*02    19       L        Action performed on parameter
 Act_Parm      char*04    21       L        Parameter code of changed
                                             parameter 
 Aux_ID        char*08    25       R        Locator (e.g. depth) of changed

                                             parameter
 Previous_Val  char*10    33       R        Value of parameter before change

                     Profile Record
  
 MKey          char*08    01       L        Sort Key 
 One_Deg_Sq    char*08    09       R        MEDS geographic 1 degree square
 Cruise_ID     char*10    17       L        Radio callsign + year for real-time data
                                              or NODC reference number for delayed
                                              mode.
 Obs_Year      char*04    27       L        Century and year of observation
 Obs_Month     char*02    31       L        Month of Observation
 Obs_Day       char*02    33       L        Day of Observation 01-31
 Obs_time      char*04    35       L        Time of Observation
 Data_Type     char*02    39       L        Instrument type or type of IGOSS radio 
                                              message
 Iumsgno       char*12    41       R        MEDS field - not used 
 Profile_Type  char*04    53       L        Type of data in the profile
 Profile_Seg   char*02    57       L        Profile segment number of this record
 No_Depths     char*04    59       R        Number of Depth/Pressure values in this
                                              record
 D_P_Code      char*01    63       L        Depth/Pressure code 

      Parameter Group; occurs No_Depth (1-1500) times
  
 Depth_Press   char*06    01       R        Depth or Pressure value
 Depres_Q      char*01    07       L        Depth/Pressure quality 
 Prof_Parm     char*09    08       R        Measured parameter value
 Prof_Q_Parm   char*01    17       L        Data Quality