improver.fire_weather.fine_fuel_moisture_code module#

class FineFuelMoistureCode[source]#

Bases: IterativeFireWeatherBase

Plugin to calculate the Fine Fuel Moisture Code (FFMC).

The FFMC is a numerical rating of the moisture content of litter and other fine fuels, representing the relative ease of ignition and flammability of fine fuel. Values range from 0-101, with higher values indicating drier conditions.

This process is adapted directly from:

Equations and FORTRAN Program for the Canadian Forest Fire Weather Index System (C.E. Van Wagner and T.L. Pickett, 1985). Page 5, Equations 1-10.

Expected input units:
  • Temperature: degrees Celsius

  • Precipitation: mm (24-hour accumulation)

  • Relative humidity: percentage (0-100)

  • Wind speed: km/h

  • Previous FFMC: dimensionless (0-101)

INPUT_ATTRIBUTE_MAPPINGS: dict[str, str] = {'fine_fuel_moisture_code': 'input_ffmc'}#
INPUT_CUBE_NAMES: list[str] = ['air_temperature', 'lwe_thickness_of_precipitation_amount', 'relative_humidity', 'wind_speed', 'fine_fuel_moisture_code']#
LAG_TIME: int = 3#
METADATA_SOURCE_CUBE: str = 'fine_fuel_moisture_code'#
OUTPUT_CUBE_NAME: str = 'fine_fuel_moisture_code'#
STARTING_VALUE: int = 85#
VALID_OUTPUT_RANGE: tuple[float | None, float | None] | None = (0.0, 101.0)#
_abc_impl = <_abc._abc_data object>#
_calculate()[source]#

Calculate the Fine Fuel Moisture Code (FFMC).

Return type:

ndarray

Returns:

The calculated FFMC values for the current day.

_calculate_EMC_for_drying_phase()[source]#

Calculates the Equilibrium Moisture Content (EMC) for the drying phase under current environmental conditions (relative humidity, and temperature)

From Van Wagner and Pickett (1985), Page 5: Equation 4, and Step 4.

Return type:

ndarray

Returns:

The Equilibrium Moisture Content for the drying phase (E_d). Array shape matches the input cube data shape. Values are in moisture content units (dimensionless).

_calculate_EMC_for_wetting_phase()[source]#

Calculates the Equilibrium Moisture Content (EMC) for the wetting phase under current environmental conditions (relative humidity, and temperature)

From Van Wagner and Pickett (1985), Page 5: Equation 5, and Step 6.

Return type:

ndarray

Returns:

The Equilibrium Moisture Content for the wetting phase (E_w). Array shape matches the input cube data shape. Values are in moisture content units (dimensionless).

_calculate_ffmc_from_moisture_content(clip_ffmc=False)[source]#

Calculates the fine fuel moisture code (FFMC) from the moisture content.

From Van Wagner and Pickett (1985), Page 5: Equation 10, and Step 9.

Parameters:

clip_ffmc (bool) –

If true fine fuel moisture code values will be clipped to

a minimum of 0 and a maximum of 101.

Return type:

ndarray

Returns:

The calculated FFMC values (dimensionless, clipped range 0-101). Return array will be clipped only if clip_ffmc is True. Array shape matches input cube data shape.

_calculate_moisture_content()[source]#

Calculates the previous day’s moisture content for a given input value of the fine fuel moisture code, and initialises the moisture_content attribute to that value.

From Van Wagner and Pickett (1985), Page 5: Equation 1, Steps 1 & 2.

_calculate_moisture_content_through_drying_rate(E_d)[source]#

Calculates the moisture content through the drying rate.

From Van Wagner and Pickett (1985), Page 5: Equations 6a, 6b, 8, and Step 5.

Parameters:

E_d (ndarray) – The Equilibrium Moisture Content for the drying phase.

Return type:

ndarray

Returns:

Array of moisture content (dimensionless) with drying applied at all grid points. Shape matches input cube data shape.

_calculate_moisture_content_through_wetting_equilibrium(E_w)[source]#

Calculates the moisture content through the wetting equilibrium.

From Van Wagner and Pickett (1985), Page 5: Equations 7a, 7b, 9, and Step 7.

Parameters:

E_w (ndarray) – The Equilibrium Moisture Content for the wetting phase.

Return type:

ndarray

Returns:

Array of moisture content (dimensionless) with wetting applied at all grid points. Shape matches input cube data shape.

_perform_rainfall_adjustment()[source]#

Updates the moisture content value based on available precipitation accumulation data for the previous 24 hours. This is done element-wise for each grid point.

Modifies self.moisture_content in place. Where precipitation > 0.5 mm, increases moisture content based on rainfall amount and current moisture level. Caps moisture content at 250 (dimensionless).

From Van Wagner and Pickett (1985), Page 5: Equations 2, 3a, 3b, and Steps 3a, 3b, 3c.

initial_moisture_content: ndarray#
input_ffmc: Cube#
moisture_content: ndarray#
precipitation: Cube#
process(*cubes, month=None, initialise=False, clip_ffmc=False)[source]#
Parameters:
  • *cubes (Union[Cube, CubeList]) – One or more input cubes as specified by INPUT_CUBE_NAMES. When initialise is True cubes should exclude the OUTPUT_CUBE_NAME, which should otherwise be given as the iterative input.

  • month (int | None) – Month parameter (1-12), required only if REQUIRES_MONTH is True

  • initialise (bool) – True when starting the iterative process else False

  • clip_ffmc (bool) –

    If true fine fuel moisture code values will be clipped to

    a minimum of 0 and a maximum of 101.

Return type:

Cube

Returns:

The calculated output cube.

relative_humidity: Cube#
temperature: Cube#
wind_speed: Cube#