def test_all_attrs(self):
     file_ = 'prw_Amon_GFDL-ESM4_historical_r1i1p1f1_gr1_195001-201412.nc'
     d = cmip6.CMIP6_DRSFilename(file_)
     self.assertEqual(d.variable_id, 'prw')
     self.assertEqual(d.table_id, 'Amon')
     self.assertEqual(d.source_id, 'GFDL-ESM4')
     self.assertEqual(d.experiment_id, 'historical')
     self.assertEqual(d.variant_label, 'r1i1p1f1')
     self.assertEqual(d.grid_label, 'gr1')
     self.assertEqual(d.start_date, dl.Date(1950,1))
     self.assertEqual(d.end_date, dl.Date(2014,12))
     self.assertEqual(d.date_range, dl.DateRange('195001-201412'))
Пример #2
0
 def test_path_examples(self):
     dir_ = "CMIP6/CMIP/E3SM-Project/E3SM-1-1/hist-bgc/r1i1p1f1/Omon/so/gr/v20191112"
     file_ = "so_Omon_E3SM-1-1_hist-bgc_r1i1p1f1_gr_197501-197912.nc"
     d = cmip6.CMIP6_DRSPath(os.path.join(dir_, file_))
     self.assertEqual(d.activity_id, 'CMIP')
     self.assertEqual(d.institution_id, 'E3SM-Project')
     self.assertEqual(d.source_id, 'E3SM-1-1')
     self.assertEqual(d.experiment_id, 'hist-bgc')
     self.assertEqual(d.variant_label, 'r1i1p1f1')
     self.assertEqual(d.table_id, 'Omon')
     self.assertEqual(d.variable_id, 'so')
     self.assertEqual(d.grid_label, 'gr')
     self.assertEqual(d.version_date, dl.Date('2019-11-12'))
     self.assertEqual(d.frequency, cmip6.CMIP6DateFrequency('mon'))
     self.assertEqual(d.start_date, dl.Date(1975, 1))
     self.assertEqual(d.end_date, dl.Date(1979, 12))
Пример #3
0
 def test_ts_parse(self):
     dm = _DummyGfdlppDataManager()
     dir_ = 'atmos_cmip/ts/daily/5yr'
     file_ = 'atmos_cmip.20100101-20141231.rsdscsdiff.nc'
     ds = dm.parse_relative_path(dir_, file_)
     self.assertEqual(ds.component, 'atmos_cmip')
     self.assertEqual(ds.date_freq, dt.DateFrequency('day'))
     self.assertEqual(ds.chunk_freq, dt.DateFrequency(5, 'yr'))
     self.assertEqual(ds.start_date, dt.Date(2010, 1, 1))
     self.assertEqual(ds.end_date, dt.Date(2014, 12, 31))
     self.assertEqual(ds.name_in_model, 'rsdscsdiff')
     self.assertEqual(
         ds._remote_data,
         '/pp/atmos_cmip/ts/daily/5yr/atmos_cmip.20100101-20141231.rsdscsdiff.nc'
     )
     self.assertEqual(ds.date_range, dt.DateRange('20100101-20141231'))
Пример #4
0
    def test_from_struct(self):
        FooEnum = basic.MDTFEnum('FooEnum', 'X Y Z')

        @util.mdtf_dataclass
        class Dummy(object):
            a: FooEnum = None
            b: dt.Date = None
            c: dt.DateFrequency = None

        dummy = Dummy(a="X", b="2010", c="6hr")
        self.assertEqual(dummy.a, FooEnum.X)
        self.assertEqual(dummy.b, dt.Date(2010))
        self.assertEqual(dummy.c, dt.DateFrequency(6, 'hr'))