pyorc.Frames.get_piv#

Frames.get_piv(window_size: Optional[tuple[int, int]] = None, overlap: Optional[tuple[int, int]] = None, engine: str = 'openpiv', **kwargs) Dataset[source]#

Perform PIV computation on projected frames.

Only a pipeline graph to computation is set up. Call a result to trigger actual computation. The dataset returned contains velocity information for each interrogation window including “v_x” for x-direction velocity components, “v_y” for y-direction velocity component, “corr” for the maximum correlation [-] found in the interrogation window and s2n [-] for the signal to noise ratio.

Parameters:
  • window_size ((int, int), optional) – size of interrogation windows in pixels (y, x)

  • overlap ((int, int), optional) – amount of overlap between interrogation windows in pixels (y, x)

  • engine (str, optional) – select the compute engine, can be “openpiv” (default), “numba”, or “numpy”. “numba” will give the fastest performance but is still experimental. It can boost performance by almost an order of magnitude compared to openpiv or numpy. both “numba” and “numpy” use the FF-PIV library as back-end.

  • **kwargs (dict) – keyword arguments to pass to the piv engine. For “numba” and “numpy” the argument chunks can be provided with an integer defining in how many batches of work the total velocimetry problem should be subdivided.

Returns:

PIV results in a lazy dask.array form in DataArrays “v_x”, “v_y”, “corr” and “s2n”.

Return type:

xr.Dataset

See also

OpenPIV, FF-PIV