-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement compute_speed
and compute_path_length
#280
base: main
Are you sure you want to change the base?
Conversation
Quality Gate passedIssues Measures |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #280 +/- ##
==========================================
+ Coverage 99.77% 99.79% +0.01%
==========================================
Files 15 15
Lines 909 957 +48
==========================================
+ Hits 907 955 +48
Misses 2 2 ☔ View full report in Codecov by Sentry. |
ebae6af
to
129e8c1
Compare
compute_speed
and compute_path_length
92e91f0
to
d089a9c
Compare
Quality Gate passedIssues Measures |
Description
What is this PR
What does this PR do?
It introduces two new functions in the kinematics module:
compute_speed
: quite straightforward to implement, it just returns the norm of velocity, using existingmovement
functionscompute_path_length
: in theory also straightforward, as it should just be the sum of the norms of displacement vectors, but I spent a lot of time debating how to handle missing values. See extensive discussion on zulip.In the end I opted for providing two alternative nan policies, and emitting a warning if too many values are missing. Expand the dropdown below for more details.
compute_path_length() function signatures and docstring
I'm in two minds as to whether we need the
start
andstop
arguments, as the user could easily select a time range usingds.position.sel(time=slice(0, 10))
, before passing the data array tocompute_path_length()
. I've chosen to include them for now, but I'm open to counter-arguments, CC @b-peri.References
Closes #147
How has this PR been tested?
For speed, I used the existing kinematics tests (added "speed" as a parameter) with a bit of modification needed.
Testing for the path length was harder because:
As a result I ended up adding 3 new unit tests to account for all of the above, but suggestion to streamline the tests are welcome.
Is this a breaking change?
No.
Does this PR require an update to the documentation?
API docs should be automatically updated. We might consider mentioning the new functions in some of the examples in the future, but not necessary right now.
Checklist: