Skip to content

[BUG] Trajectory filter for long trajectories. #893

Description

@ChiCheng45

Description of the error
Currently the trajectory filter loads the entire trajectory before applying the filtering. This means that for some machine with lower amounts of RAM or very long trajectories this job might cause some out of memory issues.

I think there might be way around this since what we want to do is

$$\mathrm{FT}^{-1}[r(\omega) g(\omega)] = r(x) * g(x) = r'(x)$$

where $r'(x)$ is the filtered positions, $r(\omega)$ is the FT of the positions, $g(\omega)$ is the frequency filter, and $g(x)$ is the inverse FT of the frequency filter.

If we use the convolution of $r(x)$ and $g(x)$ to determine $r'(x)$ then I think we can use one of the following methods

https://en.wikipedia.org/wiki/Overlap%E2%80%93add_method
https://en.wikipedia.org/wiki/Overlap%E2%80%93save_method

so we should be able to calculate the convolution of $r(x)$ and $g(x)$ and therefore $r'(x)$ in parts maybe something like 200 frames at a time or something.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingenhancementNew feature or request

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions