![COPERNICUS/S5P/OFFL/L3_CO](https://developers.google.com/earth-engine/datasets/images/COPERNICUS/COPERNICUS_S5P_OFFL_L3_CO_sample.png)

Dataset Availability
:   2018-06-28T10:24:07Z--2026-11-12T16:37:05Z

Dataset Producer
:


    [European Union/ESA/Copernicus](https://sentiwiki.copernicus.eu/web/s5p-products)

Revisit Interval
:   2 Days

Tags
:
    [air-quality](https://developers.google.com/earth-engine/datasets/tags/air-quality.md.txt) [atmosphere](https://developers.google.com/earth-engine/datasets/tags/atmosphere.md.txt) [carbon-monoxide](https://developers.google.com/earth-engine/datasets/tags/carbon-monoxide.md.txt) [copernicus](https://developers.google.com/earth-engine/datasets/tags/copernicus.md.txt) [esa](https://developers.google.com/earth-engine/datasets/tags/esa.md.txt) [eu](https://developers.google.com/earth-engine/datasets/tags/eu.md.txt) [knmi](https://developers.google.com/earth-engine/datasets/tags/knmi.md.txt) [pollution](https://developers.google.com/earth-engine/datasets/tags/pollution.md.txt) [s5p](https://developers.google.com/earth-engine/datasets/tags/s5p.md.txt) [sentinel](https://developers.google.com/earth-engine/datasets/tags/sentinel.md.txt) [sron](https://developers.google.com/earth-engine/datasets/tags/sron.md.txt) [tropomi](https://developers.google.com/earth-engine/datasets/tags/tropomi.md.txt)

#### Description

### OFFL/L3_CO

This dataset provides offline high-resolution imagery of CO concentrations.

Carbon monoxide (CO) is an important atmospheric trace gas for understanding
tropospheric chemistry. In certain urban areas, it is a major atmospheric
pollutant. Main sources of CO are combustion of fossil fuels, biomass burning,
and atmospheric oxidation of methane and other hydrocarbons. Whereas fossil
fuel combustion is the main source of CO at northern mid-latitudes, the oxidation
of isoprene and biomass burning play an important role in the tropics. TROPOMI
on the Sentinel 5 Precursor (S5P) satellite observes the CO global abundance
exploiting clear-sky and cloudy-sky Earth radiance measurements in the 2.3 μm
spectral range of the shortwave infrared (SWIR) part of the solar spectrum.
TROPOMI clear sky observations provide CO total columns with sensitivity to the
tropospheric boundary layer. For cloudy atmospheres, the column sensitivity
changes according to the light path.
[More information.](http://www.tropomi.eu/data-products/carbon-monoxide)

### OFFL L3 Product

To make our OFFL L3 products, we find areas within the product's bounding
box with data using a command like this:

    harpconvert --format hdf5 --hdf5-compression 9
    -a 'CO_column_number_density_validity>50;derive(datetime_stop {time})'
    S5P_OFFL_L2__CO_____20181031T060643_20181031T074813_05432_01_010200_20181106T052542.nc
    grid_info.h5

We then merge all the data into one large mosaic (area-averaging values for
pixels that may have different values for different times). From the
mosaic, we create a set of tiles containing orthorectified raster data.

Example harpconvert invocation for one tile:
`harpconvert --format hdf5 --hdf5-compression 9
-a 'CO_column_number_density_validity>50;derive(datetime_stop {time});
bin_spatial(2001, 50.000000, 0.01, 2001, -120.000000, 0.01);
keep(CO_column_number_density,H2O_column_number_density,cloud_height,
sensor_altitude,sensor_azimuth_angle, sensor_zenith_angle,
solar_azimuth_angle,solar_zenith_angle)'
S5P_OFFL_L2__CO_____20181031T060643_20181031T074813_05432_01_010200_20181106T052542.nc
output.h5`

### Sentinel-5 Precursor

Sentinel-5 Precursor is a satellite launched on 13 October 2017
by the European Space Agency to monitor air pollution. The onboard sensor
is frequently referred to as Tropomi (TROPOspheric Monitoring Instrument).

All of the S5P datasets, except CH~4~, have two versions: Near
Real-Time (NRTI) and Offline (OFFL). CH~4~ is available as OFFL only.
The NRTI assets cover a smaller area than the OFFL assets, but appear more
quickly after acquisition. The OFFL assets contain data from a single orbit
(which, due to half the earth being dark, contains data only for a single
hemisphere).

Because of noise in the data, negative vertical column values are often
observed in particular over clean regions or for low SO2 emissions. It is
recommended not to filter these values except for outliers, i.e.
for vertical columns lower than -0.001 mol/m\^2.

The original Sentinel 5P Level 2 (L2) data is binned
by time, not by latitude/longitude. To make it possible to ingest the data
into Earth Engine, each Sentinel 5P L2 product is converted to L3, keeping
a single grid per orbit (that is, no aggregation across products
is performed).

Source products spanning the antimeridian are ingested as two Earth Engine
assets, with suffixes _1 and _2.

The conversion to L3 is done by the [harpconvert](https://cdn.rawgit.com/stcorp/harp/master/doc/html/harpconvert.html)
tool using the `bin_spatial` operation. The source data is filtered to
remove pixels with QA values less than:

- 80% for AER_AI
- 75% for the tropospheric_NO2_column_number_density band of NO2
- 50% for all other datasets except for O3 and SO2

The O3_TCL product is ingested directly (without running harpconvert).

### Bands

**Bands**

Pixel size: 1113.2 meters (all bands)

| Name | Units | Min | Max | Pixel Size | Description |
|---|---|---|---|---|---|
| `CO_column_number_density` | mol/m\^2 | -34.43\* | 5.71\* | 1113.2 meters | Vertically integrated CO column density. |
| `H2O_column_number_density` | mol/m\^2 | -2.18563e+07\* | 78420\* | 1113.2 meters | Water vapor column. |
| `cloud_height` | m | -7516\* | 5000\* | 1113.2 meters | Scattering layer height. |
| `sensor_altitude` | m | 828542\* | 856078\* | 1113.2 meters | Altitude of the satellite with respect to the geodetic sub-satellite point (WGS84). |
| `sensor_azimuth_angle` | deg | -180\* | 180\* | 1113.2 meters | Azimuth angle of the satellite at the ground pixel location (WGS84); angle measured East-of-North. |
| `sensor_zenith_angle` | deg | 1\* | 66\* | 1113.2 meters | Zenith angle of the satellite at the ground pixel location (WGS84); angle measured away from the vertical. |
| `solar_azimuth_angle` | deg | -180\* | 180\* | 1113.2 meters | Azimuth angle of the Sun at the ground pixel location (WGS84); angle measured East-of-North. |
| `solar_zenith_angle` | deg | 9\* | 80\* | 1113.2 meters | Zenith angle of the satellite at the ground pixel location (WGS84); angle measured away from the vertical. |

\* estimated min or max value

### Image Properties

**Image Properties**

| Name | Type | Description |
|---|---|---|
| ALGORITHM_VERSION | STRING | The algorithm version used in L2 processing. It is separate from the processor (framework) version, to accommodate different release schedules for different products. |
| BUILD_DATE | STRING | The date, expressed as milliseconds since 1 Jan 1970, when the software used to perform L2 processing was built. |
| HARP_VERSION | INT | The version of the HARP tool used to grid the L2 data into an L3 product. |
| INSTITUTION | STRING | The institution where data processing from L1 to L2 was performed. |
| L3_PROCESSING_TIME | INT | The date, expressed as milliseconds since 1 Jan 1970, when Google processed the L2 data into L3 using harpconvert. |
| LAT_MAX | DOUBLE | The maximum latitude of the asset (degrees). |
| LAT_MIN | DOUBLE | The minimum latitude of the asset (degrees). |
| LON_MAX | DOUBLE | The maximum longitude of the asset (degrees). |
| LON_MIN | DOUBLE | The minimum longitude of the asset (degrees). |
| ORBIT | INT | The orbit number of the satellite when the data was acquired. |
| PLATFORM | STRING | Name of the platform which acquired the data. |
| PROCESSING_STATUS | STRING | The processing status of the product on a global level, mainly based on the availability of auxiliary input data. Possible values are "Nominal" and "Degraded". |
| PROCESSOR_VERSION | STRING | The version of the software used for L2 processing, as a string of the form "major.minor.patch". |
| PRODUCT_ID | STRING | Id of the L2 product used to generate this asset. |
| PRODUCT_QUALITY | STRING | Indicator that specifies whether the product quality is degraded or not. Allowed values are "Degraded" and "Nominal". |
| SENSOR | STRING | Name of the sensor which acquired the data. |
| SPATIAL_RESOLUTION | STRING | Spatial resolution at nadir. For most products this is `3.5x7 km2`, except for `L2__O3__PR`, which uses `28x21km2`, and `L2__CO____` and `L2__CH4___`, which both use `7x7 km2`. This attribute originates from the CCI standard. |
| TIME_REFERENCE_DAYS_SINCE_1950 | INT | Days from 1 Jan 1950 to when the data was acquired. |
| TIME_REFERENCE_JULIAN_DAY | DOUBLE | The Julian day number when the data was acquired. |
| TRACKING_ID | STRING | UUID for the L2 product file. |

### Terms of Use

**Terms of Use**

The use of Sentinel data is governed by the [Copernicus
Sentinel Data Terms and Conditions.](https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice)

### Explore with Earth Engine

> [!NOTE]
> **Important:** Earth Engine is a platform for petabyte-scale scientific analysis and visualization of geospatial datasets, both for public benefit and for business and government users. Earth Engine is free to use for research, education, and nonprofit use. To get started, please [register for Earth Engine access.](https://console.cloud.google.com/earth-engine)

### Code Editor (JavaScript)

```javascript
var collection = ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CO')
  .select('CO_column_number_density')
  .filterDate('2019-06-01', '2019-06-11');

var band_viz = {
  min: 0,
  max: 0.05,
  palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
};

Map.addLayer(collection.mean(), band_viz, 'S5P CO');
Map.setCenter(-25.01, -4.28, 4);
```
Python setup

See the [Python Environment](https://developers.google.com/earth-engine/guides/python_install.md.txt) page for information on the Python API and using
`geemap` for interactive development.

```python
import ee
import geemap.core as geemap
```

### Colab (Python)

```python
collection = (
    ee.ImageCollection('COPERNICUS/S5P/OFFL/L3_CO')
    .select('CO_column_number_density')
    .filterDate('2019-06-01', '2019-06-11')
)

band_viz = {
    'min': 0,
    'max': 0.05,
    'palette': ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red'],
}

m = geemap.Map()
m.add_layer(collection.mean(), band_viz, 'S5P CO')
m.set_center(-25.01, -4.28, 4)
m
```
[Open in Code Editor](https://code.earthengine.google.com/?scriptPath=Examples:Datasets/COPERNICUS/COPERNICUS_S5P_OFFL_L3_CO) [Sentinel-5P OFFL CO: Offline Carbon Monoxide](https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S5P_OFFL_L3_CO.md.txt) OFFL/L3_CO This dataset provides offline high-resolution imagery of CO concentrations. Carbon monoxide (CO) is an important atmospheric trace gas for understanding tropospheric chemistry. In certain urban areas, it is a major atmospheric pollutant. Main sources of CO are combustion of fossil fuels, biomass burning, and atmospheric oxidation of methane and ... COPERNICUS/S5P/OFFL/L3_CO, air-quality,atmosphere,carbon-monoxide,copernicus,esa,eu,knmi,pollution,s5p,sentinel,sron,tropomi 2018-06-28T10:24:07Z/2026-11-12T16:37:05Z -90 -180 90 180 Google Earth Engine https://developers.google.com/earth-engine/datasets

- [](https://doi.org/https://sentiwiki.copernicus.eu/web/s5p-products)
- [](https://doi.org/https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S5P_OFFL_L3_CO)