Reparameterize soil layer
Once again refactors and reparameterizes the default Soil layer implementation.
Homogeneous
and Heterogeneous
have been replaced with a more generic parameterization scheme that should allow the user to easily switch between different soil parameterizations. Currently, three modes are provided: Nonparametric
, Parametric{ByXicePorSat}
, and Parametric{ByComposition}
.
ByXicePorSat
uses excess ice, natural porosity, saturation, and the organic fraction (of solid part) as the parameters. ByComposition
permits specification directly of the total component fractions for mineral, organic, excess ice, and pore-space water/ice, which must be <= 1.0.
Breaking change: SoilProfile
is now constructed using the SoilProperties
type instead of just a tuple, and uses the xice/porosity/saturation/organic parameterization, which is automatically converted to standard total compositions later. Hopefully, this will make things a bit easier since the IDE can help with autocompleting keyword-argument names (I think).
@fmiesner and @jnitzbon Sorry for breaking this code so much... hopefully it doesn't affect you. Note that any existing scripts which construct a SoilProfile
manually will need to be updated.