:py:mod:`tape.analysis.structure_function.base_argument_container`
==================================================================

.. py:module:: tape.analysis.structure_function.base_argument_container


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   tape.analysis.structure_function.base_argument_container.StructureFunctionArgumentContainer




.. py:class:: StructureFunctionArgumentContainer


   This is a container class for less-often-used configuration arguments for
   Structure Function.

   :param band: `list[str]`, optional
                The band information for each lightcurve to be processed. If a value
                is provided for the `band` argument when calling `calc_sf2` directly,
                this value will be ignored. By default None.
   :param lc_id: `int` or `list[int]`, optional
                 The object id for each lightcurve to be processed. If a value is
                 provided for the `lc_id` argument when calling `calc_sf2` directly,
                 this value will be ignored. By default None.
   :param sf_method: {'basic'}, optional
                     This defined which Structure Function calculation method to use when
                     processing lightcurves. By default 'basic'.
   :param band_to_calc: `str` or `list[str]`, optional
                        The bands of the input lightcurves to operate on. If no value is
                        provided, all input bands will be processed. By default None.
   :param combine: `bool`, optional
                   Boolean to determine whether structure function is computed for each
                   light curve independently (combine=False; the default), or computed
                   for all light curves together (combine=True). By default False.
   :param bins: `list[floats]`, optional
                Manually provided time difference bins, if not provided then bins
                are computed using the `bin_method` defined. By default None.
   :param bin_method: {'size', 'length', 'loglength'}, optional
                      The binning method to apply, choices of 'size'; which seeks an even
                      distribution of samples per bin using quantiles, 'length'; which
                      creates bins of equal length in time and 'loglength'; which creates
                      bins of equal length in log time. By default 'size'.
   :param bin_count_target: `int`, optional
                            Target number of samples per time difference bin. By default 100.
   :param ignore_timestamps: `bool`, optional
                             Used to ignore the use of any provided timestamps, instead assuming
                             all measurements are taken at equi-distant times. By default `False`.
   :param random_seed: `int`, optional
                       Used when randomly sampling lightcurves to ensure reproducibility.
                       By default None.
   :param equally_weight_lightcurves: `bool`, optional
                                      Used to ensure that no lightcurves completely dominate the structure
                                      function calculation. For instance if lightcurve LC_1 has N=10
                                      observations and LC_2 has N=100, setting `equally_weight_lightcurves=True`
                                      will calculate all of the time and flux differences (45 for LC_1 and
                                      4950 for LC_2), then randomly sample (without replacement) 45 from
                                      LC_2 when calculating the Structure Function. Note that to bin the
                                      results, we would use the bins calculated based on the 4950
                                      differences or the user provided bins.
                                      By default `False`.
   :param number_lightcurve_samples: `int`, optional
                                     Used to specify the number of time and flux differences to select
                                     from a lightcurve. For Structure Function calculators that inherit
                                     from `StructureFunctionCalculator` and do not implement their own
                                     `_equally_weight_lightcurves` method, the value defined here will
                                     only be used when `equally_weight_lightcurves = True`.
                                     If a value is not provided here, then the default number of
                                     lightcurve samples will be equal to the least number of differences
                                     in the available lightcurves. By default None.
   :param estimate_err: `bool`, optional
                        Specifies if the structure function errors are to be estimated,
                        via bootstraping the sample and taking note of 16 and 84 percentile
                        of the resulting distribution
   :param calculation_repetitions: `int`, optional
                                   Specifies the number of times to repeat the structure function
                                   calculation. Typically this would be used when setting
                                   `estimate_err = True`. By default 1 when not estimating errors,
                                   and 100 when estimating errors.
   :param lower_error_quantile: `float`, optional
                                When calculation_repetitions > 1 we will calculate the
                                `lower_error_quantile` and `upper_error_quantile` quantiles of the
                                results of the structure function calculation and report the
                                difference/2 as 1_sigma_error. Value must be between 0 and 1.
                                By default 0.16.
   :param upper_error_quantile: `float`, optional
                                When calculation_repetitions > 1 we will calculate the
                                `lower_error_quantile` and `upper_error_quantile` quantiles of the
                                results of the structure function calculation and report the
                                difference/2 as 1_sigma_error. Value must be between 0 and 1.
                                By default 0.84.
   :param report_upper_lower_error_separately: `bool`, optional
                                               When true, upper_error_quantile - median and median - lower_error_quantile
                                               will be reported separately. Note, when using `Ensemble.batch`,
                                               additional metadata information will need to be provided.
                                               By default False.

   .. rubric:: Notes

   It may be necessary to extend this dataclass to support new Structure
   Function calculation methods. When doing so, all new properties *must*
   have a default value defined.

   .. py:attribute:: band
      :type: List[str]

      

   .. py:attribute:: lc_id
      :type: Union[int, List[int]]

      

   .. py:attribute:: sf_method
      :type: str
      :value: 'basic'

      

   .. py:attribute:: band_to_calc
      :type: Union[str, List[str]]

      

   .. py:attribute:: combine
      :type: bool
      :value: False

      

   .. py:attribute:: bins
      :type: List[float]

      

   .. py:attribute:: bin_method
      :type: str
      :value: 'size'

      

   .. py:attribute:: bin_count_target
      :type: int
      :value: 100

      

   .. py:attribute:: ignore_timestamps
      :type: bool
      :value: False

      

   .. py:attribute:: random_seed
      :type: int

      

   .. py:attribute:: equally_weight_lightcurves
      :type: bool
      :value: False

      

   .. py:attribute:: number_lightcurve_samples
      :type: int

      

   .. py:attribute:: estimate_err
      :type: bool
      :value: False

      

   .. py:attribute:: lower_error_quantile
      :type: float
      :value: 0.16

      

   .. py:attribute:: upper_error_quantile
      :type: float
      :value: 0.84

      

   .. py:attribute:: report_upper_lower_error_separately
      :type: bool
      :value: False

      

   .. py:method:: __post_init__()



