AcresFieldWorkModel.h#
Acres/Source/Acres/AcresFieldWorkModel.h Generated
What field work leaves on the ground: the visible surface of tillage, drilling, spraying, tyres and the backhoe, from the same physical state the implement and tyre models use. Pure C++ in SI units, no Unreal types, so Tools/ImplementModel builds and tests it.
The farm runtime (AcresFarmRuntime.cpp) stores these results per 25 cm cell when a tool passes, the soil visuals (AcresSoilVisuals.cpp) turn them into relief (mesh vertices every 6.25 cm) and the field-work material (Tools/ACRE/Tools/make_field_work_materials.py) into per-pixel detail. The surface shape functions (TinePattern, DiscPattern, DrillPattern, TreadPattern, ClodHeight) are mirrored line for line in that material's HLSL, so the mesh and the shading agree; change both together.
Models and sources: - Clod size: fragmentation is finest at the optimum water content for tillage, the inflection point of the water retention curve (Dexter and Bird 2001, Soil Tillage Res. 57: 203-212), and coarsens on both sides, more in clay-rich soil (Ojeniyi and Dexter 1979); above the plastic limit wet fines shear into plastic slabs instead of crumbling. Faster tools shatter finer (kinetic energy of the soil wedge). - Oriented relief: a tine lifts a crescent of soil to both sides of its slot (Godwin and Spoor 1977); the furrow stays open in cohesive, plastic soil and collapses in dry friable soil. Disc gangs throw soil sideways and the packer roller levels it, leaving ring grooves as deep as the roller's sinkage. - Random roughness about 0.4 x the mean clod diameter (Zobeck and Onstad 1987 give chisel 25 mm, disc 19 mm, field cultivator 15 mm after one pass in a friable soil). - Bulking: the tilled layer rises by depth x (firm / loose dry density - 1) (mass conservation). - Soil colour: reflectance falls exponentially with water content (Lobell and Asner 2002, SSSAJ 66: 722-727); freshly turned moist soil is darker and dries at the potential evaporation rate. - Spray film: the applied volume per area, evaporating at the potential rate. - Tyre prints: R-1W chevron lugs at a pitch of about 0.14 x the tyre diameter, printed as deep as the sinkage allows up to the lug height. - Spoil: dug soil bulks by the swell of loose over in-place density and settles into a cone at its angle of repose.
TillageOptimumTheta#
Optimum water content for tillage of a soil library class (Dexter and Bird 2001): the inflection point of the van Genuchten curve, theta_r + (theta_s - theta_r) (1 + 1/m)^-m with m = 1 - 1/n.
| Argument | Description |
|---|---|
ClassIndex |
Soil library index (AcresSoilModel.h, clamped). |
Returns: Water content, m3/m3.
TillageClodDiameterM#
Mean clod diameter after a tillage pass.
d = d_opt (1 + k D^2 (0.5 + 2 clay)) (1 + 1.5 max(0, LI)) (2.2 / v)^0.2 x pattern factor, with d_opt = 8 mm + 40 mm x clay fraction, D = (theta - theta_opt) / (theta_s - theta_r), k = 25 on the dry side and 15 on the wet side, LI the liquidity index and v the speed (at least 0.5 m/s). Discs cut and mix: 0.7 x; spoil lumps: 1.8 x. Clamped to 5-150 mm.
| Argument | Description |
|---|---|
Pattern |
Tool pattern. |
SpeedMps |
Tool speed, m/s. |
ClassIndex |
Soil library index. |
Theta |
Water content of the worked layer, m3/m3. |
Returns: Diameter, m.
TillageSurface#
Visible surface of a tillage pass (see the file comment for the models).
| Argument | Description |
|---|---|
Pattern |
Tool pattern. |
DepthM |
Working depth, m. |
SpeedMps |
Tool speed, m/s. |
ClassIndex |
Soil library index. |
Theta |
Water content of the worked layer, m3/m3. |
DensityMgM3 |
Dry density before the pass, Mg/m3 (<= 0: the class's firm density). |
Returns: The surface; all zero for ETillagePattern::None or a depth under 1 cm.
SoilReflectanceRatio#
Relative soil reflectance at an effective saturation (Lobell and Asner 2002 exponential form): 0.45 + 0.55 exp(-2.5 Se), 1 when dry, about 0.5 when saturated.
| Argument | Description |
|---|---|
Saturation |
Effective saturation, 0..1. |
Returns: Reflectance relative to the dry soil, 0.45..1.
TurnedSoilSaturation#
Saturation of freshly turned soil's surface after it has been exposed for ElapsedS: the top 10 mm loses its water above the surrounding surface's at the potential evaporation rate.
| Argument | Description |
|---|---|
TurnedSaturation |
Saturation when turned, 0..1. |
SurfaceSaturation |
Saturation of the undisturbed surface now, 0..1 (the floor it dries to). |
ThetaRange |
theta_s - theta_r of the class, m3/m3. |
ElapsedS |
Time since the pass, s (farm time). |
EvapMmDay |
Potential evaporation, mm/day. |
Returns: Saturation now, 0..1.
SprayFilmM#
Spray film left on the surface, m of liquid: the applied depth minus the potential evaporation since.
| Argument | Description |
|---|---|
AppliedM3M2 |
Applied volume per area, m3/m2 (150 L/ha = 1.5e-5). |
ElapsedS |
Time since spraying, s (farm time). |
EvapMmDay |
Potential evaporation, mm/day. |
Returns: Film thickness, m (>= 0).
EmergenceShare#
Share of the drilled rows covered by seedlings: 0 until 60 deg C day after sowing (soybean and small grains emerge at about 60-80 deg C day above a 10 deg C base), then rising linearly to 1 at 400 deg C day (a closed narrow row).
| Argument | Description |
|---|---|
GddSinceSowing |
Degree days accumulated since the drill passed, deg C day. |
Returns: 0..1.
TreadPitchM#
Lug pitch of an R-1W agricultural tyre (and of a utility tyre's tread blocks) along the circumference, m: about 0.14 x the diameter (a 1.8 m tractor tyre has about 23 chevron lugs a side).
TreadPrintDepthM#
Depth of the tread print in a rut, m: the sinkage minus the elastic rebound, up to the lug height (4 cm on an R-1W tyre, 2.5 cm below 1 m diameter), and nothing below 5 mm of sinkage.
SpoilVolumeM3#
Volume of spoil from dug soil, m3: the dug mass at the class's loose wet bulk density (swell over in-place soil).
| Argument | Description |
|---|---|
DugKg |
Soil dug, kg (moist mass). |
ClassIndex |
Soil library index. |
Theta |
Water content, m3/m3. |
Returns: Loose volume, m3.
SpoilConeRadiusM#
Base radius of a spoil cone of Volume at its angle of repose, m: r = (3 V / (pi tan phi))^(1/3).
| Argument | Description |
|---|---|
VolumeM3 |
Loose volume, m3. |
ReposeRad |
Angle of repose, rad (about 35 deg for moist loose soil). |
Returns: Radius, m.
TinePattern#
Tine furrow height at a lateral distance from the nearest tine, m, relative to the tilled mean: a rounded V slot as wide as the failure crescent (tine width + 1.5 x depth, at most the spacing), ridges between.
| Argument | Description |
|---|---|
DistanceM |
Lateral distance to the nearest tine centre, m (0..spacing / 2). |
SpacingM |
Tine spacing across the implement, m. |
RidgeM |
Ridge crest to furrow bottom, m. |
CrescentM |
Width of the disturbed crescent at the surface, m. |
Returns: Height, m (-0.6 RidgeM in the slot, +0.4 RidgeM on the crest).
DiscPattern#
Disc harrow surface at a lateral distance from the nearest packer roller ring, m: a groove GrooveM deep and a ring width wide pressed into the levelled tilth.
| Argument | Description |
|---|---|
RingDistanceM |
Lateral distance to the nearest ring centre, m. |
RingWidthM |
Ring width, m. |
GrooveM |
Groove depth (roller sinkage), m. |
Returns: Height, m (<= 0).
DrillPattern#
Drill row surface at a lateral distance from the row centre, m: the double-disc opener's slot (2 cm wide, closed to a third of the sowing depth) in the press wheel's band, which is pressed down by the wheel's sinkage.
| Argument | Description |
|---|---|
RowDistanceM |
Lateral distance to the row centre, m. |
PressWidthM |
Press wheel width, m. |
PressSinkageM |
Press wheel sinkage, m. |
SowingDepthM |
Opener depth, m. |
Returns: Height, m (<= 0).
TreadPattern#
Tread print of a chevron tyre in its rut, m.
| Argument | Description |
|---|---|
LateralM |
Distance from the tyre centre line, m (signed). |
AlongM |
Distance along the travel direction, m (any origin). |
WidthM |
Tyre width, m. |
PitchM |
Lug pitch, m. |
PrintM |
Print depth, m. |
Returns: Height, m (<= 0: -PrintM in a lug print, 0 between lugs and outside the tyre).
ClodHeight#
Height of the clod field at a world point, m: rounded clods on a jittered grid with the given mean diameter (Voronoi bumps; the same hash in the material), zero mean over an area, amplitude about the random roughness.
| Argument | Description |
|---|---|
ClodM |
Mean clod diameter, m. |
RoughnessM |
Random roughness, m. |
Returns: Height, m.
ETillagePattern#
Surface pattern a tillage pass leaves.
| Value | Description |
|---|---|
None |
Untouched. |
Tine |
Chisel plow or field cultivator: furrows at tine spacing with ridges between. |
Disc |
Disc harrow with packer roller: levelled cloddy surface with roller ring grooves. |
Spoil |
Backhoe spoil: loose heaped soil. |
FTillageSurface#
The visible seedbed after a tillage pass.
| Name | Type | Unit | Default | Description |
|---|---|---|---|---|
RidgeM |
double |
m | 0 |
Ridge crest to furrow bottom (tines) or residual ridge height (disc), m. |
ClodM |
double |
m | 0 |
Mean clod diameter, m. |
RoughnessM |
double |
m | 0 |
Random roughness (standard deviation of heights), m. |
RiseM |
double |
m | 0 |
Bulking rise of the tilled layer, m. |
Saturation |
double |
0 |
Effective saturation of the turned soil, 0..1 (sets how dark it looks). | |
PlasticShare |
double |
0 |
0..1, how far the soil is into its plastic range (smeared, shiny furrow walls at 1). |