Beispiel #1
0
    def test_hydro(self):
        fn = Path("Raven", "q_sim.nc")
        ds = open_dataset(fn)
        miss = missing.missing_any(ds.q_sim, freq="YS")
        np.testing.assert_array_equal(miss[:-1], False)
        np.testing.assert_array_equal(miss[-1], True)

        miss = missing.missing_any(ds.q_sim, freq="YS", season="JJA")
        np.testing.assert_array_equal(miss, False)
Beispiel #2
0
    def test_season(self, tasmin_series):
        ts = tasmin_series(np.zeros(360))
        miss = missing.missing_any(ts, freq="YS", season="MAM")
        np.testing.assert_equal(miss, [False])

        miss = missing.missing_any(ts, freq="YS", season="JJA")
        np.testing.assert_array_equal(miss, [True, True])

        miss = missing.missing_any(ts, freq="YS", season="SON")
        np.testing.assert_equal(miss, [False])
Beispiel #3
0
    def test_season(self, tasmin_series, calendar):
        ts = tasmin_series(np.zeros(360))
        ts = convert_calendar(ts, calendar, missing=0, align_on="date")

        miss = missing.missing_any(ts, freq="YS", season="MAM")
        np.testing.assert_equal(miss, [False])

        miss = missing.missing_any(ts, freq="YS", season="JJA")
        np.testing.assert_array_equal(miss, [True, True])

        miss = missing.missing_any(ts, freq="YS", season="SON")
        np.testing.assert_equal(miss, [False])
Beispiel #4
0
 def test_missing_days(self, tas_series):
     a = np.arange(360.0)
     a[5:10] = np.nan
     ts = tas_series(a)
     out = missing.missing_any(ts, freq="MS")
     assert out[0]
     assert not out[1]
Beispiel #5
0
    def test_no_freq(self, tasmin_series):
        ts = tasmin_series(np.zeros(360))

        miss = missing.missing_any(ts, freq=None)
        np.testing.assert_array_equal(miss, False)

        t = list(range(31))
        t.pop(5)
        ts2 = ts.isel(time=t)
        miss = missing.missing_any(ts2, freq=None, src_timestep="H")
        np.testing.assert_array_equal(miss, True)

        # With indexer
        miss = missing.missing_any(ts, freq=None, month=[7])
        np.testing.assert_array_equal(miss, False)

        miss = missing.missing_any(ts2, freq=None, month=[7], src_timestep="H")
        np.testing.assert_array_equal(miss, True)
Beispiel #6
0
 def test_any(self, pr_hr_series):
     pr = self.pr(pr_hr_series)
     out = missing.missing_any(pr, "D", src_timestep="H")
     np.testing.assert_array_equal(
         out,
         [
             True,
         ] + 8 * [
             False,
         ] + [
             True,
         ],
     )
Beispiel #7
0
    def test_month(self, tasmin_series):
        ts = tasmin_series(np.zeros(36))
        miss = missing.missing_any(ts, freq="YS", month=7)
        np.testing.assert_equal(miss, [False])

        miss = missing.missing_any(ts, freq="YS", month=8)
        np.testing.assert_equal(miss, [True])

        with pytest.raises(ValueError, match=r"No data for selected period."):
            missing.missing_any(ts, freq="YS", month=1)

        miss = missing.missing_any(ts, freq="YS", month=[7, 8])
        np.testing.assert_equal(miss, [True])

        ts = tasmin_series(np.zeros(76))
        miss = missing.missing_any(ts, freq="YS", month=[7, 8])
        np.testing.assert_equal(miss, [False])
Beispiel #8
0
 def test_to_period_end(self, tasmin_series):
     a = np.zeros(365) + K2C + 5.0
     a[2] -= 20
     ts = tasmin_series(a)
     miss = missing.missing_any(ts, freq="A-JUN")
     np.testing.assert_equal(miss, [False])
Beispiel #9
0
 def test_missing_season(self):
     n = 378
     times = pd.date_range("2001-12-31", freq="1D", periods=n)
     da = xr.DataArray(np.arange(n), [("time", times)])
     miss = missing.missing_any(da, "Q-NOV")
     np.testing.assert_array_equal(miss, [True, False, False, False, True])
Beispiel #10
0
 def test_missing_months(self):
     n = 66
     times = pd.date_range("2001-12-30", freq="1D", periods=n)
     da = xr.DataArray(np.arange(n), [("time", times)])
     miss = missing.missing_any(da, "MS")
     np.testing.assert_array_equal(miss, [True, False, False, True])
Beispiel #11
0
 def test_hourly(self, pr_hr_series):
     a = np.arange(2.0 * 32 * 24)
     a[5:10] = np.nan
     pr = pr_hr_series(a)
     out = missing.missing_any(pr, freq="MS")
     np.testing.assert_array_equal(out, [True, False, True])