Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
daa3a71
First implementation of resampling for CFTimeIndex.
jwenfai Nov 9, 2018
f9f3347
First implementation of resampling for CFTimeIndex, cleaned.
jwenfai Nov 9, 2018
0950505
First implementation of resampling for CFTimeIndex, cleaned.
jwenfai Nov 9, 2018
89f418a
First implementation of resampling for CFTimeIndex, cleaned.
jwenfai Nov 9, 2018
39c9d11
First implementation of resampling for CFTimeIndex.
jwenfai Nov 12, 2018
073b8e0
First implementation of resampling for CFTimeIndex,
jwenfai Nov 12, 2018
193c4c4
First implementation of resampling for CFTimeIndex, test file written.
jwenfai Nov 15, 2018
2c97738
First implementation of resampling for CFTimeIndex, test file written…
jwenfai Nov 15, 2018
9993ed9
First implementation of resampling for CFTimeIndex, test file written…
jwenfai Nov 15, 2018
f01745c
First implementation of resampling for CFTimeIndex, test file written…
jwenfai Nov 27, 2018
ffbf265
First implementation of resampling for CFTimeIndex, test file written…
jwenfai Dec 5, 2018
e64fedb
Merge pull request #1 from jwenfai/resample-v2-clean
jwenfai Dec 5, 2018
2850dd5
Docstrings for resample_cftime.py written. Upsample still not fixed.
jwenfai Dec 8, 2018
770b778
Fixed PEP8 and test parametrization.
jwenfai Dec 8, 2018
181e82c
PEP8
Zeitsperre Dec 12, 2018
5a41ee2
Merge pull request #3 from Ouranosinc/PEP8
Zeitsperre Dec 12, 2018
6b948c5
Test file fixes and other optimizations (2018-12-16 @spencerclark and…
jwenfai Dec 18, 2018
97c0948
Merge pull request #1 from Ouranosinc/master
jwenfai Dec 18, 2018
63d25ab
Merge remote-tracking branch 'origin/resample-v2-clean' into resample…
jwenfai Dec 18, 2018
05af869
Test file fixes and other optimizations (2018-12-16 @spencerclark and…
jwenfai Dec 18, 2018
85f1a84
Merge branch 'resample-v2-upsample' into resample-v2-clean
jwenfai Dec 18, 2018
2e8ced3
Merge pull request #4 from jwenfai/resample-v2-clean
Zeitsperre Dec 18, 2018
4317c69
Merge branch 'master' into master
jwenfai Dec 19, 2018
e7deeb2
Merge pull request #2 from Ouranosinc/master
jwenfai Jan 9, 2019
f9ac1a1
Merge pull request #3 from Ouranosinc/master
jwenfai Jan 9, 2019
8505ca9
_get_range_edges logic changed to emulate latest version of pandas.
jwenfai Jan 9, 2019
a495c2d
Simplified resampling logic (errors persist). Pre-cleaning.
jwenfai Jan 12, 2019
ad65ef0
Simplified resampling logic (error persists). Cleaned.
jwenfai Jan 12, 2019
5775e11
Simplified resampling logic (error persists). Fixed first_items.dropn…
jwenfai Jan 13, 2019
e1902fe
Simplified resampling logic (error persists). Logic slightly altered …
jwenfai Jan 16, 2019
f82500c
Simplified resampling logic (error persists). Logic slightly altered …
jwenfai Jan 16, 2019
80914e0
Merge pull request #5 from jwenfai/resample-v2-upsample
jwenfai Jan 16, 2019
1b3f41a
Simplified resampling logic (error persists). Cleaned. Merged with la…
jwenfai Jan 18, 2019
bc95f55
Precise cftime arithmetic. Reduced overall test time. Added test for …
jwenfai Jan 19, 2019
9fa4d51
Merge remote-tracking branch 'origin/master'
jwenfai Jan 19, 2019
5227480
Merge pull request #6 from jwenfai/master
jwenfai Jan 19, 2019
77bb2aa
Added default values for closed and label args of resample function i…
jwenfai Jan 19, 2019
be2e657
Merge pull request #7 from jwenfai/master
jwenfai Jan 19, 2019
a18161d
Added back replace['dayofwk'] = -1 to cftime_offsets.py and cftimeind…
jwenfai Jan 20, 2019
9582fbf
Merge pull request #8 from jwenfai/master
jwenfai Jan 20, 2019
5737546
Optimizations as per https://github.com/pydata/xarray/pull/2593/#pull…
jwenfai Jan 20, 2019
3268fc4
Merge pull request #9 from jwenfai/master
jwenfai Jan 20, 2019
6f38935
Simple test for non-standard calendars added and documentation updated.
jwenfai Jan 21, 2019
e7986c5
Simple test for non-standard calendars added and documentation updated.
jwenfai Jan 21, 2019
c64265f
Merge pull request #10 from jwenfai/master
jwenfai Jan 21, 2019
71f98db
Merge branch 'master' into master
jwenfai Jan 21, 2019
ec4e460
Added loffset support to CFTimeIndex resampling. Better adherence to …
jwenfai Jan 22, 2019
47b0eaa
Added loffset support to CFTimeIndex resampling. Better adherence to …
jwenfai Jan 22, 2019
f2ecaf6
Merge pull request #11 from jwenfai/master
jwenfai Jan 22, 2019
cd266c2
Support datetime.timedelta objects for loffset. Improved test coverage.
jwenfai Jan 22, 2019
41783cb
Merge pull request #12 from jwenfai/master
jwenfai Jan 22, 2019
5435910
Removed support for Python 2 compatibility.
jwenfai Jan 27, 2019
35b40fb
Merge pull request #13 from jwenfai/master
jwenfai Jan 27, 2019
814a04d
Updated pandas minversion to 0.24 as 0.24 is officially out.
jwenfai Jan 27, 2019
2a9402e
Merge branch 'pydata-master'
jwenfai Jan 27, 2019
505a0fa
Removed Python 2 support from test_cftimeindex_resample.py.
jwenfai Jan 27, 2019
9fbb016
Merge branch 'master' into master
jwenfai Jan 27, 2019
0820c3b
Merge pull request #14 from jwenfai/master
jwenfai Jan 27, 2019
89bc708
Moved full_index and first_items generation logic to a helper functio…
jwenfai Jan 29, 2019
31ccebf
Merge remote-tracking branch 'origin/master'
jwenfai Jan 29, 2019
8ac6f76
Merge pull request #15 from jwenfai/master
jwenfai Jan 29, 2019
8dbee52
Merge branch 'master' into master
shoyer Feb 1, 2019
afad30d
In groupby.py, moved s to _get_index_and_items helper function.
jwenfai Feb 1, 2019
1381dab
Removed redundant code from test_formatting.py due to bad merge.
jwenfai Feb 2, 2019
6074548
Merge pull request #16 from jwenfai/master
jwenfai Feb 2, 2019
1010264
Merge branch 'master' into master
jwenfai Feb 2, 2019
6c4b609
Merge branch 'pydata-master'
jwenfai Feb 2, 2019
59f1f94
Removed redundant test and simplify code now that dropna is implemented.
jwenfai Feb 2, 2019
db62a96
Merge branch 'master' into master
jwenfai Feb 2, 2019
6edb45a
Merge pull request #17 from jwenfai/master
jwenfai Feb 2, 2019
f7f2c38
delete unnecessary test
shoyer Feb 2, 2019
ef68960
eliminate some repetition
shoyer Feb 2, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions xarray/core/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -749,7 +749,21 @@ def resample(self, indexer=None, skipna=None, closed=None, label=None,
dim_coord = self[dim]

if isinstance(self.indexes[dim_name], CFTimeIndex):
from ..coding.cftime_offsets import to_offset
from .resample_cftime import CFTimeGrouper
end_types = {'M', 'A'}
rule = to_offset(freq).rule_code()
if (rule in end_types or
('-' in rule and rule[:rule.find('-')] in end_types)):
if closed is None:
closed = 'right'
if label is None:
label = 'right'
else:
if closed is None:
closed = 'left'
if label is None:
label = 'left'
grouper = CFTimeGrouper(freq, closed, label, base)
else:
# TODO: to_offset() call required for pandas==0.19.2
Expand Down
17 changes: 0 additions & 17 deletions xarray/core/resample_cftime.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,36 +78,19 @@ def _get_time_bins(index, freq, closed, label, base):
start=first,
end=last,
name=index.name)
print('XARRAY-START')
print(index.min(), index.max())
print(first, last)
print('initial range\n', datetime_bins)
print('len binner: ', len(datetime_bins),
'len labels: ', len(labels))

datetime_bins = _adjust_bin_edges(datetime_bins, freq, closed, index)

print('len datetime_bins: ', len(datetime_bins),
'len labels: ', len(labels))
print('_adjust_bin_edges\n', datetime_bins)

if closed == 'right':
if label == 'right':
labels = labels[1:]
elif label == 'right':
labels = labels[1:]

print('len datetime_bins: ', len(datetime_bins),
'len labels: ', len(labels))

if index.hasnans: # cannot be true since CFTimeIndex does not allow NaNs
datetime_bins = datetime_bins.insert(0, pd.NaT)
labels = labels.insert(0, pd.NaT)

print('len binner: ', len(datetime_bins),
'len labels: ', len(labels))
print('XARRAY-END')

return datetime_bins, labels


Expand Down
5 changes: 3 additions & 2 deletions xarray/tests/test_cftimeindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -377,9 +377,10 @@ def test_groupby(da):


@pytest.mark.skipif(not has_cftime, reason='cftime not installed')
@pytest.mark.xfail(raises=ValueError)
def test_resample_error(da):
with pytest.raises(NotImplementedError, match='to_datetimeindex'):
da.resample(time='Y')
# with pytest.raises(NotImplementedError, match='to_datetimeindex'):
da.resample(time='Y')


SEL_STRING_OR_LIST_TESTS = {
Expand Down
4 changes: 2 additions & 2 deletions xarray/tests/test_dataarray.py
Original file line number Diff line number Diff line change
Expand Up @@ -2314,8 +2314,8 @@ def test_resample_cftimeindex(self):
calendar='noleap')
array = DataArray(np.arange(12), [('time', times)])

with raises_regex(NotImplementedError, 'to_datetimeindex'):
array.resample(time='6H').mean()
# with raises_regex(NotImplementedError, 'to_datetimeindex'):
array.resample(time='6H').mean()

def test_resample_first(self):
times = pd.date_range('2000-01-01', freq='6H', periods=10)
Expand Down