cartesian product of coordinates and using it to index / fill empty dataset
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 4.2k
- Forks
- 1.4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 14
Description
For a given empty dataset with only coordinates
import xarray as xr
import numpy as np
data = xr.Dataset(coords={'x': np.linspace(-1, 1), 'y': np.linspace(0, 10), 'a': 1, 'b': 5})
I'd like to iterate over the product of coordinates, in a similar way as it can be done for numpy.arrays
data = np.zeros((10, 5, 10))
for (i, j, k), _ in np.ndenumerate(data):
data[i, j, k] = some_function(i, j, k)
to fill the data with values of some function.
Also I'd like to extend this to the cases of functions that are multi-valued, i.e. they return a numpy.array.
Is there an easy way to do so? I was unable to find anything similar in the docs.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the empty xarray.Dataset example and compare its coordinate and indexing behavior with NumPy's np.ndenumerate example. Define the expected Cartesian-product iteration and handling of functions returning arrays, then verify that both scalar and multi-valued functions can fill the dataset as requested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100