Skip to content

Commit 4386f6a

Browse files
committed
fix #984
criteriaargclim was messing up criteriaarg and useless commented out, probably should take all code out, but in case of 'custom' criteria func it might be usefull so letting it in
1 parent 45d9879 commit 4386f6a

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

Packages/cdutil/Lib/times.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,7 @@ def climatology(self,slab,criteriaarg=None,criteriaargclim=None,statusbar=None,s
13561356
'''
13571357
cdat_info.pingPCMDIdb("cdat","cdutil.times.Seasons.climatology -%s-" % self.seasons)
13581358
u=self.month_fix(slab)
1359-
if criteriaargclim is None: criteriaargclim=criteriaarg
1359+
#if criteriaargclim is None: criteriaargclim=criteriaarg
13601360
order=slab.getOrder(ids=1)
13611361
initialgrid = slab.getGrid()
13621362

testing/cdutil/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ if(CDAT_DOWNLOAD_SAMPLE_DATA)
4949
add_test("test_years"
5050
"${PYTHON_EXECUTABLE}"
5151
${cdat_SOURCE_DIR}/testing/cdutil/test_years.py)
52+
add_test("test_djf_criteria"
53+
"${PYTHON_EXECUTABLE}"
54+
${cdat_SOURCE_DIR}/testing/cdutil/test_djf_criteria.py)
5255
endif()
5356

5457
# Tests which should fail
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import cdms2
2+
import numpy
3+
4+
data = [1,]*12+[2,]*12
5+
6+
print data
7+
8+
months = range(24)
9+
10+
t=cdms2.createAxis(months)
11+
t.designateTime()
12+
t.units="months since 2014"
13+
14+
import cdutil
15+
16+
cdutil.setTimeBoundsMonthly(t)
17+
import MV2,numpy
18+
data = numpy.array(data)
19+
data=MV2.array(data)
20+
data.setAxis(0,t)
21+
print t.asComponentTime()
22+
djf = cdutil.times.DJF(data)
23+
djfc = cdutil.times.DJF.climatology(data)
24+
print djf
25+
assert(numpy.allclose(djf[0],1.) and numpy.allclose(djf[1],1.6666667) and numpy.allclose(djf[2],2.))
26+
print djfc
27+
assert(numpy.allclose(djfc,1.625))
28+
djf = cdutil.times.DJF(data,criteriaarg=[.5,None])
29+
djfc = cdutil.times.DJF.climatology(data,criteriaarg=[.5,None])
30+
31+
print djf
32+
assert(numpy.ma.allclose(djf[0],1.) and numpy.ma.allclose(djf[1],1.6666667) and numpy.ma.allclose(djf[2],numpy.ma.masked))
33+
print djfc
34+
assert(numpy.allclose(djfc,1.4))

0 commit comments

Comments
 (0)