home / github

Menu
  • GraphQL API
  • Search all tables

issues

Table actions
  • GraphQL API for issues

3 rows where state = "open", type = "issue" and user = 743508 sorted by updated_at descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: created_at (date), updated_at (date)

type 1

  • issue · 3 ✖

state 1

  • open · 3 ✖

repo 1

  • xarray 3
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
1445486904 I_kwDOAMm_X85WKGE4 7280 Support for Scipy Sparse Arrays mangecoeur 743508 open 0     4 2022-11-11T13:35:51Z 2022-11-11T16:39:53Z   CONTRIBUTOR      

What happened?

Now that Scipy is moving to support sparse NDarrays, we would expect that Xarray should work with them as any other array like data.

What did you expect to happen?

Doesn't work. It seems that why trying to use a scipy sparse array as the data, Xarray wraps the the sparse array in a 0-D dense array. (there are likely more issues after this but this was the first hurdle)

With sparse array s: print(s) <4x4 sparse array of type '<class 'numpy.float64'>' with 4 stored elements in COOrdinate format> print(xr.DataArray(s).data) array(<4x4 sparse array of type '<class 'numpy.float64'>' with 4 stored elements in COOrdinate format>, dtype=object)

Minimal Complete Verifiable Example

```Python import numpy as np import xarray as xr from scipy.sparse import coo_array

row = np.array([0, 3, 1, 0])

col = np.array([0, 3, 1, 2])

data = np.array([4, 5.4, 7, 9.2])

s= coo_array((data, (row, col)), shape=(4, 4)) da = xr.DataArray(s) print(da.repr_html()) ```

MVCE confirmation

  • [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
  • [X] Complete example — the example is self-contained, including all data and the text of any traceback.
  • [X] Verifiable example — the example copy & pastes into an IPython prompt or Binder notebook, returning the result.
  • [X] New issue — a search of GitHub Issues suggests this is not a duplicate.

Relevant log output

```Python

AttributeError Traceback (most recent call last) Input In [4], in <cell line: 13>() 11 s= coo_array((data, (row, col)), shape=(4, 4)) 12 da = xr.DataArray(s) ---> 13 print(da.repr_html())

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/common.py:167, in AbstractArray.repr_html(self) 165 if OPTIONS["display_style"] == "text": 166 return f"

{escape(repr(self))}
" --> 167 return formatting_html.array_repr(self)

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting_html.py:311, in array_repr(arr) 303 arr_name = f"'{arr.name}'" if getattr(arr, "name", None) else "" 305 header_components = [ 306 f"

{obj_type}
", 307 f"
{arr_name}
", 308 format_dims(dims, indexed_dims), 309 ] --> 311 sections = [array_section(arr)] 313 if hasattr(arr, "coords"): 314 sections.append(coord_section(arr.coords))

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting_html.py:219, in array_section(obj) 213 collapsed = ( 214 "checked" 215 if _get_boolean_with_default("display_expand_data", default=True) 216 else "" 217 ) 218 variable = getattr(obj, "variable", obj) --> 219 preview = escape(inline_variable_array_repr(variable, max_width=70)) 220 data_repr = short_data_repr_html(obj) 221 data_icon = _icon("icon-database")

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting.py:274, in inline_variable_array_repr(var, max_width) 272 return var.data._repr_inline(max_width) 273 if var._in_memory: --> 274 return format_array_flat(var, max_width) 275 dask_array_type = array_type("dask") 276 if isinstance(var._data, dask_array_type):

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting.py:191, in format_array_flat(array, max_width) 188 # every item will take up at least two characters, but we always want to 189 # print at least first and last items 190 max_possibly_relevant = min(max(array.size, 1), max(math.ceil(max_width / 2.0), 2)) --> 191 relevant_front_items = format_items( 192 first_n_items(array, (max_possibly_relevant + 1) // 2) 193 ) 194 relevant_back_items = format_items(last_n_items(array, max_possibly_relevant // 2)) 195 # interleave relevant front and back items: 196 # [a, b, c] and [y, z] -> [a, z, b, y, c]

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting.py:180, in format_items(x) 177 elif np.logical_not(time_needed).all(): 178 timedelta_format = "date" --> 180 formatted = [format_item(xi, timedelta_format) for xi in x] 181 return formatted

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting.py:180, in <listcomp>(.0) 177 elif np.logical_not(time_needed).all(): 178 timedelta_format = "date" --> 180 formatted = [format_item(xi, timedelta_format) for xi in x] 181 return formatted

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/xarray/core/formatting.py:161, in format_item(x, timedelta_format, quote_strings) 159 return repr(x) if quote_strings else x 160 elif hasattr(x, "dtype") and np.issubdtype(x.dtype, np.floating): --> 161 return f"{x.item():.4}" 162 else: 163 return str(x)

File ~/Scratch/.conda/envs/tessa-1/lib/python3.10/site-packages/scipy/sparse/_base.py:771, in spmatrix.getattr(self, attr) 769 return self.getnnz() 770 else: --> 771 raise AttributeError(attr + " not found")

AttributeError: item not found ```

Anything else we need to know?

No response

Environment

INSTALLED VERSIONS ------------------ commit: None python: 3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:35:26) [GCC 10.4.0] python-bits: 64 OS: Linux OS-release: 5.13.0-41-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: ('en_US', 'UTF-8') libhdf5: 1.12.2 libnetcdf: 4.8.1 xarray: 2022.11.0 pandas: 1.4.3 numpy: 1.22.4 scipy: 1.9.0 netCDF4: 1.6.0 pydap: None h5netcdf: None h5py: 3.7.0 Nio: None zarr: 2.12.0 cftime: 1.6.1 nc_time_axis: None PseudoNetCDF: None rasterio: 1.3.2 cfgrib: 0.9.10.1 iris: None bottleneck: 1.3.5 dask: 2022.8.1 distributed: 2022.8.1 matplotlib: 3.5.3 cartopy: 0.20.3 seaborn: 0.11.2 numbagg: None fsspec: 2022.7.1 cupy: None pint: 0.19.2 sparse: 0.13.0 flox: None numpy_groupies: None setuptools: 65.2.0 pip: 22.2.2 conda: 4.14.0 pytest: 7.1.2 IPython: 8.4.0 sphinx: None
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/7280/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 issue
561539035 MDU6SXNzdWU1NjE1MzkwMzU= 3761 to_dataframe fails if dataarray has dimension 1 mangecoeur 743508 open 0     2 2020-02-07T10:05:47Z 2020-02-07T16:37:05Z   CONTRIBUTOR      

