code: def save_datasets(self, datasets, filename=None, **kwargs):
          
          logger.info('Saving datasets to NetCDF4/CF.')
          # XXX: Should we combine the info of all datasets?
          filename = filename or self.get_filename(**datasets[0].attrs)
          datas, start_times, end_times = self._collect_datasets(datasets, kwargs)
  
          dataset = xr.Dataset(datas)
          try:
              dataset['time_bnds'] = make_time_bounds(dataset,
                                                      start_times,
                                                      end_times)
              dataset['time'].attrs['bounds'] = "time_bnds"
          except KeyError:
              logger.warning('No time dimension in datasets, skipping time bounds creation.')
  
          header_attrs = kwargs.pop('header_attrs', None)
  
          if header_attrs is not None:
              dataset.attrs.update({k: v for k, v in header_attrs.items() if v})
  
          dataset.attrs['history'] = ("Created by pytroll/satpy on " +
                                      str(datetime.utcnow()))
          dataset.attrs['conventions'] = 'CF-1.7'
          engine = kwargs.pop("engine", 'h5netcdf')
          for key in list(kwargs.keys()):
              if key not in ['mode', 'format', 'group', 'encoding', 'unlimited_dims', 'compute']:
                  kwargs.pop(key, None)
          return dataset.to_netcdf(filename, engine=engine, **kwargs)
docs: Save all datasets to one or more files.