From 7aaa6f347fb316dfafaac57a5334d7a32be21c44 Mon Sep 17 00:00:00 2001 From: Joe Hamman Date: Tue, 31 May 2022 11:28:12 -0700 Subject: [PATCH] Doc index update (#6530) * rework doc index page in light of new xarray.dev splash page * Silence `WARNING: more than one target found for 'any' cross-reference` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * move to sphinx-design * tweak cards * cleanup conf * cleanup conf.py * add panels back * typo * replace `sphinx-panels` with `sphinx-design` * remove sphinx-panels * Add blog * formatting only * center the text Co-authored-by: Maximilian Roos <5635139+max-sixty@users.noreply.github.com> Co-authored-by: Anderson Banihirwe Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .gitignore | 4 + ci/requirements/doc.yml | 2 +- doc/_static/index_api.svg | 97 +++++++++++++++++++++ doc/_static/index_contribute.svg | 76 ++++++++++++++++ doc/_static/index_getting_started.svg | 66 ++++++++++++++ doc/_static/index_user_guide.svg | 67 ++++++++++++++ doc/_static/style.css | 10 +++ doc/conf.py | 120 +++++++++++++++++++++++++- doc/gallery.rst | 100 +-------------------- doc/gallery.yml | 45 ++++++++++ doc/index.rst | 116 ++++++++++--------------- doc/team.rst | 79 +---------------- doc/team.yml | 59 +++++++++++++ doc/tutorials-and-videos.rst | 53 +----------- doc/videos.yml | 38 ++++++++ 15 files changed, 631 insertions(+), 301 deletions(-) create mode 100644 doc/_static/index_api.svg create mode 100644 doc/_static/index_contribute.svg create mode 100644 doc/_static/index_getting_started.svg create mode 100644 doc/_static/index_user_guide.svg create mode 100644 doc/gallery.yml create mode 100644 doc/team.yml create mode 100644 doc/videos.yml diff --git a/.gitignore b/.gitignore index 293e79fe806..21c18c17ff7 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,7 @@ xarray/tests/data/*.grib.*.idx Icon* .ipynb_checkpoints +doc/team-panel.txt +doc/external-examples-gallery.txt +doc/notebooks-examples-gallery.txt +doc/videos-gallery.txt diff --git a/ci/requirements/doc.yml b/ci/requirements/doc.yml index 4c4f5fe3025..437c493c92c 100644 --- a/ci/requirements/doc.yml +++ b/ci/requirements/doc.yml @@ -32,7 +32,7 @@ dependencies: - sphinx-autosummary-accessors - sphinx-book-theme >= 0.0.38 - sphinx-copybutton - - sphinx-panels + - sphinx-design - sphinx!=4.4.0 - zarr>=2.4 - pip: diff --git a/doc/_static/index_api.svg b/doc/_static/index_api.svg new file mode 100644 index 00000000000..87013d24ce3 --- /dev/null +++ b/doc/_static/index_api.svg @@ -0,0 +1,97 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/doc/_static/index_contribute.svg b/doc/_static/index_contribute.svg new file mode 100644 index 00000000000..399f1d7630b --- /dev/null +++ b/doc/_static/index_contribute.svg @@ -0,0 +1,76 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/doc/_static/index_getting_started.svg b/doc/_static/index_getting_started.svg new file mode 100644 index 00000000000..d1c7b08a2a1 --- /dev/null +++ b/doc/_static/index_getting_started.svg @@ -0,0 +1,66 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/_static/index_user_guide.svg b/doc/_static/index_user_guide.svg new file mode 100644 index 00000000000..bff2482423d --- /dev/null +++ b/doc/_static/index_user_guide.svg @@ -0,0 +1,67 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/doc/_static/style.css b/doc/_static/style.css index 833b11a83ab..3c21d7ac7c9 100644 --- a/doc/_static/style.css +++ b/doc/_static/style.css @@ -261,3 +261,13 @@ body { .bd-toc .nav > .active > ul { display: block; } + +/* Main index page overview cards */ + +.sd-card-img-top { + width: 33% !important; + display: block; + margin-left: auto; + margin-right: auto; + margin-top: 10px; +} diff --git a/doc/conf.py b/doc/conf.py index 8ce9efdce88..7e28953bc7f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -15,14 +15,21 @@ import datetime import inspect import os +import pathlib import subprocess import sys from contextlib import suppress +from textwrap import dedent, indent import sphinx_autosummary_accessors +import yaml +from sphinx.application import Sphinx +from sphinx.util import logging import xarray +LOGGER = logging.getLogger("conf") + allowed_failures = set() print("python exec:", sys.executable) @@ -60,6 +67,8 @@ ] ) +nbsphinx_allow_errors = True + # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. @@ -80,12 +89,13 @@ "nbsphinx", "sphinx_autosummary_accessors", "sphinx.ext.linkcode", - "sphinx_panels", "sphinxext.opengraph", "sphinx_copybutton", "sphinxext.rediraffe", + "sphinx_design", ] + extlinks = { "issue": ("https://github.com/pydata/xarray/issues/%s", "GH"), "pull": ("https://github.com/pydata/xarray/pull/%s", "PR"), @@ -186,7 +196,7 @@ # General information about the project. project = "xarray" -copyright = "2014-%s, xarray Developers" % datetime.datetime.now().year +copyright = f"2014-{datetime.datetime.now().year}, xarray Developers" # The short X.Y version. version = xarray.__version__.split("+")[0] @@ -383,5 +393,109 @@ def html_page_context(app, pagename, templatename, context, doctree): context["theme_use_edit_page_button"] = False -def setup(app): +def update_team(app: Sphinx): + """Update the team members list.""" + + LOGGER.info("Updating team members page...") + + team = yaml.safe_load(pathlib.Path(app.srcdir, "team.yml").read_bytes()) + items = [] + for member in team: + item = f""" + .. grid-item-card:: + :text-align: center + :link: https://github.com/{member['gh_login']} + + .. image:: {member['avatar']} + :alt: {member['name']} + +++ + {member['name']} + """ + items.append(item) + + items_md = indent(dedent("\n".join(items)), prefix=" ") + + markdown = f""" +.. grid:: 1 2 3 3 + :gutter: 2 + + {items_md} + """ + + pathlib.Path(app.srcdir, "team-panel.txt").write_text(markdown) + LOGGER.info("Team members page updated.") + + +def update_gallery(app: Sphinx): + """Update the gallery page.""" + + LOGGER.info("Updating gallery page...") + + gallery = yaml.safe_load(pathlib.Path(app.srcdir, "gallery.yml").read_bytes()) + + for key in gallery: + items = [ + f""" + .. grid-item-card:: + :text-align: center + :link: {item['path']} + + .. image:: {item['thumbnail']} + :alt: {item['title']} + +++ + {item['title']} + """ + for item in gallery[key] + ] + + items_md = indent(dedent("\n".join(items)), prefix=" ") + markdown = f""" +.. grid:: 1 2 2 2 + :gutter: 2 + + {items_md} + """ + pathlib.Path(app.srcdir, f"{key}-gallery.txt").write_text(markdown) + LOGGER.info(f"{key} gallery page updated.") + LOGGER.info("Gallery page updated.") + + +def update_videos(app: Sphinx): + """Update the videos page.""" + + LOGGER.info("Updating videos page...") + + videos = yaml.safe_load(pathlib.Path(app.srcdir, "videos.yml").read_bytes()) + + items = [] + for video in videos: + + authors = " | ".join(video["authors"]) + item = f""" +.. grid-item-card:: {" ".join(video["title"].split())} + :text-align: center + + .. raw:: html + + {video['src']} + +++ + {authors} + """ + items.append(item) + + items_md = indent(dedent("\n".join(items)), prefix=" ") + markdown = f""" +.. grid:: 1 2 2 2 + :gutter: 2 + + {items_md} + """ + pathlib.Path(app.srcdir, "videos-gallery.txt").write_text(markdown) + LOGGER.info("Videos page updated.") + + +def setup(app: Sphinx): app.connect("html-page-context", html_page_context) + app.connect("builder-inited", update_team) + app.connect("builder-inited", update_gallery) + app.connect("builder-inited", update_videos) diff --git a/doc/gallery.rst b/doc/gallery.rst index 22cf0c1c379..61ec45c7bda 100644 --- a/doc/gallery.rst +++ b/doc/gallery.rst @@ -10,75 +10,7 @@ Contributions are highly welcomed and appreciated. So, if you are interested in Notebook Examples ----------------- -.. panels:: - :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 - :card: +my-2 - :img-top-cls: w-75 m-auto p-2 - :body: d-none - - --- - :img-top: _static/thumbnails/toy-weather-data.png - ++++ - .. link-button:: examples/weather-data - :type: ref - :text: Toy weather data - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/monthly-means.png - ++++ - .. link-button:: examples/monthly-means - :type: ref - :text: Calculating Seasonal Averages from Timeseries of Monthly Means - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/area_weighted_temperature.png - ++++ - .. link-button:: examples/area_weighted_temperature - :type: ref - :text: Compare weighted and unweighted mean temperature - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/multidimensional-coords.png - ++++ - .. link-button:: examples/multidimensional-coords - :type: ref - :text: Working with Multidimensional Coordinates - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/visualization_gallery.png - ++++ - .. link-button:: examples/visualization_gallery - :type: ref - :text: Visualization Gallery - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/ROMS_ocean_model.png - ++++ - .. link-button:: examples/ROMS_ocean_model - :type: ref - :text: ROMS Ocean Model Example - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/thumbnails/ERA5-GRIB-example.png - ++++ - .. link-button:: examples/ERA5-GRIB-example - :type: ref - :text: GRIB Data Example - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/dataset-diagram-square-logo.png - ++++ - .. link-button:: examples/apply_ufunc_vectorize_1d - :type: ref - :text: Applying unvectorized functions with apply_ufunc - :classes: btn-outline-dark btn-block stretched-link +.. include:: notebooks-examples-gallery.txt .. toctree:: @@ -100,32 +32,4 @@ External Examples ----------------- -.. panels:: - :column: text-center col-lg-6 col-md-6 col-sm-12 col-xs-12 p-2 - :card: +my-2 - :img-top-cls: w-75 m-auto p-2 - :body: d-none - - --- - :img-top: _static/dataset-diagram-square-logo.png - ++++ - .. link-button:: https://corteva.github.io/rioxarray/stable/examples/examples.html - :type: url - :text: Managing raster data with rioxarray - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: https://avatars.githubusercontent.com/u/60833341?s=200&v=4 - ++++ - .. link-button:: https://gallery.pangeo.io/ - :type: url - :text: Xarray and dask on the cloud with Pangeo - :classes: btn-outline-dark btn-block stretched-link - - --- - :img-top: _static/dataset-diagram-square-logo.png - ++++ - .. link-button:: https://examples.dask.org/xarray.html - :type: url - :text: Xarray with Dask Arrays - :classes: btn-outline-dark btn-block stretched-link +.. include:: external-examples-gallery.txt diff --git a/doc/gallery.yml b/doc/gallery.yml new file mode 100644 index 00000000000..1f122eac378 --- /dev/null +++ b/doc/gallery.yml @@ -0,0 +1,45 @@ +notebooks-examples: + - title: Toy weather data + path: examples/weather-data + thumbnail: _static/thumbnails/toy-weather-data.png + + - title: Calculating Seasonal Averages from Timeseries of Monthly Means + path: examples/monthly-means + thumbnail: _static/thumbnails/monthly-means.png + + - title: Compare weighted and unweighted mean temperature + path: examples/area_weighted_temperature + thumbnail: _static/thumbnails/area_weighted_temperature.png + + - title: Working with Multidimensional Coordinates + path: examples/multidimensional-coords + thumbnail: _static/thumbnails/multidimensional-coords.png + + - title: Visualization Gallery + path: examples/visualization_gallery + thumbnail: _static/thumbnails/visualization_gallery.png + + - title: GRIB Data Example + path: examples/ERA5-GRIB-example + thumbnail: _static/thumbnails/ERA5-GRIB-example.png + + - title: Applying unvectorized functions with apply_ufunc + path: examples/apply_ufunc_vectorize_1d + thumbnail: _static/dataset-diagram-square-logo.png + +external-examples: + - title: Managing raster data with rioxarray + path: https://corteva.github.io/rioxarray/stable/examples/examples.html + thumbnail: _static/dataset-diagram-square-logo.png + + - title: Xarray and dask on the cloud with Pangeo + path: https://gallery.pangeo.io/ + thumbnail: https://avatars.githubusercontent.com/u/60833341?s=200&v=4 + + - title: Xarray with Dask Arrays + path: https://examples.dask.org/xarray.html_ + thumbnail: _static/dataset-diagram-square-logo.png + + - title: Project Pythia Foundations Book + path: https://foundations.projectpythia.org/core/xarray.html + thumbnail: https://raw.githubusercontent.com/ProjectPythia/projectpythia.github.io/main/portal/_static/images/logos/pythia_logo-blue-btext-twocolor.svg diff --git a/doc/index.rst b/doc/index.rst index c549c33aa62..973f4c2c6d1 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -1,27 +1,56 @@ -xarray: N-D labeled arrays and datasets in Python -================================================= +Xarray documentation +==================== -**xarray** (formerly **xray**) is an open source project and Python package -that makes working with labelled multi-dimensional arrays simple, +Xarray makes working with labelled multi-dimensional arrays in Python simple, efficient, and fun! -Xarray introduces labels in the form of dimensions, coordinates and -attributes on top of raw NumPy_-like arrays, which allows for a more -intuitive, more concise, and less error-prone developer experience. -The package includes a large and growing library of domain-agnostic functions -for advanced analytics and visualization with these data structures. +**Useful links**: +`Home `__ | +`Code Repository `__ | +`Issues `__ | +`Discussions `__ | +`Releases `__ | +`Stack Overflow `__ | +`Mailing List `__ | +`Blog `__ -Xarray is inspired by and borrows heavily from pandas_, the popular data -analysis package focused on labelled tabular data. -It is particularly tailored to working with netCDF_ files, which were the -source of xarray's data model, and integrates tightly with dask_ for parallel -computing. -.. _NumPy: https://www.numpy.org -.. _pandas: https://pandas.pydata.org -.. _dask: https://dask.org -.. _netCDF: https://www.unidata.ucar.edu/software/netcdf +.. grid:: 1 1 2 2 + :gutter: 2 + .. grid-item-card:: Getting started + :img-top: _static/index_getting_started.svg + :link: getting-started-guide/index + :link-type: doc + + New to *xarray*? Check out the getting started guides. They contain an + introduction to *Xarray's* main concepts and links to additional tutorials. + + .. grid-item-card:: User guide + :img-top: _static/index_user_guide.svg + :link: user-guide/index + :link-type: doc + + The user guide provides in-depth information on the + key concepts of Xarray with useful background information and explanation. + + .. grid-item-card:: API reference + :img-top: _static/index_api.svg + :link: api + :link-type: doc + + The reference guide contains a detailed description of the Xarray API. + The reference describes how the methods work and which parameters can + be used. It assumes that you have an understanding of the key concepts. + + .. grid-item-card:: Developer guide + :img-top: _static/index_contribute.svg + :link: contributing + :link-type: doc + + Saw a typo in the documentation? Want to improve existing functionalities? + The contributing guidelines will guide you through the process of improving + Xarray. .. toctree:: :maxdepth: 2 @@ -56,54 +85,3 @@ computing. GitHub discussions StackOverflow - - - - -Get in touch ------------- - -- If you have a question like "How do I concatenate a list of datasets?", ask on `GitHub discussions`_ or `StackOverflow`_. - Please include a self-contained reproducible example if possible. -- Report bugs, suggest features or view the source code `on GitHub`_. -- For less well defined questions or ideas, or to announce other projects of - interest to xarray users, use `GitHub discussions`_ or the `mailing list`_. - -.. _StackOverFlow: https://stackoverflow.com/questions/tagged/python-xarray -.. _Github discussions: https://github.com/pydata/xarray/discussions -.. _mailing list: https://groups.google.com/forum/#!forum/xarray -.. _on GitHub: https://github.com/pydata/xarray - -NumFOCUS --------- - -.. image:: _static/numfocus_logo.png - :scale: 50 % - :target: https://numfocus.org/ - -Xarray is a fiscally sponsored project of NumFOCUS_, a nonprofit dedicated -to supporting the open source scientific computing community. If you like -Xarray and want to support our mission, please consider making a donation_ -to support our efforts. - -.. _donation: https://numfocus.salsalabs.org/donate-to-xarray/ - - -History -------- - -Xarray is an evolution of an internal tool developed at `The Climate -Corporation`__. It was originally written by Climate Corp researchers Stephan -Hoyer, Alex Kleeman and Eugene Brevdo and was released as open source in -May 2014. The project was renamed from "xray" in January 2016. Xarray became a -fiscally sponsored project of NumFOCUS_ in August 2018. - -__ https://climate.com/ -.. _NumFOCUS: https://numfocus.org - -License -------- - -Xarray is available under the open source `Apache License`__. - -__ https://www.apache.org/licenses/LICENSE-2.0.html diff --git a/doc/team.rst b/doc/team.rst index 937d16627c7..ce0cb33c6ba 100644 --- a/doc/team.rst +++ b/doc/team.rst @@ -8,84 +8,7 @@ Xarray core developers are responsible for the ongoing organizational maintenanc The current core developers team comprises: -.. panels:: - :column: col-lg-4 col-md-4 col-sm-6 col-xs-12 p-2 - :card: text-center - - --- - .. image:: https://avatars.githubusercontent.com/u/1217238?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/shoyer,"Stephan Hoyer",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/1197350?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/rabernat,"Ryan Abernathey",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/2443309?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/jhamman,"Joe Hamman",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/4160723?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/benbovy,"Benoit Bovy",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/10050469?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/fmaussion,"Fabien Maussion",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6815844?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/fujiisoup,"Keisuke Fujii",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/5635139?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/max-sixty,"Maximilian Roos",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/2448579?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/dcherian,"Deepak Cherian",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6628425?v=4 - +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/spencerkclark,"Spencer Clark",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/35968931?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/TomNicholas,"Tom Nicholas",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/6213168?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/crusaderky,"Guido Imperiale",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/14808389?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/keewis,"Justus Magin",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/10194086?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/mathause,"Mathias Hauser",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/13301940?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/andersy005,"Anderson Banihirwe",cls=btn badge-light` - - --- - .. image:: https://avatars.githubusercontent.com/u/14371165?v=4 - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ - :link-badge:`https://github.com/Illviljan,"Jimmy Westling",cls=btn badge-light` +.. include:: team-panel.txt The full list of contributors is on our `GitHub Contributors Page `__. diff --git a/doc/team.yml b/doc/team.yml new file mode 100644 index 00000000000..56ccc457420 --- /dev/null +++ b/doc/team.yml @@ -0,0 +1,59 @@ +- name: Stephan Hoyer + gh_login: shoyer + avatar: https://avatars.githubusercontent.com/u/1217238?v=4 + +- name: Joe Hamman + gh_login: jhamman + avatar: https://avatars.githubusercontent.com/u/2443309?v=4 + +- name: Ryan Abernathey + gh_login: rabernat + avatar: https://avatars.githubusercontent.com/u/1197350?v=4 + +- name: Benoit Bovy + gh_login: genbovy + avatar: https://avatars.githubusercontent.com/u/4160723?v=4 + +- name: Fabien Maussion + gh_login: fmaussion + avatar: https://avatars.githubusercontent.com/u/10050469?v=4 + +- name: Keisuke Fujii + gh_login: fujiisoup + avatar: https://avatars.githubusercontent.com/u/6815844?v=4 + +- name: Maximilian Roos + gh_login: max-sixty + avatar: https://avatars.githubusercontent.com/u/5635139?v=4 + +- name: Deepak Cherian + gh_login: dcherian + avatar: https://avatars.githubusercontent.com/u/2448579?v=4 + +- name: Spencer Clark + gh_login: spencerkclark + avatar: https://avatars.githubusercontent.com/u/6628425?v=4 + +- name: Tom Nicholas + gh_login: TomNicholas + avatar: https://avatars.githubusercontent.com/u/35968931?v=4 + +- name: Guido Imperiale + gh_login: crusaderky + avatar: https://avatars.githubusercontent.com/u/6213168?v=4 + +- name: Justus Magin + gh_login: keewis + avatar: https://avatars.githubusercontent.com/u/14808389?v=4 + +- name: Mathias Hauser + gh_login: mathause + avatar: https://avatars.githubusercontent.com/u/10194086?v=4 + +- name: Anderson Banihirwe + gh_login: andersy005 + avatar: https://avatars.githubusercontent.com/u/13301940?v=4 + +- name: Jimmy Westling + gh_login: Illviljan + avatar: https://avatars.githubusercontent.com/u/14371165?v=4 diff --git a/doc/tutorials-and-videos.rst b/doc/tutorials-and-videos.rst index 37b8d1968eb..7a9e524340b 100644 --- a/doc/tutorials-and-videos.rst +++ b/doc/tutorials-and-videos.rst @@ -15,59 +15,8 @@ Tutorials Videos ------- -.. panels:: - :card: text-center +.. include:: videos-gallery.txt - --- - Xdev Python Tutorial Seminar Series 2022 Thinking with Xarray : High-level computation patterns | Deepak Cherian - ^^^ - .. raw:: html - - - - --- - Xdev Python Tutorial Seminar Series 2021 seminar introducing xarray (2 of 2) | Anderson Banihirwe - ^^^ - .. raw:: html - - - - --- - Xdev Python Tutorial Seminar Series 2021 seminar introducing xarray (1 of 2) | Anderson Banihirwe - ^^^ - .. raw:: html - - - - --- - Xarray's virtual tutorial | October 2020 | Anderson Banihirwe, Deepak Cherian, and Martin Durant - ^^^ - .. raw:: html - - - - --- - Xarray's Tutorial presented at the 2020 SciPy Conference | Joe Hamman, Ryan Abernathey, - Deepak Cherian, and Stephan Hoyer - ^^^ - .. raw:: html - - - - --- - Scipy 2015 talk introducing xarray to a general audience | Stephan Hoyer - ^^^ - .. raw:: html - - - - --- - 2015 Unidata Users Workshop talk and tutorial with (`with answers`_) introducing - xarray to users familiar with netCDF | Stephan Hoyer - ^^^ - .. raw:: html - - Books, Chapters and Articles ----------------------------- diff --git a/doc/videos.yml b/doc/videos.yml new file mode 100644 index 00000000000..62c89563a56 --- /dev/null +++ b/doc/videos.yml @@ -0,0 +1,38 @@ +- title: "Xdev Python Tutorial Seminar Series 2022 Thinking with Xarray : High-level computation patterns" + src: '' + authors: + - Deepak Cherian +- title: "Xdev Python Tutorial Seminar Series 2021 seminar introducing xarray (2 of 2)" + src: '' + authors: + - Anderson Banihirwe + +- title: "Xdev Python Tutorial Seminar Series 2021 seminar introducing xarray (1 of 2)" + src: '' + authors: + - Anderson Banihirwe + +- title: "Xarray's 2020 virtual tutorial" + src: '' + authors: + - Anderson Banihirwe + - Deepak Cherian + - Martin Durant + +- title: "Xarray's Tutorial presented at the 2020 SciPy Conference" + src: ' ' + authors: + - Joe Hamman + - Deepak Cherian + - Ryan Abernathey + - Stephan Hoyer + +- title: "Scipy 2015 talk introducing xarray to a general audience" + src: '' + authors: + - Stephan Hoyer + +- title: " 2015 Unidata Users Workshop talk and tutorial with (`with answers`_) introducing xarray to users familiar with netCDF" + src: '' + authors: + - Stephan Hoyer