diff --git a/satpy/readers/viirs_sdr.py b/satpy/readers/viirs_sdr.py index 261390e6a9..245a237423 100644 --- a/satpy/readers/viirs_sdr.py +++ b/satpy/readers/viirs_sdr.py @@ -272,8 +272,6 @@ def get_dataset(self, dataset_id, ds_info): "end_orbit": self.end_orbit_number, }) i.update(dataset_id.to_dict()) - # xarray bug does not allow differing list attributes - i.pop('coordinates', None) data.attrs.update(i) return data diff --git a/satpy/readers/yaml_reader.py b/satpy/readers/yaml_reader.py index bcadf9d0c1..14feeec0b4 100644 --- a/satpy/readers/yaml_reader.py +++ b/satpy/readers/yaml_reader.py @@ -200,6 +200,11 @@ def load_ds_ids_from_config(self): """Get the dataset ids from the config.""" ids = [] for dataset in self.datasets.values(): + # xarray doesn't like concatenating attributes that are lists + # https://github.com/pydata/xarray/issues/2060 + if 'coordinates' in dataset and \ + isinstance(dataset['coordinates'], list): + dataset['coordinates'] = tuple(dataset['coordinates']) # Build each permutation/product of the dataset id_kwargs = [] for key in DATASET_KEYS: @@ -535,6 +540,11 @@ def add_ds_ids_from_files(self): for ds_id, ds_info in avail_ids: # don't overwrite an existing dataset # especially from the yaml config + coordinates = ds_info.get('coordinates') + if isinstance(coordinates, list): + # xarray doesn't like concatenating attributes that are + # lists: https://github.com/pydata/xarray/issues/2060 + ds_info['coordinates'] = tuple(ds_info['coordinates']) self.ids.setdefault(ds_id, ds_info) @staticmethod