Source code for tape.analysis.structure_function.base_argument_container

from dataclasses import dataclass
from typing import List, Union


@dataclass
[docs] class StructureFunctionArgumentContainer: """This is a container class for less-often-used configuration arguments for Structure Function. Args: 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. 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. sf_method : {'basic'}, optional This defined which Structure Function calculation method to use when processing lightcurves. By default 'basic'. 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. 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. bins : `list[floats]`, optional Manually provided time difference bins, if not provided then bins are computed using the `bin_method` defined. By default None. 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'. bin_count_target : `int`, optional Target number of samples per time difference bin. By default 100. 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`. random_seed: `int`, optional Used when randomly sampling lightcurves to ensure reproducibility. By default None. 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`. 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. 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 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. 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. 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. 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. 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. """
[docs] band: List[str] = None
[docs] lc_id: Union[int, List[int]] = None
[docs] sf_method: str = "basic"
[docs] band_to_calc: Union[str, List[str]] = None
[docs] combine: bool = False
[docs] bins: List[float] = None
[docs] bin_method: str = "size"
[docs] bin_count_target: int = 100
[docs] ignore_timestamps: bool = False
[docs] random_seed: int = None
[docs] equally_weight_lightcurves: bool = False
[docs] number_lightcurve_samples: int = None
[docs] estimate_err: bool = False
if estimate_err: calculation_repetitions: int = 100 else: calculation_repetitions: int = 1
[docs] lower_error_quantile: float = 0.16
[docs] upper_error_quantile: float = 0.84
[docs] report_upper_lower_error_separately: bool = False
[docs] def __post_init__(self): # Nothing here yet return