### Persefone.jl - a model of agricultural landscapes and ecosystems in Europe. ### ### This file contains the submodel that calculates insect biomass ### ## XXX THE CODE IN THIS FILE IS CURRENTLY NOT USED AND LIKELY WON'T BE IN FUTURE. ## HOWEVER, I PREFER TO KEEP IT FOR NOW IN CASE WE EVER DO. (DV, 29th July 2024) """ insectbiomass(pixel, model) Calculate the insect biomass in this location, using the factors configured in the `nature.insectmodel` settings (any combination of: "season", "habitat", "weather", "pesticides"). Returns a float value in g/m². **Biological note:** this is a very approximate calculation! Insect biomass varies wildly in time and space and is hard to measure. This calculation is based on the idea of a parabolic seasonal development of insect abundance, modified by habitat suitability, weather, and pesticide application. Although it is based on empirical studies, it can only deliver a rough, order-of-magnitude estimation of likely insect biomass in a given location. **Sources:** - Odderskær et al. (1997). Skylark Reproduction in Pesticide Treated and Untreated Fields (32; Pesticides Research). Danish Environmental Protection Agency. - Grüebler et al. (2008). A predictive model of the density of airborne insects in agricultural environments. Agriculture, Ecosystems & Environment, 123(1), 75–80. https://doi.org/10.1016/j.agee.2007.05.001 - Paquette et al. (2013). Seasonal patterns in Tree Swallow prey (Diptera) abundance are affected by agricultural intensification. Ecological Applications, 23(1), 122–133. https://doi.org/10.1890/12-0068.1 - Püttmanns et al. (2022). Habitat use and foraging parameters of breeding Skylarks indicate no seasonal decrease in food availability in heterogeneous farmland. Ecology and Evolution, 12(1), e8461. https://doi.org/10.1002/ece3.8461 """ function insectbiomass(pixel::Pixel, model::SimulationModel) ## if no factors are configured, insect abundance defaults to 300 mg/m², ## a value in the upper range of insect biomass density in agricultural landscapes baseline = 300mg/m² seasonfactor = 0.0mg/m² habitatfactor = 1.0 weatherfactor = 1.0 pesticidefactor = 1.0 ## parabolic curve of seasonal development (peaking on the 6th of July), ## based on fig. 3a in Paquette et al. (2013) if "season" in @param(nature.insectmodel) calendarday = dayofyear(model.date) seasonfactor = (-0.085(calendarday-187)^2)mg/m² end ## habitat dependence of insect biomass, ## based on fig. 1 in Grübler et al. (2008) and fig. 5c in Püttmanns et al. (2022) if "habitat" in @param(nature.insectmodel) if pixel.landcover == soil || pixel.landcover == forest habitatfactor = 2.0 elseif pixel.landcover == grass habitatfactor = 1.5 elseif pixel.landcover == agriculture habitatfactor = 1.0 else habitatfactor = 0.0 end end ## temperature dependence of insect biomass, ## based on fig. 3b in Paquette et al. (2013) ##XXX (and possibly table 3 in Grübler et al. (2008)) if "weather" in @param(nature.insectmodel) @warn "Weather effects on insect biomass are not yet implemented." #TODO add this once we have a working weather module end ## effect of pesticides on insect abundance, ## based on figs. 3.6 and 3.7 in Odderskær et al. (1997) ## Note that this is a simplification: it ignores that insect biomass ## tends to rise rapidly a few weeks after pesticide application. if "pesticides" in @param(nature.insectmodel) && pesticide in pixel.events pesticidefactor = 0.5 end ## calculate biomass using a parabolic equation in the vertex form seasonfactor+baseline*habitatfactor*pesticidefactor*weatherfactor |> g/m² #FIXME somehow this seems to throw a unit error? # `DimensionError: and g m^-2 are not dimensionally compatible` end