Skip to content

Commit

Permalink
Add how do I ... section (#3357)
Browse files Browse the repository at this point in the history
* Add how do I ... section

* Bbugfix.

* Update doc/howdoi.rst

Co-Authored-By: Maximilian Roos <[email protected]>

* Update doc/howdoi.rst

Co-Authored-By: Maximilian Roos <[email protected]>

* small updates.

* Add more.
  • Loading branch information
dcherian authored Sep 30, 2019
1 parent bd1069b commit 1ab2279
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 1 deletion.
9 changes: 9 additions & 0 deletions doc/_static/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,12 @@
.wy-nav-top {
background-color: #555;
}

table.colwidths-given {
table-layout: fixed;
width: 100%;
}
table.docutils td {
white-space: unset;
word-wrap: break-word;
}
59 changes: 59 additions & 0 deletions doc/howdoi.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
.. currentmodule:: xarray

.. _howdoi:

How do I ...
============

.. list-table::
:header-rows: 1
:widths: 40 60

* - How do I...
- Solution
* - add variables from other datasets to my dataset
- :py:meth:`Dataset.merge`
* - add a new dimension and/or coordinate
- :py:meth:`DataArray.expand_dims`, :py:meth:`Dataset.expand_dims`
* - add a new coordinate variable
- :py:meth:`DataArray.assign_coords`
* - change a data variable to a coordinate variable
- :py:meth:`Dataset.set_coords`
* - change the order of dimensions
- :py:meth:`DataArray.transpose`, :py:meth:`Dataset.transpose`
* - remove a variable from my object
- :py:meth:`Dataset.drop`, :py:meth:`DataArray.drop`
* - remove dimensions of length 1 or 0
- :py:meth:`DataArray.squeeze`, :py:meth:`Dataset.squeeze`
* - remove all variables with a particular dimension
- :py:meth:`Dataset.drop_dims`
* - convert non-dimension coordinates to data variables or remove them
- :py:meth:`DataArray.reset_coords`, :py:meth:`Dataset.reset_coords`
* - rename a variable, dimension or coordinate
- :py:meth:`Dataset.rename`, :py:meth:`DataArray.rename`, :py:meth:`Dataset.rename_vars`, :py:meth:`Dataset.rename_dims`,
* - convert a DataArray to Dataset or vice versa
- :py:meth:`DataArray.to_dataset`, :py:meth:`Dataset.to_array`
* - extract the underlying array (e.g. numpy or Dask arrays)
- :py:attr:`DataArray.data`
* - convert to and extract the underlying numpy array
- :py:attr:`DataArray.values`
* - find out if my xarray object is wrapping a Dask Array
- :py:func:`dask.is_dask_collection`
* - know how much memory my object requires
- :py:attr:`DataArray.nbytes`, :py:attr:`Dataset.nbytes`
* - convert a possibly irregularly sampled timeseries to a regularly sampled timeseries
- :py:meth:`DataArray.resample`, :py:meth:`Dataset.resample` (see :ref:`resampling` for more)
* - apply a function on all data variables in a Dataset
- :py:meth:`Dataset.apply`
* - write xarray objects with complex values to a netCDF file
- :py:func:`Dataset.to_netcdf`, :py:func:`DataArray.to_netcdf` specifying ``engine="h5netcdf", invalid_netcdf=True``
* - make xarray objects look like other xarray objects
- :py:func:`~xarray.ones_like`, :py:func:`~xarray.zeros_like`, :py:func:`~xarray.full_like`, :py:meth:`Dataset.reindex_like`, :py:meth:`Dataset.interpolate_like`, :py:meth:`Dataset.broadcast_like`, :py:meth:`DataArray.reindex_like`, :py:meth:`DataArray.interpolate_like`, :py:meth:`DataArray.broadcast_like`
* - replace NaNs with other values
- :py:meth:`Dataset.fillna`, :py:meth:`Dataset.ffill`, :py:meth:`Dataset.bfill`, :py:meth:`Dataset.interpolate_na`, :py:meth:`DataArray.fillna`, :py:meth:`DataArray.ffill`, :py:meth:`DataArray.bfill`, :py:meth:`DataArray.interpolate_na`
* - extract the year, month, day or similar from a DataArray of time values
- ``obj.dt.month`` for example where ``obj`` is a :py:class:`~xarray.DataArray` containing ``datetime64`` or ``cftime`` values. See :ref:`dt_accessor` for more.
* - round off time values to a specified frequency
- ``obj.dt.ceil``, ``obj.dt.floor``, ``obj.dt.round``. See :ref:`dt_accessor` for more.
* - make a mask that is ``True`` where an object contains any of the values in a array
- :py:meth:`Dataset.isin`, :py:meth:`DataArray.isin`
2 changes: 2 additions & 0 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ Documentation
**Help & reference**

* :doc:`whats-new`
* :doc:`howdoi`
* :doc:`api`
* :doc:`internals`
* :doc:`roadmap`
Expand All @@ -96,6 +97,7 @@ Documentation
:caption: Help & reference

whats-new
howdoi
api
internals
roadmap
Expand Down
2 changes: 2 additions & 0 deletions doc/time-series.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ You can also select a particular time by indexing with a
For more details, read the pandas documentation.

.. _dt_accessor:

Datetime components
-------------------

Expand Down
3 changes: 2 additions & 1 deletion doc/whats-new.rst
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ Documentation

- Created a glossary of important xarray terms (:issue:`2410`, :pull:`3352`).
By `Gregory Gundersen <https://github.com/gwgundersen/>`_.

- Created a "How do I..." section (:ref:`howdoi`) for solutions to common questions. (:pull:`3357`).
By `Deepak Cherian <https://github.com/dcherian/>`_.
- Add examples for :py:meth:`Dataset.swap_dims` and :py:meth:`DataArray.swap_dims`.
By `Justus Magin <https://github.com/keewis>`_.
- Add examples for :py:meth:`align`, :py:meth:`merge`, :py:meth:`combine_by_coords`,
Expand Down

0 comments on commit 1ab2279

Please sign in to comment.