Exemple #1
0
 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])
Exemple #2
0
 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')
Exemple #3
0
 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])
Exemple #4
0
 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)
Exemple #5
0
 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()
Exemple #6
0
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)
Exemple #7
0
 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])
Exemple #8
0
 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)
Exemple #9
0
 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)