original_docstring: 
      Collects the ancillary required for NBAR and optionally SBT.
      This could be better handled if using the `opendatacube` project
      to handle ancillary retrieval, rather than directory passing,
      and filename grepping.
  
      :param container:
          An instance of an `AcquisitionsContainer` object.
          The container should consist of a single Granule or None,
          only. Use `AcquisitionsContainer.get_granule` method prior to
          calling this function.
  
      :param satellite_solar_group:
          The root HDF5 `Group` that contains the solar zenith and
          solar azimuth datasets specified by the pathnames given by:
  
          * DatasetName.BOXLINE
  
      :param nbar_paths:
          A `dict` containing the ancillary pathnames required for
          retrieving the NBAR ancillary data. Required keys:
  
          * aerosol_data
          * water_vapour_data
          * ozone_path
          * dem_path
          * brdf_path
          * brdf_premodis_path
  
      :param sbt_path:
          A `str` containing the base directory pointing to the
          ancillary products required for the SBT workflow.
  
      :param invariant_fname:
          A `str` containing the file path name to the invariant
          geopotential image file.
  
      :param vertices:
          An integer 2-tuple indicating the number of rows and columns
          of sample-locations ("coordinator") to produce.
          The vertex columns should be an odd number.
          Default is (3, 3).
  
      :param out_group:
          If set to None (default) then the results will be returned
          as an in-memory hdf5 file, i.e. the `core` driver. Otherwise,
          a writeable HDF5 `Group` object.
  
      :param compression:
          The compression filter to use.
          Default is H5CompressionFilter.LZF 
  
      :filter_opts:
          A dict of key value pairs available to the given configuration
          instance of H5CompressionFilter. For example
          H5CompressionFilter.LZF has the keywords *chunks* and *shuffle*
          available.
          Default is None, which will use the default settings for the
          chosen H5CompressionFilter instance.
  
      :return:
          An opened `h5py.File` object, that is either in-memory using the
          `core` driver, or on disk.
      
docstring: Collects the ancillary required for NBAR and optionally SBT.
  This could be better handled if using the `opendatacube` project
  to handle ancillary retrieval, rather than directory passing,
  and filename grepping.
docstring_tokens: Collects the ancillary required for NBAR and optionally SBT . This could be better handled if using the ` opendatacube ` project to handle ancillary retrieval rather than directory passing and filename grepping .
code: def collect_ancillary(container, satellite_solar_group, nbar_paths,
                        sbt_path=None, invariant_fname=None, vertices=(3, 3),
                        out_group=None, compression=H5CompressionFilter.LZF,
                        filter_opts=None):
      """
      Collects the ancillary required for NBAR and optionally SBT.
      This could be better handled if using the `opendatacube` project
      to handle ancillary retrieval, rather than directory passing,
      and filename grepping.
  
      :param container:
          An instance of an `AcquisitionsContainer` object.
          The container should consist of a single Granule or None,
          only. Use `AcquisitionsContainer.get_granule` method prior to
          calling this function.
  
      :param satellite_solar_group:
          The root HDF5 `Group` that contains the solar zenith and
          solar azimuth datasets specified by the pathnames given by:
  
          * DatasetName.BOXLINE
  
      :param nbar_paths:
          A `dict` containing the ancillary pathnames required for
          retrieving the NBAR ancillary data. Required keys:
  
          * aerosol_data
          * water_vapour_data
          * ozone_path
          * dem_path
          * brdf_path
          * brdf_premodis_path
  
      :param sbt_path:
          A `str` containing the base directory pointing to the
          ancillary products required for the SBT workflow.
  
      :param invariant_fname:
          A `str` containing the file path name to the invariant
          geopotential image file.
  
      :param vertices:
          An integer 2-tuple indicating the number of rows and columns
          of sample-locations ("coordinator") to produce.
          The vertex columns should be an odd number.
          Default is (3, 3).
  
      :param out_group:
          If set to None (default) then the results will be returned
          as an in-memory hdf5 file, i.e. the `core` driver. Otherwise,
          a writeable HDF5 `Group` object.
  
      :param compression:
          The compression filter to use.
          Default is H5CompressionFilter.LZF 
  
      :filter_opts:
          A dict of key value pairs available to the given configuration
          instance of H5CompressionFilter. For example
          H5CompressionFilter.LZF has the keywords *chunks* and *shuffle*
          available.
          Default is None, which will use the default settings for the
          chosen H5CompressionFilter instance.
  
      :return:
          An opened `h5py.File` object, that is either in-memory using the
          `core` driver, or on disk.
      """
      # Initialise the output files
      if out_group is None:
          fid = h5py.File('ancillary.h5', driver='core', backing_store=False)
      else:
          fid = out_group
  
      if filter_opts is None:
          filter_opts = {}
  
      kwargs = compression.config(**filter_opts).dataset_compression_kwargs()
      group = fid.create_group(GroupName.ANCILLARY_GROUP.value)
  
      acquisition = container.get_highest_resolution()[0][0]
  
      boxline_dataset = satellite_solar_group[DatasetName.BOXLINE.value][:]
      coordinator = create_vertices(acquisition, boxline_dataset, vertices)
      lonlats = zip(coordinator['longitude'], coordinator['latitude'])
  
      desc = ("Contains the row and column array coordinates used for the "
              "atmospheric calculations.")
      attrs = {'description': desc, 'array_coordinate_offset': 0}
      kwargs = compression.config(**filter_opts).dataset_compression_kwargs()
      dset_name = DatasetName.COORDINATOR.value
      coord_dset = group.create_dataset(dset_name, data=coordinator, **kwargs)
      attach_table_attributes(coord_dset, title='Coordinator', attrs=attrs)
  
  
      if sbt_path:
          collect_sbt_ancillary(acquisition, lonlats, sbt_path, invariant_fname,
                                out_group=group, compression=compression,
                                filter_opts=filter_opts)
  
      collect_nbar_ancillary(container, out_group=group,
                             compression=compression, filter_opts=filter_opts,
                             **nbar_paths)
  
      if out_group is None:
          return fid
