Met Office Hadley Centre observations datasets
Home > EN4 >

EN.4.2.2 quality controlled ocean data: Profile files

Profile file structure

The profile files contain observed profile data for a particular month and quality control decisions for those profiles. Please check the quality control decisions contained with the data, as described on the right.

The table below describes the variables that can be found in the NetCDF files.

NetCDF variable Description
JULD Date of observation in days since midnight on 1/1/1950.
LATITUDE Latitude at which profile was recorded.
LONGITUDE Longitude at which profile was recorded.
DEPH_CORRECTED A two-dimensional array containing the depth of each level of each profile.
TEMP A two-dimensional array containing the observed temperature of each level of each profile.
POTM_CORRECTED A two-dimensional array containing the potential temperature of each level of each profile.
PSAL_CORRECTED A two-dimensional array containing the salinity of each level of each profile.
POSITION_QC This is a string with a character for each profile. If a profile has a '4' in this field, the entire thing should be rejected.
PROFILE_POTM_QC This is a string with a character for each profile. If a profile has a '4' in this field, the entire temperature profile should be rejected.
PROFILE_PSAL_QC This is a string with a character for each profile. If a profile has a '4' in this field, the entire salinity profile should be rejected.
POTM_CORRECTED_QC This is an array of strings, one for each profile. Each string has a character for each level. If a level has a '4' in this field, the temperature should be rejected.
PSAL_CORRECTED_QC This is an array of strings, one for each profile. Each string has a character for each level. If a level has a '4' in this field, the salinity should be rejected.
QC_FLAGS_PROFILES This contains detailed information about the quality decisions affecting an entire profile. Each bit within the number has a different meaning if set. The meanings are described in the QC_FLAGS_PROFILES table.
QC_FLAGS_LEVELS This contains detailed information about the quality decisions affecting individual levels of a profile. Each bit within the number has a different meaning if set. The meanings are described in the QC_FLAGS_LEVELS table.
REFERENCE_DATE_TIME The observation times are relative to this time (currently 1/1/1950).
PROJECT_NAME The start of this field gives information about the source of each profile - it might read 'ARGO', 'GTSPP', 'WOD' or 'ASBO'. The rest of the field contains additional information e.g. the character after 'ARGO' might be 'R', 'A' or 'D' to indicate real-time, real-time adjusted or delayed-mode data. The two characters after 'GTSPP' and 'ASBO' are from https://www.nodc.noaa.gov/gtspp/document/codetbls/gtsppcode.html#TYPE. For 'WOD13', the three next characters are the instrument type. There are two numbers after the instrument type for WOD13 data. The first is the country code (see ftp://ftp.nodc.noaa.gov/pub/WOD09/CODES/TXT/country_list.txt) and the second the platform.
PLATFORM_NUMBER A unique identifier for each instrument.
INST_REFERENCE For GTSPP this contains the WMO code table 1770 type. Based on the GTSPP metadata two additional code values are used:
  • 101 - unknown instrument type, fall-rate coeff A=6.472 assumed;
  • 102 - unknown instrument type, no fall-rate correction required.
For WOD05 this is 10000*Sech29 + 10*InstType + CorrType, where: Sech29 (secondary header 29) is probe type (0-16) - table 2.13 (p 89) in WOD05 documentation; InstType (variable specific secondary headers) is probe type (1-803) - table 3.2 (p 103) in WOD05 documentation and CorrType is derived from Sech54 (secondary header 54) - "Needs depth fix" table 2.20 (p 93) in WOD05 documentation.
  • Sech54 = 0: CorrType = 0 ! No correction needed
  • Sech54 = 1: CorrType = 1 ! XBT Hanawa et al (1995) correction (*)
  • Sech54 = 2: CorrType = 2 ! XBT Kizu et al (2005) correction (*)
  • Sech54 = 103: CorrType = 3 ! XCTD Johnson (1995) correction (*)
  • Sech54 = 104: CorrType = 4 ! XCTD Mizuno and Watenabe (1998) correction (*)
  • Sech54 = -1: CorrType = 9 ! Insufficient information - no correction
(Note: we correct the depths of profiles with CorrType 1 and 2. We do not currently correct CorrType 3 and 4 - XCTDs.)
WMO_INST_TYPE Contains a simplified subset of WMO code table 1770. It is recommended that the INST_REFERENCE field is used to separate data types, as these are only broad categories and some profiles may not be in the correct category.
  • 401 - XBT/MBT
  • 741 - TESAC
  • 831 - Profiling floats
  • 820 - BUOYS
SCIENTIFIC_CALIB_COEFFICIENT For expendable bathythermographs (XBTs) this variable contains the multiplication factor used to correct the depths (except for TSK T5 XBTs where the multiplication factor depends on depth; in this case this field will specify a correction of 0.955).

Quality control information

