GFAS biomass burning emissions

From Geos-chem
Jump to: navigation, search


NOTE: The GFAS biomass burning emissions inventory is available for simulations with GEOS-Chem 12.2.0 and later via the HEMCO emissions component. While the standard GEOS-Chem simulation uses GFED4 biomass burning emissions, you may select GFAS instead of GFED4 if your research requires it.

NOTE: The HEMCO_Config.rc generated by the gcCopyRundirs script from the unit tester will result in HEMCO errors when GFAS biomass burning emissions are enabled. Please see the example HEMCO configuration snippet later on this page for working HEMCO configuration.

From the GFAS website:

The Global Fire Assimilation System (GFAS) assimilates fire radiative power (FRP) observations from satellite-based sensors to produce daily estimates of biomass burning emissions. It has been extended to include information about injection heights derived from fire observations and meteorological information from the operational weather forecasts of ECMWF.

FRP observations currently assimilated in GFAS are the NASA Terra MODIS and Aqua MODIS active fire products (

GFAS data includes: Fire Radiative Power (FRP), dry matter burnt and biomass burning emissions.

Data are available globally on a regular lat-lon grid with horizontal resolution of 0.1 degrees from 2003 to present.

This page describes the download, processing and uploading of the CAMS GFAS biomass burning emissions inventory undertaken by the University of York and the choices made in the associated HEMCO configuration file. GFAS emissions are produced daily by the ECMWF as part of their CAMS project. More details can be found in the ECMWF wiki.

The files produced by ECMWF contain emissions for a number of fields. The files are produced at a global. 0.1x0.1 resolution. A full list of fields is given in the File Contents section.

Data Download

At the start of a new month, the daily data from the previous month is downloaded to York. Due to file transfer limits this is achieved as two transfers. One covering days 1-15 of the month, the second covering days 16-28/29/30/31. The Python script to perform the download can be found in GitHub.

Data Processing

Various changes are made to the files to make them consistent with HEMCO and COARDS.

  1. In order to make the file COARDS compliant, additional 'title', 'conventions', and 'history' attributes are added:
    • The ‘title’ attribute gives the title of of the dataset and the year/month
    • The ‘conventions’ attribute gives the name of the conventions adopted in the file (COARDS, in this case)
    • The ‘history’ attribute gives a textual history of processing that has been applied to the contained data
  2. 'time' is converted from “hours since 1900-01-01 00:00:0.0” to “hours since 1970-01-01 00:00:0.0”
  3. Latitude value sequence is reversed - CAMS data has latitude values from 90N to -90N where HEMCO requires -90N to 90N
  4. For each data set variable:
    • 'units', 'long_name', 'missing_value' are set
    • the modal value in each input half-monthly variable is set to zero (if it is an emission variable), or the output missing value otherwise. There does not appear to be a consistent missing value in the output from the ECMWF data API for this data set in NetCDF format; as this is sparse data, the modal value will be missing data
    • Half-monthly data is concatenated, reversing the latitude dimension
  5. For the mean altitude of maximum injection variable:
    • Where there is no CO emission, i.e. no fire, mean altitude of maximum injection value is set to the output missing value
    • Where there is CO emission, i.e. fire, and the mean altitude of maximum injection value is between -1.0 and 1.0 (exclusive), mean altitude of maximum injection value is set to 0.0 (i.e. surface)

The final two steps are taken to further clean up inconsistencies in missing value in the output from the ECMWF data API for this data set in NetCDF format.

All variables are compressed at NetCDF 'level 4' when created, decreasing the size of the output NetCDF files on disk. Variables are chunked with the following sizes:

time/1, lat/1800, lon/3600

as suggested by the GEOS-Chem wiki. For further reading about chunking in NetCDF files, see this Unidata article.

Once a month of data has been preprocessed, it is put into a single netCDF file called GFAS_$YYYY$ It is then transferred to the GEOS-Chem Support Team in Harvard. The preprocessing and transfer scripts can be found in GitHub.

File Contents

Each file contains daily gridded data for a specific month at global 0.1x0.1 resolution. A table of variables follows:

Variable Short Name Variable Long Name Unit
time time Hours since 1970-01-01 00:00:0.0
lat latitude Degrees North
lon longitude Degrees East
cfire Wildfire overall flux of burnt carbon kg/m2/s
crfire Wildfire combustion rate kg/m2/s
co2fire Wildfire flux of carbon dioxide kg/m2/s
cofire Wildfire flux of carbon monoxide kg/m2/s
ch4fire Wildfire flux of methane kg/m2/s
nmhcfire Wildfire flux of non-methane hydrocarbons kg/m2/s
h2fire Wildfire flux of hydrogen kg/m2/s
noxfire Wildfire flux of nitrogen oxides (NOx) kg/m2/s
n2ofire Wildfire flux of nitrous oxide kg/m2/s
pm2p5fire Wildfire flux of particulate matter (PM2.5) kg/m2/s
tpmfire Wildfire flux of total particulate matter kg/m2/s
tcfire Wildfire flux of total carbon in aerosols kg/m2/s
ocfire Wildfire flux of organic carbon kg/m2/s
bcfire Wildfire flux of of black carbon kg/m2/s
so2fire Wildfire flux of sulfur dioxide kg/m2/s
ch3ohfire Wildfire flux of methanol (CH3OH) kg/m2/s
c2h5ohfire Wildfire flux of ethanol (C2H5OH) kg/m2/s
c3h8fire Wildfire flux of propane (C3H8) kg/m2/s
c2h4fire Wildfire flux of ethene (C2H4) kg/m2/s
c3h6fire Wildfire flux of propene (C3H6) kg/m2/s
c5h8fire Wildfire flux of isoprene (C5H8) kg/m2/s
terpenesfire Wildfire flux of terpenes (C5H8) kg/m2/s
toluenefire Wildfire flux of lumped toluene (C7H8 + C6H6 + C8H10) kg/m2/s
hialkenesfire Wildfire flux of higher alkenes (CnH2n C>=4) kg/m2/s
hialkanesfire Wildfire flux of higher alkanes (CnH2n+2 C>=4) kg/m2/s
ch2ofire Wildfire flux of formaldehyde (CH20) kg/m2/s
c2h4ofire Wildfire flux of acetaldehyde (C2H40) kg/m2/s
c3h6ofire Wildfire flux of acetone (C3H60) kg/m2/s
nh3fire Wildfire flux of ammonia (NH3) kg/m2/s
c2h6sfire Wildfire flux of dimethyl sulfide (DMS) (C2H6S) kg/m2/s
c2h6fire Wildfire flux of ethane (C2H6) kg/m2/s
c7h8fire Wildfire flux of toluene (C7H8) kg/m2/s
c6h6fire Wildfire flux of benzene (C6H6) kg/m2/s
c8h10fire Wildfire flux of xylene (C8H10) kg/m2/s
c4h8fire Wildfire flux of butenes (C4H8) kg/m2/s
c5h10fire Wildfire flux of pentenes (C5H10) kg/m2/s
c6h12fire Wildfire flux of hexene (C6H12) kg/m2/s
c8h16fire Wildfire flux of octene (C8H16) kg/m2/s
c4h10fire Wildfire flux of butanes (C4H10) kg/m2/s
c5h12fire Wildfire flux of pentanes (C5H12) kg/m2/s
c6h14fire Wildfire flux of hexanes (C6H14) kg/m2/s
c7h16fire Wildfire flux of heptane (C7H16) kg/m2/s
offire Wildfire fraction of area observed Dimensionless
frpfire Wildfire radiative power W/m2
mami Mean altitude of maximum injection m
apt Altitude of plume top m

Implementation in GEOS-Chem

Not all of the species in the emissions files can be mapped onto GEOS-Chem species by default. The following is taken from a HEMCO_Config.rc file and shows a possible mapping. The emissions here are uniformly distributed between the surface and the mean altitude of maximum injection given by ECMWF, using the scale factor as defined below. Removing the L=1:scal300 from the species mapping will place all emissions at the surface.

# --- GFAS biomass burning ---
0 GFAS_CO    $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ cofire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO   75    5 3
0 GFAS_SOAP  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ cofire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3
0 GFAS_NO    $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ noxfire       2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NO   75    5 3
0 GFAS_BCPI  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ bcfire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPI 70/75 5 3
0 GFAS_BCPO  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ bcfire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BCPO 71/75 5 3
0 GFAS_OCPI  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ ocfire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPI 72/75 5 3
0 GFAS_OCPO  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ ocfire        2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s OCPO 73/75 5 3
0 GFAS_CO2   $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ co2fire       2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO2  75    5 3
0 GFAS_CH4   $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ ch4fire       2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH4  75    5 3
0 GFAS_SO2   $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ so2fire       2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SO2  75    5 3
0 GFAS_NH3   $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ nh3fire       2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s NH3  75    5 3
0 GFAS_ACET  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c3h6ofire     2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ACET 75    5 3
0 GFAS_ALD2  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c2h4ofire     2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALD2 75    5 3
0 GFAS_ALK4  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ hialkanesfire 2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ALK4 75    5 3
0 GFAS_PRPE1 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ hialkenesfire 2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75    5 3
0 GFAS_PRPE2 $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c3h6fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s PRPE 75    5 3
0 GFAS_C2H6  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c2h6fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H6 75    5 3
0 GFAS_C3H8  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c3h8fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C3H8 75    5 3
0 GFAS_CH2O  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ ch2ofire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CH2O 75    5 3
0 GFAS_C2H4  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c2h4fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s C2H4 75    5 3
0 GFAS_ISOP  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c5h8fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s ISOP 75    5 3
0 GFAS_DMS   $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c2h6sfire     2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s DMS  75    5 3
0 GFAS_TOLU  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c7h8fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s TOLU 75    5 3
0 GFAS_BENZ  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c6h6fire      2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s BENZ 75    5 3
0 GFAS_XYLE  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ c8h10fire     2003-2019/1-12/1-31/0 C xyL=1:scal300 kg/m2/s XYLE 75    5 3

# --- GFAS scale factors ---
300 GFAS_EMITL $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ mami 2003-2019/1-12/1-31/0 C xy m 1

Previous issues that are now resolved

Fix GFAS_SOAP entry in HEMCO_Config.rc

This update was included in GEOS-Chem 12.3.0, which was released on 01 Apr 2019.

The original implementation of GFAS will give HEMCO errors when GFAS biomass burning emissions are enabled.

HEMCO ERROR: Illegal altitude unit

ERROR LOCATION: GetIdx (hco_geotools_mod.F90)

HEMCO ERROR:  Error getting vertical index at location            1          45 : GFAS_SOAP

To resolve the issue, change the GFAS_SOAP line as indicated below:

0 GFAS_CO    $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ cofire        2003-2018/1-12/1-31/0 C xyL=1:scal300 kg/m2/s CO   75     5 3
0 GFAS_SOAP  -                                          -             -                     - -             -       SOAP 75/281 5 3
0 GFAS_SOAP  $ROOT/GFAS/v2018-09/$YYYY/GFAS_$YYYY$ cofire        2003-2018/1-12/1-31/0 C xyL=1:scal300 kg/m2/s SOAP 75/281 5 3

--Melissa Sulprizio (talk) 16:01, 12 March 2019 (UTC)


Please acknowledge the use of this data set according to the terms of the Copernicus CAMS License agreement:

Contains modified Copernicus Atmosphere Monitoring Service Information 2018


  1. Di Giuseppe, F., S. Rémy, F. Pappenberger, and F. Wetterhall, Combining fire radiative power observations with the fire weather index improves the estimation of fire emissions, Atmos. Chem. Phys., 18, 5359-5370,, 2018.
  2. Rémy, S., A. Veira, R. Paugam, M. Sofiev, J.W. Kaiser, F. Marenco, S.P. Burton, A. Benedetti, R.J. Engelen, R. Ferrare, J.W. Hair, Two global data sets of daily fire emission injection heights since 2003, Atmos. Chem. Phys., 17, 2921-2942,, 2017.
  3. Andela, N. (VUA), J.W. Kaiser (ECMWF, KCL), A. Heil (FZ Jülich), T.T. van Leeuwen (VUA), G.R. van der Werf (VUA), M.J. Wooster (KCL), S. Remy (ECMWF) and M.G. Schultz (FZ Jülich), Assessment of the Global Fire Assimilation System (GFASv1).
  4. Kaiser, J. W., A. Heil, M.O. Andreae, A. Benedetti, N.,Chubarova, L. Jones, J.-J. Morcrette, M. Razinger, M.G. Schultz, M. Suttie, and G.R. van der Werf, Biomass burning emissions estimated with a global fire assimilation system based on observed fire radiative power, Biogeosciences, 9, 527-554.(2012)
  5. Xu, W., M.J. Wooster, G. Roberts, P. Freeborn, New GOES imager algorithms for cloud and active fire detection and fire radiative power assessment across North, South and Central America, Remote Sensing of Environment, 114, 1876-1895, 2010.
  6. Heil, A., J.W. Kaiser, G.R. van der Werf, M.J. Wooster, M.G. Schultz, H.D. van der Gon, Assessment of the Real-Time Fire Emissions (GFASv0) by MACC, ECMWF Tech. Memo No. 628, 2010.
  7. Di Giuseppe, F., S. Remy, F. Pappenberger, F. Wetterhall, Improving GFAS and CAMS biomass burning estimations by means of the Global ECMWF Fire Forecast system (GEFF), ECMWF Tech. Memo No. 790, 2016.