Open
Description
Arrays with dtype timedelta64
are basically quantities with dimension [time]
, and they even have explicit units.
It would be really useful to be able to convert between those and pint
quantities. The core logic should probably live in pint
, but I think we should figure out a way to make the conversion easier:
arr = xr.Dataset(
coords={
"delta1": ("time", np.arange(100, dtype="timedelta64[s]")),
"delta2": ("time", np.arange(100), {"units": "s"})
}
).pint.quantify()
arr.pint.to({"delta1": "s", "delta2": "timedelta64[s]"})
(not sure if overloading .to
would be worth it, but if not I'm sure we can come up with something better).
Similarly, I'd like to be able to infer the frequency of a datetime64
object and get the frequency (if any) as a quantity. It seems this works (found here):
from pandas.tseries.frequencies import to_offset
timedelta = to_offset(xr.infer_freq(time)).delta.to_numpy()
where the timedelta would then be converted to pint
using the functionality described above.
Metadata
Metadata
Assignees
Labels
No labels