Skip to content

Conversation

benbovy
Copy link
Member

@benbovy benbovy commented Aug 28, 2023

  • Complements Add Coordinates.assign() method #8102
  • Tests added
  • User visible changes (including notable bug fixes) are documented in whats-new.rst
  • New functions/methods are listed in api.rst

I don't think that we need to copy most API from Dataset / DataArray to Coordinates, but I find it convenient to have some relevant methods there too. For example, building Coordinates from scratch (with custom indexes) before passing the whole coords + indexes bundle around:

import dask.array as da
import numpy as np
import xarray as xr

coords = (
    xr.Coordinates(
        coords={"x": da.arange(100_000_000), "y": np.arange(100)},
        indexes={},
    )
    .set_xindex("x", DaskIndex)
    .set_xindex("y", xr.indexes.PandasIndex)
)

ds = xr.Dataset(coords=coords)

# <xarray.Dataset>
# Dimensions:  (x: 100000000, y: 100)
# Coordinates:
#   * x        (x) int64 dask.array<chunksize=(16777216,), meta=np.ndarray>
#   * y        (y) int64 0 1 2 3 4 5 6 7 8 9 10 ... 90 91 92 93 94 95 96 97 98 99
# Data variables:
#     *empty*
# Indexes:
#     x        DaskIndex

Copy link
Collaborator

@max-sixty max-sixty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (without that much context...)

Copy link
Contributor

@dcherian dcherian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a good idea to me. A few tests would be nice :)

@benbovy benbovy mentioned this pull request May 13, 2025
11 tasks
@dcherian
Copy link
Contributor

@benbovy shall we merge?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

4 participants