-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
NEP 18, physical units, uncertainties, and the scipp library? #3509
Comments
With regards to physical units (and to a lesser extent propagation of uncertainties), this would have overlap with pint. Efforts have been ongoing towards integration with xarray through NEP-18 (xref #525, hgrecco/pint#764, hgrecco/pint#845, hgrecco/pint#849, as well as #3238 and following test implementation PRs), but are still not quite there yet...hopefully very soon though! Would you be able to describe any advantages/disadvantages you would see with xarray wrapping scipp, versus something like xarray > pint > uncertainties > numpy? |
@jthielen Thanks for your reply! I am not familiar with UnitsI do not see any advantage using scipp. The current unit system in scipp is based on UncertaintiesThere are two routes to take here: 1. Store a single array of value/variance pairs
2. Store two arrays (values array and uncertainties array)
Other aspectsScipp supports a generic
Other
Questions
|
@SimonHeybrock So sorry I neglected to reply back in November! hgrecco/pint#982 and hgrecco/pint#918 pinged my recollection of this issue. In short, Pint actually doesn't currently support uncertainties with arrays, only scalars, so my earlier wrapping comment was mistaken. So, moving forward with |
This is an idea and meant as a discussion starter on an potential route to providing support for physical units and propagation of uncertainties for
xarray
.Context
NEP 18 (which, as far as I understand, was pushed by you guys, for similar purposes) provides means to combine such features with
xarray
using__array_function__
, if the underlying array implementation supports it.I am working on scipp, which (based on a decision I may or may not regret in the future) is reimplementing a lot of features that
xarray
provides, plus some additional features. Two of these features are physical units and propagation of uncertainties.scipp.Variable
is essentially equivalent to anumpy
array with a unit, dimension labels, and an optional array of uncertainties. [*]scipp
implements basic arithmetic operations (and some more) forscipp.Variable
, including efficient propagation of uncertainties.[*] Caveat:
scipp
's current unit implementation is static an would probably need to be replaced for becoming useful for a wider audience.Idea and questions
Can we implement the
__array_function__
protocol forscipp.Variable
so it can be used withxarray
? As far as I can tell this would simply be a lightweight wrapper.__array_function__
correctly?This would amount to using the lower-level parts of
scipp
which is quite compact and can be extended to support more data types and more operations in a relatively simple manner (requiring recompilation, since it is written in C++).The text was updated successfully, but these errors were encountered: