| title | fireSense_dataPrepFit Manual | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| subtitle | v.1.3.0 | ||||||||||||||
| date | Last updated: 2026-10-08 | ||||||||||||||
| output |
|
||||||||||||||
| editor_options |
|
||||||||||||||
| bibliography | citations/references_fireSense_dataPrepFit.bib | ||||||||||||||
| link-citations | true | ||||||||||||||
| always_allow_html | true |
(ref:fireSense-dataPrepFit) fireSense_dataPrepFit
Ian Eddy ian.eddy@nrcan-rncan.gc.ca [aut, cre], Eliot McIntire eliot.mcintire@nrcan-rncan.gc.ca [aut], Alex M Chubaty achubaty@for-cast.ca [ctb]
Prepares the data needed to fit fireSense_ignitionFit (ignition and escape) and fireSense_spreadFit.
The module combines historical fire records, vegetation, land cover and climate into the covariate tables used to fit the three fireSense processes [@Marchal:2017a; @Marchal:2017b; @Marchal:2019]: ignition, escape (an ignition that grows beyond one pixel) and spread.
Vegetation, land cover and stand age are snapshots, one per year in P(sim)$dataYears (default 2000, 2010, 2020).
Each year in P(sim)$fireYears uses the snapshot at or before it, so no fire year may precede the first data year, and every data year needs at least one fire year.
Climate is annual and is matched to the year of each fire.
Ignition and escape share climate variables (sim$climateVariablesForFire$ignition); spread can use others ($spread).
By default the module builds its own inputs:
- land cover (
rstLCCs) withfireSenseUtils::makeFireSenseLCC()and stand age withLandR::prepInputsStandAgeMap(), per data year; cohortDatasandpixelGroupMaps, by runningBiomass_borealDataPrep(andBiomass_speciesData, if it is in the project) in a nestedsimInitAndSpades()per data year. This is cached. Missing modules are downloaded to this module'ssubmodulesfolder;- fire polygons from the latest NBAC release, and ignition points (lightning- and natural-caused only) from the current NFDB release.
historicalClimateRasters has no default and must be supplied, e.g., by canClimateData.
It must cover every fire year; the module stops otherwise.
At init, the module looks in a Google Drive ledger (P(sim)$spreadFitGoogleDriveFolder, P(sim)$spreadFitFilename) for SpreadFit results that overlap sim$studyArea.
If there are any, sppEquiv, the fuel classes, the non-forest groups and the spread climate variables are taken from that fit, and fuel classes are not estimated.
sim$climateVariables must then be supplied.
If P(sim)$estimateFuelClasses is TRUE, and the user supplied none of nonForestedLCCGroups, fuelClassTable or a modified FuelClass column in sppEquiv, fuel classes are estimated with fireSenseUtils::assessFuelClasses().
Non-forest land cover classes are grouped by their historical propensity to burn, estimated with a GLM, into two groups.
For forest, each species starts as its own fuel class with an a priori class, by default an interpretation of the FBP fuel types (LandR::sppEquivalencies_CA$FuelClass).
A GLM relates the biomass of each species, in pixels where it is present, to whether the pixel burned.
Species are then merged until P(sim)$targetFuelClasses (default 5) remain:
- Abundance is the proportion of forested pixels where the species is more than 10% of the biomass.
- Rare species (abundance < 5%) are merged with another species of the same a priori class, least abundant first. This can leave fewer classes than the target.
- If there are still too many classes, the next least abundant species are merged, but only with species of the same a priori class and the same coefficient sign (or a non-significant one).
::: {.example #of semi-automated fuel classes} 7 species were initially present on the landscape; 2 must be combined to achieve the target 5 in this case, Betu_pap and Popu_tre were combined due to their low abundance (above10PctRelB) Pice_gla and Pice_eng were combined due as Abie_las was the most abundant. Pice_mar and Pinu_con were not combined as there were no other species with similar FuelClass values
| species | coef | sign | FuelClass | Abundance | newFuelClass |
|---|---|---|---|---|---|
| Pice_mar | -0.01320 | negative | BlkSprc | 0.066 | Pice_mar |
| Pinu_con | 0.00154 | positive | LdJkPine | 0.625 | Pinu_con |
| Betu_pap | -0.00170 | negative | PopBrch | 0.051 | Bt_pa.Pp_tr |
| Pice_eng | -0.01910 | negative | SprcFrLrch | 0.095 | Pc_en.Pc_gl |
| Popu_tre | -0.02100 | negative | PopBrch | 0.223 | Bt_pa.Pp_tr |
| Pice_gla | -0.00920 | negative | SprcFrLrch | 0.352 | Pc_en.Pc_gl |
| Abie_las | -0.00630 | negative | SprcFrLrch | 0.560 | Abie_las |
:::
Pixels disturbed within P(sim)$cutoffForYoungAge years (default 15) are youngAge, a fuel class of its own.
Time since disturbance comes from the stand age maps and the fire polygons (firePolysForAge), per data year.
Non-forest pixels can also be youngAge, unless P(sim)$nonForestCanBeYoungAge is FALSE.
sim$nonForestedLCCGroups takes precedence over P(sim)$forestedLCC: a land cover class listed in a non-forest group is a categorical fuel even if it is also in forestedLCC.
This lets treed wetland, for example, be simulated as forest by LandR but be a land cover fuel in fireSense.
A flammable class in neither gets no fuel covariate.
Pixels with forested land cover but no cohorts (usually because there was no species data) have no biomass, so they are assigned to one of the non-forest groups, sim$missingLCCgroup.
It is estimated along with the fuel classes; otherwise it defaults to the first group.
The module is normally run with canClimateData (for historicalClimateRasters and climateVariables) ahead of the three fit modules.
fireSense_spreadFit preparation needs the ignition preparation, so keep fireSense_ignitionFit in P(sim)$whichModulesToPrepare. Preparing fireSense_ignitionFit also prepares the escape data (prepEscapeFitData); the module fireSense_EscapeFit no longer exists and is rejected.
out <- SpaDES.project::setupProject(
paths = list(projectPath = "~/fireSenseFit"),
modules = c("PredictiveEcology/canClimateData@development", # needs its own parameters
"PredictiveEcology/fireSense_dataPrepFit@development"),
times = list(start = 2020, end = 2020),
studyArea = mySA, # buffered to limit edge effects
params = list(fireSense_dataPrepFit = list(
.useCache = c(".inputObjects", "dataPrepBuild", "prepIgnitionFitData",
"prepEscapeFitData", "prepSpreadFitData")))
)
sim <- do.call(SpaDES.core::simInitAndSpades, out)Table @ref(tab:moduleInputs-fireSense-dataPrepFit) shows the full list of module inputs.
| objectName | objectClass | desc | sourceURL |
|---|---|---|---|
| climateVariables | list | Climate variable definitions for `climateData::prepClimateLayers` (canClimateData). Unless supplied, `.inputObjects` builds them from `climateVariablesForFire`. Declared as an input because `.inputObjects` sets it: a cached `.inputObjects` restores only declared inputs, so without this a cache hit returned no `climateVariables` and canClimateData failed. | NA |
| climateVariablesForFire | list | List with elements `ignition` and `spread`, each a character vector of climate variable names, with or without underscores (e.g., `CMD_sm` or `CMDsm`). IgnitionFit uses all of `ignition`; SpreadFit uses `spread`. Default: `ignition = c('CMD', 'cumMDC', 'CMD_sm', 'CMD_sp')`, `spread = 'auto'`: the `ignition` variable that best separates the study area's worst fire years (see `spreadClimateSelection`). Unless supplied, `climateVariables` is built from these. | NA |
| cohortDatas | list | List of `cohortData` data.tables, one per `dataYears`, named `year<year>`. If not supplied, built by running Biomass_borealDataPrep for each data year. | NA |
| spreadFirePoints | list | List of spatial points, one per fire year, named `year<year>`; each point is the ignition location of one fire in `firePolys`. The default is the polygon centroids. | NA |
| spreadFitAdditionalColNames | character | Names of the ledger (`spreadFitPreRun`) columns to read. The default is `fireSenseUtils::spreadFitAdditionalColNamesTxt`. | NA |
| firePolys | list | List of fire polygons, one per year in `fireYears`, named `year<year>`. The default is the latest NBAC release. | NA |
| firePolysForAge | list | List of annual fire polygons used for time since disturbance; as `firePolys`, but starting `cutoffForYoungAge` years before the first of `fireYears`. | NA |
| historicalFireRaster | SpatRaster | Optional raster of fire year, 1985-2020. If supplied it replaces `firePolysForAge` for time since disturbance. Only downloaded when `useRasterizedFireForSpread = TRUE`. | https://opendata.nfis.org/downloads/forest_change/CA_Forest_Fire_1985-2020.zip |
| historicalClimateRasters | list | List of SpatRasters of historical climate, named by climate variable, with layers named `year<year>`. Must be supplied, and must cover `fireYears`. | NA |
| ignitionFirePoints | SpatVector | Points of annual ignitions, of every fire size, with columns `YEAR` and `SIZE_HA`. The default is the lightning- and natural-caused fires of the current NFDB release. | NA |
| missingLCCgroup | character | The `nonForestedLCCGroups` name given to forested pixels that are absent from `cohortData`. The default is the first name; it is replaced if fuel classes are estimated. | NA |
| nonForestedLCCGroups | list | Named list of non-forest land cover classes, e.g. `list(wetland = c(19, 23, 32))`. Each group becomes a fuel covariate. The default is one group, `nf`, of every class that is neither forested nor non-flammable; it is replaced if fuel classes are estimated. | NA |
| pixelGroupMaps | list | List of `pixelGroupMap` SpatRasters matching `cohortDatas`, named `year<year>`. | NA |
| propFlammables | list | List of SpatRasters of the proportion of flammable land cover in a pixel, one per `dataYears`. Built with `rstLCCs` when that is not supplied. | NA |
| rasterToMatch | SpatRaster | Template raster for `studyArea`. The default is 240 m, from SCANFI land cover. | NA |
| rasterToMatchLarge | SpatRaster | Optional larger template. If supplied it defines `studyArea_biomassParam`; if not, `.inputObjects` sets it to `rasterToMatch` for Biomass_speciesData. Declared as an input because `.inputObjects` sets it (a cached `.inputObjects` restores only declared inputs). | NA |
| rasterToMatch_biomassParam | SpatRaster | Template raster for `studyArea_biomassParam`, passed to Biomass_borealDataPrep. Expected to cover at least `rasterToMatch` (formerly `rasterToMatchLarge`). | NA |
| rstLCCs | list | List of land cover SpatRasters, one per `dataYears`, named `year<year>`, on `rasterToMatch_biomassParam`. The default is from `fireSenseUtils::makeFireSenseLCC`. | NA |
| .ELFind | character | The ELF this run is for (`fireSenseUtils::polygonIDTxt` in the SpreadFit ledger), set by `fireSense_ELFs`; its row's species colours win when ledger rows disagree. Optional. | NA |
| sppEquiv | data.table | Table of LandR species equivalencies. The default is from `LandR::speciesInStudyArea`. | NA |
| standAgeMaps | list | List of stand age SpatRasters, one per `dataYears`, named `year<year>`; used to create `cohortDatas` and time since disturbance. | NA |
| spreadFirePolys | list | Not needed from the user: `firePolys` in the CRS of `rasterToMatch`, declared as an input because a later event modifies it. | NA |
| spreadFitPreRun | data.frame | Ledger rows of previous SpreadFit results, as the output of that name; `Init()` reads them (supplied by `fireSense_ELFs`). Declared as an input so the rows are in the cache keys of this module's cached events: otherwise a cache entry saved before an ELF was refitted restores its old row over the one `Init()` just read. | NA |
| studyArea | SpatVector | Study area for all data. Should be buffered to limit edge effects on fire spread. | NA |
| studyArea_biomassParam | SpatVector | study area passed to Biomass_borealDataPrep for vegetation calibration | NA |
Parameters are in Table @ref(tab:moduleParams-fireSense-dataPrepFit).
| paramName | paramClass | default | min | max | paramDesc |
|---|---|---|---|---|---|
| areaMultiplier | numeric,.... | ::, fire.... | NA | NA | Size of the unburned buffer sampled around each fire: a scalar (buffer area is `areaMultiplier fireSize`) or a quoted function of `fireSize`. See `?fireSenseUtils::bufferToArea`. |
| bufferForFireRaster | numeric | 1000 | 0 | NA | Buffer distance within which separate patches of burned pixels count as one fire. Only used when `useRasterizedFireForSpread = TRUE`. |
| cutoffForYoungAge | numeric | 15 | NA | NA | Age at and below which pixels are considered 'young' (`young <- age <= cutoffForYoungAge`) |
| dataYears | integer | 1985, 19.... | NA | NA | Two or more increasing years for which vegetation, land cover and stand age are built (`cohortDatas`, `rstLCCs`, `standAgeMaps`, ...). Each fire year uses the data year at or before it, so no `fireYears` may precede the first, and every data year needs at least one fire year before the next data year. |
| estimateFuelClasses | logical | TRUE | NA | NA | Estimate fuel classes with `fireSenseUtils::assessFuelClasses`? Skipped if the user supplies `nonForestedLCCGroups`, `fuelClassTable` or a `FuelClass` column that differs from LandR's, or if a previous SpreadFit exists for the study area. |
| fireYears | integer | 1985, 19.... | NA | NA | Years of fire records to use for fitting. None may precede the first of `dataYears`, and `historicalClimateRasters` must cover all of them. The default runs from 1985, the first SCANFI V2 year, to the latest year with historical climate for every tile (`climateData::latestHistoricalYear()`); climate is the last of the inputs to reach a year. |
| flammabilityThreshold | numeric | 0.1 | 0 | 1 | Minimum proportion of flammable fine-resolution land cover for a `rasterToMatch` pixel to be flammable. Only used when `rstLCCs` is built here. |
| forestedLCC | numeric | 81, 210,.... | NA | NA | Forested land cover classes - these differ from non-forest because the biomass and composition of fuels are taken into account by fireSense, while non-forest classes are treated categorically |
| igAggFactor | numeric | 4 | 1 | NA | Aggregation factor (number of `rasterToMatch` cells per side) for the ignition and escape covariates. |
| escapeSizeHa | numeric | 50 | 0 | NA | Size (ha) a fire must reach to count as escaped: the escape model's response, and the smallest fire the spread model is fitted to. Smaller fires' sizes become `nonEscapedFireSizesHa`. |
| fuelClassCol | character | FuelClass | NA | NA | the column in `sppEquiv` that defines unique fuel classes. A column named `FuelClass` exists in the `LandR::sppEquivalencies_CA` and will be used by default. To change the `FuelClass` classifications, add a column to that table, or to `sim$sppEquiv` and then modify this `fuelClassCol` parameter |
| fuelCovariates | character | domSecWe.... | NA | NA | How the spread-fit fuel covariates are represented. `"domSecWetland"` (default): `dom_agb_<class>` and `sec_agb_<class>` (the two fuel classes with the most total treed AGB over the fit study area) and `treedWetland_agb` (all tree AGB on treed-wetland pixels, removed from dom/sec there); other classes are not covariates; see `fireSenseUtils::fireSenseCovariatesCreate()`. `"species"`: the previous one column per fuel class. `fireSense_dataPrepPredict` follows whichever a fit used; this is not a parameter there. |
| minBufferSize | numeric | 5000 | NA | NA | Minimum number of cells in each fire's burned-plus-buffer sample, applied after `areaMultiplier`. |
| minCovariateProp | numeric | 0.05 | 0 | 1 | A land-cover class covering less than this proportion of the ELF's flammable pixels (most recent data year) is too rare to estimate a spread coefficient for. A non-forest class joins the non-forest group nearest its burn rate instead of being clustered on its own (`fireSenseUtils::assessFuelClasses()`); with less treed wetland than this there is no `treedWetland_agb` and its tree AGB stays in `dom_agb_ `/`sec_agb_ ` (`fireSenseUtils::fireSenseCovariatesCreate()`). `0` keeps every class. |
| nonflammableLCC | numeric | 0, 20, 3.... | NA | NA | Non-flammable classes in `rstLCCs`; the default, `fireSenseUtils::fireSenseNonflammableLCC`, is no data, water, rock, snow/ice and barren land. |
| nonForestCanBeYoungAge | logical | TRUE | NA | NA | if TRUE, burned non-forest will be treated as `youngAge`. Recommended to be TRUE as burned forest is often classified as non-forest. `youngAge` is resolved for each fire year from the data year's time since disturbance, which covers forest and non-forest alike, so `FALSE` is not supported and stops the spread and ignition preparation. |
| scanfiVersion | character | V3 | NA | NA | SCANFI land-cover version for non-forest land cover, `"V2"` or `"V3"`. Passed to `fireSenseUtils::makeFireSenseLCC()`. |
| sppEquivCol | character | LandR | NA | NA | column name in `sppEquiv` object that defines unique species in `cohortData` |
| heldOutFold | integer | NA | NA | NA | NA (default): unchanged. `1` or `2`: a cross-validation fold is being fitted (the same parameter as in `fireSense_spreadFit`), so the SpreadFit ledger is not relevant and `Init()` does not read it: `sim$spreadFitPreRun` stays NULL and this module derives the species, fuel and climate objects itself, as for an unfitted study area. Set it for every fireSense module at once with `.globals = list(heldOutFold = 1L)`; `Init()` stops if `fireSense_spreadFit` has a different value. Any other value is an error. |
| spreadFitGoogleDriveFolder | character | https://.... | NA | NA | URL of the Google Drive folder holding the ledger of previous SpreadFit results (`spreadFitFilename`), read with `reproducible::CacheGeo`. |
| spreadFitFilename | character | latest | NA | NA | Name of the ledger file in `spreadFitGoogleDriveFolder`: study area polygons with their fitted SpreadFit parameters. `"latest"` (the default) takes each polygon's fit from the most recent ledger file that has it (`fireSenseUtils::latestSpreadFits()`). |
| spreadIntercept | logical | FALSE | NA | NA | If `TRUE`, the spread formula has an intercept (`~ 1 + ...`) and `fireSense_spreadFit` fits it, with the covariates centred, so the coefficients describe variation and the intercept the level. Covariates are rescaled to 0-1 and so are all >= 0: without an intercept the level of the linear predictor is set by the coefficients alone, and a climate coefficient trades off against the fuel and non-forest ones (ELF 13.1). `FALSE` (default) keeps `~ 0 + ...`. Ignored if `sim$fireSense_spreadFormula` is supplied. Needs a `fireSense_spreadFit` and a `fireSense_spreadPredict` that know the intercept. |
| targetFuelClasses | numeric | 5 | 1 | 7 | the target number of unique fuel classes when using semi-automated approach |
| useRasterizedFireForSpread | logical | FALSE | NA | NA | Use `historicalFireRaster` in place of fire polygons for spread? Not currently supported: `TRUE` stops with an error when preparing SpreadFit. |
| whichModulesToPrepare | character | fireSens.... | NA | NA | Which fireSense fit modules to prep? defaults to both. Preparing `fireSense_ignitionFit` prepares its ignition and escape data. |
| .studyAreaName | character | NA | NA | `studyArea` name used in file names and cache tags; `NULL` derives it from `sim$studyArea`. | |
| .useCache | logical | FALSE | NA | NA | Should this entire module be run with caching activated? This is intended for data-type modules, where stochasticity and time are not relevant |
| .useCacheArgs | list | list(.ca.... | NA | NA | Extra `reproducible::Cache()` arguments, by event. A cached event's digest covers this module's code but not the package functions it calls, so `dataPrepBuild` and `prepSpreadFitData` pass those in `.cacheExtra`: a changed function then re-runs the event. |
All events run once, at start(sim).
Checks Google Drive for a previous SpreadFit (see above). It cannot be cached, because that would freeze the answer.
Runs straight after init, before other modules' init.
Puts rstLCCs on rasterToMatch, and builds, per data year, flammableRTMs, landcoverDTs and nonForest_timeSinceDisturbances.
Fuel classes are estimated here.
Can be cached: add "dataPrepBuild" to .useCache.
Fuel, climate and lightning rasters are aggregated by P(sim)$igAggFactor, and ignitions are counted per coarse pixel and year.
sim$fireSense_ignitionCovariates has one row per coarse pixel and year.
Fitted probabilities only apply at that resolution, so the template sim$ignitionFitRTM is also output, with attributes nonNAs (the number of rows) and meanForestB.
No ignition formula is built: fireSense_ignitionFit fits with xgboost, which does not use one.
Adds an escapes column to the ignition covariates: the ignitions that grew beyond one rasterToMatch pixel (not one coarse pixel).
Builds sim$fireSense_escapeFormula if it was not supplied. Needs prepIgnitionFitData.
Spread uses fires of every cause, where ignition uses lightning- and natural-caused ones only, and only fires larger than one pixel.
Each fire needs an ignition point in a flammable pixel inside its polygon (sim$spreadFirePoints; default the polygon centroid); fireSenseUtils::harmonizeFireData() enforces this.
Each fire polygon is buffered, with the buffer size set by P(sim)$areaMultiplier and P(sim)$minBufferSize, and only burned and buffer pixels are kept (sim$fireBufferedListDT).
The module stops if buffer pixels are fewer than five times the burned pixels.
To keep the objects small for the optimizer, the covariates are split in two:
sim$fireSense_annualSpreadFitCovariates, one table of climate per fire year, and sim$fireSense_nonAnnualSpreadFitCovariates, one table of fuels per data year.
Fuel columns that are all zero are dropped.
Builds sim$fireSense_spreadFormula if it was not supplied.
P(sim)$useRasterizedFireForSpread = TRUE is not currently supported.
plotAndMessage is a placeholder; cleanUp frees memory.
Description of the module outputs (Table @ref(tab:moduleOutputs-fireSense-dataPrepFit)).
| objectName | objectClass | desc |
|---|---|---|
| climateVariablesForFire | list | As the input. If a previous SpreadFit exists, `spread` becomes the climate variables of that fit, and they are added to `ignition`. |
| spreadFitPreRun | data.frame | Ledger rows of previous SpreadFit results that overlap `studyArea`, from `CacheGeo`: a geometry column (convert with `sf::st_as_sf`), plus `polygonID` and the columns in `spreadFitAdditionalColNames`. `NULL` if there is no previous fit. |
| studyAreaWithSpreadParams | sf | Same as `spreadFitPreRun`; not created if there is no previous fit. |
| sppColorVect | character | Named vector of hex colours, one per species. Only created if a previous SpreadFit exists, from the `sppEquiv` stored with it. |
| sppNameVector | character | Sorted species names (`sppEquivCol`) from the `sppEquiv` stored with a previous SpreadFit; only created if one exists. |
| spreadClimateSelection | data.table | With `climateVariablesForFire$spread = 'auto'`: each candidate's AUC for separating the worst quarter of fire years (by area burned), its Spearman correlation, and which was chosen. |
| climateVariables | list | Climate variable definitions, as used by `climateData::prepClimateLayers` (canClimateData). Unless supplied, built from `climateVariablesForFire` for `fireYears` (and projected years unless canClimateData's `climateGCM` is 'NRV'). If a previous SpreadFit exists, the variables of that fit are added. |
| fireBufferedListDT | list | list of data.tables with fire id, `pixelID`, and buffer status |
| fuelClassTable | data.table | Fuel class assigned to each tree species; only created if fuel classes are estimated. |
| spreadFirePolys | list | List of annual fire polygons used for SpreadFit: larger than one pixel and matched to `spreadFirePoints`. |
| fireSense_annualSpreadFitCovariates | list | List of data.tables, one per fire year, of `pixelID` and the spread climate covariates in the fire buffers. |
| fireSense_escapeCovariates | data.table | ignition covariates with added column of escapes |
| nonEscapedFireSizesHa | numeric | Sizes (ha) of this study area's natural-cause fires (`ignitionFirePoints`) below `escapeSizeHa`, for giving a forecast's non-escaped ignitions a size. |
| fireSense_escapeFormula | character | formula for escape, using fuel classes and landcover, as character |
| fireSense_ignitionCovariates | data.table | table of aggregated ignition covariates with annual ignitions |
| fireSense_nonAnnualSpreadFitCovariates | list | List of data.tables, one per `dataYears`, of `pixelID` and the fuel covariates in the fire buffers. |
| fireSense_spreadFormula | character | formula for spread, using climate and vegetation covariates, as character |
| fuelClassRoles | list | Only when `fuelCovariates = "domSecWetland"`: `list(domClass =, secClass =)`, the fuel classes chosen once for this ELF by `fireSenseUtils::chooseDomSecFuelClasses()`. Both `NA` with `fuelCovariates = "species"` or when the ELF has no tree fuel class. |
| ignitionFirePoints | SpatVector | The input, in the CRS of `rasterToMatch` and clipped to `studyArea`. |
| ignitionFitRTM | SpatRaster | Template raster with the resolution and extent of `fireSense_ignitionCovariates`. Attributes: `nonNAs`, the number of rows in that table, and `meanForestB`, the mean forest biomass per pixel. |
| landcoverDTs | list | List of data.tables, one per `dataYears`, of `pixelID` and a 0/1 column per non-forest group, for flammable pixels. |
| lightningMaps | SpatRaster | A 4-layer SpatRaster of lightning: lightningDays, lightningDensity, positiveCG, positiveCGdensity |
| missingLCCgroup | character | As the input, or the estimated group if fuel classes are estimated. |
| nonForestedLCCGroups | list | As the input, or the estimated groups if fuel classes are estimated. |
| nonForest_timeSinceDisturbances | list | List of SpatRasters, one per `dataYears`, of years since disturbance in flammable pixels, forested or not. |
| rstLCCs | list | The input, on `rasterToMatch`. |
| flammableRTMs | list | List of binary SpatRasters of flammable land cover on `rasterToMatch`, one per `dataYears`. |
| sppEquiv | data.table | sppEquiv table potentially modified with new or overwritten fuel class |
| spreadFirePoints | list | List of ignition points, one per fire year, for fires larger than one pixel, harmonized with `spreadFirePolys`. |
| propFlammable | SpatRaster | Last element of `propFlammables`. |
| standAgeMap | SpatRaster | Last element of `standAgeMaps`. |
| rstLCC_RTM | SpatRaster | Last element of the output `rstLCCs`, i.e., on `rasterToMatch`. |
| rstLCC | SpatRaster | Last element of the input `rstLCCs`, i.e., on `rasterToMatch_biomassParam`. |
| flammableRTM | SpatRaster | Last element of `flammableRTMs`. |
| landcoverDT | data.table | Last element of `landcoverDTs`. |
| nonForest_timeSinceDisturbance | SpatRaster | Last element of `nonForest_timeSinceDisturbances`. |
This module links to fireSense_ignitionFit and fireSense_spreadFit
Contact the authors for help.
https://github.com/PredictiveEcology/fireSense_dataPrepFit/issues
