diff --git a/src/crop/almass.jl b/src/crop/almass.jl index 3c735a2ab2ae46e70e31934b81ae5560ec1266ce..326c12e1ef5ae130a21052904409da1f302da9fb 100644 --- a/src/crop/almass.jl +++ b/src/crop/almass.jl @@ -36,6 +36,59 @@ import Persefone: using Dates: Date, month, monthday using CSV: CSV +"Temperature to solar conversion factor for C3 plants." +const temperature_to_solar_conversion_c3::Vector{Float64} = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # -30°C to -21°C + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # -20°C to -11°C + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # -10°C to -1°C + 0, 0, 0, 0, 0, 0.28, 0.56, 0.84, 1.12, 1.4, # 0°C to 9°C + 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, # 10°C to 19°C + 1.4, 1.4, 1.4, 1.4, 1.4, 1.4, 1.26, 1.12, 0.98, 0.84, # 20°C to 29°C + 0.7, 0.56, 0.42, 0.28, 0.14, 0, 0, 0, 0, 0, # 30°C to 39°C + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 40°C to 49°C + 0 # 50°C +] + +"Temperature to solar conversion factor for C4 plants." +const temperature_to_solar_conversion_c4::Vector{Float64} = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # -30°C to -21°C + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # -20°C to -11°C + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, # 0°C to 9°C + 0, 0, 0, 0, 0, 0, 0, 0, 0.242857, 0.485714, # 10°C to 19°C + 0.728571, 0.971429, 1.214286, 1.457143, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, # 20°C to 29°C + 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, # 30°C to 39°C + 1.7, 1.7, 1.7, 1.7, 1.7, 1.7, 1.53, 1.36, 1.19, 1.02, # 40°C to 49°C + 0.85, 0.68, 0.51, 0.34, 0.17, 0, 0, 0, 0, 0, # 50°C + 0 +] + +""" + solar_conversion_c3(temperature) + +Solar conversion factor (no units) for C3 plants. +""" +function solar_conversion_c3(temperature) + if temperature < -30 || temperature > 50 + return 0.0 + end + idx = Int(floor(0.5 + temperature)) + 30 + 1 + return temperature_to_solar_conversion_c3[idx] +end + +""" + solar_conversion_c3(temperature) + +Solar conversion factor (no units) for C4 plants. +""" +function solar_conversion_c4(temperature) + if temperature < -30 || temperature > 50 + return 0.0 + end + idx = Int(floor(0.5 + temperature)) + 30 + 1 + return temperature_to_solar_conversion_c4[idx] +end + + """ GrowthPhase