def test_save_optimized_timeseries(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename, optimize_access='timeseries') loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube) self._check_chunks(path, [1, 1, 2])
def test_save_alias(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename, alias='alias') loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube) self.assertEqual(loaded_cube.var_name, 'alias')
def test_save_optimized_map(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename, optimize_access='map') loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube) self._check_chunks(path, [2, 2, 1])
def test_save_optimized_lat(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename, optimize_access='latitude') loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube) expected_chunks = [2, 1, 1] self._check_chunks(path, expected_chunks)
def test_save_zlib(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename, compress=True) loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube) handler = netCDF4.Dataset(path, 'r') sample_filters = handler.variables['sample'].filters() self.assertTrue(sample_filters['zlib']) self.assertTrue(sample_filters['shuffle']) self.assertEqual(sample_filters['complevel'], 4) handler.close()
def run_save( cubes, product_variable: typing.Dict, product_output: typing.Dict, work_dir: str = ".", # file_path: typing.Union[str, Path] = None, **kwargs) -> str: output_dir = Path(product_output["output_directory"].format( work_dir=work_dir, **product_variable, )) # output_dir.mkdir(parents=True, exist_ok=True) file_path = product_output.get("output_file", None) if file_path is None: file_path = _get_file_path(product_variable, output_dir) else: file_path = str(Path(output_dir, file_path)).format(work_dir=work_dir, **product_variable) Path(file_path).parent.mkdir(parents=True, exist_ok=True) return save(cubes=cubes, filename=file_path, **kwargs)
def test_fail_without_filename(self): """Test save fails if filename is not provided.""" cube, _ = self._create_sample_cube() with self.assertRaises(TypeError): save([cube])
def test_save(self): """Test save""" cube, filename = self._create_sample_cube() path = save([cube], filename) loaded_cube = iris.load_cube(path) self._compare_cubes(cube, loaded_cube)
def test_fail_empty_cubes(self): """Test save fails if empty cubes is provided.""" (_, filename) = self._create_sample_cube() empty_cubes = CubeList([]) with self.assertRaises(ValueError): save(empty_cubes, filename)