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 57577216,MDExOlB1bGxSZXF1ZXN0MjkyNTA3MjA=,321,Automatic label-based alignment for math and Dataset constructor,1217238,closed,0,,799013,0,2015-02-13T09:31:43Z,2015-03-03T06:24:02Z,2015-02-13T22:19:29Z,MEMBER,,0,pydata/xarray/pulls/321,"Fixes #186. This will be a major breaking change for v0.4. For example, we can now do things like this: ``` In [5]: x = xray.DataArray(range(5), dims='x') In [6]: x Out[6]: <xray.DataArray (x: 5)> array([0, 1, 2, 3, 4]) Coordinates: * x (x) int64 0 1 2 3 4 In [7]: x[:4] + x[1:] Out[7]: <xray.DataArray (x: 3)> array([2, 4, 6]) Coordinates: * x (x) int64 1 2 3 ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/321/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59599124,MDExOlB1bGxSZXF1ZXN0MzAzNDg3NTA=,356,Documentation updates,1217238,closed,0,,799013,0,2015-03-03T06:01:03Z,2015-03-03T06:02:57Z,2015-03-03T06:02:56Z,MEMBER,,0,pydata/xarray/pulls/356,"Fixes #343 (among other small changes) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/356/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59308959,MDU6SXNzdWU1OTMwODk1OQ==,343,DataArrays initialized with the same data behave like views of each other,7462311,closed,0,,799013,2,2015-02-27T23:19:39Z,2015-03-03T06:02:56Z,2015-03-03T06:02:56Z,NONE,,,,"I'm not sure if this qualifies as a bug but this behavior was surprising to me. If I initialize two DataArrays with the same array, the two DataArrays and the original initialization array are all linked as if they are views of each other. A simple example: ``` Python #initialize with same array: a = np.zeros((4,4)) da1 = xray.DataArray(a, dims=['x', 'y']) da2 = xray.DataArray(a, dims=['i', 'j']) ``` If I do `da1.loc[:, 2] = 12`, the same change occurs in `da2` _and_ `a`. Likewise, doing `da2[dict(i=1)] = 29` also modifies `da1` and `a`. The problem is fixed if I explicitly pass copies of the `a` but I think this should be the default behavior. If this behavior is intended then I think it should be clearly noted in the documentation. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/343/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 59592828,MDExOlB1bGxSZXF1ZXN0MzAzNDUzODA=,355,Partial fix for netCDF4 datetime issues,1217238,closed,0,,799013,0,2015-03-03T04:11:51Z,2015-03-03T05:02:54Z,2015-03-03T05:02:52Z,MEMBER,,0,pydata/xarray/pulls/355,"xref #340 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/355/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59548752,MDExOlB1bGxSZXF1ZXN0MzAzMTk2Mzc=,351,Switch the name of datetime components from 'time.month' to 'month',1217238,closed,0,,799013,0,2015-03-02T20:55:24Z,2015-03-02T23:20:09Z,2015-03-02T23:20:07Z,MEMBER,,0,pydata/xarray/pulls/351,"Fixes #345 This lets you write things like: ``` counts = time.groupby('time.month').count() counts.sel(month=2) ``` instead of the previously valid ``` counts.sel(**{'time.month': 2}) ``` which is much more awkward. Note that this breaks existing code which relied on the old usage. CC @jhamman ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/351/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59529630,MDExOlB1bGxSZXF1ZXN0MzAzMTA1Mjc=,350,Fix Dataset repr with netcdf4 datetime objects,1217238,closed,0,,799013,0,2015-03-02T19:06:28Z,2015-03-02T19:25:01Z,2015-03-02T19:25:00Z,MEMBER,,0,pydata/xarray/pulls/350,"Fixes #347 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/350/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59431613,MDExOlB1bGxSZXF1ZXN0MzAyNTQ5NjE=,348,Fix Dataset aggregate boolean,1217238,closed,0,,799013,0,2015-03-02T02:26:27Z,2015-03-02T18:14:12Z,2015-03-02T18:14:11Z,MEMBER,,0,pydata/xarray/pulls/348,"Fixes #342 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/348/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59287686,MDU6SXNzdWU1OTI4NzY4Ng==,342,Aggregations on datasets drop data variables with dtype=bool,1217238,closed,0,,799013,0,2015-02-27T20:12:21Z,2015-03-02T18:14:11Z,2015-03-02T18:14:11Z,MEMBER,,,,"``` >>> xray.Dataset({'x': 1}).isnull().sum() <xray.Dataset> Dimensions: () Coordinates: *empty* Data variables: *empty* ``` This is a bug. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/342/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 59420145,MDExOlB1bGxSZXF1ZXN0MzAyNDk4NzU=,346,Fix bug where Coordinates could turn Variable objects in Dataset constructor,1217238,closed,0,,799013,0,2015-03-01T22:08:36Z,2015-03-01T23:57:58Z,2015-03-01T23:57:55Z,MEMBER,,0,pydata/xarray/pulls/346,"This manifested itself in some variables not being written to netCDF files, because they were determined to be trivial indexes (hence that logic was also updated to be slightly less questionable). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/346/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59032389,MDExOlB1bGxSZXF1ZXN0MzAwNTY0MDk=,337,Cleanup (mostly documentation),1217238,closed,0,,799013,3,2015-02-26T07:40:01Z,2015-02-27T22:22:47Z,2015-02-26T07:43:37Z,MEMBER,,0,pydata/xarray/pulls/337,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/337/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59033971,MDExOlB1bGxSZXF1ZXN0MzAwNTcxNTI=,338,Truncate long attributes when printing datasets,1217238,closed,0,,799013,0,2015-02-26T07:57:40Z,2015-02-26T08:06:17Z,2015-02-26T08:06:05Z,MEMBER,,0,pydata/xarray/pulls/338,"Only the first 500 characters are now shown, e.g., ``` In [2]: xray.Dataset(attrs={'foo': 'bar' * 1000}) Out[2]: <xray.Dataset> Dimensions: () Coordinates: *empty* Data variables: *empty* Attributes: foo: barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarb arbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarba rbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbar barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarb arbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarba rbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbar barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarb arbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarba... ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/338/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58682523,MDExOlB1bGxSZXF1ZXN0Mjk4NjQ5NzA=,334,Fix bug associated with reading / writing of mixed endian data.,514053,closed,0,,799013,1,2015-02-24T01:57:43Z,2015-02-26T04:45:18Z,2015-02-26T04:45:18Z,CONTRIBUTOR,,0,pydata/xarray/pulls/334,"The right solution to this is to figure out how to successfully round trip endian-ness, but that seems to be a deeper issue inside netCDF4 (https://github.com/Unidata/netcdf4-python/issues/346) Instead we force all data to little endian before netCDF4 write. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/334/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58854176,MDExOlB1bGxSZXF1ZXN0Mjk5NjI4MzY=,335,Add broadcast_equals method to Dataset and DataArray,1217238,closed,0,,799013,0,2015-02-25T05:51:46Z,2015-02-26T04:35:52Z,2015-02-26T04:35:49Z,MEMBER,,0,pydata/xarray/pulls/335,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/335/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58857388,MDExOlB1bGxSZXF1ZXN0Mjk5NjQyMTE=,336,Add Dataset.drop and DataArray.drop,1217238,closed,0,,799013,0,2015-02-25T06:35:18Z,2015-02-25T22:01:49Z,2015-02-25T22:01:49Z,MEMBER,,0,pydata/xarray/pulls/336,"These are convenient shortcuts for removing variables or index labels from an xray object. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/336/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58537752,MDExOlB1bGxSZXF1ZXN0Mjk3ODM4Njc=,330,Improved error handling for datetime decoding errors,1217238,closed,0,,799013,0,2015-02-23T03:08:40Z,2015-02-25T22:00:36Z,2015-02-23T03:11:03Z,MEMBER,,0,pydata/xarray/pulls/330,"Fixes #323 We now get an error message with a lovely traceback when opening a dataset with invalid time units. For example: ``` Traceback (most recent call last): File ""/Users/shoyer/dev/xray/xray/test/test_conventions.py"", line 340, in test_invalid_units_raises_eagerly decode_cf(ds) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 775, in decode_cf decode_coords) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 716, in decode_cf_variables decode_times=decode_times) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 676, in decode_cf_variable data = DecodedCFDatetimeArray(data, units, calendar) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 340, in __init__ raise ValueError(msg) ValueError: unable to decode time units 'foobar since 123' with the default calendar. Try opening your dataset with decode_times=False. Full traceback: Traceback (most recent call last): File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 331, in __init__ decode_cf_datetime(example_value, units, calendar) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 130, in decode_cf_datetime delta = _netcdf_to_numpy_timeunit(delta) File ""/Users/shoyer/dev/xray/xray/conventions.py"", line 72, in _netcdf_to_numpy_timeunit return {'seconds': 's', 'minutes': 'm', 'hours': 'h', 'days': 'D'}[units] KeyError: 'foobars' ``` Also includes a fix for a datetime decoding issue reported on the mailing list: https://groups.google.com/forum/#!topic/xray-dev/Sscsw5dQAqQ ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/330/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58679397,MDExOlB1bGxSZXF1ZXN0Mjk4NjMyMjU=,333,Unify netCDF4 and scipy backends in the public API,1217238,closed,0,,799013,0,2015-02-24T01:20:01Z,2015-02-25T06:21:03Z,2015-02-25T06:21:01Z,MEMBER,,0,pydata/xarray/pulls/333,"Fixes #273 and half of #272 To serialize a dataset to a string/bytes, simply use `ds.to_netcdf()`. This behavior copies `DataFrame.to_csv()` from pandas. The legacy `dump` and `dumps` methods are deprecated. My main concern is that the default ""format"" option is depends on what dependencies the user has installed or if they are saving a file. That seems non-ideal, but may perhaps be the most pragmatic choice given the limitations of the netCDF4 format. This change also adds: - Support for writing datasets to a particular NETCDF4 group - Support for opening netCDF3 files from disk even without netCDF4-python if scipy is installed. CC @akleeman ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/333/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58635715,MDExOlB1bGxSZXF1ZXN0Mjk4Mzc2ODU=,332,Update time.season to use text labels like 'DJF',1217238,closed,0,,799013,0,2015-02-23T19:31:58Z,2015-02-23T19:43:41Z,2015-02-23T19:43:39Z,MEMBER,,0,pydata/xarray/pulls/332,"Previously, I used numbers 1 through 4 for the sake of consistency with pandas, but such labels really were impossible to keep track of. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/332/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58545451,MDExOlB1bGxSZXF1ZXN0Mjk3ODc1NzM=,331,Documentation updates anticipating v0.4,1217238,closed,0,,799013,0,2015-02-23T05:51:42Z,2015-02-23T06:18:39Z,2015-02-23T06:18:35Z,MEMBER,,0,pydata/xarray/pulls/331,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/331/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 53659919,MDExOlB1bGxSZXF1ZXN0MjY5NzM5NTc=,306,Fix coercion of numeric strings to objects,1217238,closed,0,,799013,0,2015-01-07T17:45:23Z,2015-02-23T06:09:10Z,2015-01-07T18:14:31Z,MEMBER,,0,pydata/xarray/pulls/306,"Fixes #305 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/306/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58474512,MDExOlB1bGxSZXF1ZXN0Mjk3NTk4MTk=,329,Dataset.apply works if func returns like-shaped ndarrays,1217238,closed,0,,799013,0,2015-02-21T20:54:00Z,2015-02-23T00:35:25Z,2015-02-23T00:35:23Z,MEMBER,,0,pydata/xarray/pulls/329,"This extends the recent change by @IamJeffG (#327). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/329/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58307190,MDExOlB1bGxSZXF1ZXN0Mjk2NzEzMjg=,327,Cleanly apply generic ndarrays to DataArray.groupby,2002703,closed,0,,799013,1,2015-02-20T03:47:15Z,2015-02-20T04:41:10Z,2015-02-20T04:41:08Z,CONTRIBUTOR,,0,pydata/xarray/pulls/327,"This is special cased for np.ndarrays: applying to DataArrays is not only inefficient but would also be wrong if the applied function wanted to change metadata. Fixes #326 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/327/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 58182276,MDExOlB1bGxSZXF1ZXN0Mjk1OTUyMjU=,325,Rename Dataset.vars -> data_vars and remove deprecated aliases,1217238,closed,0,,799013,0,2015-02-19T09:01:45Z,2015-02-19T19:31:17Z,2015-02-19T19:31:11Z,MEMBER,,0,pydata/xarray/pulls/325,"Fixes #293 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/325/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 51863801,MDU6SXNzdWU1MTg2MzgwMQ==,293,"Use ""coordinate variables""/""data variables"" instead of ""coordinates""/""variables""?",1217238,closed,0,,799013,0,2014-12-12T23:09:30Z,2015-02-19T19:31:11Z,2015-02-19T19:31:11Z,MEMBER,,,,"Recently, we introduced a distinction between ""coordinates"" and ""variables"" (see #197). CF conventions make an analogous distinction between ""coordinate variables"" and ""data variables"": http://cfconventions.org/Data/cf-conventions/cf-conventions-1.6/build/cf-conventions.html Would it be less confusing to use the CF terminology? I am leaning toward making this shift, because netCDF already has defined the term ""variable"", and xray's code still uses that internally. From a practical perspective, this would mean renaming `Dataset.vars` to `Dataset.data_vars`. CC @akleeman @toddsmall ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/293/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 56817968,MDU6SXNzdWU1NjgxNzk2OA==,316,Not-quite-ISO timestamps,141709,closed,0,,799013,7,2015-02-06T14:30:11Z,2015-02-18T04:45:25Z,2015-02-18T04:45:25Z,CONTRIBUTOR,,,,"I have trouble reading NetCDF files obtained from MERRA. It turns out that their time unit is of the form ""hours since 1982-1-10 0"". Because there is only a single ""0"" for the hour, rather than ""00"", this is not an ISO compliant datetime string and `pandas.Timestamp` raises an error (see pydata/pandas#9434). This makes it impossible to open such files unless passing `decode_times=False` to `open_dataset()`. I wonder if this is a rare edge case or if xray could attempt to intelligently handle it somewhere (maybe in `conventions._unpack_netcdf_time_units`). For now, I just used NCO to append an extra 0 to the time unit (luckily all files are the same, so I can just do this across the board): `ncatted -O -a units,time,a,c,""0"" file.nc` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/316/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 58024857,MDExOlB1bGxSZXF1ZXN0Mjk1MDA2ODc=,322,Support reindexing with an optional fill method,1217238,closed,0,,799013,0,2015-02-18T04:32:47Z,2015-02-18T04:42:00Z,2015-02-18T04:41:59Z,MEMBER,,0,pydata/xarray/pulls/322,"e.g., pad, backfill or nearest ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/322/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 38110382,MDU6SXNzdWUzODExMDM4Mg==,186,Automatic label alignment,1217238,closed,0,,799013,1,2014-07-17T18:18:52Z,2015-02-13T22:19:29Z,2015-02-13T22:19:29Z,MEMBER,,,,"If we want to mimic pandas, we should support automatic alignment of coordinate labels in: - [x] Mathematical operations (non-inplace, ~~in-place~~, see also #184) - [x] All operations that add new dataset variables (`merge`, `update`, `__setitem__`). - [x] All operations that create a new dataset ( `__init__`, ~~`concat`~~) For the later two cases, it is _not_ clear that using an inner join on coordinate labels is the right choice, because that could lead to some surprising destructive operations. This should be considered carefully. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/186/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 57217507,MDExOlB1bGxSZXF1ZXN0MjkwMzMyMTA=,318,Fix DataArray.loc indexing with Ellipsis: da.loc[...],1217238,closed,0,,799013,0,2015-02-10T18:46:37Z,2015-02-10T18:59:32Z,2015-02-10T18:59:31Z,MEMBER,,0,pydata/xarray/pulls/318,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/318/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 57198686,MDExOlB1bGxSZXF1ZXN0MjkwMjE2Mzg=,317,Fall back to netCDF4 if pandas can’t parse a date,141709,closed,0,,799013,1,2015-02-10T16:31:34Z,2015-02-10T18:37:35Z,2015-02-10T18:37:32Z,CONTRIBUTOR,,0,pydata/xarray/pulls/317,"Addresses #316 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/317/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 56767996,MDExOlB1bGxSZXF1ZXN0Mjg3ODM5OTc=,315,Bug fix for multidimensional reindex edge case,1217238,closed,0,,799013,0,2015-02-06T04:09:09Z,2015-02-06T04:10:23Z,2015-02-06T04:10:21Z,MEMBER,,0,pydata/xarray/pulls/315,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/315/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 56489618,MDExOlB1bGxSZXF1ZXN0Mjg2MTc5MTQ=,313,Fix decoding missing coordinates,1217238,closed,0,,799013,0,2015-02-04T07:19:01Z,2015-02-04T07:21:03Z,2015-02-04T07:21:01Z,MEMBER,,0,pydata/xarray/pulls/313,"Fixes #308 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/313/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 53818267,MDU6SXNzdWU1MzgxODI2Nw==,308,BUG: xray fails to read netCDF files where coordinates do not refer to valid variables,1217238,closed,0,,799013,0,2015-01-09T00:05:40Z,2015-02-04T07:21:01Z,2015-02-04T07:21:01Z,MEMBER,,,,"Instead, we should verify that that coordinates refer to valid variables and fail gracefully. As reported by @mgarvert. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/308/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 56479006,MDExOlB1bGxSZXF1ZXN0Mjg2MTI3NzM=,312,BUG: Fix slicing with negative step size,1217238,closed,0,,799013,0,2015-02-04T04:32:07Z,2015-02-04T04:34:46Z,2015-02-04T04:34:39Z,MEMBER,,0,pydata/xarray/pulls/312,"As identified here: https://github.com/perrette/dimarray/commit/ad4ab4d049f49881b28120d276337b2cab5e4061 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/312/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 54966501,MDExOlB1bGxSZXF1ZXN0Mjc3Mjg5MzI=,311,Bug fix for DataArray.to_dataframe with coords with different dimensions,1217238,closed,0,,799013,0,2015-01-21T01:40:06Z,2015-01-21T01:44:29Z,2015-01-21T01:44:28Z,MEMBER,,0,pydata/xarray/pulls/311,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/311/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 54391570,MDExOlB1bGxSZXF1ZXN0MjczOTI5OTU=,310,More robust CF datetime unit parsing,514053,closed,0,1217238,799013,1,2015-01-14T23:19:07Z,2015-01-14T23:36:34Z,2015-01-14T23:35:27Z,CONTRIBUTOR,,0,pydata/xarray/pulls/310,"This makes it possible to read datasets that don't follow CF datetime conventions perfectly, such as the following example which (surprisingly) comes from NCEP/NCAR (you'd think they would follow CF!) ``` ds = xray.open_dataset('http://thredds.ucar.edu/thredds/dodsC/grib/NCEP/GEFS/Global_1p0deg_Ensemble/members/GEFS_Global_1p0deg_Ensemble_20150114_1200.grib2/GC') print ds['time'].encoding['units'] u'Hour since 2015-01-14T12:00:00Z' ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/310/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 54012349,MDExOlB1bGxSZXF1ZXN0MjcxNzEyMDU=,309,Fix typos in docs,2058401,closed,0,,799013,1,2015-01-12T01:00:09Z,2015-01-12T01:44:11Z,2015-01-12T01:43:43Z,CONTRIBUTOR,,0,pydata/xarray/pulls/309,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/309/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 53719931,MDExOlB1bGxSZXF1ZXN0MjcwMTAyODg=,307,Skip NA in groupby groups,1217238,closed,0,,799013,0,2015-01-08T06:40:17Z,2015-01-08T06:51:12Z,2015-01-08T06:51:10Z,MEMBER,,0,pydata/xarray/pulls/307,"This makes xray consistent with the behavior of pandas. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/307/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 53314251,MDExOlB1bGxSZXF1ZXN0MjY3ODY1NzI=,304,Switch to use nan-skipping aggregation functions by default and add .median() method,1217238,closed,0,,799013,0,2015-01-03T20:19:26Z,2015-01-04T16:05:30Z,2015-01-04T16:05:28Z,MEMBER,,0,pydata/xarray/pulls/304,"TODO: - ~~update documentation~~ (I'll do this later) - ~~update minimum required numpy version to 1.9? (so we can use np.nanmedian)~~ (added an informative error message for median) fixes #209 xref #130 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/304/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 39876209,MDU6SXNzdWUzOTg3NjIwOQ==,209,Rethink silently passing TypeError when encountered during Dataset aggregations,1217238,closed,0,,799013,0,2014-08-09T02:20:06Z,2015-01-04T16:05:28Z,2015-01-04T16:05:28Z,MEMBER,,,,"This is responsible for #205. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/209/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue 53064234,MDExOlB1bGxSZXF1ZXN0MjY2NTczMzY=,302,Variables no longer conflict if they are broadcast equal and rather are promoted to use common dimensions,1217238,closed,0,,799013,0,2014-12-29T19:19:42Z,2014-12-29T19:53:14Z,2014-12-29T19:52:57Z,MEMBER,,0,pydata/xarray/pulls/302,"Fixes #243. The idea here is that variables should not conflict if they are equal after being broadcast against each other; rather variables should be promoted to the common dimensions. This should resolve a number of annoyances causes by mixing scalar and non-scalar variables. This PR includes fixes for `concat`, `Dataset.merge` (and thus `Dataset.update` and `Dataset.__setitem__`) and `Dataset`/`DataArray` arithmetic (via `Coordinates.merge`). ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/302/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull