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 62469729,MDExOlB1bGxSZXF1ZXN0MzEzNjA0NDg=,377,Add Appveyor for CI on Windows,1217238,closed,0,,1004936,0,2015-03-17T17:52:33Z,2015-03-17T18:26:48Z,2015-03-17T18:26:46Z,MEMBER,,0,pydata/xarray/pulls/377,"Fixes #360 Note: several tests for netCDF4 were previously defined twice, by accident. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/377/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 62448740,MDExOlB1bGxSZXF1ZXN0MzEzNTI0NDE=,376,BUG: Fix failing to determine time units,1217238,closed,0,,1004936,0,2015-03-17T16:32:00Z,2015-03-17T16:40:25Z,2015-03-17T16:40:23Z,MEMBER,,0,pydata/xarray/pulls/376,"Fixed a regression in v0.4 where saving to netCDF could fail with the error `ValueError: could not automatically determine time units`. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/376/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 60951607,MDExOlB1bGxSZXF1ZXN0MzEwOTI3MTg=,372,API: new methods {Dataset/DataArray}.swap_dims,1217238,closed,0,,1004936,2,2015-03-13T01:08:15Z,2015-03-17T15:44:30Z,2015-03-17T15:44:30Z,MEMBER,,0,pydata/xarray/pulls/372,"Fixes #276 Exmaple usage: ``` In [8]: ds = xray.Dataset({'x': range(3), 'y': ('x', list('abc'))}) In [9]: ds Out[9]: Dimensions: (x: 3) Coordinates: * x (x) int64 0 1 2 Data variables: y (x) |S1 'a' 'b' 'c' In [10]: ds.swap_dims({'x': 'y'}) Out[10]: Dimensions: (y: 3) Coordinates: * y (y) |S1 'a' 'b' 'c' x (y) int64 0 1 2 Data variables: *empty* ``` This is a slightly more verbose API than strictly necessary, because the new dimension names must be along existing dimensions (e.g., we could spell this `ds.set_dims(['y'])`). But I still think it's a good idea, for two reasons: 1. It's more explicit. Users control know which dimensions are being swapped. 2. It opens up the possibility of specifying new dimensions with dictionary like syntax, e.g., `ds.swap_dims('x': ('y', list('abc')))` CC @aykuznetsova ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/372/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 62422715,MDExOlB1bGxSZXF1ZXN0MzEzNDM4NjY=,375,"DOC: Refreshed docs frontpage, including adding logo",1217238,closed,0,,1004936,0,2015-03-17T15:10:22Z,2015-03-17T15:18:52Z,2015-03-17T15:18:51Z,MEMBER,,0,pydata/xarray/pulls/375,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/375/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 61377323,MDExOlB1bGxSZXF1ZXN0MzExNzczNDU=,373,New docs on multi-file IO and time-series data,1217238,closed,0,,1004936,0,2015-03-14T03:12:50Z,2015-03-16T04:02:20Z,2015-03-16T04:02:18Z,MEMBER,,0,pydata/xarray/pulls/373,,"{""url"": ""https://api.github.com/repos/pydata/xarray/issues/373/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59730888,MDExOlB1bGxSZXF1ZXN0MzA0MjcxMjU=,359,Raise informative exception when _FillValue and missing_value disagree,514053,closed,0,,1004936,2,2015-03-04T00:22:41Z,2015-03-12T16:33:47Z,2015-03-12T16:32:07Z,CONTRIBUTOR,,0,pydata/xarray/pulls/359,"Previously conflicting _FillValue and missing_value only raised an AssertionError, now it's more informative. ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/359/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 60423499,MDExOlB1bGxSZXF1ZXN0MzA4MDc3NjU=,366,Silenced warnings for all-NaN slices when using nan functions from numpy,1217238,closed,0,,1004936,0,2015-03-09T22:48:20Z,2015-03-10T06:49:11Z,2015-03-10T06:49:09Z,MEMBER,,0,pydata/xarray/pulls/366,"Fixes #344 These warnings are typically spurious on xray objects. Note that this does result in a _small_ performance penalty for these functions (e.g., a few percent). This can be avoided by install bottleneck. CC @jhammon ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/366/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 60311603,MDExOlB1bGxSZXF1ZXN0MzA3NDI3MDE=,365,"Add ""engine"" argument and fix reading mmapped data with scipy.io.netcdf",1217238,closed,0,,1004936,0,2015-03-09T08:25:18Z,2015-03-09T17:30:28Z,2015-03-09T17:30:28Z,MEMBER,,0,pydata/xarray/pulls/365,"Fixes #341 ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/365/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 60273744,MDExOlB1bGxSZXF1ZXN0MzA3MjU1NjI=,363,Fix (most) windows issues,1217238,closed,0,,1004936,0,2015-03-08T20:10:49Z,2015-03-08T20:15:45Z,2015-03-08T20:15:43Z,MEMBER,,0,pydata/xarray/pulls/363,"xref #360 In this change: - Fix tests that relied on implicit conversion to int64 (Python's int on windows is int32). - Be more careful about always closing files, even in tests. Not addressed (yet): - Issues with scipy.io.netcdf_file (#341) ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/363/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull 59840149,MDExOlB1bGxSZXF1ZXN0MzA0OTEyOTM=,361,"Add resample, first and last",1217238,closed,0,,1004936,0,2015-03-04T18:32:24Z,2015-03-05T19:29:42Z,2015-03-05T19:29:39Z,MEMBER,,0,pydata/xarray/pulls/361,"Fixes #354 `resample` lets you resample a dataset or array along a time axis to a coarser resolution. The syntax is the same as pandas, except you need to supply the time dimension explicitly: ``` In [1]: time = pd.date_range('2000-01-01', freq='6H', periods=10) In [2]: array = xray.DataArray(np.arange(10), [('time', time)]) In [3]: array.resample('1D', dim='time') Out[3]: array([ 1.5, 5.5, 8.5]) Coordinates: * time (time) datetime64[ns] 2000-01-01 2000-01-02 2000-01-03 ``` You can specify how to do the resampling with the how argument and other options such as closed and label let you control labeling: ``` In [4]: array.resample('1D', dim='time', how='sum', label='right') Out[4]: array([ 6, 22, 17]) Coordinates: * time (time) datetime64[ns] 2000-01-02 2000-01-03 2000-01-04 ``` `first` and `last` methods on groupby objects let you take the first or last examples from each group along the grouped axis: ``` In [5]: array.groupby('time.day').first() Out[5]: array([0, 4, 8]) Coordinates: * day (day) int64 1 2 3 ``` ","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/361/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,,13221727,pull