To make correct use of the profile data, the quality control flags must be read and applied. There are two ways to do this:

  1. Use the POSITION_QC, PROFILE_POTM_QC, PROFILE_PSAL_QC, POTM_CORRECTED_QC and PSAL_CORRECTED_QC variables. These have values of either '1' (accept) or '4' (reject) (or '0' where there were no data and hence no quality control was performed).
  2. Use the QC_FLAGS_PROFILES and QC_FLAGS_LEVELS fields. These contain numeric values that say if the whole profile or an individual level has been rejected (bit 0 set if temperature is rejected, bit 1 if salinity is rejected), and also give information on why something was rejected.
If using the second method, the information in the flags can be decoded by using the information below:

Meaning of the QC_FLAGS_PROFILES values

This field contains detailed quality information about each profile. To interpret these numbers, imagine them as 32 bit binary numbers (i.e. a 32 digit number made up of either zeroes or ones). If a bit is 'set' it has value 1, otherwise it has value 0. The least significant digit is bit 0 and the most significant digit is bit 31. Each bit has a meaning as described in the table below. For example if a salinity profile is rejected then bit 1 is set. There will also be other bits set to say which quality control tests have been failed. In this example, lets assume that this profile was rejected because it is on the Argo grey list and hence bit 17 is also set. In decimal the resulting quality code will be 2^1 (bit one is set) + 2^17 (bit 17 is set) = 131074.

More information about the different checks can be found in Good, S. A., M. J. Martin and N. A. Rayner, 2013. EN4: quality controlled ocean temperature and salinity profiles and monthly objective analyses with uncertainty estimates, Journal of Geophysical Research: Oceans, doi:10.1002/2013JC009067.

Bit Meaning if set
0 Temperature profile was rejected.
1 Salinity profile was rejected.
2 Indicates that there are other profile(s) within 0.2 degrees of latitude and longitude and 1 hour that appear to be of higher quality. In previous versions of the dataset this profile would have not been stored in the data files.
3 Temperature and salinity rejected by the track check.
4 Temperature and salinity rejected by the vertical stability check.
5 Temperature and salinity rejected because profile is on the altimetry quality control suspect list.
6 Temperature and salinity rejected because the profile appears to be on land.

8 Temperature was rejected because profile is at exactly 0 degrees latitude and longitude.
9 Temperature was rejected because profile is on the Argo grey list.
10 Temperature rejected because the profile is on the EN3 reject list.
11 Temperature profile rejected by the vertical check (which looks for spikes etc).
12 Temperature rejected because there were no background values for this profile.
13 Temperature profile rejected because over half its levels were rejected.
16 Salinity was rejected because profile is at exactly 0 degrees latitude and longitude.
17 Salinity was rejected because profile is on the Argo grey list.
18 Salinity rejected because the profile is on the EN3 reject list.
19 Salinity profile rejected by the vertical check (which looks for spikes etc).
20 Salinity rejected because there were no background values for this profile.
21 Salinity profile rejected because over half its levels were rejected.
24 Information flag to say that a correction was applied to depths - expendable bathythermograph (XBT) profiles only.
25 Information flag to say that this is a superob - an average of multiple observations; for moored buoys only.

Meaning of the QC_FLAGS_LEVELS values

The table below describes the meaning of the bits for the QC_FLAGS_LEVELS variable, which provides detailed quality control about the individual levels of each profile. See the QC_FLAG_PROFILES section for information about how to interpret the data.

Bit Meaning if set
0 Temperature level was rejected.
1 Salinity level was rejected.
2 Temperature and salinity levels were rejected because it failed the vertical stability check.
3 Temperature and salinity levels were rejected because it failed the depth check.
8 Temperature level was rejected because it is a bathythermograph measurement shallower than 4 m or deeper than 950 m; this flag is also set if latitude and longitude are exactly 0 degrees.
9 Temperature level rejected because it was rejected by the Argo delayed mode quality control procedures.
10 Temperature level was out of a reasonable range and was set to missing data.
11 Temperature level was rejected because it was on the EN3 reject list.
12 Temperature level was rejected by the vertical check (spikes etc).
13 Temperature level was rejected because no background value was available.
14 Temperature level was rejected by the Bayesian background check performed on reported levels.
15 Temperature level was rejected by the Bayesian and buddy checks performed on standard levels.
16 Temperature level was reinstated after rejection by the Bayesian and buddy checks performed on standard levels.
21 Salinity level rejected because it was rejected by the Argo delayed mode quality control procedures.
22 Salinity was out of a reasonable range and was set to missing data.
23 Salinity level was rejected because it was on the EN3 reject list.
24 Salinity level was rejected by the vertical check (spikes etc).
25 Salinity level was rejected because no background value was available.
26 Salinity level was rejected by the Bayesian background check performed on reported levels.
27 Salinity level was rejected by the Bayesian and buddy checks performed on standard levels.
28 Salinity level was reinstated after rejection by the Bayesian and buddy checks performed on standard levels.
29 Salinity level was rejected because it failed the waterfall check.


Commercial and media enquiries

You can access the Met Office Customer Centre, any time of the day or night by phone, fax or e-mail. Trained staff will help you find the information or products that are right for you.
Contact the Met Office Customer Centre