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/pull/2706#issuecomment-504184558,https://api.github.com/repos/pydata/xarray/issues/2706,504184558,MDEyOklzc3VlQ29tbWVudDUwNDE4NDU1OA==,4711805,2019-06-20T21:11:57Z,2019-06-20T21:11:57Z,CONTRIBUTOR,"You're right @shikharsg, the `chunk_dim` argument can be removed. I was not very happy with the complexity it brought as well.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-502827736,https://api.github.com/repos/pydata/xarray/issues/2706,502827736,MDEyOklzc3VlQ29tbWVudDUwMjgyNzczNg==,9658781,2019-06-17T19:56:23Z,2019-06-17T19:56:23Z,CONTRIBUTOR,"I build a filter that is raising a value error as soon as any variable has a dtype different from any subclass of np.number or np.string_. I as well build test for that and added a function to manually convert dynamic sized string arrays to fixed sized ones. I as well wrote a test for @shikharsg issue and can reproduce it. The test is currently commented to not fail the pipeline as I wanted to discuss if this is a blocking issue or if we should merge it and raise a new issue for it. It seems to be originating from the fact that we moved away from using writer.add and instead are actually calling the zarr functions directly. There should be a way to change this back to do it lazily, but that will probably take time. What do you think?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-502754545,https://api.github.com/repos/pydata/xarray/issues/2706,502754545,MDEyOklzc3VlQ29tbWVudDUwMjc1NDU0NQ==,9658781,2019-06-17T16:24:46Z,2019-06-17T16:24:46Z,CONTRIBUTOR,"> @jendrikjoe - thanks for digging in and finding this important issue! > > This PR has been hanging around for a long time. (A lot of that is on me!) It would be good to get something merged soon. Here's what I propose. > > * Identify which datatypes can easily be appended now (e.g. floats, etc.) and which cannot (variable length strings) > > * Raise an error if append is called on the incompatible datatypes > > * Move forward with this PR, which is otherwise very nearly ready > > * Open a new issue to keep track of the outstanding incompatible types, which require upstream resolution in zarr > > > How does that sound to everyone? This sounds like a plan. I will try to work on getting this ready tonight and tmrw. Let us see how far I can get.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-502481584,https://api.github.com/repos/pydata/xarray/issues/2706,502481584,MDEyOklzc3VlQ29tbWVudDUwMjQ4MTU4NA==,9658781,2019-06-16T20:05:04Z,2019-06-16T20:23:54Z,CONTRIBUTOR,"Hey there everyone, sorry for not working on this for so long from my side. I just picked it up again and realised that the way the encoding works, all the datatypes and the maximum string lengths in the first xarray have to be representative for all others. Otherwise the following cuts away every char after the second: ds0 = xr.Dataset({'temperature': (['time'], ['ab', 'cd', 'ef'])}, coords={'time': [0, 1, 2]}) ds1 = xr.Dataset({'temperature': (['time'], ['abc', 'def', 'ghijk'])}, coords={'time': [0, 1, 2]}) ds0.to_zarr('temp') ds1.to_zarr('temp', mode='a', append_dim='time') It is solvable when explicitly setting the type before writing: ds0 = xr.Dataset({'temperature': (['time'], ['ab', 'cd', 'ef'])}, coords={'time': [0, 1, 2]}) ds0['temperature'] = ds0.temperature.astype(np.dtype('S5')) ds1 = xr.Dataset({'temperature': (['time'], ['abc', 'def', 'ghijk'])}, coords={'time': [0, 1, 2]}) ds0.to_zarr('temp') ds1.to_zarr('temp', mode='a', append_dim='time') It becomes however worse when using non-ascii characters, as they get encoded in [zarr.py l:218](https://github.com/pydata/xarray/blob/442e938c2c5dcc0f192f0db2348cd679d07c16cb/xarray/backends/zarr.py#L218), but with the next chunk that is coming in the check in [conventions.py l:86](https://github.com/pydata/xarray/blob/442e938c2c5dcc0f192f0db2348cd679d07c16cb/xarray/conventions.py#L86) fails. So I think we actually have to resolve the the TODO in [zarr.py l:215](https://github.com/pydata/xarray/blob/442e938c2c5dcc0f192f0db2348cd679d07c16cb/xarray/backends/zarr.py#L215) before this is able to be merged. Otherwise, the following leads to multiple issues: ds0 = xr.Dataset({'temperature': (['time'], ['ab', 'cd', 'ef'])}, coords={'time': [0, 1, 2]}) ds1 = xr.Dataset({'temperature': (['time'], ['üý', 'ãä', 'õö'])}, coords={'time': [0, 1, 2]}) ds0.to_zarr('temp') ds1.to_zarr('temp', mode='a', append_dim='time') xr.open_zarr('temp').temperature.values The only way to work around this issue is to explicitly encode the data beforehand to utf-8: from xarray.coding.variables import safe_setitem, unpack_for_encoding from xarray.coding.strings import encode_string_array from xarray.core.variable import Variable def encode_utf8(var, string_max_length): dims, data, attrs, encoding = unpack_for_encoding(var) safe_setitem(attrs, '_Encoding', 'utf-8') data = encode_string_array(data, 'utf-8') data = data.astype(np.dtype(f""S{string_max_length*2}"")) return Variable(dims, data, attrs, encoding) ds0 = xr.Dataset({'temperature': (['time'], ['ab', 'cd', 'ef'])}, coords={'time': [0, 1, 2]}) ds0['temperature'] = encode_utf8(ds0.temperature, 2) ds1 = xr.Dataset({'temperature': (['time'], ['üý', 'ãä', 'õö'])}, coords={'time': [0, 1, 2]}) ds1['temperature'] = encode_utf8(ds1.temperature, 2) ds0.to_zarr('temp') ds1.to_zarr('temp', mode='a', append_dim='time') xr.open_zarr('temp').temperature.values Even though this is doable if it is known in advance, we should definitely mention this in the documentation or fix this by fixing the encoding itself. What do you think? Cheers, Jendrik","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-498205860,https://api.github.com/repos/pydata/xarray/issues/2706,498205860,MDEyOklzc3VlQ29tbWVudDQ5ODIwNTg2MA==,9658781,2019-06-03T10:40:28Z,2019-06-03T10:40:28Z,CONTRIBUTOR,Gave you the permissions @shikharsg ,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-498199759,https://api.github.com/repos/pydata/xarray/issues/2706,498199759,MDEyOklzc3VlQ29tbWVudDQ5ODE5OTc1OQ==,4711805,2019-06-03T10:19:15Z,2019-06-03T10:19:15Z,CONTRIBUTOR,It would be great if you could fix it. @jendrikjoe can give you the permission to push to the branch in his fork.,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-498166896,https://api.github.com/repos/pydata/xarray/issues/2706,498166896,MDEyOklzc3VlQ29tbWVudDQ5ODE2Njg5Ng==,4711805,2019-06-03T08:41:01Z,2019-06-03T08:41:01Z,CONTRIBUTOR,"Thanks @shikharsg for looking into that. This PR and master have diverged quite a bit, I will need to merge the changes, I will let you know.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-494340006,https://api.github.com/repos/pydata/xarray/issues/2706,494340006,MDEyOklzc3VlQ29tbWVudDQ5NDM0MDAwNg==,4711805,2019-05-21T10:46:20Z,2019-05-21T10:46:20Z,CONTRIBUTOR,"No problem @rabernat, and thanks a lot for your time in reviewing this PR. I added a test for `chunk_dim`. Please let me know if this is clearer, and if I should explain further in the docs.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-485340727,https://api.github.com/repos/pydata/xarray/issues/2706,485340727,MDEyOklzc3VlQ29tbWVudDQ4NTM0MDcyNw==,4711805,2019-04-22T06:38:04Z,2019-04-22T06:38:04Z,CONTRIBUTOR,I added a `chunk_dim` parameter which allows to rechunk the appended coordinate. I think it is ready for a final review now.,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-484551274,https://api.github.com/repos/pydata/xarray/issues/2706,484551274,MDEyOklzc3VlQ29tbWVudDQ4NDU1MTI3NA==,4711805,2019-04-18T15:14:24Z,2019-04-18T15:14:24Z,CONTRIBUTOR,"I don't think it's ready yet. I think I should address the chunking issue of the appended dimension, as explained in https://medium.com/pangeo/continuously-extending-zarr-datasets-c54fbad3967d. For instance if we append along a time dimension, the time coordinate (which is a 1-D array) will have very small chunks, instead of maybe only one.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479932785,https://api.github.com/repos/pydata/xarray/issues/2706,479932785,MDEyOklzc3VlQ29tbWVudDQ3OTkzMjc4NQ==,4711805,2019-04-04T14:57:45Z,2019-04-04T14:57:45Z,CONTRIBUTOR,"@rabernat you're right, I took your suggestion into account in my last commit. I also rewrote the test.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479802142,https://api.github.com/repos/pydata/xarray/issues/2706,479802142,MDEyOklzc3VlQ29tbWVudDQ3OTgwMjE0Mg==,9658781,2019-04-04T08:28:56Z,2019-04-04T08:28:56Z,CONTRIBUTOR,"Nice :+1: On Apr 4, 2019 21:24, David Brochart wrote: Thanks @jendrikjoe, I just pushed to your fork: to make sure that the encoding of the appended variables is compatible with the target store, we explicitly put the target store encodings in the appended variable. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479800472,https://api.github.com/repos/pydata/xarray/issues/2706,479800472,MDEyOklzc3VlQ29tbWVudDQ3OTgwMDQ3Mg==,4711805,2019-04-04T08:24:01Z,2019-04-04T08:24:01Z,CONTRIBUTOR,"Thanks @jendrikjoe, I just pushed to your fork: to make sure that the encoding of the appended variables is compatible with the target store, we explicitly put the target store encodings in the appended variable.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479798342,https://api.github.com/repos/pydata/xarray/issues/2706,479798342,MDEyOklzc3VlQ29tbWVudDQ3OTc5ODM0Mg==,9658781,2019-04-04T08:17:43Z,2019-04-04T08:17:43Z,CONTRIBUTOR,I added you to the fork :) But feel free to do whatever is easiest for you :) ,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479788744,https://api.github.com/repos/pydata/xarray/issues/2706,479788744,MDEyOklzc3VlQ29tbWVudDQ3OTc4ODc0NA==,4711805,2019-04-04T07:46:52Z,2019-04-04T07:46:52Z,CONTRIBUTOR,Or should I open a new PR?,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-479480023,https://api.github.com/repos/pydata/xarray/issues/2706,479480023,MDEyOklzc3VlQ29tbWVudDQ3OTQ4MDAyMw==,4711805,2019-04-03T13:04:24Z,2019-04-03T13:04:24Z,CONTRIBUTOR,@jendrikjoe I think you need to give me the permission to push to the branch in your fork.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-478399527,https://api.github.com/repos/pydata/xarray/issues/2706,478399527,MDEyOklzc3VlQ29tbWVudDQ3ODM5OTUyNw==,9658781,2019-04-01T00:19:11Z,2019-04-01T00:19:11Z,CONTRIBUTOR,"Sure everyone feel welcome to join in! Sorry for the long silence. Kind of a busy time right now 😉 On Apr 1, 2019 08:47, Ryan Abernathey wrote: @davidbrochart I would personally be happy to see anyone work on this. I'm sure @jendrikjoe would not mind if we make it a team effort! — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-478365516,https://api.github.com/repos/pydata/xarray/issues/2706,478365516,MDEyOklzc3VlQ29tbWVudDQ3ODM2NTUxNg==,4711805,2019-03-31T18:22:53Z,2019-03-31T18:22:53Z,CONTRIBUTOR,May I try and take this work over?,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-475558223,https://api.github.com/repos/pydata/xarray/issues/2706,475558223,MDEyOklzc3VlQ29tbWVudDQ3NTU1ODIyMw==,4711805,2019-03-22T09:53:43Z,2019-03-22T09:53:43Z,CONTRIBUTOR,"Hi @jendrikjoe, do you plan to work on this PR again in the future? I think it would be a great contribution to xarray.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-459667067,https://api.github.com/repos/pydata/xarray/issues/2706,459667067,MDEyOklzc3VlQ29tbWVudDQ1OTY2NzA2Nw==,4711805,2019-02-01T09:51:55Z,2019-02-01T09:51:55Z,CONTRIBUTOR,"When we use this feature e.g. to store data that is produced every day, we might start with a data set that has a small size on the time dimension, and thus the chunks will be chosen according to this initial shape. When we append to this data set, will the chunks be kept as in the initial zarr archive? If so, we might end up with a lot of small chunks on the time dimension, where ideally we would have chosen only one chunk.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458896024,https://api.github.com/repos/pydata/xarray/issues/2706,458896024,MDEyOklzc3VlQ29tbWVudDQ1ODg5NjAyNA==,9658781,2019-01-30T10:37:56Z,2019-01-30T10:37:56Z,CONTRIBUTOR,I will check as well how xarry stores times to check if we have to add the offset to the xarray first or if this can be resolved with a PR to zarr :) ,"{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458866421,https://api.github.com/repos/pydata/xarray/issues/2706,458866421,MDEyOklzc3VlQ29tbWVudDQ1ODg2NjQyMQ==,4711805,2019-01-30T09:05:53Z,2019-01-30T09:05:53Z,CONTRIBUTOR,"zarr stores the reference in the `.zattrs` file: ``` { ""_ARRAY_DIMENSIONS"": [ ""time"" ], ""calendar"": ""proleptic_gregorian"", ""units"": ""days since 2000-01-01 00:00:00"" } ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458736067,https://api.github.com/repos/pydata/xarray/issues/2706,458736067,MDEyOklzc3VlQ29tbWVudDQ1ODczNjA2Nw==,9658781,2019-01-29T22:39:00Z,2019-01-29T22:39:00Z,CONTRIBUTOR,"Hey @davidbrochart, thanks for all your input and as well for the resarch on how zarr stores the data. I would actually claim that the calculation of the accurate relative time should be handled by the zarr append function. An exception would be of course if xarray is storing the data with deltas to a reference as well? Then I would try collecting the minimum and offsetting the input by this. @rabernat can you provide input on that? ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458730247,https://api.github.com/repos/pydata/xarray/issues/2706,458730247,MDEyOklzc3VlQ29tbWVudDQ1ODczMDI0Nw==,4711805,2019-01-29T22:19:07Z,2019-01-29T22:19:07Z,CONTRIBUTOR,"To make it work, time dimensions would have to be treated separately because zarr doesn't encode absolute time values but deltas relative to a reference (see https://github.com/davidbrochart/pangeo_upload/blob/master/py/trmm2pangeo.py#L108).","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458720920,https://api.github.com/repos/pydata/xarray/issues/2706,458720920,MDEyOklzc3VlQ29tbWVudDQ1ODcyMDkyMA==,4711805,2019-01-29T21:50:14Z,2019-01-29T21:50:14Z,CONTRIBUTOR,"Hi @jendrikjoe, Thanks for your PR, I am very interested in it because this is something I was hacking around (see [here](https://github.com/davidbrochart/pangeo_upload/blob/master/py/trmm2pangeo.py)). In my particular case, I want to append along a time dimension, but it looks like your PR currently doesn't support it. In the following example `ds2` should have a time dimension ranging from 2000-01-01 to 2000-01-06: ```python import xarray as xr import pandas as pd ds0 = xr.Dataset({'temperature': (['time'], [50, 51, 52])}, coords={'time': pd.date_range('2000-01-01', periods=3)}) ds1 = xr.Dataset({'temperature': (['time'], [53, 54, 55])}, coords={'time': pd.date_range('2000-01-04', periods=3)}) ds0.to_zarr('temp') ds1.to_zarr('temp', mode='a', append_dim='time') ds2 = xr.open_zarr('temp') ``` But it's not the case: ``` ds2.time array(['2000-01-01T00:00:00.000000000', '2000-01-02T00:00:00.000000000', '2000-01-03T00:00:00.000000000', '2000-01-01T00:00:00.000000000', '2000-01-02T00:00:00.000000000', '2000-01-03T00:00:00.000000000'], dtype='datetime64[ns]') Coordinates: * time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-01-03 ``` Maybe it's not intended to work with time dimensions yet?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-458694955,https://api.github.com/repos/pydata/xarray/issues/2706,458694955,MDEyOklzc3VlQ29tbWVudDQ1ODY5NDk1NQ==,9658781,2019-01-29T20:29:05Z,2019-01-29T20:31:59Z,CONTRIBUTOR,"You are definitely right, that there are no checks regarding the alignment. However, if another shape than the append_dim does not align zarr will raise an error. If the coordinate differs that could be definitely an issue. I did not think about that as I am dumping reshaped dask.dataframe partitions with the append mode. Therefore, I am anyway not allowed to have a name twice. Might be interesting for other users indeed. Similar point for the attributes. I could try figuring that out as well, but that might take a while. The place where the ValueError is raised should allow to add other variables, as those are added in the KeyError exception above :)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148 https://github.com/pydata/xarray/pull/2706#issuecomment-457827734,https://api.github.com/repos/pydata/xarray/issues/2706,457827734,MDEyOklzc3VlQ29tbWVudDQ1NzgyNzczNA==,9658781,2019-01-26T12:35:28Z,2019-01-26T12:35:28Z,CONTRIBUTOR,"Hi @rabernat, happy to help! I love using xarray. I added the test for the append mode. One is making sure, that it behaves like the 'w' mode, if no data exist at the target path. The other one is testing what you described. The append_dim argument is actually the same as the dim argument for concat. Hope that helps clarifying my code :)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,402908148