Impact on Users
Mass density of air
At the moment almost all of the chemical and aerosol species we disseminate and archive are expressed as mass mixing ratios. While this might be sufficient for most of the users, some would prefer to use mass concentration data.
The conversion formula is simple enough but due to data licence restrictions which govern most of ECMWF meteorological forecast data we are not able to offer temperature forecasts.
To bypass this limitation we are adding air density as a new parameter to the CAMS global dissemination stream. The new parameters is available on pressure and model levels in both GRIB and NetCDF format. New files are named as follows:
Code Block |
---|
z_cams_c_ecmf_20180425000000_prod_an_ml_000_den.grib
z_cams_c_ecmf_20180425000000_prod_an_ml_000_den.nc
z_cams_c_ecmf_20180425000000_prod_an_pl_000_den.grib
z_cams_c_ecmf_20180425000000_prod_an_pl_000_den.nc
...
z_cams_c_ecmf_20180425000000_prod_fc_ml_012_den.grib
z_cams_c_ecmf_20180425000000_prod_fc_ml_012_den.nc
z_cams_c_ecmf_20180425000000_prod_fc_pl_012_den.grib
z_cams_c_ecmf_20180425000000_prod_fc_pl_012_den.nc
... |
To compute mass concentration you can use the scripts below.
Compute mass concentration of a chemical specie on pressure level from NetCDF output
Code Block |
---|
language | bash |
---|
title | compute_nc_concentration.sh |
---|
|
#!/bin/sh
set -ex
module load cdo
DATADIR=/path-to-datadir
LEVEL=1000 # select pressure level
PARAM=co # select parameter
# extract single level field
cdo -sellevel,${LEVEL} ${DATADIR}/z_cams_c_ecmf_20180425000000_prod_fc_pl_012_${PARAM}.nc ${PARAM}_mmr_${LEVEL}.nc
cdo -sellevel,${LEVEL} ${DATADIR}/z_cams_c_ecmf_20180425000000_prod_fc_pl_012_den.nc den_${LEVEL}.nc
# unpack NetCDF data
cdo -b f32 copy ${PARAM}_mmr_${LEVEL}.nc ${PARAM}_mmr_${LEVEL}_32.nc
cdo -b f32 copy den_${LEVEL}.nc den_${LEVEL}_32.nc
# compute concentration = mmr * air_density
cdo mul ${PARAM}_mmr_${LEVEL}_32.nc den_${LEVEL}_32.nc ${PARAM}_conc_${LEVEL}.nc |
Compute mass concentration of a chemical specie on model level from GRIB file
Code Block |
---|
language | bash |
---|
title | compute_grib_concentration.sh |
---|
|
#!/bin/sh
set -ex
module load eccodes
module load cdo
DATADIR=/path-to-datadir
LEVEL=60 # select model level
PARAM=no2 # select parameter
# extract single level field
grib_copy -w level=${LEVEL} ${DATADIR}/z_cams_c_ecmf_20180425000000_prod_fc_pl_012_${PARAM}.grib ${PARAM}_mmr_${LEVEL}.grib
grib_copy -w level=${LEVEL} ${DATADIR}/z_cams_c_ecmf_20180425000000_prod_fc_pl_012_den.grib den_${LEVEL}.grib
# compute concentration = mmr * air_density
cdo mul ${PARAM}_mmr_${LEVEL}.grib den_${LEVEL}.grib ${PARAM}_conc_${LEVEL}.grib |
Lowest model level
Another frequent request we receive is from users who are interested in surface Due to the nature of data organisation
Additional aerosol parameters in archive