diff --git a/satpy/tests/writer_tests/test_cf.py b/satpy/tests/writer_tests/test_cf.py index b890caeda1..e99a2ec965 100644 --- a/satpy/tests/writer_tests/test_cf.py +++ b/satpy/tests/writer_tests/test_cf.py @@ -24,6 +24,7 @@ import os import sys from datetime import datetime +from satpy import DatasetID import numpy as np @@ -49,7 +50,8 @@ def test_save_array(self): end_time = datetime(2018, 5, 30, 10, 15) scn['test-array'] = xr.DataArray([1, 2, 3], attrs=dict(start_time=start_time, - end_time=end_time)) + end_time=end_time, + prerequisites=[DatasetID('hej')])) try: handle, filename = tempfile.mkstemp() os.close(handle) @@ -57,6 +59,11 @@ def test_save_array(self): import h5netcdf as nc4 with nc4.File(filename) as f: self.assertTrue(all(f['test-array'][:] == [1, 2, 3])) + expected_prereq = ("DatasetID(name='hej', wavelength=None, " + "resolution=None, polarization=None, " + "calibration=None, level=None, modifiers=())") + self.assertEqual(f['test-array'].attrs['prerequisites'][0], + np.string_(expected_prereq)) finally: os.remove(filename) diff --git a/satpy/writers/cf_writer.py b/satpy/writers/cf_writer.py index 520fb4317c..3e3edfc467 100644 --- a/satpy/writers/cf_writer.py +++ b/satpy/writers/cf_writer.py @@ -26,6 +26,7 @@ from datetime import datetime import xarray as xr +import numpy as np from pyresample.geometry import AreaDefinition, SwathDefinition from satpy.writers import Writer @@ -191,6 +192,8 @@ def da2cf(dataarray, epoch=EPOCH): new_data['y'].attrs['units'] = 'm' new_data.attrs.setdefault('long_name', new_data.attrs.pop('name')) + if 'prerequisites' in new_data.attrs: + new_data.attrs['prerequisites'] = [np.string_(str(prereq)) for prereq in new_data.attrs['prerequisites']] return new_data def save_dataset(self, dataset, filename=None, fill_value=None, **kwargs):