id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 1596511582,PR_kwDOAMm_X85KloU-,7551,Support for the new compression arguments.,6883049,closed,0,,,30,2023-02-23T09:32:56Z,2023-12-21T15:24:34Z,2023-12-21T15:24:16Z,CONTRIBUTOR,,0,pydata/xarray/pulls/7551,"Use a dict for the arguments and update it with the encoding, so all variables are passed. - [X] Closes #7388 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/7551/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1359914824,PR_kwDOAMm_X84-RHbw,6981,Support the new compression argument in netCDF4 > 1.6.0,6883049,closed,0,,,5,2022-09-02T09:06:42Z,2023-10-30T16:37:58Z,2022-12-01T22:41:51Z,CONTRIBUTOR,,0,pydata/xarray/pulls/6981," - [x] Closes #6929 - [x] Tests added - [x] User visible changes (including notable bug fixes) are documented in `whats-new.rst` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6981/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 1343038233,I_kwDOAMm_X85QDSMZ,6929,Support new netcdf4 1.6.0 compression arguments,6883049,closed,0,,,2,2022-08-18T12:35:34Z,2022-12-01T22:41:53Z,2022-12-01T22:41:53Z,CONTRIBUTOR,,,,"### Is your feature request related to a problem? When using the netcdf4 engine, I am not able to use the new ""compression"" argument to choose a compression scheme different from zlib in the encoding. ``` if raise_on_invalid: invalid = [k for k in encoding if k not in valid_encodings] if invalid: > raise ValueError( f""unexpected encoding parameters for {backend!r} backend: {invalid!r}. Valid "" f""encodings are: {valid_encodings!r}"" ) E ValueError: unexpected encoding parameters for 'netCDF4' backend: ['compression']. Valid encodings are: {'fletcher32', 'zlib', 'contiguous', 'dtype', 'least_significant_digit', 'shuffle', 'complevel', '_FillValue', 'chunksizes'} ../../../../netCDF4_.py:279: ValueError ``` Furthermore, according to the [release notes of 1.6.0](https://github.com/Unidata/netcdf4-python/blob/master/Changelog), zlib argument is to be deprecated: ``` * add 'compression' kwarg to createVariable to enable new compression functionality in netcdf-c 4.9.0. 'None','zlib','szip','zstd','bzip2' 'blosc_lz','blosc_lz4','blosc_lz4hc','blosc_zlib' and 'blosc_zstd' are currently supported. 'blosc_shuffle', 'szip_mask' and 'szip_pixels_per_block' kwargs also added. compression='zlib' is equivalent to (the now deprecated) zlib=True. If the environment variable NETCDF_PLUGIN_DIR is set to point to the directory with the compression plugin lib__nc* files, then the compression plugins will be installed within the package and be automatically available (the binary wheels have this). Otherwise, the environment variable HDF5_PLUGIN_PATH needs to be set at runtime to point to plugins in order to use the new compression options. ``` I am using the last versions ``` xarray: 2022.6.0 pandas: 1.4.2 numpy: 1.22.4 scipy: None netCDF4: 1.6.0 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.6.0 nc_time_axis: None PseudoNetCDF: None rasterio: None cfgrib: None iris: None bottleneck: None dask: 2022.6.0 distributed: 2022.6.0 matplotlib: 3.5.2 cartopy: None seaborn: None numbagg: None fsspec: 2022.5.0 cupy: None pint: None sparse: None flox: None numpy_groupies: None setuptools: 62.6.0 pip: 22.1.2 conda: None pytest: 7.1.2 IPython: 8.4.0 sphinx: 5.1.1 ``` ### Describe the solution you'd like Update the netcdf4 backend to support these arguments. Should not be too difficult. ### Describe alternatives you've considered _No response_ ### Additional context I can try to do this myself, it does not look hard.","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/6929/reactions"", ""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 104484316,MDU6SXNzdWUxMDQ0ODQzMTY=,557,CDO-like convenience methods to select times,6883049,open,0,,,9,2015-09-02T13:42:48Z,2022-04-18T16:03:35Z,,CONTRIBUTOR,,,,"I feel like the time selecting features of xray can be improved. Currently, some common operations are too involved or verbose, like selecting the data in a group of months that are not a standard season (e.g. the monsoon season in india JJAS), or in non consecutive years (e.g. El Niño years). I think it would be great to implement (and easy), some methods inspired in the widely used Climate Data Operators https://code.zmaw.de/projects/cdo For example: selyear, selmon, selday and selhour. Then we could easily do a composite of JJAS seasons in El Niño years like this: ``` pr_dataset = xray.open(my_precipitation_dataset) elnino_years = [year list here...] pr_dataset.selyear(elnino_years).selmon([6, 7, 8, 9]).mean('time') ``` This would make me very happy. The way to go would be to write methods that call grouby, then select the years/months, merge them, and return the corresponding dataset/dataarray, but I am not sure about what is the most efficient way to do this. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/557/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,issue 94012395,MDU6SXNzdWU5NDAxMjM5NQ==,457,xray raises error when opening datasets with multi-dimensional coordinate variables,6883049,closed,0,,,2,2015-07-09T10:32:16Z,2015-09-03T13:34:42Z,2015-09-03T13:34:42Z,CONTRIBUTOR,,,,"Hello and thank you for this great package. I have a (opendap) dataset where one coordinate (time24), is attached to a 2-dimensional coordinate variable. The reason is that it contains a set of forecasts that overlap in time, so the value of time24 depends on the run. Unfortunately it's not open so I can't share it for tests. The main variable is: ``` float32 mean2t24(run, member, time24, lat, lon) long_name: Mean temperature at 2 metres since last 24 hours @ Ground or water surface ``` And the coordinate variables are: ``` int32 run(run) long_name: Run time for ForecastModelRunCollection standard_name: forecast_reference_time units: hours since 1981-01-01T00:00:00 _CoordinateAxisType: RunTime |S1 member(member, maxStrlen64) standard_name: realization _CoordinateAxisType: Ensemble int32 time24(run, time24) long_name: Forecast time for ForecastModelRunCollection standard_name: time units: hours since 1981-01-01T00:00:00 _CoordinateAxisType: Time float32 lon(lon) units: degrees_east float32 lat(lat) units: degrees_north ``` xray is currently unable to open this dataset: `ValueError: an index variable must be defined with 1-dimensional data` Which its OK, this looks like something difficult to support, but it will be fine if at least I could simply exclude the variable time24 for being read by xray. A flag like ""exclude_variable=(var1, var2, ...)"". And then xray would fill the coordinate with the default int64 values (0, 1, 2, 3, 4...) that uses when there is no coordinate for a dimension. This would be very useful also to exclude troublesome variables (e.g. corrupt, with weird data types, inconsistent when concatenating) that are present in many datasets. Another way to go could be to issue a warning instead of an error, and then fill the variable with the default values (0, 1, 2, 3, 4...) I am looking at the code to see if I can implement this by myself, but I am not sure about how to proceed. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/457/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 101050642,MDExOlB1bGxSZXF1ZXN0NDI0NzQ2MTk=,532,Add a --drop-variables flag to xray.open_dataset to exclude certain variables,6883049,closed,0,,,7,2015-08-14T16:43:23Z,2015-08-19T18:27:35Z,2015-08-19T18:27:35Z,CONTRIBUTOR,,0,pydata/xarray/pulls/532,"Related to issue #457. I implemented this flag following the instructions given by @shoyer in the issue thread. I have a decent amount of experience with python, but this is the first pull request I set up in GitHub, and I am a begginer with git (more used to svn). I was careful but please check that I did not mess up something ; ) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/532/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull