PSUmodeling / Cycles

Cycles agroecosystem model
https://psumodeling.github.io/Cycles/
Other
11 stars 0 forks source link

Implement way to terminate annual forage crop at clipping #31

Closed shiyuning closed 4 years ago

shiyuning commented 4 years ago

from: @cmw29

My feature request for Cycles is to implement some way to automatically terminate an annual forage crop at clipping, which is commonly needed for corn silage and cover crops harvested in spring as silage. The current method has some large disadvantages.

First, it is very easy to forget to add a Kill_Crop operation, so it is very common to create a simulation where the crop keeps living and then you have to go back and add the Kill_Crop operations everywhere they are needed. This is frustrating for new and experienced users, as it creates an unnecessary back and forth when developing a simulation. It also results in very bulky and cumbersome operation input files.

The next disadvantage is that even if you remember to use a Kill_Crop statement, it is not always temporally compatible with the harvest management. If a crop is set to be clipped on either %maturity or on a biomass threshold, you have no way to know ahead of time on what date the crop will be clipped in the simulation. So then it is a guessing game where you should put the kill_crop command. If you put it too early, the crop will be killed before it is harvested. To work around that, you need to put the kill_crop command much later than you think the crop will actually be harvested. This creates an awkward window of regrowth, which results in a second entry into the season.dat output file when the crop is terminated and may also result in continued growth competing with the next planted crop. Also, when using the Kill_Crop command, it is unclear whether a single Kill_Crop operation can serve as both the killing event and the harvest event. Since Forage_Harvest is one of the options in the tillage operation where Kill_Crop is used, users might think you could use a single statement to both kill and harvest the crop simultaneously. But from the attached simulation where I tried this it does not appear to work that way.

I'm sure there are many ways we could address this, but I think the simplest and most flexible would be to add a binary tag to the PLANTING operation input along the lines of "Terminate_At_Clipping". Setting this value to 1 would result in automatically terminating the crop after the first clipping event, whether that clipping was through reaching a maturity threshold, a biomass threshold, or through a forced harvest with a tillage operation.