CAMS
Providentia’s download mode supports downloading model output data provided by CAMS from the Atmosphere Data Store:
https://ads.atmosphere.copernicus.eu/datasets
An ECMWF account is required to download the files. For a tutorial on how to create and set up your account, see the Account setup in Atmosphere Data Store section.
Available CAMS datasets
Currently, four CAMS datasets are available for download:
How to enable Atmosphere Data Store download
To download CAMS data from the Atmosphere Data Store, include one of the following model names along with the domain. For details about available models, streams, and specific resolutions, see the corresponding sections below:
cams_analysis_<model>-regional— CAMS European Air Quality Forecastscams_forecast_<model>-regional— CAMS European Air Quality Forecastscams_forecast-global— CAMS Global Atmospheric Composition Forecastscams_reanalysis_<model>_<stream>-regional— CAMS European Air Quality Reanalysescams_reanalysis-global— CAMS Global Reanalysis (EAC4)
Once you have selected the dataset and specified the model and domain, make sure to set:
dl_interpolated = False
or
Answer n to the prompt:
“Model data was detected in the configuration file. Do you want to download the interpolated version? (Otherwise, the non-interpolated model data will be downloaded)”
1. CAMS European Air Quality Forecasts
Using this dataset you can either download:
Regional Analysis data, or
Regional Forecast data
This dataset contains multi-level data.
Only hourly data is available in this dataset. You must set resolution = hourly in your configuration file; otherwise, the download will not work.
Mandatory fields for regional analysis data
model = cams_analysis_<model>
domain = regional
resolution = hourly
Mandatory fields for regional forecast data
model = cams_forecast_<model>
domain = regional
resolution = hourly
Replace
<model>with one of the available model names listed below.
Available models
Use the following model names (same as in the API):
ensemblechimeredehmemepeuradimgemaqlotosmatchminnimocagemonarchsilam
Available variables (Species)
These are the available species:
pm10pm10dupm10so4sspm2p5pm2p5ecpm2p5nh4pm2p5no3pm2p5so4sconccosconcglyoxsconchchosconcnh3sconcnmvocsconcnosconcno2sconco3sconcso2
Providentia can only read species in GHOST format. If you want to know the mapping from CAMS variables to GHOST species, please refer to the CAMS-GHOST species mapping section.
Assumptions
Providentia assumes the following fixed values when downloading data:
time = 00:00-23:00leadtime_hour = 0-96level = 0
All available data in this dataset is multi-level, but Providentia retrieves only the ground level.
Example configuration files and corresponding API requests
Example 1: CAMS Regional Analysis (DEHM Model, sconcno2)
[cams_analysis_dehm-regional]
start_date = 20250701
end_date = 20250702
species = sconcno2
model = cams_analysis_dehm
domain = regional
resolution = hourly
dl_interpolated = False
dataset = 'cams-europe-air-quality-forecasts'
request = {
'variable' : 'nitrogen_dioxide',
'leadtime_hour' : '0',
'type' : 'analysis',
'date' : '2025-07-01/2025-07-01',
'model' : 'dehm',
'level' : '0',
'time' : ['00:00', '01:00', '02:00', '03:00', '04:00', '05:00', '06:00', '07:00', '08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00', '21:00', '22:00', '23:00'],
'data_format' : 'netcdf_zip',
}
Example 2: CAMS Regional Forecast (Ensemble Model, sconcno2)
[cams_forecast_ensemble-regional]
start_date = 20250701
end_date = 20250702
species = sconcno2
model = cams_forecast_ensemble
domain = regional
resolution = hourly
dl_interpolated = False
dataset = 'cams-europe-air-quality-forecasts'
request = {
'variable': 'nitrogen_dioxide',
'leadtime_hour': [
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
'13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23',
'24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34',
'35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45',
'46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56',
'57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67',
'68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78',
'79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89',
'90', '91', '92', '93', '94', '95', '96'
],
'type': 'forecast',
'date': '2025-07-01/2025-07-01',
'model': 'ensemble',
'level': '0',
'time': '00:00',
'data_format': 'netcdf_zip',
}
2. CAMS Global Atmospheric Composition Forecasts
Using this dataset you can download Global Forecast data.
This dataset contains both single-level and multi-level data.
hourly and 3hourly data is available in this dataset. In your configuration file, you must set resolution = hourly or resolution = 3hourly, depending on whether the data is single-level or multi-level. Otherwise, the download will fail.
Mandatory fields for global forecast single-level data
model = cams_forecast
domain = global
resolution = hourly
Mandatory fields for global forecast multi-level data
model = cams_forecast
domain = global
resolution = 3hourly
Available variables (Species)
Whether the data is single or multi depends on the selected species. These are the available species:
Single-level:
absod1020aeroabsod440aeroabsod550aeroacprecasy1020aeroasy440aerocldbotod1020aerood380aerood440aerood500aerood500aerofineod550aerood550dupm1pm10pm2p5pshltrrh2sca1020aerosca440aerosca550aerosislpsstt2td2vdist
Multi-level:
cfracmaxlbsco532sconcc2h4sconcc2h6sconcc3h6sconcc3h8sconcch4sconccosconcetohsconcglyoxsconchchosconchclsconchfsconchno3sconcisopsconcmsasconcnh3sconcnh4sconcnosconcno2sconcno3sconco3sconcpansconcpbsconcso2sconcso4
Providentia can only read species in GHOST format. If you want to know the mapping from CAMS variables to GHOST species, please refer to the CAMS-GHOST species mapping section.
Assumptions
Providentia assumes the following fixed values when downloading data:
For single-level data:
time = 00:00leadtime_hour = 0-120(for every hour)type = forecast
For multi-level data:
time = 00:00leadtime_hour = 0-120(for every three hours)type = forecastmodel_level = 60(up to and including 2019-07-09)137(for data after 2019-07-09, when the levels increased)
For the multi-level data in this dataset, Providentia retrieves only the ground level.
Example configuration files and corresponding API requests
Example 1: CAMS Global Forecast (sst, Single-level, hourly)
[cams_forecast-global-hourly]
start_date = 20171201
end_date = 20171202
species = sst
model = cams_forecast
domain = global
resolution = hourly
dl_interpolated = False
dataset = 'cams-global-atmospheric-composition-forecasts'
request = {
'variable' : 'sea_surface_temperature',
'leadtime_hour' : ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100', '101', '102', '103', '104', '105', '106', '107', '108', '109', '110', '111', '112', '113', '114', '115', '116', '117', '118', '119', '120'],
'type' : 'forecast',
'date' : '2017-12-01/2017-12-01',
'time' : '00:00',
'data_format' : 'netcdf_zip',
}
Example 2: CAMS Global Forecast (sconcno2, Multi-level, 3hourly)
[cams_forecast-global-3hourly]
start_date = 20200601
end_date = 20200602
species = sconcno2
model = cams_forecast
domain = global
resolution = 3hourly
dl_interpolated = False
dataset = 'cams-global-atmospheric-composition-forecasts'
request = {
'variable' : 'nitrogen_dioxide',
'leadtime_hour' : ['0', '3', '6', '9', '12', '15', '18', '21', '24', '27', '30', '33', '36', '39', '42', '45', '48', '51', '54', '57', '60', '63', '66', '69', '72', '75', '78', '81', '84', '87', '90', '93', '96', '99', '102', '105', '108', '111', '114', '117', '120'],
'type' : 'forecast',
'date' : '2020-06-01/2020-06-01',
'model_level' : '137',
'time' : '00:00',
'data_format' : 'netcdf_zip',
}
3. CAMS European Air Quality Reanalyses
Using this dataset you can download Regional Reanalysis data.
This dataset contains multi-level data.
Only hourly data is available in this dataset. You must set resolution = hourly in your configuration file; otherwise, the download will not work.
Mandatory fields for regional reanalysis data
model = cams_reanalysis_<model>_<stream>
domain = regional
resolution = hourly
Replace
<model>and<stream>with one of the available model names and streams listed below.
Available models
Use the following model names (same as in the API):
ensemblechimereemeplotosmatchminnimocagemonarchsilameuradimdehmgemaq
Available streams
There is two available streams for the regional reanalysis dataset:
validatedavailable for the period 2014–2021 (inclusive)interimavailable for the period 2021–2024 (inclusive)
Available variables (Species)
These are the available species:
pm10pm10dupm10so4sspm2p5pm2p5ecsconccosconcglyoxsconchchosconcnh3sconcnmvocsconcnosconcno2sconco3sconcso2
Providentia can only read species in GHOST format. If you want to know the mapping from CAMS variables to GHOST species, please refer to the CAMS-GHOST species mapping section.
Assumptions
Providentia assumes the following fixed values when downloading data:
level = 0
All available data in this dataset is multi-level, but Providentia retrieves only the ground level.
Example configuration files and corresponding API requests
Example 1: CAMS Regional Reanalysis (Ensemble Model, sconcno2, Interim Reanalysis)
[cams_reanalysis_ensemble_interim-regional]
start_date = 20240101
end_date = 20240201
species = sconcno2
model = cams_reanalysis_ensemble_interim
domain = regional
resolution = hourly
dl_interpolated = False
dataset = 'cams-europe-air-quality-reanalyses'
request = {
'variable' : 'nitrogen_dioxide',
'year' : '2024',
'month' : '01',
'type' : 'interim_reanalysis',
'model' : 'ensemble',
'level' : '0',
}
Example 2: CAMS Regional Reanalysis (Ensemble Model, sconcno2, Validated Reanalysis)
[cams_reanalysis_ensemble_validated-regional]
start_date = 20200101
end_date = 20200301
species = sconcno2
model = cams_reanalysis_ensemble_validated
domain = regional
resolution = hourly
dl_interpolated = False
dataset = 'cams-europe-air-quality-reanalyses'
request = {
'variable' : 'nitrogen_dioxide',
'year' : '2020',
'month' : '01',
'type' : 'validated_reanalysis',
'model' : 'ensemble',
'level' : '0',
}
4. CAMS Global Reanalysis (EAC4)
Using this dataset you can download Global Reanalysis data.
This dataset contains both single-level and multi-level data.
Only 3hourly data is available in this dataset. You must set resolution = 3hourly in your configuration file; otherwise, the download will not work.
Mandatory fields for regional reanalysis data
model = cams_reanalysis
domain = global
resolution = 3hourly
Available variables (Species)
Whether the data is single or multi depends on the selected species. These are the available species:
Single-level:
2m_dewpoint_temperature2m_temperaturedust_aerosol_optical_depth_550nmmean_sea_level_pressureparticulate_matter_10umparticulate_matter_1umparticulate_matter_2.5umrelative_humiditysea_surface_temperaturesnow_depthsurface_pressuretotal_aerosol_optical_depth_550nm
Multi-level:
cfracmaxsconcc2h4sconcc2h6sconcc3h6sconcc3h8sconccosconcetohsconchchosconchno3sconcisopsconcmsasconcnh3sconcnh4sconcnosconcno2sconcno3sconco3sconcpansconcpbsconcso2sconcso4
Providentia can only read species in GHOST format. If you want to know the mapping from CAMS variables to GHOST species, please refer to the CAMS-GHOST species mapping section.
Assumptions
Providentia assumes the following fixed values when downloading data:
For single-level data:
time = 00:00-21:00(for every three hours)
For multi-level data:
time = 00:00-21:00(for every three hours)model_level = 60
For the multi-level data in this dataset, Providentia retrieves only the ground level.
Example configuration files and corresponding API requests
Example 1: CAMS Global Reanalysis (sst, Single-level)
[cams_reanalysis-global-single]
start_date = 20181101
end_date = 20181130
species = sst
model = cams_reanalysis
domain = global
resolution = 3hourly
dl_interpolated = False
dataset = 'cams-global-reanalysis-eac4'
request = {
'variable' : 'sea_surface_temperature',
'date' : '2018-11-01/2018-11-29',
'time' : ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'],
'data_format' : 'netcdf_zip',
}
Example 2: CAMS Global Reanalysis (sconcno2, Multi-level)
[cams_reanalysis-global-multi]
start_date = 20181101
end_date = 20181130
species = sconcno2
model = cams_reanalysis
domain = global
resolution = 3hourly
dl_interpolated = False
dataset = 'cams-global-reanalysis-eac4'
request = {
'variable' : 'nitrogen_dioxide',
'date' : '2018-11-01/2018-11-29',
'model_level' : '60',
'time' : ['00:00', '03:00', '06:00', '09:00', '12:00', '15:00', '18:00', '21:00'],
'data_format' : 'netcdf_zip',
}
CAMS-GHOST species mapping
Here is the mapping between CAMS variables and GHOST species names:
2m_dewpoint_temperature: td2
2m_temperature: t2
ammonia: sconcnh3
ammonium: sconcnh4
asymmetry_factor_1020nm: asy1020aero
asymmetry_factor_440nm: asy440aero
attenuated_backscatter_due_to_aerosol_532nm_from_ground: lbsco532
carbon_monoxide: sconcco
cloud_base_height: cldbot
dust: pm10du
dust_aerosol_optical_depth_550nm: od550du
ethane: sconcc2h6
ethanol: sconcetoh
ethene: sconcc2h4
formaldehyde: sconchcho
fraction_of_cloud_cover: cfracmax
glyoxal: sconcglyox
hydrogen_chloride: sconchcl
hydrogen_fluoride: sconchf
isoprene: sconcisop
lead: sconcpb
mean_sea_level_pressure: slp
methane: sconcch4
methane_sulfonic_acid: sconcmsa
nitrate: sconcno3
nitric_acid: sconchno3
nitrogen_dioxide: sconcno2
nitrogen_monoxide: sconcno
non_methane_vocs: sconcnmvoc
ozone: sconco3
particulate_matter_10um: pm10
particulate_matter_1um: pm1
particulate_matter_2.5um: pm2p5
peroxyacetyl_nitrate: sconcpan
pm10_sea_salt_dry: pm10so4ss
pm2.5_ammonium: pm2p5nh4
pm2.5_nitrate: pm2p5no3
pm2.5_sulphate: pm2p5so4
propane: sconcc3h8
propene: sconcc3h6
relative_humidity: rh2
sea_surface_temperature: sst
single_scattering_albedo_1020nm: sca1020aero
single_scattering_albedo_440nm: sca440aero
single_scattering_albedo_550nm: sca550aero
snow_depth: si
sulphate_aerosol_mixing_ratio: sconcso4
sulphur_dioxide: sconcso2
surface_pressure: pshltr
total_absorption_aerosol_optical_depth_1020nm: absod1020aero
total_absorption_aerosol_optical_depth_440nm: absod440aero
total_absorption_aerosol_optical_depth_550nm: absod550aero
total_aerosol_optical_depth_1020nm: od1020aero
total_aerosol_optical_depth_380nm: od380aero
total_aerosol_optical_depth_440nm: od440aero
total_aerosol_optical_depth_500nm: od500aero
total_aerosol_optical_depth_550nm: od550aero
total_elementary_carbon: pm2p5ec
total_fine_mode_aerosol_optical_depth_500nm: od500aerofine
total_precipitation: acprec
visibility: vdist