{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"Collapsed": "false",
"tags": []
},
"source": [
"# Copernicus Sentinel-5P TROPOMI - Carbon Monoxide - Level 2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{hint} \n",
"Execute the notebook on the training platform >>\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The Copernicus [Sentinel-5 Ultraviolet Visible Near-Infrared Shortwave (UVNS) spectrometer](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-5) enables the measurement of trace gases which will improve air quality forecasts produced by the Copernicus Atmosphere Monitoring service.\n",
"\n",
"This notebook provides you an introduction to data from [Sentinel-5P](https://sentinels.copernicus.eu/web/sentinel/missions/sentinel-5p), the precursor instrument and proxy for data from [Sentinel-5](https://www.eumetsat.int/sentinel-5). \n",
"\n",
"The data product of interest is the total column of carbon monoxide sensed by Sentinel-5P TROPOMI. Carbon monoxide is a good trace gas for monitoring and tracking smoke from wildfires. \n",
"\n",
"The events featured in this notebook are the wildfires in Italy and Greece in summer 2021. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{admonition} Basic Facts\n",
"**Spatial resolution**: `Up to 5.5* km x 3.5 km` (5.5 km in the satellite flight direction and 3.5 km in the perpendicular direction at nadir)
\n",
"**Spatial coverage**: `Global`
\n",
"**Revisit time**: `less than one day`
\n",
"**Data availability**: `since April 2018`\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```{admonition} How to access the data\n",
"Sentinel-5P Pre-Ops data are disseminated in the `netCDF` format and can be downloaded via the Copernicus Open Access Hub. You need to register for an account before downloading data. \n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
<xarray.Dataset>\n", "Dimensions: (scanline: 4172, ground_pixel: 215, time: 1, corner: 4, layer: 50)\n", "Coordinates:\n", " * scanline (scanline) float64 0.0 ... 4.171e+03\n", " * ground_pixel (ground_pixel) float64 0.0 ... 214.0\n", " * time (time) datetime64[ns] 2021-08-05\n", " * corner (corner) float64 0.0 1.0 2.0 3.0\n", " * layer (layer) float32 4.95e+04 ... 500.0\n", " latitude (time, scanline, ground_pixel) float32 ...\n", " longitude (time, scanline, ground_pixel) float32 ...\n", "Data variables:\n", " delta_time (time, scanline) datetime64[ns] 20...\n", " time_utc (time, scanline) object '2021-08-0...\n", " qa_value (time, scanline, ground_pixel) float32 ...\n", " carbonmonoxide_total_column (time, scanline, ground_pixel) float32 ...\n", " carbonmonoxide_total_column_precision (time, scanline, ground_pixel) float32 ...\n", " carbonmonoxide_total_column_corrected (time, scanline, ground_pixel) float32 ...
array([0.000e+00, 1.000e+00, 2.000e+00, ..., 4.169e+03, 4.170e+03, 4.171e+03])
array([ 0., 1., 2., ..., 212., 213., 214.])
array(['2021-08-05T00:00:00.000000000'], dtype='datetime64[ns]')
array([0., 1., 2., 3.])
array([49500., 48500., 47500., 46500., 45500., 44500., 43500., 42500., 41500.,\n", " 40500., 39500., 38500., 37500., 36500., 35500., 34500., 33500., 32500.,\n", " 31500., 30500., 29500., 28500., 27500., 26500., 25500., 24500., 23500.,\n", " 22500., 21500., 20500., 19500., 18500., 17500., 16500., 15500., 14500.,\n", " 13500., 12500., 11500., 10500., 9500., 8500., 7500., 6500., 5500.,\n", " 4500., 3500., 2500., 1500., 500.], dtype=float32)
[896980 values with dtype=float32]
[896980 values with dtype=float32]
array([['2021-08-05T11:21:47.151000000', '2021-08-05T11:21:47.991000000',\n", " '2021-08-05T11:21:48.831000000', ..., '2021-08-05T12:20:09.030000000',\n", " '2021-08-05T12:20:09.870000000', '2021-08-05T12:20:10.710000000']],\n", " dtype='datetime64[ns]')
array([['2021-08-05T11:21:47.151000Z', '2021-08-05T11:21:47.991000Z',\n", " '2021-08-05T11:21:48.831000Z', ..., '2021-08-05T12:20:09.030000Z',\n", " '2021-08-05T12:20:09.870000Z', '2021-08-05T12:20:10.710000Z']],\n", " dtype=object)
[896980 values with dtype=float32]
[896980 values with dtype=float32]
[896980 values with dtype=float32]
[896980 values with dtype=float32]
<xarray.DataArray 'carbonmonoxide_total_column' (time: 1, scanline: 4172, ground_pixel: 215)>\n", "[896980 values with dtype=float32]\n", "Coordinates:\n", " * scanline (scanline) float64 0.0 1.0 2.0 ... 4.17e+03 4.171e+03\n", " * ground_pixel (ground_pixel) float64 0.0 1.0 2.0 3.0 ... 212.0 213.0 214.0\n", " * time (time) datetime64[ns] 2021-08-05\n", " latitude (time, scanline, ground_pixel) float32 ...\n", " longitude (time, scanline, ground_pixel) float32 ...\n", "Attributes:\n", " units: mol m-2\n", " standard_name: atmosphere_mole_co...\n", " long_name: Vertically integra...\n", " ancillary_variables: carbonmonoxide_tot...\n", " multiplication_factor_to_convert_to_molecules_percm2: 6.022141e+19
[896980 values with dtype=float32]
array([0.000e+00, 1.000e+00, 2.000e+00, ..., 4.169e+03, 4.170e+03, 4.171e+03])
array([ 0., 1., 2., ..., 212., 213., 214.])
array(['2021-08-05T00:00:00.000000000'], dtype='datetime64[ns]')
[896980 values with dtype=float32]
[896980 values with dtype=float32]
<xarray.DataArray 'carbonmonoxide_total_column' (scanline: 4172, ground_pixel: 215)>\n", "[896980 values with dtype=float32]\n", "Coordinates:\n", " * scanline (scanline) float64 0.0 1.0 2.0 ... 4.17e+03 4.171e+03\n", " * ground_pixel (ground_pixel) float64 0.0 1.0 2.0 3.0 ... 212.0 213.0 214.0\n", " time datetime64[ns] 2021-08-05\n", " latitude (scanline, ground_pixel) float32 ...\n", " longitude (scanline, ground_pixel) float32 ...\n", "Attributes:\n", " units: mol m-2\n", " standard_name: atmosphere_mole_co...\n", " long_name: Vertically integra...\n", " ancillary_variables: carbonmonoxide_tot...\n", " multiplication_factor_to_convert_to_molecules_percm2: 6.022141e+19
[896980 values with dtype=float32]
array([0.000e+00, 1.000e+00, 2.000e+00, ..., 4.169e+03, 4.170e+03, 4.171e+03])
array([ 0., 1., 2., ..., 212., 213., 214.])
array('2021-08-05T00:00:00.000000000', dtype='datetime64[ns]')
[896980 values with dtype=float32]
[896980 values with dtype=float32]
<xarray.DataArray 'carbonmonoxide_total_column' (scanline: 241, ground_pixel: 179)>\n", "array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)\n", "Coordinates:\n", " * scanline (scanline) float64 2.365e+03 2.366e+03 ... 2.604e+03 2.605e+03\n", " * ground_pixel (ground_pixel) float64 33.0 34.0 35.0 ... 209.0 210.0 211.0\n", " time datetime64[ns] 2021-08-05\n", " latitude (scanline, ground_pixel) float32 32.2 32.24 ... 46.55 46.52\n", " longitude (scanline, ground_pixel) float32 11.21 11.34 ... 29.3 29.69\n", "Attributes:\n", " units: mol m-2\n", " standard_name: atmosphere_mole_co...\n", " long_name: Vertically integra...\n", " ancillary_variables: carbonmonoxide_tot...\n", " multiplication_factor_to_convert_to_molecules_percm2: 6.022141e+19
array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
array([2365., 2366., 2367., ..., 2603., 2604., 2605.])
array([ 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44.,\n", " 45., 46., 47., 48., 49., 50., 51., 52., 53., 54., 55., 56.,\n", " 57., 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68.,\n", " 69., 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., 80.,\n", " 81., 82., 83., 84., 85., 86., 87., 88., 89., 90., 91., 92.,\n", " 93., 94., 95., 96., 97., 98., 99., 100., 101., 102., 103., 104.,\n", " 105., 106., 107., 108., 109., 110., 111., 112., 113., 114., 115., 116.,\n", " 117., 118., 119., 120., 121., 122., 123., 124., 125., 126., 127., 128.,\n", " 129., 130., 131., 132., 133., 134., 135., 136., 137., 138., 139., 140.,\n", " 141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,\n", " 153., 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,\n", " 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,\n", " 177., 178., 179., 180., 181., 182., 183., 184., 185., 186., 187., 188.,\n", " 189., 190., 191., 192., 193., 194., 195., 196., 197., 198., 199., 200.,\n", " 201., 202., 203., 204., 205., 206., 207., 208., 209., 210., 211.])
array('2021-08-05T00:00:00.000000000', dtype='datetime64[ns]')
array([[32.195065, 32.24469 , 32.293087, ..., 34.933292, 34.91955 ,\n", " 34.90418 ],\n", " [32.2433 , 32.292946, 32.341362, ..., 34.981834, 34.968056,\n", " 34.952633],\n", " [32.291557, 32.341217, 32.389656, ..., 35.03038 , 35.016556,\n", " 35.001083],\n", " ...,\n", " [43.57638 , 43.632 , 43.686222, ..., 46.474236, 46.45017 ,\n", " 46.423573],\n", " [43.623672, 43.679314, 43.73357 , ..., 46.522644, 46.498535,\n", " 46.47189 ],\n", " [43.670963, 43.726635, 43.78092 , ..., 46.571045, 46.546886,\n", " 46.520187]], dtype=float32)
array([[11.211362 , 11.336978 , 11.460479 , ..., 30.425482 , 30.738092 ,\n", " 31.064466 ],\n", " [11.193425 , 11.319099 , 11.442656 , ..., 30.418541 , 30.731333 ,\n", " 31.057898 ],\n", " [11.1755085, 11.301239 , 11.424852 , ..., 30.411697 , 30.72468 ,\n", " 31.051443 ],\n", " ...,\n", " [ 6.2271056, 6.3701506, 6.510907 , ..., 28.942106 , 29.31434 ,\n", " 29.702757 ],\n", " [ 6.202429 , 6.3455644, 6.4864106, ..., 28.936745 , 29.30931 ,\n", " 29.698078 ],\n", " [ 6.1776867, 6.3209133, 6.4618506, ..., 28.931337 , 29.30424 ,\n", " 29.693352 ]], dtype=float32)
<xarray.DataArray 'carbonmonoxide_total_column' (scanline: 241, ground_pixel: 179)>\n", "array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)\n", "Coordinates:\n", " * scanline (scanline) float64 2.365e+03 2.366e+03 ... 2.604e+03 2.605e+03\n", " * ground_pixel (ground_pixel) float64 33.0 34.0 35.0 ... 209.0 210.0 211.0\n", " time datetime64[ns] 2021-08-05\n", " latitude (scanline, ground_pixel) float32 32.2 32.24 ... 46.55 46.52\n", " longitude (scanline, ground_pixel) float32 11.21 11.34 ... 29.3 29.69
array([[nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " ...,\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan],\n", " [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
array([2365., 2366., 2367., ..., 2603., 2604., 2605.])
array([ 33., 34., 35., 36., 37., 38., 39., 40., 41., 42., 43., 44.,\n", " 45., 46., 47., 48., 49., 50., 51., 52., 53., 54., 55., 56.,\n", " 57., 58., 59., 60., 61., 62., 63., 64., 65., 66., 67., 68.,\n", " 69., 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., 80.,\n", " 81., 82., 83., 84., 85., 86., 87., 88., 89., 90., 91., 92.,\n", " 93., 94., 95., 96., 97., 98., 99., 100., 101., 102., 103., 104.,\n", " 105., 106., 107., 108., 109., 110., 111., 112., 113., 114., 115., 116.,\n", " 117., 118., 119., 120., 121., 122., 123., 124., 125., 126., 127., 128.,\n", " 129., 130., 131., 132., 133., 134., 135., 136., 137., 138., 139., 140.,\n", " 141., 142., 143., 144., 145., 146., 147., 148., 149., 150., 151., 152.,\n", " 153., 154., 155., 156., 157., 158., 159., 160., 161., 162., 163., 164.,\n", " 165., 166., 167., 168., 169., 170., 171., 172., 173., 174., 175., 176.,\n", " 177., 178., 179., 180., 181., 182., 183., 184., 185., 186., 187., 188.,\n", " 189., 190., 191., 192., 193., 194., 195., 196., 197., 198., 199., 200.,\n", " 201., 202., 203., 204., 205., 206., 207., 208., 209., 210., 211.])
array('2021-08-05T00:00:00.000000000', dtype='datetime64[ns]')
array([[32.195065, 32.24469 , 32.293087, ..., 34.933292, 34.91955 ,\n", " 34.90418 ],\n", " [32.2433 , 32.292946, 32.341362, ..., 34.981834, 34.968056,\n", " 34.952633],\n", " [32.291557, 32.341217, 32.389656, ..., 35.03038 , 35.016556,\n", " 35.001083],\n", " ...,\n", " [43.57638 , 43.632 , 43.686222, ..., 46.474236, 46.45017 ,\n", " 46.423573],\n", " [43.623672, 43.679314, 43.73357 , ..., 46.522644, 46.498535,\n", " 46.47189 ],\n", " [43.670963, 43.726635, 43.78092 , ..., 46.571045, 46.546886,\n", " 46.520187]], dtype=float32)
array([[11.211362 , 11.336978 , 11.460479 , ..., 30.425482 , 30.738092 ,\n", " 31.064466 ],\n", " [11.193425 , 11.319099 , 11.442656 , ..., 30.418541 , 30.731333 ,\n", " 31.057898 ],\n", " [11.1755085, 11.301239 , 11.424852 , ..., 30.411697 , 30.72468 ,\n", " 31.051443 ],\n", " ...,\n", " [ 6.2271056, 6.3701506, 6.510907 , ..., 28.942106 , 29.31434 ,\n", " 29.702757 ],\n", " [ 6.202429 , 6.3455644, 6.4864106, ..., 28.936745 , 29.30931 ,\n", " 29.698078 ],\n", " [ 6.1776867, 6.3209133, 6.4618506, ..., 28.931337 , 29.30424 ,\n", " 29.693352 ]], dtype=float32)