R/FireMIP-Quantities.R

#'  FireMIp Quantities
#'
#'  All the FiremMIP quantities currently provided by the models.
#'
#' @format The \code{Quantity} class is an S4 class with the slots defined below.
#' @rdname Quantity-class
#' @export
#' @keywords datasets
#' @import DGVMTools
#' @importFrom methods new
#' @export
#'

FireMIP.quantities <- list(

  #### BURNT AREA AND EMISSIONS

  new("Quantity",
      id = "fFirePFT",
      name = "C emitted from fire (per PFT)",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "C emitted from fire (per PFT)"),

  new("Quantity",
      id = "fFire",
      name = "C emitted from fire",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO2 emitted from fire"),

  new("Quantity",
      id = "coFire",
      name = "CO emitted from fire",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO emitted from fire"),

  new("Quantity",
      id = "Cfire",
      name = "C emitted from fire",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "C emitted from fire"),

  new("Quantity",
      id = "burntArea",
      name = "Burnt Area Fraction",
      units = "fraction",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Burnt Area Fraction (per PFT)"),

  new("Quantity",
      id = "BA",
      name = "Burnt Area Fraction (monthly)",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Burnt Area Fraction (monthly)"),

  new("Quantity",
      id = "fFirepft",
      name = "C emitted from fire (per PFT)",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "C emitted from fire (per PFT)"),



  ### FUEL LOADS

  new("Quantity",
      id = "cFuelLiveGrass",
      name = "Carbon in live grass fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in live grass fuel"),

  new("Quantity",
      id = "cFuel",
      name = "Carbon in fuel fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in fuel"),

  new("Quantity",
      id = "cFuel1hr",
      name = "Carbon in 1hr fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in 1hr fuel"),

  new("Quantity",
      id = "cFuel10hr",
      name = "Carbon in 10hr fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in 10hr fuel"),

  new("Quantity",
      id = "cFuel100hr",
      name = "Carbon in 100hr fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in 100hr fuel"),

  new("Quantity",
      id = "cFuel1000hr",
      name = "Carbon in 1000hr fuel",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in 1000hr fuel"),


  ### COMBUSION COMPLETENESS

  new("Quantity",
      id = "ccFuelLiveGrass",
      name = "Combusion Completeness in live grass fuel",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Combusion Completeness live grass fuel"),

  new("Quantity",
      id = "ccFuel1hr",
      name = "Combustion Completeness in 1hr fuel",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Combustion Completenessin 1hr fuel"),

  new("Quantity",
      id = "ccFuel10hr",
      name = "Combustion Completenessin 10hr fuel",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Combustion Completeness in 10hr fuel"),

  new("Quantity",
      id = "ccFuel100hr",
      name = "Combustion Completenessin 100hr fuel",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Combustion Completeness in 100hr fuel"),

  new("Quantity",
      id = "ccFuel1000hr",
      name = "Combustion Completenessin 1000hr fuel",
      units = "%",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Combustion Completeness in 1000hr fuel"),


  ### FUEL MOISTURE

  new("Quantity",
      id = "mFuelDead",
      name = "Fuel moisture of dead fuel",
      units = "",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Fuel moisture of dead fuel"),

  new("Quantity",
      id = "mFuelLiveGrass",
      name = "Fuel moisture of live grass fuel",
      units = "",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Fuel moisture of live grass fuel"),

  new("Quantity",
      id = "mFuel",
      name = "Fuel moisture (all fuel)",
      units = "",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP"),
      standard_name = "Fuel moisture"),

  ### FIRE PROPERTIES AND MORTALITY

  new("Quantity",
      id = "intensFire",
      name = "Fireline intensity",
      units = "kW m-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Fireline intensity"),

  new("Quantity",
      id = "nrfire",
      name = "Number of fires",
      units = "nr m-2 month-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Number of fires"),

  new("Quantity",
      id = "nrIgn",
      name = "Potential ignitions",
      units = "nr m-2 month-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Potential ignitions"),

  new("Quantity",
      id = "meanFire",
      name = "Mean fire size",
      units = "m2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Mean fire size"),

  new("Quantity",
      id = "cMortality",
      name = "Number of individuals killed",
      units = "indiv m-2 month-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Number of individuals killed"),

  new("Quantity",
      id = "RoS",
      name = "Mean rate of spread",
      units = "m/s",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Mean rate of spread"),

  new("Quantity",
      id = "durat",
      name = "Mean fire duration",
      units = "min",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Mean fire duration"),

  ### HYDROLOGICAL VARIABLES

  new("Quantity",
      id = "mrro",
      name = "Total Runoff",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Total Runoff"),

  new("Quantity",
      id = "evapotrans",
      name = "Total Evapo-Transpiration",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Total Evapo-Transpiration"),

  new("Quantity",
      id = "evapotranspft",
      name = "Vegtype level evapotranspiration ",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level evapotranspiration "),

  new("Quantity",
      id = "evapo",
      name = "Vegtype level soil evaporation",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level soil evaporation"),

  new("Quantity",
      id = "mrso",
      name = "Total Soil Moisture Content",
      units = "kg m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Total Soil Moisture Content"),

  new("Quantity",
      id = "mrsos",
      name = "Surface Layer (50cm) Soil Moisture Content",
      units = "kg m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Surface Layer (50cm) Soil Moisture Content"),

  new("Quantity",
      id = "evspsblveg",
      name = "Evaporation from Canopy",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Evaporation from Canopy"),

  new("Quantity",
      id = "evspsblsoi",
      name = "Evaporation from Soil",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Evaporation from Soil"),

  new("Quantity",
      id = "tran",
      name = "Transpiration",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Transpiration"),

  new("Quantity",
      id = "tsl",
      name = "Temperature of soil",
      units = "K",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Temperature of soil"),

  new("Quantity",
      id = "mslpft",
      name = "Vegtype level soil moisture",
      units = "kg  m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level soil moisture"),



  ### FLUXES

  new("Quantity",
      id = "gpp",
      name = "Gross Primary Production",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Gross Primary Production"),

  new("Quantity",
      id = "npp",
      name = "Net Primary Production",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Net Primary Production"),

  new("Quantity",
      id = "nbp",
      name = "Net Biospheric Production",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Net Biospheric Production"),

  new("Quantity",
      id = "ra",
      name = "Autotrophic (Plant) Respiration",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Autotrophic (Plant) Respiration"),

  new("Quantity",
      id = "rh",
      name = "Heterotrophic Respiration",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Heterotrophic Respiration"),

  new("Quantity",
      id = "gpppft",
      name = "Vegtype level GPP",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level GPP"),

  new("Quantity",
      id = "npppft",
      name = "Vegtype level NPP",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level NPP"),

  new("Quantity",
      id = "nbppft",
      name = "Vegtype level NBP",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP"),
      standard_name = "Vegtype level NBP"),

  new("Quantity",
      id = "fLuc",
      name = "CO2 Flux to Atmosphere from Land Use Change",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO2 Flux to Atmosphere from Land Use Change"),

  new("Quantity",
      id = "fGrazing",
      name = "CO2 Flux to Atmosphere from grazing",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO2 Flux to Atmosphere from grazing"),

  new("Quantity",
      id = "fHarvest",
      name = "CO2 Flux to Atmosphere from crop harvesting",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO2 Flux to Atmosphere from crop harvesting"),

  # POOLS

  new("Quantity",
      id = "cVegpft",
      name = "Vegtype level Carbon in Vegetation",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level Carbon in Vegetation"),

  new("Quantity",
      id = "cVeg",
      name = "Carbon in Vegetation",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in Vegetation"),

  new("Quantity",
      id = "cLeaf",
      name = "Carbon in Leaves",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("CTEM_FireMIP"),
      standard_name = "Carbon_in_leaves"),

  new("Quantity",
      id = "cRoot",
      name = "Carbon in Roots",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("CTEM_FireMIP"),
      standard_name = "Carbon_in_roots"),

  new("Quantity",
      id = "cWood",
      name = "Carbon in Wood",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("CTEM_FireMIP"),
      standard_name = "Carbon_in_wood"),

  new("Quantity",
      id = "cCwd",
      name = "Carbon in CWD",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("CTEM_FireMIP"),
      standard_name = "Carbon_in_coarse_woody_debris"),

  new("Quantity",
      id = "cLitter",
      name = "Carbon in Above-ground Litter Pool",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in Above-ground Litter Pool"),

  new("Quantity",
      id = "cSoil",
      name = "Carbon in Soil (including below-ground litter)",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in Soil (including below-ground litter)"),

  new("Quantity",
      id = "cSoilpft",
      name = "Carbon in Soil per PFT (including below-ground litter)",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype soil carbon"),

  new("Quantity",
      id = "fLitterSoil",
      name = "Total Carbon Flux from Litter to Soil",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP"),
      standard_name = "Total Carbon Flux from Litter to Soil"),

  new("Quantity",
      id = "fVegLitter",
      name = "Total Carbon Flux from Vegetation to Litter",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP"),
      standard_name = "Total Carbon Flux from Vegetation to Litter"),


  ###  STRUCTURE

  new("Quantity",
      id = "landCoverFrac",
      name = "Fractional Land Cover of PFT",
      units = "",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Fractional Land Cover of PFT"),

  new("Quantity",
      id = "lai",
      name = "Leaf Area Index",
      units = "",
      colours =  function(n) rev(viridis::viridis(n)),
      format = "FireMIP",
      standard_name = "Leaf Area Index"),

  new("Quantity",
      id = "theightpft",
      name = "Vegtype level tree heights",
      units = "m",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level tree heights"),

  ### LAND USE

  new("Quantity",
      id = "cProduct",
      name = "Carbon in Products of Land Use Change",
      units = "kg C m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Carbon in Products of Land Use Change"),

  new("Quantity",
      id = "fLuc",
      name = "CO2 Flux to Atmosphere from Land Use Change",
      units = "kg C m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "CO2 Flux to Atmosphere from Land Use Change"),

  ### CLIMATE

  new("Quantity",
      id = "pr",
      name = "Precipitation",
      units = "kg m-2 s-1",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Precipitation"),

  new("Quantity",
      id = "rsds",
      name = "Surface_Downwelling_Shortwave-Radiation",
      units = "W m-2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Surface_Downwelling_Shortwave-Radiation"),

  new("Quantity",
      id = "tas",
      name = "Near-Surface_Air_Temperature",
      units = "K",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Near-Surface_Air_Temperature"),

  new("Quantity",
     id = "Albedo",
     name = "Vegtype level Broadband Albedo",
     units = "fraction",
     colours =  function(n) rev(viridis::viridis(n)),
     format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
     standard_name = "Vegtype level Broadband Albedo"),

  new("Quantity",
      id = "shflxpft",
      name = "Vegtype level sensible heat flux",
      units = "W m_2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Vegtype level sensible heat flux"),


  new("Quantity",
      id = "snow_depth",
      name = "Snow depth",
      units = "m m_2",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "Snow depth"),

  new("Quantity",
      id = "vtype",
      name = "MC2 vegetation type",
      units = "category",
      colours =  function(n) rev(viridis::viridis(n)),
      format = c("FireMIP", "LPJ-GUESS-SPITFIRE"),
      standard_name = "MC2 vegetation type")



)
MagicForrest/FireMIPTools documentation built on April 22, 2023, 4:24 a.m.