From 2f04c7d36db371421c8772f6e5028e9cf2f477c4 Mon Sep 17 00:00:00 2001 From: ro Date: Fri, 28 May 2021 10:04:28 +0200 Subject: [PATCH 1/2] fix: empty scene to_xarray_dataset --- satpy/scene.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/satpy/scene.py b/satpy/scene.py index 4fab319c09..47dc8c5e14 100644 --- a/satpy/scene.py +++ b/satpy/scene.py @@ -905,6 +905,9 @@ def to_xarray_dataset(self, datasets=None): """ dataarrays = self._get_dataarrays_from_identifiers(datasets) + if len(dataarrays) == 0: + return xr.Dataset() + ds_dict = {i.attrs['name']: i.rename(i.attrs['name']) for i in dataarrays if i.attrs.get('area') is not None} mdata = combine_metadata(*tuple(i.attrs for i in dataarrays)) if mdata.get('area') is None or not isinstance(mdata['area'], SwathDefinition): From 23168a6e562b00ec7b47312e2fd9f5b9b49b5024 Mon Sep 17 00:00:00 2001 From: ro Date: Mon, 7 Jun 2021 15:03:29 +0200 Subject: [PATCH 2/2] test: add test for empty scene to xarray dataset --- satpy/tests/test_scene.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/satpy/tests/test_scene.py b/satpy/tests/test_scene.py index ea74b1e6e8..3e4dbdfc47 100644 --- a/satpy/tests/test_scene.py +++ b/satpy/tests/test_scene.py @@ -1745,6 +1745,16 @@ def test_save_dataset_default(self): class TestSceneConversions(unittest.TestCase): """Test Scene conversion to geoviews, xarray, etc.""" + def test_to_xarray_dataset_with_empty_scene(self): + """Test converting empty Scene to xarray dataset.""" + from satpy import Scene + from xarray import Dataset + scn = Scene() + xrds = scn.to_xarray_dataset() + assert isinstance(xrds, Dataset) + assert len(xrds.variables) == 0 + assert len(xrds.coords) == 0 + def test_geoviews_basic_with_area(self): """Test converting a Scene to geoviews with an AreaDefinition.""" from satpy import Scene