code_tokens: def collect_ancillary ( container , satellite_solar_group , nbar_paths , sbt_path = None , invariant_fname = None , vertices = ( 3 , 3 ) , out_group = None , compression = H5CompressionFilter . LZF , filter_opts = None ) : if out_group is None : fid = h5py . File ( 'ancillary.h5' , driver = 'core' , backing_store = False ) else : fid = out_group if filter_opts is None : filter_opts = { } kwargs = compression . config ( ** filter_opts ) . dataset_compression_kwargs ( ) group = fid . create_group ( GroupName . ANCILLARY_GROUP . value ) acquisition = container . get_highest_resolution ( ) [ 0 ] [ 0 ] boxline_dataset = satellite_solar_group [ DatasetName . BOXLINE . value ] [ : ] coordinator = create_vertices ( acquisition , boxline_dataset , vertices ) lonlats = zip ( coordinator [ 'longitude' ] , coordinator [ 'latitude' ] ) desc = ( "Contains the row and column array coordinates used for the " "atmospheric calculations." ) attrs = { 'description' : desc , 'array_coordinate_offset' : 0 } kwargs = compression . config ( ** filter_opts ) . dataset_compression_kwargs ( ) dset_name = DatasetName . COORDINATOR . value coord_dset = group . create_dataset ( dset_name , data = coordinator , ** kwargs ) attach_table_attributes ( coord_dset , title = 'Coordinator' , attrs = attrs ) if sbt_path : collect_sbt_ancillary ( acquisition , lonlats , sbt_path , invariant_fname , out_group = group , compression = compression , filter_opts = filter_opts ) collect_nbar_ancillary ( container , out_group = group , compression = compression , filter_opts = filter_opts , ** nbar_paths ) if out_group is None : return fid
short_docstring: Collects the ancillary required for NBAR and optionally SBT.
short_docstring_tokens: Collects the ancillary required for NBAR and optionally SBT .
comment: """
      Collects the ancillary required for NBAR and optionally SBT.
      This could be better handled if using the `opendatacube` project
      to handle ancillary retrieval, rather than directory passing,
      and filename grepping.
  
      :param container:
          An instance of an `AcquisitionsContainer` object.
          The container should consist of a single Granule or None,
          only. Use `AcquisitionsContainer.get_granule` method prior to
          calling this function.
  
      :param satellite_solar_group:
          The root HDF5 `Group` that contains the solar zenith and
          solar azimuth datasets specified by the pathnames given by:
  
          * DatasetName.BOXLINE
  
      :param nbar_paths:
          A `dict` containing the ancillary pathnames required for
          retrieving the NBAR ancillary data. Required keys:
  
          * aerosol_data
          * water_vapour_data
          * ozone_path
          * dem_path
          * brdf_path
          * brdf_premodis_path
  
      :param sbt_path:
          A `str` containing the base directory pointing to the
          ancillary products required for the SBT workflow.
  
      :param invariant_fname:
          A `str` containing the file path name to the invariant
          geopotential image file.
  
      :param vertices:
          An integer 2-tuple indicating the number of rows and columns
          of sample-locations ("coordinator") to produce.
          The vertex columns should be an odd number.
          Default is (3, 3).
  
      :param out_group:
          If set to None (default) then the results will be returned
          as an in-memory hdf5 file, i.e. the `core` driver. Otherwise,
          a writeable HDF5 `Group` object.
  
      :param compression:
          The compression filter to use.
          Default is H5CompressionFilter.LZF 
  
      :filter_opts:
          A dict of key value pairs available to the given configuration
          instance of H5CompressionFilter. For example
          H5CompressionFilter.LZF has the keywords *chunks* and *shuffle*
          available.
          Default is None, which will use the default settings for the
          chosen H5CompressionFilter instance.
  
      :return:
          An opened `h5py.File` object, that is either in-memory using the
          `core` driver, or on disk.
      """$SEP$# Initialise the output files