aqp icon indicating copy to clipboard operation
aqp copied to clipboard

AWC estimation by LUT

Open dylanbeaudette opened this issue 3 years ago • 2 comments

It would be great to have our LUT-based approach to estimating AWC ranges by texture class, fragment volume, SOM available in an {aqp} function. Thanks @brownag for getting us close: estimateAWC.

TODO

  • [ ] develop test/evaluation dataset
  • [ ] parity with NASIS if possible
  • [ ] compare with a couple of manual estimates
  • [x] qualitative (order-of-magnitude) comparison with ROSETTA

dylanbeaudette avatar Mar 03 '21 20:03 dylanbeaudette

In many cases estimateAWC() gives values similar to those expected by NASIS validations on aggregate component data. The validation "allowed ranges" are calculated from the (usually also calculated) water retention difference. On occasion I need to adjust some values (often the LOW) due to slight offsets in 2nd decimal place (usually 0.01 off from expected limit) in order to pass validation.

I am not sure that we can achieve NASIS parity (i.e. estimateAWC() always produce values that "pass") without also having estimates of parameters like 1/3 bar bulk density and sieve/fragment size ranges that figure into the water content calculations. Reproducing the cascade of NASIS pedotransfer functions for water content related inputs might be worth revisiting in https://github.com/ncss-tech/pedotransfR ... however a simpler approach using generalized horizons to estimate organic matter content and bulk density might get us most of the way there.

brownag avatar Jul 15 '21 20:07 brownag

Finally working my way back to this issue. Achieving parity with NASIS isn't important, after all this is just an estimate.

Some observations:

  • estimateAWC('si', omcl = 1) returns NA, seems like "silt" texture class is missing from the LUT.
  • I need to study the code more carefully, but I think that approxfun() would be a more generic solution to supplying an aggregate FUN, and/or in the rock fragment + EC corrections. I'll work on an example after further study.
  • Preliminary comparisons between estimatesAWC() and a simplistic AWC derived from the ROSETTA.centroids can be found in misc/estimateAWC-vs-ROSETTA-centroids.R
  • In general the ROSETTA values are lower, which makes sense → those estimates do not incorporate the possible effects of organic matter.
  • A simple sanity check on omcl to ensure that it is within the expected set of values would prevent some user errors.

image image

dylanbeaudette avatar Sep 01 '21 03:09 dylanbeaudette