Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWC estimation by LUT #212

Open
1 of 4 tasks
dylanbeaudette opened this issue Mar 3, 2021 · 2 comments
Open
1 of 4 tasks

AWC estimation by LUT #212

dylanbeaudette opened this issue Mar 3, 2021 · 2 comments

Comments

@dylanbeaudette
Copy link
Member

dylanbeaudette commented Mar 3, 2021

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
  • qualitative (order-of-magnitude) comparison with ROSETTA
@brownag
Copy link
Member

brownag commented Jul 15, 2021

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.

@dylanbeaudette
Copy link
Member Author

dylanbeaudette commented Sep 1, 2021

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 added a commit that referenced this issue Sep 1, 2021
dylanbeaudette added a commit that referenced this issue Sep 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants