Skip to content

NicheMapR v3.3.1 Now including leaf temperature calculations, snakey DEB models, torpor and hair raising effects

Compare
Choose a tag to compare
@mrke mrke released this 26 May 02:50
· 41 commits to master since this release

Leaf temperature

Changes have been made to allow leaf temperature calculations via the ectotherm and ectoR_devel functions. This will be described fully in forthcoming paper but a new vignette 'Leaf Temperature Tutorial' gives a practical overview. The main changes are that evaporation can include contributions from stomata via vectors of hourly stomatal conductance, used if new argument ‘leaf = 1’. The evaporation routines of ectotherm and ectoR_devel now incorporate an equation for parallel conductance of cuticle and stomata, allowing adaxial (facing towards the stem/up) and abaxial (facing away from the stem/down) (Campbell and Norman (1998)'s equation 14.1).

With the ectotherm function, leaf thermoregulatory behaviour can be invoked by setting ‘leaf = 2’, in which case stomata are progressively opened to the value specified by arguments ‘g_vs_ad_max’ and ‘g_vs_ab_max’ to avoid the upper temperature limit specified via the ‘CT_max’ parameter.

DEB starvation and fixed prey size

This release includes updates on starvation options in DEB models. These options are driven by the argument ‘starvemode’, which determines how reproduction buffer is used during starvation: 0 means it is not used, 1 means it is used before structure is mobilised and 2 means it is used to maximise reserve density.

For the ectotherm model, code has been added to handle organisms that feed on prey of a fixed size (e.g., snakes) via DEB theory. Specifically, by setting the new argument ‘foodmode’ to 1, the input food vector X is treated as an absolute input to the stomach (in joules) to simulate single-sized prey items for gape-limited predators. Intake is capped to multiples of prey size up to the max energy capacity of the stomach (the default setting foodmode = 0 assumes X is food density in J/cm2, as before). As part of this change, the food (and water) input vector for running the DEB model in the ectotherm function is now hourly rather than daily.

Maturity at oviposition in DEB models

A new parameter E_Ho (maturity at oviposition) and associated code has been added to the DEB model in the ectotherm model which determines when oviposition happens, thereby allowing a continuum from full oviparity to full ovoviviparity. Placental viviparity is not yet implemented.

Piloerection, torpor and an additional thermoregulatory mode in the endotherm function endoR

Cold birds and mammals fluff their feathers/fur, a response known as ptiloerection in birds and piloerection in mammals. This can be simulated with endoR via the new parameters PZFUR, ZFURD_MAX and ZFURV_MAX (even though these are called ‘fur’ they are relevant for feathers too). The PZFUR (value between 0 and 1) is the fraction by which the fur depth decreases as piloerection becomes unnecessary. The PZFUR parameter makes piloerection happen if its value is greater than zero, resulting in the animal starting with ZFURD at ZFURD_MAX (and same for ZFURV). As the animal becomes warm, the depth of the fur is reduced by PZFUR * LHAIRD. The value of ZFURD_MAX can not, of course, be larger than the length of the hairs, LHAIRD. The ‘treg’ output dataframe now includes Z_FUR_D and Z_FUR_V outputs, showing how fur depth changed during the simulation.

Two new thermoregulatory modes, set via TREGMODE = 0 and TREGMODE = 2 have been introduced to the endoR function. TREGMODE = 0 invokes a torpor response. Rather than the model solving for the metabolic rate that balances the heat budget, it instead continues to reduce core temperature to balance the heat budget until either the environment won’t permit body temperature to go any lower or until the value of core temperature reaches the lower limit, specified by the new parameter TC_MIN. As the core temperature drops, metabolic rate drops as a function of the Q10 parameter. If the environment becomes sufficiently cold, metabolic rate will rise to defend this TC_MIN.

TREGMODE = 2 results in core temperature rising simultaneously with panting. In TREGMODE = 0 all responses happen in series, and core temperature rose to the maximum first before panting commenced. However, often TREGMODE = 2 leads to more realistic responses, especially for birds. You can make your own bespoke response for your organism by modifying endoR_devel.

Convective enhancement factor

A convective enhancement factor has been added to the ectotherm and endotherm models, ‘conv_enhance’. It can account for enhanced turbulent convection in outdoor conditions compared to what is measured in wind tunnels (see Kolowski & Mitchell 1976 https://doi.org/10.1115/1.3450614 and Mitchell 1976 https://doi.org/10.1016/S0006-3495(76)85711-6). Default value is 1, i.e. no effect, but Kolowski & Mitchell recommend 1.4.

Other changes, fixes and improvements

Microclimate model

  • added code to properly handle leap years in micro_ncep and micro_era5 when working with terraclimate climate change scenarios
  • a new parameter ‘moiststep’ allows user control over how fine a timestep the infiltration model in the microclimate model runs (default is 360).
  • slight tweak to how the 'warm' argument is treated so that hourly offset values can be sent to micro_era5
  • clearsky option now included in micro_era5 and micro_ncep
  • fixed issue where rainhourly was not set to 1 after distributing at midnight if save = 2; also altered midnight distribution of rainfall so that 1/3 falls at midnight and 1/3 on the hour either side, to reduce the chance that the integration fails
  • fixed issue in microclimate model where reference height was not being used as air node 1 (so was always assuming reference height was 2m), and also correcting an issue where air node 3 was not able to be below 0.5 cm
  • added functionality to micro_usa and micro_aust to output diffuse radiation fractions via microclima-based internal calcs

Ectotherm models

  • a change was made to the ectotherm model to avoid 'burrowing' when the minimum soil node/depth (argument ‘mindepth’) option is set to the surface (‘mindepth = 0’). Burrowing can still occur to escape thermal extremes if the value of ‘maxdepth’ is greater than 0
  • added dynamic heat production for onelump_var and twolump, and added the option for fluid to be water option for transient heat budgets (so diving turtles can be simulated)
  • prevent egg exchanging water when retained in mother (DEB model on, viviparous = 1, E_H < E_Ho)
  • fixed error found in calculations of geometry for a cylinder in GEOM_ecto and GEOM.f
  • made ectoR_devel compute solar with body remaining oriented to track sun if postur = 1 but not otherwise (consistent with the live = 1 setting of the ectotherm model)
  • added a new possible value for argument 'LIVE' in the ectotherm model, 'LIVE=2', which acts the same as when 'LIVE=1' but doesn't do postural adjustments to maximise/minimise solar gain
  • added extra step in ellipsoid calcs in GEOM_ecto.R to ensure AL is the shortest dimension
  • added option to orient shapes (plate, cylinder, ellipsoid) by 90 degrees (e.g., to put a cylinder upright on its circular edge) as far as silhouette areas go, via new input argument 'orient', and also to allow exposure to the different silhouette areas while tracking the sun or not

Dynamic energy budget models

  • an error was corrected in DEB models where digestion efficiency wasn't being taken into account when checking how much energy in the food could be used for assimilation
  • an issue was fixed in the ectotherm DEB model to make the variable clutch size with length option (‘clutch_ab’ input argument) work properly and a new input argument ‘maxclutch’ was included to put a cap on this relationship
  • fixed p_T calculation in R DEB models to account for changing step size

General

  • added 'get_pressure' function to package which computes pressure from elevation
  • allowing characteristic dimension for ellipsoids to be based on second semi-major axis if this is smaller than the cube root of volume

What's Changed

New Contributors

Full Changelog: 3.2.1...v3.3.1