RotGeneration module

author: young

Background

This module generates the rotation phases and writes them to excel. This is because it is a bit slow and only needs to be recalculated when rotation rules are changed or new land uses are added.

There are three options
  1. Generate a large list of rotations using RotGeneration.py. The rotation generator generates all rotation options as default. This results in slow model execution time due to relatively long Pyomo matrix construction time. However, the user has the ability to remove certain landuses before generating the array of phases (e.g. tedera and lucerne can be removed). Simulation modelling is used to generate the inputs.

  2. Generate a ‘custom’ list of rotations using RotGeneration.py. The user can specify the rotations they want generated by populating the ds_user_rot_init array and, at the top of the module, turn the boolean setting called customised_rotations to True and re-run the module. Simulation modelling is used to generate the inputs for these rotations.

  3. Generate a custom list of rotations and their inputs. The user can input the phases and their respective yield, chem and fert requirements into property.xlsx. RotGeneration.py is still required to be executed because it generates the coefficients for each rotation activity for the rotation constraints.

Automatic phase generation

The process for generating the phases was developed in conjunction with WA cropping advisors and is outlined below:

  1. Generate all combinations of the landuses that are possible in each year. The necessary landuses to represent reduces for the older years in the history because the rotations can be generalised.

  2. Run the ‘drop’ rules to delete those phases that are not required because they are unprofitable or illogical and don’t need to be included.

  3. Create the ‘history required’ = Yr5, Yr4, Yr3, Yr2, Yr1

  4. Create the ‘history provided’ = Yr4, Yr3, Yr2, Yr1, Yr 0

Parameters that define the rotation phases.

These are the fundamental concepts that control the generalisation of rotation phases. If multiple land uses in the history are deemed to have the same effect on the current land use then they can be clustered which reduces the number of rotation phases which need to be represented. For example, if the assumption is that all cereal crops three years ago have the same impact on the current land use then we can reduce the number of rotations phases by clustering all cereal crop in yr3 of the history. See below for the current rules used for clustering.

Note

rotations are built in an inflexible way currently, in the future it would be good to build them more automatically using the params below.

Number of years:

  • of consecutive cereal before yields plateau (c_cereal = 3)

  • of consecutive non-annual pasture before annual pasture needs to be resown (resow_a = 4)

  • of consecutive annual pasture before annual pasture needs to be spraytopped (spray_a = 4). This is required because overtime the pasture composition becomes less ideal (ie brome grass)

  • …ditto for lucerne (resow_u = 1)

  • …ditto for tedera (resow_t = 1)

  • that spraytopping or pasture manipulation impacts on crop yields or pasture seed bank (spraytop = 2). Meaning that two spraytops has greater weed control than one.

  • that pasture manipulation followed by spraytopping impacts on yields or seed bank (manip_sprayt=2) on the assumption that manipulation + spraytopping has a greater effect than spraytopping alone.

  • of legume pasture that will still be increasing soil N levels (build_n = 5)

  • of non-legume crop to utilise all soil organic N, if built to maximum levels (use_n = 3)

  • of annual pasture till the seed bank is fully replenished and independent of crop history (build_seed = 1)

  • of consecutive non-annual that continues to deplete the seed bank (deplete_seed = 3)

  • of non-canola till canola disease levels have decreased to a minimum (canola_disease = 3)

  • of non-pulse till pulse disease levels have decreased to a minimum (pulse_disease = 3)

  • of years of continuous tedera before it needs resowing (tedera_resowing = 10)

  • of Lucerne before it needs to be resown (lucerne_resowing = 5)

Note: disease can effects crops in the same class quite differently (e.g. barley is often a reasonable break crop for wheat). Because of this crops can not be grouped until yr3 when disease reaches a plateau.

Length of rotation phase = maximum(resow_a, resow_u, resow_t, build_n, use_n, deplete_seed, canola disease, pulse disease, spraytop, manip_sprayt) + 1

The following rules are implemented to remove illogical rotation phases:

  1. If it is Lucerne after non-Lucerne then it must be resown

  2. If it is Tedera after non-Tedera then it must be resown

  3. If it is annual pasture after 4 other non-annual pasture phases then the annual pasture must be resown

  4. If it is annual pasture after 4 other annual pasture phases then the annual pasture must be spraytopped

The following rules are implemented to remove unprofitable rotation phases:

Note

These rules may need to be tweaked for certain analyses. For example, in the seasonal variation model it may be sensible to include a after s and m or maybe s after s and m after m. This will allow tactical adjustment to remain with annual pasture even though cropping was the strategic decision.

  1. No continuous canola (due to canola disease)

  2. Two years between pulse crops (due to pulse disease)

  3. No pulse crop after a pasture (this would constitute a poor use of N fixed by the legume pasture)

  4. No annual pasture (other than spray-topped pasture) after a manipulated annual pasture (usually the purpose of pasture manipulation is to help prepare a field for subsequent cropping. However, cropping aside, a spray-topped pasture is feasible use of a field that has had its pasture manipulated)

  5. No annual pasture after two spraytopped pastures. Two spraytops will only be done prior to cropping. Tactical changes into more pasture can still be done after one spraytopped pasture.

  6. No resowing of pastures if the previous landuse is pasture and the following landuse is a crop.

  7. No non-spraytopped pasture between spraytopped pasture and crop. Spraytopping is in preperation for cropping so not going to stick a non-spraytop pasture inbetween.

  8. No spraytopped pasture between a crop and a non-spraytopped pasture. Wouldn’t spraytop at the start of pasture phase (spraytopping may happen later in the rotation to tidy up pasture though)

  9. No resowing between spraytoping. No point spraytopping pasture then resowing it and spraying it out again.

  10. Perennials can only be in a continuous rotation (perennials are usually situated on soil that doesnt suit anything else)

  11. Only a single pasture variety in a rotation phase.

  12. Only canola after pasture (best use of soil conditions)

  13. No dry seeding after non-spraytopped pasture unless RR canola because of excessive weed burden.

  14. No saleable crop after fodder (due to excessive weed burden).