pydata / pydata/xarray

Extend DatetimeAccessor with `snap`-method

Open
#8,378 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
4.2k
Forks
1.4k
Avg merge
2d 15h
Merged PRs (30d)
14

Description

Is your feature request related to a problem?

With satellite remote sensing data, you sometimes end up with a blown up DataArray/Dataset because individual acquisitions have been saved in slices:

group_acq_slices_1

One could then aggregate these slices with something like this:

ds.coords['time'] = ds.time.dt.floor('1H')  # or .ceil
ds = ds_copy.groupby('time').mean()

However, this would miss cases where one slice has been acquired before and the other after a specific hour. The pandas.DatetimeIndex.snap method could be a good alternative for such cases.

Describe the solution you'd like

In addition to the floor, ceil and round methods, it would be great to also implement pandas.DatetimeIndex.snap.

Describe alternatives you've considered

No response

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the existing DatetimeAccessor floor, ceil, and round methods, then compare their behavior with pandas.DatetimeIndex.snap. Implement the corresponding dt.snap entry point so slices can be grouped using snap, and verify that its behavior matches the pandas method for the described acquisition times.

Written by the indexing model from the issue text.

Assessment

Tech stack
pandas, python
Domain
data
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.