html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/5223#issuecomment-831298605,https://api.github.com/repos/pydata/xarray/issues/5223,831298605,MDEyOklzc3VlQ29tbWVudDgzMTI5ODYwNQ==,4160723,2021-05-03T14:31:14Z,2021-05-03T14:32:07Z,MEMBER,"I guess your last example works because Xarray's `Dataset.to_zarr()` does some operations (e.g., encoding datetime values as floats + adding encoding attributes like `calendar` and `units`) that Xarray-simlab doesn't (Xarray-simlab creates the zarr datasets by directly using the zarr-python API).
The key thing is adding `units` in variable encoding, e.g., from a Xarray-simlab output dataset:
```
ds_out.to_netcdf('test.nc', engine='netcdf4', encoding={'p__var': {'units': 'days since 2010-01-01 00:00:00'}})
```
Maybe we could borrow some logic from `Dataset.to_zarr()` in Xarray-simlab to encode datetime values when it is saved to zarr.
I think that we can then either close this issue or move it to Xarray-simlab.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284
https://github.com/pydata/xarray/issues/5223#issuecomment-831130073,https://api.github.com/repos/pydata/xarray/issues/5223,831130073,MDEyOklzc3VlQ29tbWVudDgzMTEzMDA3Mw==,4160723,2021-05-03T09:09:25Z,2021-05-03T09:09:25Z,MEMBER,"I checked with a very basic example:
```python
import numpy as np
import xarray as xr
p_var = np.full((2, 2), np.datetime64('2000-01-01'), dtype='datetime64[ns]')
ds = xr.Dataset({'p__var': (('main', 'idx'), var)})
ds.to_netcdf('test.nc', engine='netcdf4') # works!
```
The only difference with the example in your notebook is that in the example above `ds.p__var.encoding` returns an empty dictionary. If you reset the encoding in your notebook example, e.g., `ds_out_no_scale.p__var.encoding = {}` you will be able to save the Dataset to a netcdf4 file. Not sure why...
(side note: with `mask_and_scale=True`, masking missing values with`nan` causes the dtype to change to `float`, because `type(np.nan)` is `float`).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284
https://github.com/pydata/xarray/issues/5223#issuecomment-829016596,https://api.github.com/repos/pydata/xarray/issues/5223,829016596,MDEyOklzc3VlQ29tbWVudDgyOTAxNjU5Ng==,4160723,2021-04-29T07:50:08Z,2021-04-29T07:50:08Z,MEMBER,"@jvail could you provide a small reproducible example?
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284
https://github.com/pydata/xarray/issues/5223#issuecomment-828292425,https://api.github.com/repos/pydata/xarray/issues/5223,828292425,MDEyOklzc3VlQ29tbWVudDgyODI5MjQyNQ==,4160723,2021-04-28T09:11:34Z,2021-04-28T09:11:34Z,MEMBER,Opened #5226,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284
https://github.com/pydata/xarray/issues/5223#issuecomment-828242346,https://api.github.com/repos/pydata/xarray/issues/5223,828242346,MDEyOklzc3VlQ29tbWVudDgyODI0MjM0Ng==,4160723,2021-04-28T08:02:54Z,2021-04-28T08:03:38Z,MEMBER,So maybe the Zarr backend should pop `_FillValue` from Variable's `attrs` to `encoding` even for `mask_and_scale=False`?,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284
https://github.com/pydata/xarray/issues/5223#issuecomment-828231169,https://api.github.com/repos/pydata/xarray/issues/5223,828231169,MDEyOklzc3VlQ29tbWVudDgyODIzMTE2OQ==,4160723,2021-04-28T07:47:44Z,2021-04-28T07:47:44Z,MEMBER,"For more context, xarray-simlab doesn't set the `_FillValue` attribute directly. Instead it uses Xarray's zarr backend, which leaves the `_FillValue` item as-is in the variable attributes when it is not picked up in `decode_cf` (i.e., when setting `mask_and_scale=False`):
https://github.com/pydata/xarray/blob/0021cdab91f7466f4be0fb32dae92bf3f8290e19/xarray/backends/zarr.py#L369-L372
https://github.com/pydata/xarray/blob/ab4e94ec4f6933476ee0d21c937d8f0f8d39ed82/xarray/coding/variables.py#L183-L186
So maybe the original issue should be solved there?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,868907284