diff --git a/src/crop/cropmodels.jl b/src/crop/cropmodels.jl index 22d6b1470849aa46b922d82ec930e97018eadfec..8653a1439e8d0a5dcfe14b09c326ef9a4a0a3bad 100644 --- a/src/crop/cropmodels.jl +++ b/src/crop/cropmodels.jl @@ -18,7 +18,8 @@ function initcropmodel(cropmodel::AbstractString, cropfile::AbstractString, grow Tcroptype = SimpleCrop.CropType Tcropstate = SimpleCrop.CropState crops_almass = ALMaSS.readcropparameters(cropfile, growthfile) - crops = Dict(name => SimpleCrop.CropType(ct.name) for (name, ct) in crops_almass) + crops = Dict(name => SimpleCrop.CropType(ct.name, ct.group, ct.minsowdate, ct.maxsowdate) + for (name, ct) in crops_almass) else error("initcropmodel: no implementation for crop model '$cropmodel'") end diff --git a/src/crop/simplecrop.jl b/src/crop/simplecrop.jl index 308434d7490b87467b94ea5c58ab316feaaccbe6..348d9448561f693d1e1f951d33b9b7781ea2187a 100644 --- a/src/crop/simplecrop.jl +++ b/src/crop/simplecrop.jl @@ -1,6 +1,7 @@ module SimpleCrop using Persefone: + AnnualDate, FarmPlot, Length, cm, @@ -14,10 +15,17 @@ import Persefone: cropcover, cropyield, sow!, - harvest! + harvest!, + isharvestable +using Unitful: @u_str + +# TODO: alternatively just use ALMaSS.CropType ? struct CropType name::String + group::String + minsowdate::Union{Missing,AnnualDate} + maxsowdate::Union{Missing,AnnualDate} end cropname(ct::CropType) = ct.name @@ -64,8 +72,8 @@ function harvest!(cs::CropState, model::SimulationModel) # TODO: set cs.croptype ? # TODO: this 1.0g/cm/m^2 height_to_yield factor should be a param # for every crop type - yield = cs.height * 1.0g/cm/m^2 - cs.height = 0cm + yield = cs.height * 1.0u"g/cm/m^2" + cs.height = 5.0cm return yield end diff --git a/test/crop_tests.jl b/test/crop_tests.jl index 93e233c49d1386a8afc8e1af0d96b6cba9fb5402..9632b1d59549eea5decd4909982b54e16fce2eb4 100644 --- a/test/crop_tests.jl +++ b/test/crop_tests.jl @@ -38,7 +38,7 @@ end end @testset "Submodule SimpleCrop" begin - ct = Ps.SimpleCrop.CropType("olive tree") + ct = Ps.SimpleCrop.CropType("olive tree", "no_crop_group", AnnualDate(4, 1), AnnualDate(5, 1)) id = 0 pixels = [(0, 0)] farmer = 0