def test_TimeConverter(): cf_datetime_names = _get_cftime_datetimes() for cf_datetime in cf_datetime_names: date = getattr(cftime, cf_datetime)(1990, 1, 1) assert TimeConverter(date).calendar == date.calendar assert TimeConverter(None).calendar is None date_datetime64 = np.datetime64('2001-01-01T12:00') assert TimeConverter(date_datetime64).calendar == "np_datetime64"
def test_fieldset_from_parcels(xdim, ydim, tmpdir, filename='test_parcels'): """ Simple test for fieldset initialisation from Parcels FieldSet file format. """ filepath = tmpdir.join(filename) data, dimensions = generate_fieldset(xdim, ydim) fieldset_out = FieldSet.from_data(data, dimensions) fieldset_out.write(filepath) fieldset = FieldSet.from_parcels(filepath) assert len(fieldset.U.data.shape) == 3 # Will be 4 once we use depth assert len(fieldset.V.data.shape) == 3 assert np.allclose(fieldset.U.data[0, :], data['U'], rtol=1e-12) assert np.allclose(fieldset.V.data[0, :], data['V'], rtol=1e-12) @pytest.mark.parametrize('calendar, cftime_datetime', zip(_get_cftime_calendars(), _get_cftime_datetimes())) def test_fieldset_nonstandardtime(calendar, cftime_datetime, tmpdir, filename='test_nonstandardtime.nc', xdim=4, ydim=6): filepath = tmpdir.join(filename) dates = [getattr(cftime, cftime_datetime)(1, m, 1) for m in range(1, 13)] da = xr.DataArray(np.random.rand(12, xdim, ydim), coords=[dates, range(xdim), range(ydim)], dims=['time', 'lon', 'lat'], name='U') da.to_netcdf(str(filepath)) dims = {'lon': 'lon', 'lat': 'lat', 'time': 'time'} try: field = Field.from_netcdf(filepath, 'U', dims) except NotImplementedError: field = None if field is not None:
def test_set_calendar(): for calendar_name, cf_datetime in zip(_get_cftime_calendars(), _get_cftime_datetimes()): date = getattr(cftime, cf_datetime)(1990, 1, 1) assert _set_calendar(date.calendar) == date.calendar assert _set_calendar('np_datetime64') == 'standard'
@pytest.mark.parametrize('ydim', [100, 200]) def test_fieldset_from_parcels(xdim, ydim, tmpdir, filename='test_parcels'): """ Simple test for fieldset initialisation from Parcels FieldSet file format. """ filepath = tmpdir.join(filename) data, dimensions = generate_fieldset(xdim, ydim) fieldset_out = FieldSet.from_data(data, dimensions) fieldset_out.write(filepath) fieldset = FieldSet.from_parcels(filepath) assert len(fieldset.U.data.shape) == 3 # Will be 4 once we use depth assert len(fieldset.V.data.shape) == 3 assert np.allclose(fieldset.U.data[0, :], data['U'], rtol=1e-12) assert np.allclose(fieldset.V.data[0, :], data['V'], rtol=1e-12) @pytest.mark.parametrize('calendar, cftime_datetime', zip(_get_cftime_calendars(), _get_cftime_datetimes())) def test_fieldset_nonstandardtime(calendar, cftime_datetime, tmpdir, filename='test_nonstandardtime.nc', xdim=4, ydim=6): filepath = tmpdir.join(filename) dates = [getattr(cftime, cftime_datetime)(1, m, 1) for m in range(1, 13)] da = xr.DataArray(np.random.rand(12, xdim, ydim), coords=[dates, range(xdim), range(ydim)], dims=['time', 'lon', 'lat'], name='U') da.to_netcdf(str(filepath))