The to_dataframe method fails with ValueError if the dataarray has only value

MCVE Code Sample

```python

Your code here

x = np.arange(10) y = np.arange(10)

data = np.zeros((len(x), len(y)))

da = xr.DataArray(data, coords=[x, y], dims=['x', 'y'])

da.sel(x=1,y=1).to_dataframe(name='test') ```

Expected Output

Expect a dataframe with one row

Problem Description

This happened when selecting a single value out of a gridded dataset - in cases where there was only one value output the to_dataframe failed.

Output of xr.show_versions()

# Paste the output here xr.show_versions() here INSTALLED VERSIONS ------------------ commit: None python: 3.7.6 | packaged by conda-forge | (default, Jan 7 2020, 22:33:48) [GCC 7.3.0] python-bits: 64 OS: Linux OS-release: 5.3.0-28-generic machine: x86_64 processor: x86_64 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: en_US.UTF-8 libhdf5: 1.10.5 libnetcdf: 4.7.1 xarray: 0.14.1 pandas: 0.25.3 numpy: 1.17.5 scipy: 1.4.1 netCDF4: 1.5.3 pydap: None h5netcdf: None h5py: None Nio: None zarr: None cftime: 1.0.4.2 nc_time_axis: None PseudoNetCDF: None rasterio: 1.1.0 cfgrib: 0.9.7.6 iris: None bottleneck: 1.3.1 dask: 2.9.2 distributed: 2.9.3 matplotlib: 3.1.2 cartopy: 0.17.0 seaborn: 0.9.0 numbagg: None setuptools: 45.1.0.post20200119 pip: 20.0.1 conda: None pytest: None IPython: 7.11.1 sphinx: None
{
    "url": "https://api.github.com/repos/pydata/xarray/issues/3761/reactions",
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
    xarray 13221727 issue
238990919 MDU6SXNzdWUyMzg5OTA5MTk= 1467 CF conventions for time doesn't support years mangecoeur 743508 open 0     10 2017-06-27T21:38:32Z 2019-02-20T21:25:01Z   CONTRIBUTOR      

CF conventions code supports: {'microseconds': 'us', 'milliseconds': 'ms', 'seconds': 's', 'minutes': 'm', 'hours': 'h', 'days': 'D'}, but not 'years'. See example file https://www.dropbox.com/s/34dcpliko928yaj/histsoc_population_0.5deg_1861-2005.nc4?dl=0

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

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE [issues] (
   [id] INTEGER PRIMARY KEY,
   [node_id] TEXT,
   [number] INTEGER,
   [title] TEXT,
   [user] INTEGER REFERENCES [users]([id]),
   [state] TEXT,
   [locked] INTEGER,
   [assignee] INTEGER REFERENCES [users]([id]),
   [milestone] INTEGER REFERENCES [milestones]([id]),
   [comments] INTEGER,
   [created_at] TEXT,
   [updated_at] TEXT,
   [closed_at] TEXT,
   [author_association] TEXT,
   [active_lock_reason] TEXT,
   [draft] INTEGER,
   [pull_request] TEXT,
   [body] TEXT,
   [reactions] TEXT,
   [performed_via_github_app] TEXT,
   [state_reason] TEXT,
   [repo] INTEGER REFERENCES [repos]([id]),
   [type] TEXT
);
CREATE INDEX [idx_issues_repo]
    ON [issues] ([repo]);
CREATE INDEX [idx_issues_milestone]
    ON [issues] ([milestone]);
CREATE INDEX [idx_issues_assignee]
    ON [issues] ([assignee]);
CREATE INDEX [idx_issues_user]
    ON [issues] ([user]);
Powered by Datasette · Queries took 21.3ms · About: xarray-datasette