code: def save_datasets(self, client=True, batch_size=1, **kwargs):
          
          if 'compute' in kwargs:
              raise ValueError("The 'compute' keyword argument can not be provided.")
  
          client = self._get_client(client=client)
  
          scenes = iter(self._scenes)
          if client is not None:
              self._distribute_save_datasets(scenes, client, batch_size=batch_size, **kwargs)
          else:
              self._simple_save_datasets(scenes, **kwargs)
docs: Run save_datasets on each Scene.
  
          Note that some writers may not be multi-process friendly and may
          produce unexpected results or fail by raising an exception. In
          these cases ``client`` should be set to ``False``.
          This is currently a known issue for basic 'geotiff' writer work loads.
  
          Args:
              batch_size (int): Number of scenes to compute at the same time.
                  This only has effect if the `dask.distributed` package is
                  installed. This will default to 1. Setting this to 0 or less
                  will attempt to process all scenes at once. This option should
                  be used with care to avoid memory issues when trying to
                  improve performance.
              client (bool or dask.distributed.Client): Dask distributed client
                  to use for computation. If this is ``True`` (default) then
                  any existing clients will be used.
                  If this is ``False`` or ``None`` then a client will not be
                  created and ``dask.distributed`` will not be used. If this
                  is a dask ``Client`` object then it will be used for
                  distributed computation.
              kwargs: Additional keyword arguments to pass to
                      :meth:`~satpy.scene.Scene.save_datasets`.
                      Note ``compute`` can not be provided.