7. Level 2 Pre-processed (L2P) Product Specification#
7.1. Overview description of the GHRSST L2P data product#
The GHRSST Level-2 Pre-processed (L2P) products are the basic building blocks from which all other GHRSST SST data products can be derived. L2P data products should ideally be made available within the GHRSST R/GTS framework to the user community in real time within 3 hours after the reception of data at the satellite.
L2P products include SST data as delivered by a data provider in their native format (swath for polar orbiting satellite), together with a number of ancillary fields that simplify interpretation and application of the SST data. The main difference between input L2 SST data file and the output GHRSST L2P data file is that additional confidence data and sensor specific error estimates for each pixel value are included and the original SST data files are reformatted into the L2P specification. No adjustments to the input L2 SST measurements are allowed but instead, sensor specific error statistics are used to provide bias error and standard deviation estimates. A user wishing to correct L2P SST data can apply these estimates to the SST values directly. Full orbit input data files may be split into ascending and descending files or smaller granules and a unique L2P output may be generated for each file. The common format of L2P products allows data users to code with the security so that as new satellite derived SST data sets are brought on-line, very minimal code changes are required to make full use of new L2P data. Time previously spent on coding different i/o routines for each satellite data set can now be spent applying the data to various applications and societal benefits instead.
The GHRSST Science Team agreed at the 6th GHRSST Science Team Meeting, Met Office, Exeter, United Kingdom, May 14th – 20th 2005, 6 mandatory fields form the core data content of a GHRSST L2P data file. These fields will be known as L2P ‘core’ (L2Pcore) fields. In addition to global attributes and geo-location and time information, GHRSST producers must provide the following L2Pcore fields within an L2P file:
Sea Surface Temperature data (
sea_surface_temperature)Time differences of SST measurements from a reference time (
sst_dtime)SST Sensor Specific Error Statistic (SSES) measurement bias estimate (
sses_bias)SSES measurement standard deviation estimate (
sses_standard_deviation)Flags specific to each L2P data set that help users interpret data (
l2p_flags)A quality level for each measurement (
quality_level)
In addition there are a number of auxiliary fields (L2Paux) that must be provided before the L2P data product is admitted into the GHRSST R/GTS:
the difference between satellite SST measurements and a defined reference climatology of SST (
dt_analysis)An estimate of surface wind speed (
wind_speed)An estimate of sea ice fraction (
sea_ice_fraction)An estimate of atmospheric aerosol (as an aerosol dynamic indicator,
aerosol_dyanamic_indicator)
When an L2P file contains all L2Pcore and L2Paux fields together, it will be called a full-L2P file. Only full L2P data files should be registered into the GHRSST R/G TS central catalogue. These distinctions will assist in the data management of the GHRSST GDS-2.2r0.
Missing L2Paux fields not provided by a producer may be added by a GHRSST distributor (DAC), if different from the producer, with prior arrangement. In this case data required the L2Paux files will be procured, checked for quality and interpolated or processed according to the GDS-2.2r0 specification by the DAC.
Optional experimental fields may be used by producers to provide additional information at their discretion. It may be necessary to use an additional netCDF coordinate variable when including experimental fields.
GDS-2.2r0 L2P data products are configured as shown in the table Table 7.1, which can be used to locate appropriate information in this document.
netCDF File Contents |
Description |
|---|---|
Coordinate variables |
Information to allow locating data on non-orthogonal grids, as defined in Section 6 |
Data record variables |
Core and auxiliary variables as defined in Section 7.2 |
Global Attributes |
A collection of required global attributes describing general characteristics of the file, as defined in section Section 5.2 |
7.2. L2P data record format specification#
The Table 7.2 provides an overview of the GHRSST L2P product pixel data record that should be created for each input L2 SST measurement contained within a L2P file. In the following sections, each variable within the L2P data file is described in detail.
Variable Name |
Description |
Units |
Storage type |
|---|---|---|---|
SST measurement values from input L2 satellite data set. |
K (kelvin) |
short |
|
The deviation in time of SST measurement from reference time |
s (second) |
short |
|
Sensor Specific Error Statistic (SSES) bias error |
K (kelvin) |
byte |
|
Sensor Specific Error Statistic (SSES) standard deviation uncertainty |
K (kelvin) |
byte |
|
The difference between input SST and a GHRSST L4 SST analysis from the previous 24 hour period |
K (kelvin) |
byte or short |
|
Closest (in time) 10 m surface wind speed from satellite or analysis |
m s-1 |
byte |
|
Time difference of |
h (hour) |
byte |
|
Source(s) of |
Code |
byte |
|
Closest (in time) sea ice fraction from satellite or analysis |
1 |
byte |
|
Time difference of |
h (hour) |
byte |
|
Source(s) of |
code |
byte |
|
Atmospheric aerosol indicator |
byte |
||
Time difference between the |
h (hour) |
byte |
|
Source(s) of |
code |
byte |
|
Data flag values |
mask of bits |
short |
|
Overall indication of L2P data quality |
enum |
byte |
|
Calculated satellite zenith angle (measured at the Earth’s surface between the satellite and the zenith) |
angular_degree |
byte or short |
|
Calculated solar zenith angle (the angle between the local zenith and the line of sight to the sun, measured at the Earth’s surface) |
degree |
byte |
|
Near contemporaneous surface solar irradiance |
W m-2 |
byte |
|
Time difference between the |
h (hour) |
byte |
|
Source(s) of |
code |
byte |
|
Optional/experimental fields defined by data provider |
7.2.1. sea_surface_temperature#
The variable sea_surface_temperature contains the native unmodified L2 SST
of the input data file. L2 SST data are not adjusted in any manner and are
identical to the input data set.
The sea_surface_temperature variable shall be included in a L2P product
with the format requirements shown in table
Table 7.3.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
short |
|
Pixel sea surface temperature value |
K (kelvin) |
short sea_surface_temperature(time, nj, ni) ;
sea_surface_temperature:_FillValue = -32768s ;
sea_surface_temperature:long_name = "sea surface subskin temperature" ;
sea_surface_temperature:standard_name = "sea_surface_subskin_temperature" ;
sea_surface_temperature:units = "K" ;
sea_surface_temperature:depth = "1 millimeter" ;
sea_surface_temperature:source = "AVHRR_METOP_C" ;
sea_surface_temperature:comment = "Temperature of the subskin of the ocean" ;
sea_surface_temperature:coverage_content_type = "physicalMeasurement" ;
sea_surface_temperature:coordinates = "lat lon" ;
sea_surface_temperature:add_offset = 273.15 ;
sea_surface_temperature:scale_factor = 0.01 ;
The standard_name attribute should be CF-1.7 or later compliant[1] as described in table Table 7.4:
GHRSST name |
CF-1.7 standard name definitions |
|---|---|
SSTint |
|
SSTskin |
|
SSTsubskin |
|
SSTfnd |
|
SSTdepth |
|
Note
for SSTdepth, the attribute depth should be used to indicate the depth for
which the SST data are valid e.g.:
sea_surface_temperature:standard_name="sea_water_temperature";
sea_surface_temperature:units = "K" ;
sea_surface_temperature:depth = "1 metre" ;
7.2.2. sst_dtime#
The deviation in time of SST measurement from reference time stored in the
netCDF coordinate variable time (defined as the start time of granule for L2P).
Minimum resolution should be one second.
The sst_dtime variable shall be included in a L2P product with the format
requirements shown in table Table 7.5.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
short |
|
Deviation from reference time stored in the coordinate variable, |
s (seconds) |
short sst_dtime(time, nj, ni) ;
sst_dtime:_FillValue = -32768s ;
sst_dtime:long_name = "time difference from reference time" ;
sst_dtime:units = "s" ;
sst_dtime:scale_factor = 1. ;
sst_dtime:add_offset = 0. ;
sst_dtime:coverage_content_type = "coordinate" ;
sst_dtime:comment = "time plus sst_dtime gives seconds after 00:00:00 UTC January 1, 1981" ;
sst_dtime:coordinates = "lat lon" ;
7.2.3. sses_bias#
Providing uncertainty estimates for each SST measurement is one of the key user requirements for GHRSST L2P SST data products. Uncertainty estimates allow users to select the accuracy level suitable for their application and to make optimum use of the SST observations (e.g. in data assimilation).
The uncertainties associated with each observation in a data stream are provided
as Sensor Specific Error Statistic (SSES). The SSES are based on
understanding the errors associated with the in-flight performance of an
individual satellite instrument for the retrieval of SST from the measured
radiances. The SSES are provided as a mean bias error and its associated
standard deviation (in variable sses_standard_deviation, see
Section 7.2.4).
There are a variety of methods for determining SSES as they depend on the specific characteristics of each satellite instrument. Consequently, the L2P provider can define their own scheme for producing SSES that is tailored to their specific dataset. However, the SSES scheme must conform to a set of agreed SSES common principles.
The SSES common principles are maintained on the GHRSST website, and have been approved by the GHRSST Science Team. The L2P provider must provide documentation that summarizes the theoretical basis of their SSES scheme, its implementation, any recommendations for users, and its conformance to the agreed SSES common principles.
The variable sses_bias is used to store SSES bias estimates and shall be
included with the L2P format requirements shown in Table 7.6. Data
producers are reminded to choose appropriate scale_factor and add_offset
attributes for their data, and to strive for scale_factor as close to 0.01 as
possible without “oversaturating” the values.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
sses_bias |
SSES bias estimate |
K (kelvin) |
byte sses_bias(time, nj, ni) ;
sses_bias:_FillValue = -128b ;
sses_bias:long_name = "SSES bias estimate" ;
sses_bias:units = "K" ;
sses_bias:comment = "Bias estimate derived using the techniques described at http://www.ghrsst.org/SSES-Description-of-schemes.html" ;
sses_bias:coverage_content_type = "qualityInformation" ;
sses_bias:coordinates = "lat lon" ;
sses_bias:add_offset = 0. ;
sses_bias:scale_factor = 0.01 ;
7.2.4. sses_standard_deviation#
Sensor Specific Error Statistic (SSES) standard deviation estimates are generated by the L2P data provider and are specific to a particular satellite instrument, and must conform to the SSES common principles. See Section 7.2.3 for the general description of SSES concept and associated variables.
The variable sses_standard_deviation shall be included with the format
requirements shown in Table 7.7.
Data producers are reminded to choose appropriate scale_factors and
add_offsets for their data, and to strive for scale_factors as close to
0.01 as possible without “oversaturating” the values.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
sses_standard_deviation |
SSES standard deviation. |
K (kelvin) |
byte sses_standard_deviation(time, nj, ni) ;
sses_standard_deviation:_FillValue = -128b ;
sses_standard_deviation:long_name = "SSES standard deviation" ;
sses_standard_deviation:units = "K" ;
sses_standard_deviation:comment = "Standard deviation estimate derived using the techniques described at http://www.ghrsst.org/SSES-Description-of-schemes.html" ;
sses_standard_deviation:coverage_content_type = "qualityInformation" ;
sses_standard_deviation:coordinates = "lat lon" ;
sses_standard_deviation:add_offset = 1. ;
sses_standard_deviation:scale_factor = 0.01 ;
7.2.5. dt_analysis#
The difference between input SST and a GHRSST L4 SST analysis from the previous 24 hour period. If storage as byte does not allow the provider to offer the full precision required for this field, storage as a short is optionally permitted though byte is preferred.
The L2P variable dt_analysis is the temperature difference between an input
L2 SST measurement and a reference SST L4 analysis data set. dt_analysis may
be used to indicate potential areas of diurnal variability or gross outliers in
the L2 input SST measurement data set by looking for large deviations from the
previous analysis SST data. Note that dt_analysis is an indicator field and
the temperature anomalies may be difficult to interpret in regions of high SST
gradients. Furthermore, interpretation requires a good understanding of the
strengths and weaknesses (e.g. space and time de-correlations) of the chosen
reference L4 analysis system.
dt_analysis shall be derived using:
Where SSTinput is the input satellite L2 measurement and L4 SST is a previous day analysis from a GHRSST L4 System selected by the data provider. The GHRSST L4 analysis chosen for a given L2P data set variable should be consistent for all L2P products as far as practically possible. If a previous analysis SSTfnd data file is not available for use in (7.1), then a mean reference SST or climatology should be used in its place as defined in Table 7.8.
Name |
Description |
Reference |
|---|---|---|
Use code from L4 analysis |
The mean SSTfnd computed for a n-1 day period. This product is computed from data provider SSTfnd data products in real time each day |
https://www.ghrsst.org/ghrsst-data-services/ghrsst-catalogue/ |
GMPE_GLOBAL |
Daily, 25 km median average SST and sea ice product created using 10 operational SST analysis products from operational centres around the world |
https://ghrsst-pp.metoffice.gov.uk/ostia-website/gmpe-monitoring.html |
The dt_analysis value shall be inserted into the dt_analysis field of
the L2P product for the pixel in question as described
Table 7.9.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte or short |
dt_analysis |
Deviation from previous day (T-1) L4 SSTfnd analysis as defined in the Table 7.8. If no analysis is available, the reference mean SST climatology should be used |
K (kelvin) |
byte dt_analysis(time, nj, ni) ;
dt_analysis:_FillValue = -128b ;
dt_analysis:long_name = "deviation from SST analysis or reference climatology" ;
dt_analysis:units = "K" ;
dt_analysis:reference = "OSTIA" ;
dt_analysis:comment = "The difference between this SST and the previous day\'s SST analysis" ;
dt_analysis:coverage_content_type = "auxiliaryInformation" ;
dt_analysis:coordinates = "lat lon" ;
dt_analysis:add_offset = 0. ;
dt_analysis:scale_factor = 0.1 ;
Note
The reference variable attribute should be used to specify the analysis or
climatology used to compute dt_analysis as shown in the example above
following the guidelines in Table 7.8.
7.2.6. wind_speed#
The L2P variable wind_speed contains a best estimate of the 10m surface
wind speed, ideally at the time of SST data acquisition (although this is
rarely possible). Wind speed measurements are required within the GDS as an
indicator of the turbulent state of the air sea interface to interpret the
relationship between satellite and subsurface SST data and assess the severity
of any skin SST temperature deviation, thermal stratification and for use in
diurnal variability adjustment schemes. At low wind speeds, especially in clear
sky conditions, stronger diurnal variability is expected leading to higher
surface layer temperature gradients and the potential for significant
de-coupling of the skin/sub-skin SST from the SST at depth.
Ideally a near contemporaneous wind speed measurement from satellite sensors should be used but this is impossible for all sensors due to the limited number of satellite wind speed sensors available. As a surrogate for a measured wind speed value, analysis product estimates (e.g., from numerical weather prediction models) may be used as an indication of the surface wind speed. The GDS specifies the following rules:
Simultaneous microwave 10m wind speed measurements obtained from the same instrument providing the SST measurement shall be used when available to set the L2P confidence data variable
wind_speed. In the absence of a simultaneous surface wind speed measurement, an analysis product estimated 10m surface wind speed shall be used to set the L2P variablewind_speed.
The difference in time expressed in hours between the time of SST measurement
and the time of wind speed data should be entered into the L2P confidence data
variable wind_speed_dtime_from_sst as described in
Section 7.2.7. In the case of an analysis field,
this should be the central (mean) time of an integrated value.
If all of the wind speeds have a single time value, as in the case of an
analysis or model that gives the wind speeds at an instant in time, then the
wind_speed_dtime_from_sst variable is not needed and instead a variable level
attribute named time_offset is used. The attribute time_offset should
store the difference in hours between the wind_speed and the reference time,
stored in the variable time.
If a single source of data is used in the L2P variable wind_speed
(recommended), the L2P variable source_of_wind_speed is not required and a
source variable attribute of wind_speed is sufficient. In that case, it
shall be a single source text string defined by the data provider using the text
string naming best practice given in Section 4.9.
If multiple sources of data are used, source information should be indicated in
the L2P variable source_of_wind_speed as defined by the data provider and as
described in detail in Section 7.2.8, and the
source variable attribute of wind_speed shall have the value
source_of_wind_speed. In addition, the units of all sources used in the file
shall be identical.
The GDS L2P variable wind_speed shall be included in L2P products
with the format requirements shown in the Table 7.10.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
wind_speed |
Surface wind speed at 10m height. Resolution should be no less than 1 m s-1 |
m s-1 |
byte wind_speed(time, nj, ni) ;
wind_speed:_FillValue = -128b ;
wind_speed:long_name = "10m wind speed" ;
wind_speed:standard_name = "wind_speed" ;
wind_speed:units = "m s-1" ;
wind_speed:height = "10 m" ;
wind_speed:time_offset = 0. ;
wind_speed:source = "WSP-ECMWF-Forecast" ;
wind_speed:comment = "These wind speeds were created by the ECMWF and represent winds at 10 metres above the sea surface. " ;
wind_speed:coordinates = "lat lon" ;
wind_speed:add_offset = 0. ;
wind_speed:scale_factor = 1. ;
A single source of wind data is shown in this example which is reported as
wind_speed:source = "ECMWF_Anaylsis_V2" the code has been defined by the data
provider using the ancillary data naming rules given in Section 4.9.
Since all of the wind speeds have the same time, the attribute time_offset is
used instead of the variable wind_speed_dtime_from_sst.
7.2.7. wind_speed_dtime_from_sst#
The variable wind_speed_dtime_from_sst reports the time difference between
wind speed data and SST measurement in hours. The variable
wind_speed_dtime_from_sst shall be included with the format requirements
shown in Table 7.11. In the
case of an analysis field, the central (mean) time of an integrated value should
be used. If all values are the same, this variable is not required.
Instead, use the variable level attribute named time_offset with the
variable wind_speed.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
This variable reports the time difference of wind speed measurement from SST measurement in hours. |
h (hour) |
byte wind_speed_dtime_from_sst(time, nj, ni) ;
wind_speed_dtime_from_sst:_FillValue = -128b ;
wind_speed_dtime_from_sst:long_name = "time difference, in hours\', of wind speed measurement from sst measurement" ;
wind_speed_dtime_from_sst:units = "h" ;
wind_speed_dtime_from_sst:scale_factor = 0.1 ;
wind_speed_dtime_from_sst:add_offset = 0. ;
wind_speed_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
wind_speed_dtime_from_sst:comment = "the hours between the wind speed measurement and the SST observation" ;
wind_speed_dtime_from_sst:coordinates = "lat lon" ;
7.2.8. source_of_wind_speed#
The source of data used to set the L2P ancillary data variable wind_speed
shall be indicated in the L2P variable source_of_wind_speed when more than
one source of wind speed data is used in the L2P product.
When only one source is used, this variable is not needed and the appropriate
text string indicating the source is placed in the source attribute of the
wind_speed variable. If the values in that single source all have the same
time, then a variable attribute time_offset set as the difference time in
hours is considered sufficient and the variable wind_speed_dtime_from_sst
is not required.
For multiple sources, the GDS-2.2r0 requires the following:
The variable in question should contain an attribute called
flag_meaningsand another one calledflag_values. Theflag_valuesattribute shall contain a comma-separated list of the numeric codes for the sources of data used whose order matches the comma-separated text strings in theflag_meaningsattribute.These text strings and numeric codes do not need to be unique across different data sets or even ancillary variables, but must be consistent within a given variable and clearly specified within each netCDF variable and its attributes. A best practice for naming the text strings in provided in
Section 4.9.instead of using a
_FillValueattribute and value for missing data, it is recommended to set missing pixel values to 0 and add the corresponding no_data meaning inflag_meaningsattribute.
The variable source_of_wind_speed shall conform to the format requirements
shown in the Table 7.12.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Sources of |
code |
byte source_of_wind_speed(time, nj, ni) ;
source_of_wind_speed:long_name = "sources of wind speed" ;
source_of_wind_speed:flag_meanings = "no_data WSP-ESA-ASCAT-V2 WSP-NCEP-Analysis-V3 WSP-ECMWF-Forecast-V6" ;
source_of_wind_speed:flag_values = 0b, 1b, 2b, 3b ;
source_of_wind_speed:coverage_content_type = "auxiliaryInformation" ;
source_of_wind_speed:comment = "This variable provides a pixel by pixel description of where the wind speeds were derived from." ;
source_of_wind_speed:coordinates = "lat lon" ;
In this example, flag_meanings and flag_values contain strings and
numeric codes provided by the data provider according to the best practices
specified in Table 7.12.
7.2.9. sea_ice_fraction#
Some SST data are contaminated in part or wholly by sea ice and the L2P variable
sea_ice_fraction is used to quantify the fraction of an area contaminated
with sea ice, ranging from 0 to 1. Some input SST data streams provide a
flag to indicate that the SST measurement is contaminated by sea ice
(e.g., passive microwave radiometers such as AMSR-E).
If an input data set pixel fractional sea ice estimate exists, this should be
used to in the L2P variable sea_ice_fraction as described in the
table Table 7.13.
Best practice suggests that one should approach the issue in the following
way. If an input data set pixel sea ice flag does not exist, and the pixel is
located in or close to a region that may be ice contaminated, a reference sea
ice data set should be used to determine the value of the L2P variable
sea_ice_fraction.
If an input data set pixel sea ice flag exists (i.e. indicating sea ice but
not the fractional amount of coverage), this should be used to set the L2P
variable sea_ice_fraction to 1.
If the SST input data set includes a sea ice flag in the data stream, bit 3 of
the L2P confidence data variable l2p_flags should be set for this pixel as
described in Section 7.2.15.
The difference in time expressed in hours between the time of SST measurement
and the time of sea ice fraction measurement should be entered into the L2P
variable sea_ice_fraction_dtime_from_sst as described in
in Section 7.2.10. In the case of an
analysis field, this should be the central (mean) time of an integrated value.
If all ice observations have a single time value, as in the case of an
analysis or model that gives the sea ice values at an instant in time, then the
sea_ice_fraction_dtime_from_sst variable is not needed and instead a
variable attribute named time_offset is used. The attribute time_offset
should store the difference in hours between the sea_ice_fraction
and the reference time, stored in the variable time.
If a single source of data is used in the L2P variable sea_ice_fraction, the
L2P variable source_of_sea_ice_fraction is not required and instead the
source variable attribute value of sea_ice_fraction is sufficient. It shall
be a single source text string defined by the data provider using the text
string naming best practice given in Section 4.9.
If multiple sources of data are used, source information should be indicated in
the L2P variable source_of_sea_ice_fraction as defined by the data provider
and as described in detail in Section 7.2.11, and
the source variable attribute of sea_ice_fraction shall have the value
source_of_sea_ice_fraction. In addition, the units of all sources used in the
file shall be identical.
The variable attribute sea_ice_treatment shall specify how
the sea ice information has been treated by the data provider. Valid options
are: “Use unmodified (one source)”, “use unmodified (multiple ice sources)”,
or “modified using onboard sensors”.
The variable sea_ice_fraction will be included with the format requirements
shown in Table 7.13.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
fractional of sea ice contamination in a given pixel. Ranges from 0 to 1. |
1 (unitless) |
byte sea_ice_fraction(time, nj, ni) ;
sea_ice_fraction:_FillValue = -128b ;
sea_ice_fraction:long_name = "sea ice fraction" ;
sea_ice_fraction:standard_name = "sea_ice_area_fraction" ;
sea_ice_fraction:units = "1" ;
sea_ice_fraction:time_offset = 3. ;
sea_ice_fraction:source = "ICE-OSISAF" ;
sea_ice_fraction:comment = "Fractional sea ice cover from OSISAF ice product" ;
sea_ice_fraction:coverage_content_type = "auxiliaryInformation" ;
sea_ice_fraction:coordinates = "lat lon" ;
sea_ice_fraction:add_offset = 0. ;
sea_ice_fraction:scale_factor = 0.01 ;
A single source of sea ice fraction data is shown in this example which is
reported as sea_ice_fraction:source = "REMSS_AMSRE_V5" following the
ancillary data naming conventions specified in Section 4.9. Since
all of ice values have the same time, the attribute time_offset is used
instead of the variable sea_ice_fraction_dtime_from_sst.
7.2.10. sea_ice_fraction_dtime_from_sst#
The variable sea_ice_fraction_dtime_from_sst reports the time difference
between sea ice fraction data from SST measurement in hours. This variable is
mandatory when multiple sources of sea_ice_fraction are used.
If only one source is used, simply set a variable attribute time_offset in
sea_ice_fraction variable, as the difference time in hours.
The variable sea_ice_fraction_dtime_from_sst shall be included with the format
requirements shown Table 7.14.
In the case of an analysis field, this should be the central (mean) time of an
integrated value. If all of the values are the same, this variable is not
required. Instead, use the variable level attribute named time_offset with
the variable sea_ice_fraction. The attribute time_offset should store
the difference in hours between the sea ice analysis time and the reference
time, stored in the variable time.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
This variable reports the time difference between sea ice fraction data from SST measurement in hours. |
hour |
byte sea_ice_fraction_dtime_from_sst(time, nj, ni) ;
sea_ice_fraction_dtime_from_sst:_FillValue = -128b ;
sea_ice_fraction_dtime_from_sst:long_name = "time difference, in hours, of sea ice fraction measurement from sst measurement" ;
sea_ice_fraction_dtime_from_sst:units = "h" ;
sea_ice_fraction_dtime_from_sst:scale_factor = 0.1 ;
sea_ice_fraction_dtime_from_sst:add_offset = 0. ;
sea_ice_fraction_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
sea_ice_fraction_dtime_from_sst:comment = "the hours between the sea ice fraction measurement and the SST observation" ;
sea_ice_fraction_dtime_from_sst:coordinates = "lat lon" ;
This variable is mandatory when multiple sources for sea_ice_fraction are
used. If only one source is used, instead simply set a variable attribute
sea_ice_fraction:sea_ice_fraction_dtime_from_sst = \<difference time in hours\>.
7.2.11. source_of_sea_ice_fraction#
The source of data used to set the L2P ancillary data variable
sea_ice_fraction shall be indicated in the L2P variable
source_of_sea_ice_fraction when more than one source of sea ice fraction data
is used in the L2P product.
When only one source is used, this variable is not needed and the appropriate
text string indicating the source is placed in the source attribute of the
sea_ice_fraction variable.
For multiple sources, the GDS-2.2r0 requires the following:
The variable in question should contain an attribute called
flag_meaningsand another one calledflag_values. Theflag_valuesattribute shall contain a comma-separated list of the numeric codes for the sources of data used whose order matches the comma-separated text strings in theflag_meaningsattribute.These text strings and numeric codes do not need to be unique across different data sets or even ancillary variables, but must be consistent within a given variable and clearly specified within each netCDF variable and its attributes. A best practice for naming the text strings in provided in Section 4.9.
Instead of using a
_FillValueattribute and value for missing data, it is recommended to set missing pixel values to 0 and add the corresponding no_data meaning inflag_meaningsattribute.
The variable source_of_sea_ice_fraction shall conform to the format requirements
shown in Table 7.15.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Source(s) of sea ice values |
None |
byte source_of_sea_ice_fraction(time, nj, ni) ;
source_of_sea_ice_fraction:long_name = "sources of sea ice fraction" ;
source_of_sea_ice_fraction:flag_meanings = "no_data CE-NSIDC-AMSRE-V3 ICE-ECMWF-Forecast-V3" ;
source_of_sea_ice_fraction:flag_values = 0b, 1b, 2b ;
source_of_sea_ice_fraction:coverage_content_type = "auxiliaryInformation" ;
source_of_sea_ice_fraction:comment = "This variable provides a pixel by pixel description of where the sea ice fraction were derived from." ;
source_of_sea_ice_fraction:coordinates = "lat lon" ;
In this example, flag_meanings and flag_values contain strings and
numeric codes provided by the data provider according to the best practices
specified in Section 4.9.
7.2.12. aerosol_dynamic_indicator#
Mandatory (only for infrared instruments).
The L2P variable aerosol_dynamic_indicator contains an indicator of potential
atmospheric aerosol contamination of infrared satellite SST data.
Infrared-absorbing atmospheric aerosols are a major source of error in
satellite-derived sea surface temperature retrievals. Atmospheric aerosol, such
as Saharan dust outbreaks, volcanic eruptions or from coastal mega cities causes
errors in the atmospheric correction of top of the atmosphere radiances when
retrieving SST from infrared and visible band data sets. A systematic bias in
the tropical North Atlantic Ocean and Arabian Sea due to desert dust outflows in
those regions is apparent.
An aerosol indicator (e.g., derived from satellite measurements or models)
value is assigned to the L2P variable aerosol_dynamic_indicator for each
corresponding infrared retrieved SST measurement pixel using data chosen
by the data provider to indicate aerosol contamination. The aerosol
indicator data nearest in space and time to the input pixel SST value
should be used. In the case of microwave SST measurements there is no
requirement to include the aerosol_dynamic_indicator L2P variable as
microwave SST retrievals are not affected by atmospheric aerosols. However,
microwave SST data providers may include aerosol_dynamic_indicator in an
L2P product.
If a single source of data is used in the L2P variable
aerosol_dynamic_indicator, the L2P variable source_of_adi is not
required and instead the source variable attribute value in
aerosol_dynamic_indicator is sufficient. It shall be a single source
text string defined by the data provider using the text string naming best
practice given in Section 4.9. If all the times have the same
value, then using a variable attribute time_offset with variable
aerosol_dynamic_indicator is sufficient and the variable
adi_dtime_from_sst is not required.
If multiple sources of ADI information are used then, the source
variable attribute of aerosol_dynamic_indicator variable shall have the
value source_of_adi. In addition, the units of all sources used in the
file shall be identical.
The difference in time expressed in hours between the time of SST measurement
and the time of aerosol indicator data should be entered into the L2P variable
adi_dtime_from_sst as described in Section 7.2.13. In
the case of an analysis field, this should be the central (mean) time of an
integrated value.
If the variable aerosol_dynamic_indicator is provided in an L2P product,
it shall be included with the format requirements shown in the
Table 7.16.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Indicator of potential aerosol contamination of infrared satellite data |
Provider defined |
byte aerosol_dynamic_indicator(time, nj, ni) ;
aerosol_dynamic_indicator:_FillValue = -128b ;
aerosol_dynamic_indicator:long_name = "aerosol dynamic indicator" ;
aerosol_dynamic_indicator:units = "1" ;
aerosol_dynamic_indicator:source = "ADI-NAVO-SDI-V2" ;
aerosol_dynamic_indicator:comment = "Estimate of the potential for aerosol contamination based on the NAVO SDI_V2 product, in counts" ;
aerosol_dynamic_indicator:coverage_content_type = "auxiliaryInformation" ;
aerosol_dynamic_indicator:time_offset = 3. ;
aerosol_dynamic_indicator:coordinates = "lat lon" ;
aerosol_dynamic_indicator:add_offset = 0. ;
aerosol_dynamic_indicator:scale_factor = 0.1 ;
A single source of aerosol_dynamic_indicator has been used in this example
indicated using the aerosol_dynamic_indicator:source and are defined by the
data provider using the ancillary data naming best practice given in
Section 4.9. Since all of the values have the same time, the
attribute time_offset is used instead of the variable
aerosol_sst_dtime_from_sst to indicate the offset in hours from the
reference variable sst_dtime.
7.2.13. adi_dtime_from_sst#
The variable adi_dtime_from_sst reports the time difference between aerosol
indicator data from input L2 SST measurement in hours. The variable
adi_dtime_from_sst shall be included in L2P products with the format
requirements shown in the Table 7.17. In
the case of an analysis field, this should be the central (mean) time of an
integrated value. If all of the values are the same, this variable is not
required. Instead, use the variable level attribute named time_offset with
the variable aerosol_dynamic_indicator.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Time difference of aerosol dynamic indicator data from SST measurement in hours |
hour |
byte sea_ice_fraction_dtime_from_sst(time, nj, ni) ;
sea_ice_fraction_dtime_from_sst:_FillValue = -128b ;
sea_ice_fraction_dtime_from_sst:long_name = "time difference, in hours, of sea ice fraction measurement from sst measurement" ;
sea_ice_fraction_dtime_from_sst:units = "h" ;
sea_ice_fraction_dtime_from_sst:scale_factor = 0.1 ;
sea_ice_fraction_dtime_from_sst:add_offset = 0. ;
sea_ice_fraction_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
sea_ice_fraction_dtime_from_sst:comment = "the hours between the sea ice fraction measurement and the SST observation" ;
sea_ice_fraction_dtime_from_sst:coordinates = "lat lon" ;
7.2.14. source_of_adi#
The source of data used to set the L2P ancillary data variable
aerosol_dynamic_indicator shall be indicated in the L2P variable
source_of_adi when more than one source of SSI data is used in the L2P
product.
When only one source is used, this variable is not needed and the
appropriate text string indicating the source is placed in the sources attribute
of the aerosol_dynamic_indicator variable.
For multiple sources, The variable in question should contain an attribute
called flag_meanings and another one called flag_values. The
flag_values attribute shall contain a comma-separated list of the numeric
codes for the sources of data used whose order matches the space-separated text
strings in the flag_meanings attribute. These text strings and numeric
codes do not need to be unique across different data sets or even ancillary
variables, but must be consistent within a given variable and clearly
specified within each netCDF variable and its attributes. A best practice
for naming the text strings in provided in Section 4.9.
Instead of using a _FillValue attribute and value for missing data, it is
recommended to set missing pixel values to 0 and add the corresponding
no_data meaning in flag_meanings attribute.
The variable source_of_adi shall conform to the with the format requirements
shown in the Table 7.18.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Sources of aerosol dynamic indicator values |
None |
byte source_of_adi(time, nj, ni) ;
source_of_adi:_FillValue = -128b ;
source_of_adi:long_name = "sources of aerosol dynamic indicator" ;
source_of_adi:flag_meanings = "no_data AOD-NAAPS-ADI SDI-OSISAF-ADI" ;
source_of_adi:flag_values = 0b, 1b, 2b ;
source_of_adi:comment = "This variable provides a pixel by pixel description of where aerosol optical depth were derived from" ;
source_of_adi:coverage_content_type = "auxiliaryInformation" ;
source_of_adi:coordinates = "lat lon" ;
In this example, flag_meanings and flag_values contain strings and numeric
codes provided by the data provider according to the best practices specified
in Section 4.9.
7.2.15. l2p_flags#
Mandatory.
The GDS-2.2r0 L2P variable l2p_flags is used to
Specify the type of input SST data (either infrared or passive microwave instrument derived),
Pass through native flags from the input L2 SST data set and
Record any additional information considered important for the user of an L2P data set.
The L2P variable l2p_flags holds Boolean (single bit) codes detailed in its
flag_meanings and flag_masks attributes, and split into two sections:
The first 6 bits of the L2P variable
l2p_flagsare generic flags that are common to all L2P data files as defined in the Table 7.19Bits 6-15 are defined by the L2P data provider and are specific to each L2 input data stream
Bit |
Common flags |
|---|---|
0 |
Set if passive microwave data (not set is assumed to be infrared) |
1 |
Set if over land (not set is assumed to be ocean) |
2 |
Set if pixel is over ice |
3 |
Set if pixel is over a lake (if known) |
4 |
Set if pixel is over a river (if known) |
5 |
Reserved for future data |
6-15 |
Defined by L2 data provider |
The flag_meanings attribute shall contain a space-separated list of
(string with no space) descriptions for each distinct flag value. For
descriptions containing multiple words, the words shall be linked
by underscores.
The flag_masks attribute shall contain a comma-separated list of (numeric)
mask values that isolate the bit or bits that encode each flag value, whose
order matches that of the flag_meanings values.
It is recommended not to use _FillValue attribute as it is prone to
misinterpretation of the bit mask.
Bit 0 of the L2P
l2p_flagsis used to record if an input pixel SST is derived from an infrared satellite sensor or a passive microwave sensor. If an input pixel is derived from a passive microwave sensor, bit 0 of the L2Pl2p_flagsvariable should be set to 1. By not setting this flag the pixel is assumed to be from an infrared sensor.Bit 1 of the L2P
l2p_flagsvariable is used to record if an input pixel is over land or ocean surfaces. If an input pixel is classified as land covered bit 1 of the L2Pl2p_flagsvariable should be set to equal 1. By not setting this flag the pixel is assumed to be classified as over ocean.Bit 2 of the L2P
l2p_flagsvariable is used to record if an input pixel records ice contamination. If an input pixel is classified as ice contaminated bit 2 of the L2Pl2p_flagsvariable should be set to 1.Bit 3 of the L2P
l2p_flagsvariable is used to record if an input pixel contains any part of a lake, as defined by the GHRSST definition of lakes (mask). If an input pixel contains any part of a lake, as defined by the GHRSST definition of lakes (mask), bit 3 of the L2Pl2p_flagsvariable should be set to 1.Bit 4 of the L2P
l2p_flagsvariable is optionally used to record if an input pixel contains any part of a river, as defined by the GHRSST definition of rivers (mask). If an input pixel contains any part of a river, as defined by the GHRSST definition of rivers (mask), bit 4 of the L2Pl2p_flagsvariable should be set to 1.
Flags or other information provided with the input L2 SST data should be defined
and assigned to the l2p_flags variable using bits 6-15 of the L2P variable
l2p_flags. It is recommended to use single bits for any information, no
combination of multiple bits. If that is not possible, then an additional
experimental byte field should be used instead. Definitions for bits 6-15, if
used, should be given using the variable comment attribute.
The L2P variable l2p_flags shall be included in GDS-2.2r0 L2P
data files with the format requirements shown in Table 7.20.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
short |
|
The variable l2p_flags is used to |
None |
short l2p_flags(time, nj, ni) ;
l2p_flags:long_name = "L2P flags" ;
l2p_flags:flag_meanings = "microwave land ice lake" ;
l2p_flags:flag_masks = 1s, 2s, 4s, 8s ;
l2p_flags:comment = "These flags are important to properly use the data." ;
l2p_flags:coverage_content_type = "qualityInformation" ;
l2p_flags:coordinates = "lat lon" ;
7.2.16. quality_level#
Mandatory.
The L2P variable quality_level provides an indicator of the overall quality
of an SST measurement in an L2P file. The GDS requires the following:
The L2P variable quality_level shall use an incremental scale from 0 to
5 to provide the user with an indication of the quality of the L2P SST data,
reflecting the CEOS QA4EO (Quality Indicator) guidelines. The value 0
shall be used to indicate missing data and the value 1 shall be used to
indicate invalid data (e.g. cloud, rain, too close to land - under no conditions
use this data). The remaining values from 2-5 are set at the discretion of
the L2P provider with the proviso that the value 2 shall be used to
indicate the worst quality of usable data and the value 5 shall be used to
indicate the best quality usable data. The L2P provider is required to provide
a description of the quality levels provided as part of the product
documentation.
The L2P variable quality_level reflects the quality of SST data from a
single sensor and does not provide an indication of the relative quality
between sensors.
The L2P variable quality_level shall be included with the format
requirements shown in the Table 7.21.
We recommend not to use the _FillValue attribute but rather to use the
value 0 to fill in missing data pixels.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Overall indicator of SST measurement quality |
n/a |
byte quality_level(time, nj, ni) ;
quality_level:_FillValue = -128b ;
quality_level:long_name = "quality level of SST pixel" ;
quality_level:flag_meanings = "no_data bad_data worst_quality low_quality acceptable_quality best_quality" ;
quality_level:flag_values = 0b, 1b, 2b, 3b, 4b, 5b ;
quality_level:comment = "These are the overall quality indicators and are used for all GHRSST SSTs" ;
quality_level:coverage_content_type = "qualityInformation" ;
quality_level:coordinates = "lat lon" ;
7.2.17. satellite_zenith_angle#
Optional.
Sea surface temperature retrievals from satellite instruments degrade as the
sensor zenith angle increases. Measurements made with high viewing angles
relative to nadir appear to be considerably colder than they are in reality. The
L2P variable satellite_zenith_angle contains the calculated satellite zenith
angle (measured at the Earth’s surface between the satellite and the zenith) for
the input L2 SST based on the satellite geometry at the time of SST data
acquisition.
The GDS L2P variable satellite_zenith_angle is an optional field that may be
provided by a data provider. The satellite zenith angle for each input pixel
measurement should be recorded in the L2P variable satellite_zenith_angle
having a range of 0° to +90°.
If the L2P variable satellite_zenith_angle is included in a L2P data product
it shall conform to the format requirements shown in
Table 7.22.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte or short |
|
Calculated satellite zenith angle (measured at the Earth’s surface between the satellite and the local zenith) for the input L2 SST based on the satellite geometry at the time of SST data acquisition. |
angular_degree |
byte satellite_zenith_angle(time, nj, ni) ;
satellite_zenith_angle:_FillValue = -128b ;
satellite_zenith_angle:long_name = "satellite zenith angle" ;
satellite_zenith_angle:units = "angular_degree" ;
satellite_zenith_angle:comment = "The satellite zenith angle at the time of the SST observations." ;
satellite_zenith_angle:coverage_content_type = "auxiliaryInformation" ;
satellite_zenith_angle:standard_name = "sensor_zenith_angle" ;
satellite_zenith_angle:coordinates = "lat lon" ;
satellite_zenith_angle:add_offset = 0. ;
satellite_zenith_angle:scale_factor = 1. ;
7.2.18. solar_zenith_angle#
Optional.
The L2P variable solar_zenith_angle contains the calculated solar zenith
angle (the angle between the local zenith and the line of sight to the sun,
measured at the Earth’s surface) for the input L2 SST based on the satellite
geometry at the time of SST data acquisition. Solar zenith angle is a function
of time, day number and latitude.
The GDS L2P variable solar_zenith_angle is an optional field that may be
provided by a data provider. The solar zenith angle for each input pixel
measurement should be recorded in the L2P variable solar_zenith_angle having
a range of 0° to 180°. If the L2P variable solar_zenith_angle is included in
a L2P data product it shall conform to the format requirements shown in
Table 7.23.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte or short |
|
Calculated solar zenith angle (measured at the Earth’s surface between the sun and the local zenith) for the input SST based on the solar geometry at the time of SST data acquisition. |
angular_degree |
byte solar_zenith_angle(time, nj, ni) ;
solar_zenith_angle:_FillValue = -128b ;
solar_zenith_angle:long_name = "solar zenith angle" ;
solar_zenith_angle:units = "angular_degree" ;
solar_zenith_angle:comment = "The solar zenith angle at the time of the SST observations." ;
solar_zenith_angle:coverage_content_type = "auxiliaryInformation" ;
solar_zenith_angle:standard_name = "solar_zenith_angle" ;
solar_zenith_angle:coordinates = "lat lon" ;
solar_zenith_angle:add_offset = 90. ;
solar_zenith_angle:scale_factor = 1. ;
7.2.19. surface_solar_irradiance#
Optional.
Surface Solar Irradiance (SSI) data were originally required within the GDS 1.6 to assess the magnitude and variability of significant diurnal SST variations, for use in diurnal variability correction schemes, for use in L4 SST analysis procedures and to interpret the relationship between satellite and in situ SST data. In the GDS-2.2r0, it is an optional variable. Ideally a near contemporaneous SSI measurement from satellite sensors should be used but this is impossible for all areas due to the limited number of geostationary satellite sensors available. As a surrogate for a measured SSI value, analysis estimates may be used.
Surface solar Irradiance (SSI) data may be assigned to each L2P SST measurement
pixel using the variable surface_solar_irradiance.
An integrated down-welling SSI measurement (e.g., derived from satellite
measurements) should be assigned to each SST pixel value using the
surface_solar_irradiance L2P variable. The SSI measurement nearest in space
and time before the input pixel SST value should be used. If no SSI measurement
is available, an integrated SSI value derived from an analysis system nearest in
space and time to the SST measurement should be used to set the value of
surface_solar_irradiance.
The difference in time expressed in hours between the time of SST measurement
and the time of surface solar irradiance data should be entered into the L2P
confidence data variable ssi_dtime_from_sst. In the case of an analysis
field, this should be the central (mean) time of an integrated value. If all of
the values have the same time, the attribute time_offset is used instead of
the variable ssi_dtime_fraction_dtime_from_sst. The attribute time_offset
should store the difference in hours between the surface_solar_irradiance
and the reference time, stored in the variable time.
If a single source of data is used in the L2P variable
surface_solar_irradiance, the L2P variable source_of_ssi is not required
and instead the surface_solar_irradiance:source attribute value is sufficient.
It shall be a single source text string defined by the data provider using the
text string naming best practice given in Section 4.9.
If multiple sources of data are used, source information should be indicated in
the L2P variable source_of_ssi as defined by the data provider and as
described in detail in Table 7.24. Then,
the surface_solar_irradiance:source attribute shall have the value
source_of_ssi.
The L2P variable surface_solar_irradiance may be included by a data provider
with the format requirements shown in Table 7.24.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Near contemporaneous integrated Surface Solar Irradiance (SSI) data. |
\(W m^{-2}\) |
byte surface_solar_irradiance(time, nj, ni) ;
surface_solar_irradiance:long_name = "surface solar irradiance" ;
surface_solar_irradiance:standard_name = "surface_downwelling_spherical_irradiance_in_sea_water" ;
surface_solar_irradiance:units = "W m-2" ;
surface_solar_irradiance:coverage_content_type = "auxiliaryInformation" ;
surface_solar_irradiance:comment = "The surface solar irradiance as close to the SST observation times as possible" ;
surface_solar_irradiance:scale_factor = 1.36 ;
surface_solar_irradiance:add_offset = 127. ;
surface_solar_irradiance:source = "SSI-MSG_SEVIRI-V1" ;
surface_solar_irradiance:time_offset = 2. ;
surface_solar_irradiance:coordinates = "lat lon" ;
A single source of SSI data is shown in this example which is reported as
surface_solar_irradiance:source = "SSI-MSG_SEVIRI-V1" The text string has been
defined by the data provider using the text string naming best practice given
in Section 4.9. Since all of the SSI values have the same time, the
attribute time_offset is used instead of the variable ssi_dtime_from_sst.
7.2.20. ssi_dtime_from_sst#
Optional (Mandatory only if multiple observation time for
surface_solar_irradiance are provided).
The variable ssi_dtime_from_sst reports the time difference between SSI data
from SST measurement in hours. The variable ssi_dtime_from_sst shall be
included with the format requirements shown in Table 7.25.
In the case of an analysis field, the central (mean) time of an integrated value should be used.
If all of the values are the same, this variable is not required. Instead, use
the variable level attribute named time_offset with the variable
surface_solar_irradiance.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
This variable reports the time difference between SSI data from SST measurement in hours |
hour |
byte ssi_dtime_from_sst(time, nj, ni) ;
ssi_dtime_from_sst:_FillValue = -128b ;
ssi_dtime_from_sst:long_name = "time difference, in hours, of surface solar irradiance measurement from sst measurement" ;
ssi_dtime_from_sst:units = "h" ;
ssi_dtime_from_sst:scale_factor = 0.1 ;
ssi_dtime_from_sst:add_offset = 0. ;
ssi_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
ssi_dtime_from_sst:comment = "the hours between the surface solar irradiance measurement and the SST observation" ;
ssi_dtime_from_sst:coordinates = "lat lon" ;
7.2.21. source_of_ssi#
Optional (Mandatory only if multiple sources for surface_solar_irradiance
are provided).
The source of data used to set the L2P ancillary data variable
surface_solar_irradiance shall be indicated in the L2P variable source_of_ssi
when more than one source of SSI data is used in the L2P product. When only one
source is used, this variable is not needed and the appropriate text string
indicating the source is placed in the source attribute of the
surface_solar_irradiance variable.
For multiple sources, the variable source_of_ssi should contain an attribute
called flag_meanings and another one called flag_values. The flag_values
attribute shall contain a comma-separated list of the numeric codes for the
sources of data used whose order matches the space-separated text strings in
the flag_meanings attribute.
These text strings and numeric codes do not need to be unique across different data sets or even ancillary variables, but must be consistent within a given variable and clearly specified within each netCDF variable and its attributes. A best practice for naming the text strings in provided in Section 4.9.
Instead of using a _FillValue attribute and value for missing data, it is
recommended to set missing pixel values to 0 and add the corresponding
no_data meaning in flag_meanings attribute.
The variable source_of_ssi shall conform to the format requirements shown
in the Table 7.26.
Storage type |
Name |
Description |
Unit |
|---|---|---|---|
byte |
|
Sources of surface solar irradiance values |
code |
byte source_of_ssi(time, nj, ni) ;
source_of_ssi:long_name = "sources of surface solar irradiance" ;
source_of_ssi:flag_meanings = "no_data SSI-MSG_SEVIRI-V1 SSI-NOAA-GOES_E-V1 SSI-NOAA-GOES_W-V1 SSI-ECMWF-V1 SSI-NCEP-V1 SSI-NAAPS-V1 spare" ;
source_of_ssi:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b ;
source_of_ssi:coverage_content_type = "auxiliaryInformation" ;
source_of_ssi:comment = "This variable provides a pixel by pixel description of where the surface solar irradiances were derived from." ;
source_of_ssi:coordinates = "lat lon" ;
In this example, flag_meanings and flag_values contain code data provided
by the data provider according to the best practices specified
in Section 4.9. An example of these codes is given in the
Table 7.27.
Numeric Code |
Text String |
Sources of surface solar irradiance Description |
|---|---|---|
0 |
no_data |
No surface solar irradiance set |
1 |
SSI-MSG_SEVIRI-V1 |
SSI from Meteosat Second Generation SEVIRI instrument (EUMETSAT OSI-SAF |
2 |
SSI-NOAA-GOES_E-V1 |
GOES_E SSI data from NOAA |
3 |
SSI-NOAA-GOES_W-V1 |
GOES_W SSI data from NOAA |
4 |
SSI-ECMWF-V1 |
SSI data from European Centre for Medium Range Weather Forecasting |
5 |
SSI-NCEP-V1 |
SSI data from NOAA’s National Center for Environmental Prediction |
6 |
SSI-NAVY-NAAPS-V1 |
SSI data from the US Navy Atmospheric aerosol Prediction system |
7 |
Spare to be defined as required |
7.2.22. Optional experimental L2P variables included by data provider#
Flexibility of L2P product content is provided through the netCDF API, which allows fully self-describing fields and additional L2P variables may be included by L2P data providers if they are considered relevant for L2P users. The GDS-2.2r0 also permits the inclusion of R&D variables (e.g. channel radiance data sets, estimates of Chlorophyll A, fields that facilitate flagging of diurnal variability, etc.) and 32 bytes per pixel are available in total for optional/experimental variables in any combination (i.e., variables can be defined as 32 x byte, 16 x short, 3 x int + 4 x byte, etc). The use of optional/experimental variables provides a limited amount of flexibility within the GDS-2.2r0 for regional user requirements while maintaining an overall upper limit on GDS-2.2r0 L2P products for data management groups and archive scaling. In exceptional cases a waiver on the 32 byte ceiling can be requested to extend up to 64 bytes per pixel.
The GDS-2.2r0 issues the following guidance on the inclusion of optional or experimental variables within L2P data products:
The sum total of all experimental variables shall not increase L2P record size by more than 32 bytes per SST pixel. A waiver can be requested for higher amounts up to 64 bytes.
CF-1.7 or later compliance should be maintained for all optional/experimental variables. Where available, a standard_name attribute should be used.
It is permitted to use a provider defined coordinate variable associated with experimental fields but this shall be documented in data provider documentation.
Time difference data (dtime values) should be provided for variables when appropriate.
The source of data should be indicated: in the single source case as a variable attribute; as a dedicated variable when mixed data sources are present.
Use of experimental variables requires clear documentation by the GHRSST producer. They shall provide adequate documentation that describes each variable following the CDL examples provided in this document.
The variable attribute
commentshall be used to provide a URL link to a full description of each data producer defined variable included in the L2P product.Experimental L2P variables if present in an L2P product will be included with the minimum format requirements shown in Table 7.28
Additional global variables may be declared within the L2P product.
Storage type definition |
Variable name definition |
Description |
Unit |
|---|---|---|---|
byte |
Provide a variable name in lower case using underscore separators e.g. |
Provide a description of |
Units of |
byte my_variable(time, nj, ni) ;
my_variable:_FillValue = -128b ;
my_variable:long_name = "estimated diurnal variability" ;
my_variable:standard_name = "<use_a_CF_standard_name_if_available>" ;
my_variable:units = "K" ;
my_variable:source = "MY-SOURCES-V1" ;
my_variable:scale_factor = 1. ;
my_variable:add_offset = 0. ;
my_variable:coverage_content_type = "auxiliaryInformation" ;
my_variable:comment = "This field is fully documented at http://www.mysite.com/my_variable-description.html" ;
my_variable:coordinates = "lat lon" ;
7.3. CDL example L2P dataset#
The following CDL has been generated for a L2P dataset by OSI SAF derived from the AVHRR sensor on Metop-C platform (https://doi.org/10.15770/EUM_SAF_OSI_NRT_2013). It includes a number of optional and experimental variables.
netcdf l2p_full_example {
dimensions:
time = UNLIMITED ; // (1 currently)
nj = 1080 ;
ni = 2048 ;
variables:
int time(time) ;
time:long_name = "reference time of sst file" ;
time:standard_name = "time" ;
time:axis = "T" ;
time:comment = "includes leap seconds since 1981" ;
time:coordinates = "lat lon" ;
time:units = "seconds since 1981-01-01" ;
time:calendar = "proleptic_gregorian" ;
float lat(nj, ni) ;
lat:long_name = "latitude" ;
lat:standard_name = "latitude" ;
lat:units = "degrees_north" ;
lat:valid_min = -90.f ;
lat:valid_max = 90.f ;
lat:comment = "geographical coordinates, WGS84 projection" ;
lat:coverage_content_type = "coordinate" ;
lat:coordinates = "lat lon" ;
float lon(nj, ni) ;
lon:long_name = "longitude" ;
lon:standard_name = "longitude" ;
lon:units = "degrees_east" ;
lon:valid_min = -180.f ;
lon:valid_max = 180.f ;
lon:comment = "geographical coordinates, WGS84 projection" ;
lon:coverage_content_type = "coordinate" ;
lon:coordinates = "lat lon" ;
short sea_surface_temperature(time, nj, ni) ;
sea_surface_temperature:_FillValue = -32768s ;
sea_surface_temperature:long_name = "sea surface subskin temperature" ;
sea_surface_temperature:standard_name = "sea_surface_subskin_temperature" ;
sea_surface_temperature:units = "K" ;
sea_surface_temperature:depth = "1 millimeter" ;
sea_surface_temperature:source = "AVHRR_METOP_C" ;
sea_surface_temperature:comment = "Temperature of the subskin of the ocean" ;
sea_surface_temperature:coverage_content_type = "physicalMeasurement" ;
sea_surface_temperature:coordinates = "lat lon" ;
sea_surface_temperature:add_offset = 273.15 ;
sea_surface_temperature:scale_factor = 0.01 ;
short sst_dtime(time, nj, ni) ;
sst_dtime:_FillValue = -32768s ;
sst_dtime:long_name = "time difference from reference time" ;
sst_dtime:units = "s" ;
sst_dtime:scale_factor = 1. ;
sst_dtime:add_offset = 0. ;
sst_dtime:coverage_content_type = "coordinate" ;
sst_dtime:comment = "time plus sst_dtime gives seconds after 00:00:00 UTC January 1, 1981" ;
sst_dtime:coordinates = "lat lon" ;
byte sses_bias(time, nj, ni) ;
sses_bias:_FillValue = -128b ;
sses_bias:long_name = "SSES bias estimate" ;
sses_bias:units = "K" ;
sses_bias:comment = "Bias estimate derived using the techniques described at http://www.ghrsst.org/SSES-Description-of-schemes.html" ;
sses_bias:coverage_content_type = "qualityInformation" ;
sses_bias:coordinates = "lat lon" ;
sses_bias:add_offset = 0. ;
sses_bias:scale_factor = 0.01 ;
byte sses_standard_deviation(time, nj, ni) ;
sses_standard_deviation:_FillValue = -128b ;
sses_standard_deviation:long_name = "SSES standard deviation" ;
sses_standard_deviation:units = "K" ;
sses_standard_deviation:comment = "Standard deviation estimate derived using the techniques described at http://www.ghrsst.org/SSES-Description-of-schemes.html" ;
sses_standard_deviation:coverage_content_type = "qualityInformation" ;
sses_standard_deviation:coordinates = "lat lon" ;
sses_standard_deviation:add_offset = 1. ;
sses_standard_deviation:scale_factor = 0.01 ;
byte dt_analysis(time, nj, ni) ;
dt_analysis:_FillValue = -128b ;
dt_analysis:long_name = "deviation from SST analysis or reference climatology" ;
dt_analysis:units = "K" ;
dt_analysis:reference = "OSTIA" ;
dt_analysis:comment = "The difference between this SST and the previous day\'s SST analysis" ;
dt_analysis:coverage_content_type = "auxiliaryInformation" ;
dt_analysis:coordinates = "lat lon" ;
dt_analysis:add_offset = 0. ;
dt_analysis:scale_factor = 0.1 ;
byte wind_speed(time, nj, ni) ;
wind_speed:_FillValue = -128b ;
wind_speed:long_name = "10m wind speed" ;
wind_speed:standard_name = "wind_speed" ;
wind_speed:units = "m s-1" ;
wind_speed:height = "10 m" ;
wind_speed:time_offset = 0. ;
wind_speed:source = "WSP-ECMWF-Forecast" ;
wind_speed:comment = "These wind speeds were created by the ECMWF and represent winds at 10 metres above the sea surface. " ;
wind_speed:coordinates = "lat lon" ;
wind_speed:add_offset = 0. ;
wind_speed:scale_factor = 1. ;
byte sea_ice_fraction(time, nj, ni) ;
sea_ice_fraction:_FillValue = -128b ;
sea_ice_fraction:long_name = "sea ice fraction" ;
sea_ice_fraction:standard_name = "sea_ice_area_fraction" ;
sea_ice_fraction:units = "1" ;
sea_ice_fraction:time_offset = 3. ;
sea_ice_fraction:source = "ICE-OSISAF" ;
sea_ice_fraction:comment = "Fractional sea ice cover from OSISAF ice product" ;
sea_ice_fraction:coverage_content_type = "auxiliaryInformation" ;
sea_ice_fraction:coordinates = "lat lon" ;
sea_ice_fraction:add_offset = 0. ;
sea_ice_fraction:scale_factor = 0.01 ;
byte aerosol_dynamic_indicator(time, nj, ni) ;
aerosol_dynamic_indicator:_FillValue = -128b ;
aerosol_dynamic_indicator:long_name = "aerosol dynamic indicator" ;
aerosol_dynamic_indicator:units = "1" ;
aerosol_dynamic_indicator:source = "ADI-NAVO-SDI-V2" ;
aerosol_dynamic_indicator:comment = "Estimate of the potential for aerosol contamination based on the NAVO SDI_V2 product, in counts" ;
aerosol_dynamic_indicator:coverage_content_type = "auxiliaryInformation" ;
aerosol_dynamic_indicator:time_offset = 3. ;
aerosol_dynamic_indicator:coordinates = "lat lon" ;
aerosol_dynamic_indicator:add_offset = 0. ;
aerosol_dynamic_indicator:scale_factor = 0.1 ;
byte adi_dtime_from_sst(time, nj, ni) ;
adi_dtime_from_sst:_FillValue = -128b ;
adi_dtime_from_sst:long_name = "time difference of ADI data from sst measurement" ;
adi_dtime_from_sst:units = "hour" ;
adi_dtime_from_sst:valid_min = -127b ;
adi_dtime_from_sst:valid_max = 127b ;
adi_dtime_from_sst:comment = "Difference in hours between the ADI and SST data" ;
adi_dtime_from_sst:coordinates = "lat lon" ;
adi_dtime_from_sst:add_offset = 0. ;
adi_dtime_from_sst:scale_factor = 0.1 ;
byte sources_of_adi(time, nj, ni) ;
sources_of_adi:_FillValue = -128b ;
sources_of_adi:long_name = "sources of aerosol dynamic indicator" ;
sources_of_adi:valid_min = 0b ;
sources_of_adi:valid_max = 2b ;
sources_of_adi:flag_meanings = "no_data AOD-NAAPS-ADI SDI-OSISAF-ADI" ;
sources_of_adi:flag_values = 0b, 1b, 2b ;
sources_of_adi:comment = "This variable provides a pixel by pixel description of where aerosol optical depth were derived from." ;
sources_of_adi:coordinates = "lat lon" ;
short l2p_flags(time, nj, ni) ;
l2p_flags:long_name = "L2P flags" ;
l2p_flags:flag_meanings = "microwave land ice lake" ;
l2p_flags:flag_masks = 1s, 2s, 4s, 8s ;
l2p_flags:comment = "These flags are important to properly use the data." ;
l2p_flags:coverage_content_type = "qualityInformation" ;
l2p_flags:coordinates = "lat lon" ;
byte quality_level(time, nj, ni) ;
quality_level:_FillValue = -128b ;
quality_level:long_name = "quality level of SST pixel" ;
quality_level:flag_meanings = "no_data bad_data worst_quality low_quality acceptable_quality best_quality" ;
quality_level:flag_values = 0b, 1b, 2b, 3b, 4b, 5b ;
quality_level:comment = "These are the overall quality indicators and are used for all GHRSST SSTs" ;
quality_level:coverage_content_type = "qualityInformation" ;
quality_level:coordinates = "lat lon" ;
byte satellite_zenith_angle(time, nj, ni) ;
satellite_zenith_angle:_FillValue = -128b ;
satellite_zenith_angle:long_name = "satellite zenith angle" ;
satellite_zenith_angle:units = "angular_degree" ;
satellite_zenith_angle:comment = "The satellite zenith angle at the time of the SST observations." ;
satellite_zenith_angle:coverage_content_type = "auxiliaryInformation" ;
satellite_zenith_angle:standard_name = "sensor_zenith_angle" ;
satellite_zenith_angle:coordinates = "lat lon" ;
satellite_zenith_angle:add_offset = 0. ;
satellite_zenith_angle:scale_factor = 1. ;
byte solar_zenith_angle(time, nj, ni) ;
solar_zenith_angle:_FillValue = -128b ;
solar_zenith_angle:long_name = "solar zenith angle" ;
solar_zenith_angle:units = "angular_degree" ;
solar_zenith_angle:comment = "The solar zenith angle at the time of the SST observations." ;
solar_zenith_angle:coverage_content_type = "auxiliaryInformation" ;
solar_zenith_angle:standard_name = "solar_zenith_angle" ;
solar_zenith_angle:coordinates = "lat lon" ;
solar_zenith_angle:add_offset = 90. ;
solar_zenith_angle:scale_factor = 1. ;
byte source_of_wind_speed(time, nj, ni) ;
source_of_wind_speed:long_name = "sources of wind speed" ;
source_of_wind_speed:flag_meanings = "no_data WSP-ESA-ASCAT-V2 WSP-NCEP-Analysis-V3 WSP-ECMWF-Forecast-V6" ;
source_of_wind_speed:flag_values = 0b, 1b, 2b, 3b ;
source_of_wind_speed:coverage_content_type = "auxiliaryInformation" ;
source_of_wind_speed:comment = "This variable provides a pixel by pixel description of where the wind speeds were derived from." ;
source_of_wind_speed:coordinates = "lat lon" ;
byte wind_speed_dtime_from_sst(time, nj, ni) ;
wind_speed_dtime_from_sst:_FillValue = -128b ;
wind_speed_dtime_from_sst:long_name = "time difference, in hours\', of wind speed measurement from sst measurement" ;
wind_speed_dtime_from_sst:units = "h" ;
wind_speed_dtime_from_sst:scale_factor = 0.1 ;
wind_speed_dtime_from_sst:add_offset = 0. ;
wind_speed_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
wind_speed_dtime_from_sst:comment = "the hours between the wind speed measurement and the SST observation" ;
wind_speed_dtime_from_sst:coordinates = "lat lon" ;
byte source_of_sea_ice_fraction(time, nj, ni) ;
source_of_sea_ice_fraction:long_name = "sources of sea ice fraction" ;
source_of_sea_ice_fraction:flag_meanings = "no_data CE-NSIDC-AMSRE-V3 ICE-ECMWF-Forecast-V3" ;
source_of_sea_ice_fraction:flag_values = 0b, 1b, 2b ;
source_of_sea_ice_fraction:coverage_content_type = "auxiliaryInformation" ;
source_of_sea_ice_fraction:comment = "This variable provides a pixel by pixel description of where the sea ice fraction were derived from." ;
source_of_sea_ice_fraction:coordinates = "lat lon" ;
byte sea_ice_fraction_dtime_from_sst(time, nj, ni) ;
sea_ice_fraction_dtime_from_sst:_FillValue = -128b ;
sea_ice_fraction_dtime_from_sst:long_name = "time difference, in hours, of sea ice fraction measurement from sst measurement" ;
sea_ice_fraction_dtime_from_sst:units = "h" ;
sea_ice_fraction_dtime_from_sst:scale_factor = 0.1 ;
sea_ice_fraction_dtime_from_sst:add_offset = 0. ;
sea_ice_fraction_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
sea_ice_fraction_dtime_from_sst:comment = "the hours between the sea ice fraction measurement and the SST observation" ;
sea_ice_fraction_dtime_from_sst:coordinates = "lat lon" ;
byte surface_solar_irradiance(time, nj, ni) ;
surface_solar_irradiance:long_name = "surface solar irradiance" ;
surface_solar_irradiance:standard_name = "surface_downwelling_spherical_irradiance_in_sea_water" ;
surface_solar_irradiance:units = "W m-2" ;
surface_solar_irradiance:coverage_content_type = "auxiliaryInformation" ;
surface_solar_irradiance:comment = "The surface solar irradiance as close to the SST observation times as possible" ;
surface_solar_irradiance:scale_factor = 1.36 ;
surface_solar_irradiance:add_offset = 127. ;
surface_solar_irradiance:source = "SSI-MSG_SEVIRI-V1" ;
surface_solar_irradiance:time_offset = 2. ;
surface_solar_irradiance:coordinates = "lat lon" ;
byte source_of_ssi(time, nj, ni) ;
source_of_ssi:long_name = "sources of surface solar irradiance" ;
source_of_ssi:flag_meanings = "no_data SSI-MSG_SEVIRI-V1 SSI-NOAA-GOES_E-V1 SSI-NOAA-GOES_W-V1 SSI-ECMWF-V1 SSI-NCEP-V1 SSI-NAAPS-V1 spare" ;
source_of_ssi:flag_values = 0b, 1b, 2b, 3b, 4b, 5b, 6b, 7b ;
source_of_ssi:coverage_content_type = "auxiliaryInformation" ;
source_of_ssi:comment = "This variable provides a pixel by pixel description of where the surface solar irradiances were derived from." ;
source_of_ssi:coordinates = "lat lon" ;
byte ssi_dtime_from_sst(time, nj, ni) ;
ssi_dtime_from_sst:_FillValue = -128b ;
ssi_dtime_from_sst:long_name = "time difference, in hours, of surface solar irradiance measurement from sst measurement" ;
ssi_dtime_from_sst:units = "h" ;
ssi_dtime_from_sst:scale_factor = 0.1 ;
ssi_dtime_from_sst:add_offset = 0. ;
ssi_dtime_from_sst:coverage_content_type = "auxiliaryInformation" ;
ssi_dtime_from_sst:comment = "the hours between the surface solar irradiance measurement and the SST observation" ;
ssi_dtime_from_sst:coordinates = "lat lon" ;
byte source_of_adi(time, nj, ni) ;
source_of_adi:_FillValue = -128b ;
source_of_adi:long_name = "sources of aerosol dynamic indicator" ;
source_of_adi:flag_meanings = "no_data AOD-NAAPS-ADI SDI-OSISAF-ADI" ;
source_of_adi:flag_values = 0b, 1b, 2b ;
source_of_adi:comment = "This variable provides a pixel by pixel description of where aerosol optical depth were derived from" ;
source_of_adi:coverage_content_type = "auxiliaryInformation" ;
source_of_adi:coordinates = "lat lon" ;
byte my_variable(time, nj, ni) ;
my_variable:_FillValue = -128b ;
my_variable:long_name = "estimated diurnal variability" ;
my_variable:standard_name = "<use_a_CF_standard_name_if_available>" ;
my_variable:units = "K" ;
my_variable:source = "MY-SOURCES-V1" ;
my_variable:scale_factor = 1. ;
my_variable:add_offset = 0. ;
my_variable:coverage_content_type = "auxiliaryInformation" ;
my_variable:comment = "This field is fully documented at http://www.mysite.com/my_variable-description.html" ;
my_variable:coordinates = "lat lon" ;
// global attributes:
:Conventions = "CF-1.4" ;
:title = "Sea Surface Temperature" ;
:summary = "The L2P product derived from METOP C AVHRR brightness temperatures." ;
:references = "Low Earth Orbiter Sea Surface Temperature Product User Manual, http://www.osi-saf.org" ;
:institution = "OSISAF" ;
:history = "METEO-FRANCE/CMS LEOSAFO processor" ;
:comment = "" ;
:license = "All intellectual property rights of the Ocean & Sea Ice SAF products belong to EUMETSAT. The use of these products is granted to every user, free of charge. If users wish to use these products, EUMETSAT\'s copyright credit must be shown by displaying the words \'Copyright EUMETSAT\' under each of the products shown. EUMETSAT offers no warranty and accepts no liability in respect of the Ocean & Sea Ice SAF products. EUMETSAT neither commits to nor guarantees the continuity, availability, or quality or suitability for any purpose of, the Ocean & Sea Ice SAF products." ;
:id = "AVHRR_SST_METOP_C-OSISAF-L2P-v1.0" ;
:naming_authority = "org.ghrsst" ;
:product_version = "1.0" ;
:uuid = "24D2B70C-A848-11EE-B7B8-08F1EA6E84B2" ;
:gds_version_id = "2.0" ;
:netcdf_version_id = "4.6.3" ;
:date_created = "2024-01-01T01:50:30Z" ;
:file_quality_level = 2 ;
:spatial_resolution = "1 km" ;
:time_coverage_start = "2024-01-01T00:01:03Z" ;
:time_coverage_end = "2024-01-01T00:04:03Z" ;
:source = "AVHRR" ;
:platform = "Metop-C" ;
:Metadata_Conventions = "Unidata Dataset Discovery v1.0" ;
:metadata_link = "N/A" ;
:keywords = "Oceans > Ocean Temperature > Sea Surface Temperature " ;
:keywords_vocabulary = "NASA Global Change Master Directory (GCMD) Science Keywords" ;
:standard_name_vocabulary = "NetCDF Climate and Forecast (CF) Metadata Convention" ;
:geospatial_lat_units = "degrees_north" ;
:geospatial_lat_resolution = 0.01f ;
:geospatial_lon_units = "degrees_east" ;
:geospatial_lon_resolution = 0.01f ;
:acknowledgment = "In case SAF data (pre-operational or operational) has been used for the study described in a paper the following sentence would be an appropriate reference to the funding coming from EUMETSAT: The data from the EUMETSAT Satellite Application Facility on Ocean & Sea Ice used in this study are accessible through the SAF\'s homepage http://www.osi-saf.org" ;
:creator_name = "O&SI SAF" ;
:creator_email = "osi-saf.helpdesk@meteo.fr" ;
:creator_url = "http://www.osi-saf.org" ;
:project = "Group for High Resolution Sea Surface Temperature" ;
:publisher_name = "The GHRSST Project Office" ;
:publisher_url = "http://www.ghrsst.org" ;
:publisher_email = "ghrsst-po@nceo.ac.uk" ;
:processing_level = "L2P" ;
:cdm_data_type = "swath" ;
:geospatial_lat_min = 66.225f ;
:geospatial_lat_max = 89.994f ;
:geospatial_lon_max = 180.f ;
:geospatial_lon_min = -180.f ;
:geospatial_bounds = "POLYGON ((66.2249984741211 -180.0, 89.99400329589844 -180.0, 89.99400329589844 180.0, 66.2249984741211 180.0, 66.2249984741211 -180.0))" ;
:geospatial_bounds_crs = "WGS84" ;
:instrument = "AVHRR" ;
:platform_vocabulary = "CEOS mission table" ;
:instrument_vocabulary = "CEOS instrument table" ;
:geospatial_vertical_min = 0. ;
:geospatial_vertical_max = 0. ;
:geospatial_vertical_positive = "up" ;
:geospatial_vertical_units = "meters" ;
:geospatial_bounds_vertical_crs = "EPSG:5831" ;
string :contributor_name = "Stéphane Saux-Picard" ;
:contributor_role = "Principal Investigator" ;
:creator_type = "group" ;
:creator_institution = "Meteo-France" ;
:publisher_type = "institution" ;
:publisher_institution = "Ifremer" ;
:date_modified = "2024-01-01T01:50:30Z" ;
:date_issued = "2024-01-01T01:50:30Z" ;
:date_metadata_modified = "2020-01-01T12:00:00Z" ;
:program = "Group for High Resolution Sea Surface temperature (GHRSST), EUMETSAT Satellite Application Facilities (SAF)" ;
}