class_docstr: Corrected Reflectance (crefl) modifier.
  
  Uses a python rewrite of the C CREFL code written for VIIRS and MODIS.
class_docstr_tok: ["Corrected","Reflectance","(","crefl",")","modifier",".","Uses","a","python","rewrite","of","the","C","CREFL","code","written","for","VIIRS","and","MODIS","."]
code: def _extract_angle_data_arrays(self, datasets, optional_datasets):
      all_datasets = datasets + optional_datasets
      if len(all_datasets) == 1:
          vis = self.match_data_arrays(datasets)[0]
          return vis, get_angles(vis)
      if len(all_datasets) == 5:
          vis, *angles = self.match_data_arrays(
              datasets + optional_datasets
          )
          return vis, angles
      raise ValueError(
          "Not sure how to handle provided dependencies. "
          "Either all 4 angles must be provided or none of "
          "of them."
      )
  
file_path: satpy/satpy/modifiers/_crefl.py
imports: import logging
  import warnings
  import numpy
  from satpy.aux_download import DataDownloadMixin, retrieve
  from satpy.modifiers import ModifierBase
  from satpy.modifiers.angles import get_angles
label_desc: Use image node_id 10 for calling the ReflectanceCorrector obj's underlying member method code with example usage: obj._extract_angle_data_arrays(datasets, optional_datasets) and returns: vis,  get_angles, vis,  angles