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/2436#issuecomment-610008589,https://api.github.com/repos/pydata/xarray/issues/2436,610008589,MDEyOklzc3VlQ29tbWVudDYxMDAwODU4OQ==,35968931,2020-04-06T20:05:10Z,2020-04-06T20:05:10Z,MEMBER,"> @TomNicholas I forgot about this sorry. No worries! > I just made a quick check with the latest xarray master and I still have the problem ... see code. #3498 added a new keyword argument to `open_mfdataset`, to choose which file to load to attributes from, can you try using that? > time.encoding is empty while it is as expected when opening any of the files with open_dataset instead If this is the case, then to solve your original problem, you could also try using the `preprocess` argument to `open_mfdataset` to store the encoding somewhere where it won't be lost? i.e. ```python def store_encoding(ds): encoding = ds['time'].encoding ds.time.attrs['calendar_encoding'] = encoding return ds snw = xr.open_mfdataset(l_f, combine='nested', concat_dim='time', master_file=lf[0], preprocess=store_encoding)['snw'] ``` > Related question but maybe out of line, is there any way to know that the snw.time type is cftime.DatetimeNoLeap (as it is visible in the overview of snw.time)? I'm not familiar with these classes, but presumably you mean more than just checking with `isinstance()`? e.g. ```python from cftime import DatetimeNoLeap print(isinstance(snw.time.values, cftime.DatetimeNoLeap)) ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,363299007 https://github.com/pydata/xarray/issues/2436#issuecomment-609479629,https://api.github.com/repos/pydata/xarray/issues/2436,609479629,MDEyOklzc3VlQ29tbWVudDYwOTQ3OTYyOQ==,35968931,2020-04-05T20:44:00Z,2020-04-05T20:44:00Z,MEMBER,"@sbiner I know it's been a while, but I expect that #3498 and #3877 probably resolve your issue?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,363299007 https://github.com/pydata/xarray/issues/2436#issuecomment-449737841,https://api.github.com/repos/pydata/xarray/issues/2436,449737841,MDEyOklzc3VlQ29tbWVudDQ0OTczNzg0MQ==,35968931,2018-12-24T14:02:57Z,2018-12-24T14:02:57Z,MEMBER,"If `open_mfdataset()` is actually dropping the encoding, then this is an issue related to #1614. That's because in `open_mfdataset()` while the attrs are [explicitly set](https://github.com/pydata/xarray/blob/c2ce5ea83b5924302653c8dfba7de68c7d98c942/xarray/backends/api.py#L656) to those of the first supplied dataset, I don't see any similar explicit treatment of the encoding. I think that means the encoding is being set by what happens inside the core of `auto_combine()`, and is presumably being lost upon some of the `concat` or `merge` operations which happen inside `auto_combine()`. So I think to fix this then either `open_mfdataset()` should contain explicit treatment of the encoding, or the rules for propagating the encoding through the `auto_combine()` should be solidified.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,363299007