def test_monthly_periods(self): vspan = (10, 20) cc = qartod.ClimatologyConfig() cc.add( tspan=(0, 1), # jan period='month', vspan=vspan, ) cc.add( tspan=(1, 2), # feb period='month', vspan=vspan, ) cc.add( tspan=(2, 3), # mar period='month', vspan=vspan, ) cc.add( tspan=(3, 10), # apr-nov period='month', vspan=vspan, ) cc.add( tspan=(10, 11), # dec period='month', vspan=vspan, ) self._run_test(cc)
def setUp(self): self.cc = qartod.ClimatologyConfig() self.cc.add(tspan=(np.datetime64('2019-11-01'), np.datetime64('2020-02-04')), fspan=(40, 70), vspan=(50, 60), zspan=(0, 10))
def _run_test(self, tspan, period): cc = qartod.ClimatologyConfig() cc.add( vspan=(10, 20), # range of valid values tspan=tspan, # jan, feb and march period=period) test_inputs = [ # in feb, but outside range of valid values (np.datetime64('2011-02-02'), 9, None), # in feb, and within range of valid values (np.datetime64('2013-02-03'), 11, None), # Not run, outside of time range (np.datetime64('2011-04-01'), 21, None), # Not run, outside of time range (np.datetime64('2011-12-31'), 21, None), # leap day, with valid values (np.datetime64('2020-02-29'), 15, None), ] times, values, depths = zip(*test_inputs) inputs = [ values, np.asarray(values, dtype=np.floating), dask_arr(np.asarray(values, dtype=np.floating)) ] for i in inputs: results = qartod.climatology_test(config=cc, tinp=times, inp=i, zinp=depths) npt.assert_array_equal(results, np.ma.array([3, 1, 2, 2, 1]))
def setUp(self): self.cc = qartod.ClimatologyConfig() # with depths self.cc.add(tspan=(np.datetime64('2012-01'), np.datetime64('2013-01')), vspan=(50, 60), zspan=(0, 10)) # same as above, but different depths self.cc.add(tspan=(np.datetime64('2012-01'), np.datetime64('2013-01')), vspan=(70, 80), zspan=(10, 100))
def setUp(self): self.cc = qartod.ClimatologyConfig() self.cc.add(tspan=(np.datetime64('2011-01'), np.datetime64('2011-07')), vspan=(10, 20)) self.cc.add(tspan=(np.datetime64('2011-07'), np.datetime64('2012-01')), vspan=(30, 40)) self.cc.add( tspan=(np.datetime64('2012-01'), np.datetime64('2013-01')), vspan=(40, 50), ) self.cc.add(tspan=(np.datetime64('2012-01'), np.datetime64('2013-01')), vspan=(50, 60), zspan=(0, 10)) self.cc.add(tspan=(np.datetime64('2012-01'), np.datetime64('2013-01')), vspan=(70, 80), zspan=(10, 100))
def test_weekofyear_periods(self): vspan = (10, 20) cc = qartod.ClimatologyConfig() cc.add( tspan=(0, 1), # first week of year period='weekofyear', vspan=vspan, ) cc.add( tspan=(1, 50), # 2nd thru 51st week period='weekofyear', vspan=vspan, ) cc.add( tspan=(50, 51), # last week of year period='weekofyear', vspan=vspan, ) self._run_test(cc)
def test_dayofyear_periods(self): vspan = (10, 20) cc = qartod.ClimatologyConfig() cc.add( tspan=(0, 1), # first day of year period='dayofyear', vspan=vspan, ) cc.add( tspan=(1, 363), # jan 2 thru dec 30 period='dayofyear', vspan=vspan, ) cc.add( tspan=(363, 364), # last day of year period='dayofyear', vspan=vspan, ) self._run_test(cc)
def test_quarterly_periods(self): vspan = (10, 20) cc = qartod.ClimatologyConfig() cc.add( tspan=(0, 1), # Q1 period='quarter', vspan=vspan, ) cc.add( tspan=(1, 3), # Q2-Q3 period='quarter', vspan=vspan, ) cc.add( tspan=(3, 4), # Q4 period='quarter', vspan=vspan, ) self._run_test(cc)