CorrelateShift

class of dascore.proc.correlate
inherits from: PatchProcessor, DascoreBaseModel, pydantic.main.BaseModel
source

CorrelateShift(
    *args ,
    dim: Any ,
    undo_weighting: Any = True,
)-> None

Apply a shift to the patch data to undo correlation in frequency domain.

Also adds the appropriate coordinate prefixed with “lag” and has a datatype of float.

Parameters

Parameter Description
patch The input patch
dim The dimension name that was correlated in the freq. domain.
undo_weighting If True, also undo the weighting artifact caused by DASCore’s dft
weighting. This is done by simply dividing by the coordinate step,
and the data units by the coordinate’s units.
See dft note for more details.
Note

A product of transforms is a correlation circular over the transformed length, but idft trims a padded transform back to the original length, which drops the most negative lags. Transform with pad=False, or pad first with patch.pad(time="correlate"), as below.

Examples

import dascore as dc
patch = dc.get_example_patch()

# Example 1
# An auto-correlation of the example patch
dft = patch.dft("time", real=True, pad=False)
dft_sq = dft * dft.conj()
idft = dft_sq.idft()
auto_patch = idft.correlate_shift(dim="time")

Methods

Name Description
check Refuse a patch which does not carry what the operation needs.
get_metadata Return metadata with the lag coordinate, and the axis and step.
kernel Return the data shifted so zero lag is central, divided by the step.
model_copy Copy the model, dropping cached values the update invalidates.
new Create new instance with some attributed updated.
correlate_shift Apply a shift to the patch data to undo correlation in frequency domain.
reconcile Return metadata or a patch holding the final data; default as is.
run Run the operation: check, get_metadata, kernel, reconcile, record.