Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Self-contained class for Functional Biome Types #16

Open
amdasilva opened this issue Sep 18, 2024 · 0 comments
Open

Self-contained class for Functional Biome Types #16

amdasilva opened this issue Sep 18, 2024 · 0 comments

Comments

@amdasilva
Copy link
Collaborator

amdasilva commented Sep 18, 2024

Background

As of version 3.0, QFED still works with 4 functional biome types (FBT)

1 . Tropical Forest: IGBP 1, 30S < lat < 30N
2. Extra-tropical Forests: IGBP 1, 2(lat <=30S or lat >= 30N), 3, 4, 5
3. Cerrado/Woody Savanna: IGBP 6, 7, 8, 9
4. Grassland/Cropland: IGBP 10, 11, ..., 17

There are some initial placeholders in the QFED 3 codebase for other FBTs, e.g.,

TROPICAL_FOREST = 'tf'
EXTRATROPICAL_FOREST = 'xf'
SAVANNA = 'sv'
GRASSLAND = 'gl'
AGRICULTURAL = 'ag'
PEETLAND = 'pt'
FLARING = 'fl'
WASTE = 'ws'

Options for Functional Biome Types

These 2 papers provide options:

  1. Shahid, S. B., Lacey, F. G., Wiedinmyer, C., Yokelson, R. J. & Barsanti, K. C. NEIVAv1.0: Next-generation Emissions InVentory expansion of Akagi et al. version 1.0. EGUsphere 2024, 1–49 (2024).

  2. Ferrada, G. A. et al. Introducing the VIIRS-based Fire Emission Inventory version 0 (VFEIv0). Geosci. Model Dev. 15, 8085–8109 (2022).

The FBTs in Shahid et al., while broadly consistent with Ferrada et al., appear to be a good compromise.

Poroposed Functional Biome Types for QFED 3.2

  1. Savanna and grasslands (includes Chaparral)
  2. Boreal Forest
  3. Tropical Forest
  4. Temperate Forest
  5. Peat
  6. Crop Residue
  7. GarbageBurning
  8. Volcanoes
  9. Gas Flaring
  10. Other stationary sources

Filtering

These appear reasonable:

  • By using CARN volcano database, one can construct a volcano map, and thus filter out volcanos as well.
  • Use gas flare map to implement gas flaring filtering.

Persistency flag in Louis product not very useful (<3).

A Base Class for Encapsulating FBTs and Emission Factors

When implementing emission inventories such as QFED, there is basic functionality that is needed for defining FBTs, and for getting the associated emission factors associated with each. Encapsulating these into a self-contained class offers a much needed "separation of concerns", isolating these type of decisions from the rest of the system. Here are some initial thoughts about such a base class:

import abc
class FBT(abc.ABC):

 @abc.abstractmethod
  def get_fbts(self):
      """
       Return dictionary, indexed by short names, with information about Functional Biome Types implemented.
       """

  def get_species(self):
      """
       Return dictionary, indexed by short names, with information about chemical species supported.
       """

  @abc.abstractmethod
  def classify(self,lons,lats):
      """
       Given list of coordinates of each detected thermal anomaly, return a list of associated FBTs.
       """
  
    @abc.abstractmethod
    def get_ef(self, fbt,species,mce=None):
        """
         Return emission factor for *species* given functional biome type *fbt*, optionally
         modulating it with the modified combustion efficiency *mce*, if provided.
        """

Let's hold any implementation of the mce modulation until we clarify the specific parameterizations to be adopted. For one, these emission factors may be applied at Level 3, thus requiring averaging of (1-MCE) x FRP for some compounds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant