home / github / issues

Menu
  • GraphQL API
  • Search all tables

issues: 608536405

This data as json

id node_id number title user state locked assignee milestone comments created_at updated_at closed_at author_association active_lock_reason draft pull_request body reactions performed_via_github_app state_reason repo type
608536405 MDU6SXNzdWU2MDg1MzY0MDU= 4013 Subset from conditional coordinates 42118783 closed 0     6 2020-04-28T18:49:12Z 2020-04-30T17:51:23Z 2020-04-28T20:21:05Z NONE      

Description

Maybe this functionality already exists in some way, but I haven't seen an obvious way to do it.

Frequently I want to retrieve a subset of a dataset where I don't know exactly the index. For example if I have two coordinates x and y, I want to provide conditions like x< 100 & x>3, y >=2. Some functions like this exist in the Dplyr package in r using the filter function (e.x. filter(ds, x>= 100 | x <-1). Is such a thing possible using a function in xarray or must I build the boolean index myself using something like ds[np.meshgrid(ds.x < 100 , ds.y>5)]?

Notice the desired functionality is a lot like xr.where except the conditions are on the coordinates and instead of returning a mask, the function should return a smaller dataframe, if possible.

python ds = xr.Dataset({'foo': (('x', 'y'), np.random.rand(4, 4))}, coords={'x': [10, 20, 30, 40], 'y': [30, 40, 50, 60]}) ds.isel((ds.y>=30) & (ds.y <=50)) #doesn't work, desired functionality

Expected Output

python xr.Dataset({'foo': (('x', 'y'), np.random.rand(4, 3))}, coords={'x': [10, 20, 30, 40], 'y': [30, 40, 50]})

{
    "url": "https://api.github.com/repos/pydata/xarray/issues/4013/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
  completed 13221727 issue

Links from other tables

  • 0 rows from issues_id in issues_labels
  • 6 rows from issue in issue_comments
Powered by Datasette · Queries took 1.939ms · About: xarray-datasette