# User Guide

In this user guide, you will find detailed descriptions and
examples that describe many common tasks that you can accomplish with Xarray.

# Data model

* [Terminology](terminology.html.md)
* [Data Structures](data-structures.html.md)
  * [DataArray](data-structures.html.md#dataarray)
  * [Dataset](data-structures.html.md#dataset)
  * [DataTree](data-structures.html.md#datatree)
  * [Coordinates](data-structures.html.md#coordinates)
* [Hierarchical data](hierarchical-data.html.md)
  * [Why Hierarchical Data?](hierarchical-data.html.md#why-hierarchical-data)
  * [Node Relationships](hierarchical-data.html.md#node-relationships)
  * [Navigating Trees](hierarchical-data.html.md#navigating-trees)
  * [Manipulating Trees](hierarchical-data.html.md#manipulating-trees)
  * [Tree Contents](hierarchical-data.html.md#tree-contents)
  * [Computation](hierarchical-data.html.md#computation)
  * [Operating on Multiple Trees](hierarchical-data.html.md#operating-on-multiple-trees)
  * [Alignment and Coordinate Inheritance](hierarchical-data.html.md#alignment-and-coordinate-inheritance)
* [Parallel Computing with Dask](dask.html.md)
  * [Examples](dask.html.md#examples)
  * [Using Dask with Xarray](dask.html.md#using-dask-with-xarray)
  * [Deploying Dask](dask.html.md#deploying-dask)
  * [Best Practices](dask.html.md#best-practices)

# Core operations

* [Indexing and selecting data](indexing.html.md)
  * [Quick overview](indexing.html.md#quick-overview)
  * [Positional indexing](indexing.html.md#positional-indexing)
  * [Indexing with dimension names](indexing.html.md#indexing-with-dimension-names)
  * [Nearest neighbor lookups](indexing.html.md#nearest-neighbor-lookups)
  * [Dataset indexing](indexing.html.md#dataset-indexing)
  * [Dropping labels and dimensions](indexing.html.md#dropping-labels-and-dimensions)
  * [Masking with `where`](indexing.html.md#masking-with-where)
  * [Selecting values with `isin`](indexing.html.md#selecting-values-with-isin)
  * [Vectorized Indexing](indexing.html.md#vectorized-indexing)
  * [Assigning values with indexing](indexing.html.md#assigning-values-with-indexing)
  * [More advanced indexing](indexing.html.md#more-advanced-indexing)
  * [Align and reindex](indexing.html.md#align-and-reindex)
  * [Missing coordinate labels](indexing.html.md#missing-coordinate-labels)
  * [Underlying Indexes](indexing.html.md#underlying-indexes)
  * [Copies vs. Views](indexing.html.md#copies-vs-views)
  * [Multi-level indexing](indexing.html.md#multi-level-indexing)
  * [Indexing rules](indexing.html.md#indexing-rules)
* [Combining data](combining.html.md)
  * [Concatenate](combining.html.md#concatenate)
  * [Merge](combining.html.md#merge)
  * [Combine](combining.html.md#combine)
  * [Update](combining.html.md#update)
  * [Equals and identical](combining.html.md#equals-and-identical)
  * [Merging with ‘no_conflicts’](combining.html.md#merging-with-no-conflicts)
  * [Combining along multiple dimensions](combining.html.md#combining-along-multiple-dimensions)
* [Reshaping and reorganizing data](reshaping.html.md)
  * [Importing the library](reshaping.html.md#importing-the-library)
  * [Reordering dimensions](reshaping.html.md#reordering-dimensions)
  * [Expand and squeeze dimensions](reshaping.html.md#expand-and-squeeze-dimensions)
  * [Converting between datasets and arrays](reshaping.html.md#converting-between-datasets-and-arrays)
  * [Stack and unstack](reshaping.html.md#stack-and-unstack)
  * [Set and reset index](reshaping.html.md#set-and-reset-index)
  * [Shift and roll](reshaping.html.md#shift-and-roll)
  * [Sort](reshaping.html.md#sort)
  * [Reshaping via coarsen](reshaping.html.md#reshaping-via-coarsen)
* [Computation](computation.html.md)
  * [Basic array math](computation.html.md#basic-array-math)
  * [Missing values](computation.html.md#missing-values)
  * [Aggregation](computation.html.md#aggregation)
  * [Rolling window operations](computation.html.md#rolling-window-operations)
  * [Weighted array reductions](computation.html.md#weighted-array-reductions)
  * [Coarsen large arrays](computation.html.md#coarsen-large-arrays)
  * [Computation using Coordinates](computation.html.md#computation-using-coordinates)
  * [Fitting polynomials](computation.html.md#fitting-polynomials)
  * [Fitting arbitrary functions](computation.html.md#fitting-arbitrary-functions)
  * [Broadcasting by dimension name](computation.html.md#broadcasting-by-dimension-name)
  * [Automatic alignment](computation.html.md#automatic-alignment)
  * [Coordinates](computation.html.md#coordinates)
  * [Math with datasets](computation.html.md#math-with-datasets)
  * [Wrapping custom computation](computation.html.md#wrapping-custom-computation)
* [GroupBy: Group and Bin Data](groupby.html.md)
  * [Split](groupby.html.md#split)
  * [Binning](groupby.html.md#binning)
  * [Apply](groupby.html.md#apply)
  * [First and last](groupby.html.md#first-and-last)
  * [Grouped arithmetic](groupby.html.md#grouped-arithmetic)
  * [Multidimensional Grouping](groupby.html.md#multidimensional-grouping)
  * [Grouper Objects](groupby.html.md#grouper-objects)
  * [Grouping by multiple variables](groupby.html.md#grouping-by-multiple-variables)
  * [Time Grouping and Resampling](groupby.html.md#time-grouping-and-resampling)
  * [Shuffling](groupby.html.md#shuffling)
* [Interpolating data](interpolation.html.md)
  * [Scalar and 1-dimensional interpolation](interpolation.html.md#scalar-and-1-dimensional-interpolation)
  * [Multi-dimensional Interpolation](interpolation.html.md#multi-dimensional-interpolation)
  * [Interpolation methods](interpolation.html.md#interpolation-methods)
  * [Advanced Interpolation](interpolation.html.md#advanced-interpolation)
  * [Interpolating arrays with NaN](interpolation.html.md#interpolating-arrays-with-nan)
  * [Example](interpolation.html.md#example)

# I/O

* [Reading and writing files](io.html.md)
  * [Backend Selection](io.html.md#backend-selection)
  * [netCDF](io.html.md#netcdf)
  * [HDF5](io.html.md#hdf5)
  * [Zarr](io.html.md#zarr)
  * [Kerchunk](io.html.md#kerchunk)
  * [Iris](io.html.md#iris)
  * [OPeNDAP](io.html.md#opendap)
  * [Pickle](io.html.md#pickle)
  * [Dictionary](io.html.md#dictionary)
  * [Rasterio](io.html.md#rasterio)
  * [GRIB format via cfgrib](io.html.md#grib-format-via-cfgrib)
  * [CSV and other formats supported by pandas](io.html.md#csv-and-other-formats-supported-by-pandas)
* [Complex Numbers](complex-numbers.html.md)
  * [Operations on Complex Data](complex-numbers.html.md#operations-on-complex-data)
  * [Reading and Writing Complex Data](complex-numbers.html.md#reading-and-writing-complex-data)
  * [See also](complex-numbers.html.md#see-also)

# Visualization

* [Plotting](plotting.html.md)
  * [Introduction](plotting.html.md#introduction)
  * [DataArrays](plotting.html.md#dataarrays)
  * [Datasets](plotting.html.md#datasets)
  * [Maps](plotting.html.md#maps)
  * [Details](plotting.html.md#details)

# Interoperability

* [Working with pandas](pandas.html.md)
  * [Hierarchical and tidy data](pandas.html.md#hierarchical-and-tidy-data)
  * [Lossless and reversible conversion](pandas.html.md#lossless-and-reversible-conversion)
  * [Multi-dimensional data](pandas.html.md#multi-dimensional-data)
  * [Transitioning from pandas.Panel to xarray](pandas.html.md#transitioning-from-pandas-panel-to-xarray)
* [Working with numpy-like arrays](duckarrays.html.md)
  * [Why “duck”?](duckarrays.html.md#why-duck)
  * [What is a numpy-like array?](duckarrays.html.md#what-is-a-numpy-like-array)
  * [Wrapping numpy-like arrays in xarray](duckarrays.html.md#wrapping-numpy-like-arrays-in-xarray)
  * [Extensions using duck arrays](duckarrays.html.md#extensions-using-duck-arrays)
* [Xarray related projects](ecosystem.html.md)
  * [Geosciences](ecosystem.html.md#geosciences)
  * [Machine Learning](ecosystem.html.md#machine-learning)
  * [Other domains](ecosystem.html.md#other-domains)
  * [Extend xarray capabilities](ecosystem.html.md#extend-xarray-capabilities)
  * [Visualization](ecosystem.html.md#visualization)
  * [Non-Python projects](ecosystem.html.md#non-python-projects)

# Domain-specific workflows

* [Time series data](time-series.html.md)
  * [Creating datetime64 data](time-series.html.md#creating-datetime64-data)
  * [Datetime indexing](time-series.html.md#datetime-indexing)
  * [Datetime components](time-series.html.md#datetime-components)
  * [Resampling and grouped operations](time-series.html.md#resampling-and-grouped-operations)
* [Weather and climate data](weather-climate.html.md)
  * [Related Variables](weather-climate.html.md#related-variables)
  * [CF-compliant coordinate variables](weather-climate.html.md#cf-compliant-coordinate-variables)
  * [Non-standard calendars and dates outside the precision range](weather-climate.html.md#non-standard-calendars-and-dates-outside-the-precision-range)
  * [Arithmetic limitations with `cftime` objects](weather-climate.html.md#arithmetic-limitations-with-cftime-objects)

# Options and Testing

* [Configuration](options.html.md)
* [Testing your code](testing.html.md)
  * [Hypothesis testing](testing.html.md#hypothesis-testing)
