# API reference

This page provides an auto-generated summary of xarray’s API. For more details and examples, refer to the relevant chapters in the main part of the documentation.

See also: What parts of xarray are considered public API?

## Top-level functions

## Dataset

### Creating a dataset

### Attributes

### Dictionary interface

Datasets implement the mapping interface with keys given by variable names and values given by `DataArray` objects.

### Dataset contents

### Comparisons

### Indexing

### Missing value handling

### Computation

### Aggregation

### ndarray methods

### Reshaping and reorganizing

## DataArray

### Attributes

### ndarray attributes

### DataArray contents

### Indexing

### Missing value handling

### Comparisons

### Computation

### Aggregation

### ndarray methods

### String manipulation

### Datetimelike properties

Datetime properties:

Datetime methods:

Timedelta properties:

Timedelta methods:

### Reshaping and reorganizing

## DataTree

### Creating a DataTree

Methods of creating a `DataTree`.

### Tree Attributes

Attributes relating to the recursive tree-like structure of a `DataTree`.

### Data Contents

Interface to the data objects (optionally) stored inside a single `DataTree` node. This interface echoes that of `xarray.Dataset`.

### Dictionary Interface

`DataTree` objects also have a dict-like interface mapping keys to either `xarray.DataArray`s or to child `DataTree` nodes.

### Tree Manipulation

For manipulating, traversing, navigating, or mapping over the tree structure.

### Pathlib-like Interface

`DataTree` objects deliberately echo some of the API of `pathlib.PurePath`.

### DataTree Contents

Manipulate the contents of all nodes in a `DataTree` simultaneously.

### DataTree Node Contents

Manipulate the contents of a single `DataTree` node.

### DataTree Operations

Apply operations over multiple `DataTree` objects.

### Comparisons

Compare one `DataTree` object to another.

### Indexing

Index into all nodes in the subtree simultaneously.

### Aggregation

Aggregate data in all nodes in the subtree simultaneously.

### ndarray methods

Methods copied from `numpy.ndarray` objects, here applying to the data in all nodes in the subtree.

## Universal functions

These functions are equivalent to their NumPy versions, but for xarray objects backed by non-NumPy array types (e.g. `cupy`, `sparse`, or `jax`), they will ensure that the computation is dispatched to the appropriate backend. You can find them in the `xarray.ufuncs` module:

## IO / Conversion

### Dataset methods

### DataArray methods

### DataTree methods

## Encoding/Decoding

### Coder objects

## Coordinates objects

### Dataset

### DataArray

## Plotting

### Dataset

### DataArray

### Faceting

## GroupBy objects

### Dataset

### DataArray

### Grouper Objects

## Rolling objects

### Dataset

### DataArray

## Coarsen objects

### Dataset

### DataArray

## Exponential rolling objects

## Weighted objects

### Dataset

### DataArray

## Resample objects

### Dataset

### DataArray

## Accessors

## Custom Indexes

### Creating custom indexes

## Tutorial

## Testing

Test that two `DataTree` objects are similar.

## Hypothesis Testing Strategies

See the documentation page on testing for a guide on how to use these strategies.

Warning

These strategies should be considered highly experimental, and liable to change at any time.

## Exceptions

### DataTree

Exceptions raised when manipulating trees.

## Advanced API

Default, pandas-backed indexes built-in Xarray:

> indexes.PandasIndex indexes.PandasMultiIndex

These backends provide a low-level interface for lazily loading data from external file-formats or protocols, and can be manually invoked to create arguments for the `load_store` and `dump_to_store` Dataset methods:

These BackendEntrypoints provide a basic interface to the most commonly used filetypes in the xarray universe.

## Deprecated / Pending Deprecation