xarray.Dataset.dts.ufunc_per_section
- Dataset.dts.ufunc_per_section(sections=None, func=None, label=None, subtract_from_label=None, temp_err=False, x_indices=False, ref_temp_broadcasted=False, calc_per='stretch', suppress_section_validation=False, **func_kwargs)
Functions applied to parts of the cable.
Super useful,many options and slightlycomplicated.
The function func is taken over all the timesteps and calculated per calc_per. This is returned as a dictionary
- Parameters:
sections (Dict[str, List[slice]], optional) – If None is supplied, ds.sections is used. Define calibration sections. Each section requires a reference temperature time series, such as the temperature measured by an external temperature sensor. They should already be part of the DataStore object. sections is defined with a dictionary with its keywords of the names of the reference temperature time series. Its values are lists of slice objects, where each slice object is a fiber stretch that has the reference temperature. Afterwards, sections is stored under ds.sections.
func (callable, str) – A numpy function, or lambda function to apple to each ‘calc_per’.
label
subtract_from_label
temp_err (bool) – The argument of the function is label minus the reference temperature.
x_indices (bool) – To retreive an integer array with the indices of the x-coordinates in the section/stretch. The indices are sorted.
ref_temp_broadcasted (bool)
calc_per ({‘all’, ‘section’, ‘stretch’})
func_kwargs (dict) – Dictionary with options that are passed to func
TODO (Spend time on creating a slice instead of appendng everything to a list and concatenating after.)
Returns:
- dict
A dictionary with the keys of the sections and the values are the result of the function applied to the data in the section.
Examples:
Calculate the variance of the residuals in the along ALL the reference sections wrt the temperature of the water baths
>>> tmpf_var = d.ufunc_per_section( >>> sections=sections, >>> func='var', >>> calc_per='all', >>> label='tmpf', >>> temp_err=True)
Calculate the variance of the residuals in the along PER reference section wrt the temperature of the water baths
>>> tmpf_var = d.ufunc_per_section( >>> sections=sections, >>> func='var', >>> calc_per='stretch', >>> label='tmpf', >>> temp_err=True)
Calculate the variance of the residuals in the along PER water bath wrt the temperature of the water baths
>>> tmpf_var = d.ufunc_per_section( >>> sections=sections, >>> func='var', >>> calc_per='section', >>> label='tmpf', >>> temp_err=True)
Obtain the coordinates of the measurements per section
>>> locs = d.ufunc_per_section( >>> sections=sections, >>> func=None, >>> label='x', >>> temp_err=False, >>> ref_temp_broadcasted=False, >>> calc_per='stretch')
Number of observations per stretch
>>> nlocs = d.ufunc_per_section( >>> sections=sections, >>> func=len, >>> label='x', >>> temp_err=False, >>> ref_temp_broadcasted=False, >>> calc_per='stretch')
broadcast the temperature of the reference sections to stretch/section/all dimensions. The value of the reference temperature (a timeseries) is broadcasted to the shape of self[ label]. The self[label] is not used for anything else.
>>> temp_ref = d.ufunc_per_section( >>> label='st', >>> ref_temp_broadcasted=True, >>> calc_per='all')
x-coordinate index
>>> ix_loc = d.ufunc_per_section(sections=sections, x_indices=True)
Notes:
If self[label] or self[subtract_from_label] is a Dask array, a Dask array is returned else a numpy array is returned