Ejemplo n.º 1
0
    def test_seasonal_get_grouping_unique_flag(self):
        ## test with year flag
        dates = get_date_list(dt(2012,1,1),dt(2013,12,31),1)
        td = TemporalDimension(value=dates)
        calc_grouping = [[6,7,8],'unique']
        tg = td.get_grouping(calc_grouping)

        time_region = {'year':[2012],'month':[6,7,8]}
        sub1,idx1 = td.get_time_region(time_region,return_indices=True)
        time_region = {'year':[2013],'month':[6,7,8]}
        sub2,idx2 = td.get_time_region(time_region,return_indices=True)
        base_select = np.zeros(td.shape[0],dtype=bool)
        dgroups = deque()
        
        for software,manual in itertools.izip(tg.dgroups,dgroups):
            self.assertNumpyAll(software,manual)
        self.assertEqual(len(tg.dgroups),2)
        self.assertEqual(tg.value.tolist(),[datetime.datetime(2012, 7, 17, 0, 0), datetime.datetime(2013, 7, 17, 0, 0)])
        self.assertEqual(tg.bounds.tolist(),[[datetime.datetime(2012, 6, 1, 0, 0), datetime.datetime(2012, 8, 31, 0, 0)], [datetime.datetime(2013, 6, 1, 0, 0), datetime.datetime(2013, 8, 31, 0, 0)]])
        
        dgroup1 = base_select.copy()
        dgroup1[idx1] = True
        dgroup2 = base_select.copy()
        dgroup2[idx2] = True
        
        dgroups.append(dgroup1)
        dgroups.append(dgroup2)
        
        tg = td.get_grouping([[6,7,8],'year'])
        for ii in range(len(tg.dgroups)):
            self.assertNumpyAll(tg.dgroups[ii],dgroups[ii])
        self.assertEqual(len(tg.dgroups),len(dgroups))
Ejemplo n.º 2
0
 def test_get_time_region_value_only(self):
     dates = get_date_list(dt(2002,1,31),dt(2009,12,31),1)
     td = TemporalDimension(value=dates)
     
     ret,indices = td.get_time_region({'month':[8]},return_indices=True)
     self.assertEqual(set([8]),set([d.month for d in ret.value.flat]))
     
     ret,indices = td.get_time_region({'year':[2008,2004]},return_indices=True)
     self.assertEqual(set([2008,2004]),set([d.year for d in ret.value.flat]))
     
     ret,indices = td.get_time_region({'day':[20,31]},return_indices=True)
     self.assertEqual(set([20,31]),set([d.day for d in ret.value.flat]))
     
     ret,indices = td.get_time_region({'day':[20,31],'month':[9,10],'year':[2003]},return_indices=True)
     self.assertNumpyAll(ret.value,np.array([dt(2003,9,20),dt(2003,10,20),dt(2003,10,31,)]))
     self.assertEqual(ret.shape,indices.shape)
     
     self.assertEqual(ret.extent,(datetime.datetime(2003,9,20),datetime.datetime(2003,10,31)))