Пример #1
0
 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)
Пример #2
0
 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))
Пример #3
0
    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]))
Пример #4
0
 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))
Пример #5
0
 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))
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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)