RUFAS.routines.animal.life_cycle.heiferI module#
- class RUFAS.routines.animal.life_cycle.heiferI.HeiferI(args)#
Bases:
Calf
- __init__(args)#
initialize the 1st heifer group from calf information
Parameters#
args.id: id of the animal args.breed: breed of the animal args.birth_date: the date of the simulation when the calf was born args.daysBorn: age of the animal (optional: include the following to assign animal information) args.birth_weight: the birth weight of the animal args.body_weight: current body weight of the animal args.wean_weight: the wean weight of the animal args.mature_body_weight: the mature body weight of the animal args.events: events of the animal
- get_heiferI_values()#
Get current information from the heiferI
- set_nutrient_rqmts(temperature: float, animal_grouping_scenario, nutrient_conc: Dict[str, float] = {}, metabolizable_energy: float = 15.625, previous_DMI: float = 10.0) None #
Calculates this heiferI’s nutrient requirements.
- calc_manure_excretion(methane_model: str, nutrient_amount: Dict[str, float], nutrient_conc: Dict[str, float]) None #
Calculates and sets the manure excretion components.
Parameters#
- methane_modelstr
Methane model used for methane emission calculations, including Boadi, IPCC.
- nutrient_amountDict[str, float]
Amounts of nutrients in pen ration, calculated per animal, see Notes section for units.
- nutrient_concDict[str, float]
Concentrations of nutrients in pen ration, calculated per animal, percentages.
Notes#
- nutrient_amount_units = {
“dm”: “kg/animal”, “CP”: “percent of DM”, “ADF”: “percent of DM”, “NDF”: “percent of DM”, “lignin”: “percent of DM”, “ash”: “percent of DM”, “phosphorus”: “percent of DM”, “potassium”: “percent of DM”, “N”: “percent of DM”, }
- phosphorus_rqmts(DMI: float) None #
Calculates and sets the animal’s phosphorus requirement.
Parameters#
- DMIfloat
Dry Matter Intake (kg).
- get_non_preg_bw_change() float #
Calculates the body weight change for a heifer that is not pregnant. If the days_born of the animal is equal to 400, the difference is set to 1 (otherwise results in a division by 0 error).
Notes#
Calculation is [A.1A.C.6] in pseudocode, itself from Fox et al. 1999 and NRC 2001. However, for animals over 55% of their mature body weight, the equation results in a negative return. Therefore when the result is negative, the minimum BW change constant is returned instead.
Returns#
- float
The daily body weight change for a heifer that is not pregnant.
- update(sim_day: int) bool #
Controls heifer’s grow with average daily gain based on non-preg ADG based on NRC. Here is the place to change growth rate with heifer feeding methods later when we have heifer nutrition from the ration formulation module. Once reach the breeding start day, this heifer would be move to next stage, the heiferII stage.
Parameters#
- sim_dayint
Day of simulation.
Returns#
- bool
True if should be moved to second stage of heifer – breeding stage starts.