From 10f059e95727da6c153ef23c662578fba6bbcd01 Mon Sep 17 00:00:00 2001 From: Scott Henderson Date: Thu, 27 Jun 2024 11:45:45 -0700 Subject: [PATCH] Finalize scipy2024 schedule (#278) * banner and toc link * fix banner css and index links * streamline --- _config.yml | 3 +- _static/announcement.css | 4 -- _static/style.css | 3 + _toc.yml | 9 +-- overview/get-started.md | 52 ++++++++------- workshops/online-tutorial-series/README.md | 2 +- workshops/scipy2024/README.md | 76 ---------------------- workshops/scipy2024/index.ipynb | 66 ++++++++++++++----- workshops/thinking-like-xarray/README.md | 2 +- 9 files changed, 93 insertions(+), 124 deletions(-) delete mode 100644 _static/announcement.css create mode 100644 _static/style.css delete mode 100644 workshops/scipy2024/README.md diff --git a/_config.yml b/_config.yml index 41049415..d77f58ec 100644 --- a/_config.yml +++ b/_config.yml @@ -8,7 +8,8 @@ only_build_toc_files: true # See https://jupyterbook.org/customize/config.html#add-a-link-to-your-repository html: # NOTE: this announcement shows up on all pages - #announcement: 'ℹ️ SciPy Tutorial Attendees. Click here .' + announcement: 'The Xarray 2024 User Survey is live. Please take ~5 minutes to fill it out and help us improve Xarray.' + #announcement: 'ℹ️ SciPy 2024 Tutorial Attendees. Click here .' home_page_in_navbar: false use_edit_page_button: true use_issues_button: true diff --git a/_static/announcement.css b/_static/announcement.css deleted file mode 100644 index 5331eb00..00000000 --- a/_static/announcement.css +++ /dev/null @@ -1,4 +0,0 @@ -div.header-item.announcement { - background-color: lightblue; - color: #000; -} diff --git a/_static/style.css b/_static/style.css new file mode 100644 index 00000000..b1024666 --- /dev/null +++ b/_static/style.css @@ -0,0 +1,3 @@ +.bd-header-announcement { + background-color: var(--pst-color-info-bg); +} diff --git a/_toc.yml b/_toc.yml index aa80237a..0708f673 100644 --- a/_toc.yml +++ b/_toc.yml @@ -78,15 +78,16 @@ parts: - caption: Workshops chapters: + - file: workshops/scipy2024/index.ipynb - file: workshops/scipy2023/README - - file: workshops/oceanhackweek2020/README - sections: - - url: https://tutorial.xarray.dev/overview/xarray-in-45-min - title: Xarray in 45 minutes - file: workshops/thinking-like-xarray/README sections: - url: https://tutorial.xarray.dev/intermediate/01-high-level-computation-patterns title: High-level computation patterns + - file: workshops/oceanhackweek2020/README + sections: + - url: https://tutorial.xarray.dev/overview/xarray-in-45-min + title: Xarray in 45 minutes - file: workshops/online-tutorial-series/README sections: - file: workshops/online-tutorial-series/01_xarray_fundamentals diff --git a/overview/get-started.md b/overview/get-started.md index fc4ca2be..ba33045d 100644 --- a/overview/get-started.md +++ b/overview/get-started.md @@ -4,18 +4,44 @@ # Get Started -Most of the tutorial content here is written as Jupyter Notebooks that mix +## Organization + +Tutorials are approximately divided into sections with increasing levels of complexity: `Fundamentals`, `Intermediate`, `Advanced`. You'll also find content specific to various `Workshops` hosted over the years, often with accompanying video recordings of instructors going over content and answering questions that come up. + +Most of the tutorial content is written as Jupyter Notebooks that mix code, text, visualization, and exercises. You can either browse rendered versions of these notebooks on this website, or _execute_ the code examples interactively. -You have two options for executing notebooks: +Many notebooks use special formatting ([Myst Markdown](https://mystmd.org/guide/quickstart-jupyter-lab-myst)) that renders best in a JupyterLab web interface. If you are new to JupyterLab, spend some time reviewing the [documentation and videos](https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html). + +## Run code interactively + +### On the Cloud -**1. On the Cloud:** Clicking [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/HEAD?labpath=overview/fundamental-path/index.ipynb) will load a pre-configured Jupyter Lab interface with _all_ tutorial notebooks for you to run. _You have minimal computing resources and any changes you make will not be saved._ Any page with executable content also has a {octicon}`rocket;2em` icon in the upper right that will launch an interactive session for that particular page. +The easiest way to start modifying and experimenting with tutorial content is to launch a pre-configured server on the Cloud. This is easy thanks to several free resources which offer ephemeral computing instances (be aware you may loose your connection or work at any time) + +#### Mybinder.org + +Clicking [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/xarray-contrib/xarray-tutorial/HEAD) will load a pre-configured Jupyter Lab interface with _all_ tutorial notebooks for you to run. _You have minimal computing resources and any changes you make will not be saved._ Any page with executable content also has a {octicon}`rocket;2em` icon in the upper right that will launch an interactive session for that particular page. ```{warning} Be patient, it can take a few minutes for a server to become available on the Cloud (Mybinder.org)! ``` -**1. On your computer:** Running tutorials on your computer requires some setup: +#### GitHub Codespaces + +This tutorial is available to run within [GitHub Codespaces](https://github.com/features/codespaces) - a preconfigured development environment running in Microsoft Azure. + +[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new/xarray-contrib/xarray-tutorial) + +☝️ Click the button above to go to options window to launch a GitHub codespace. + +You can choose from a selection of virtual machine types: 2 cores - 8 GB RAM should be sufficient for all code examples in this repository. +Additionally, you are able to chose from various configurations for specific workshops (such as Scipy2024). +GitHub currently gives every user [120 vCPU hours per month for free](https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts), beyond that you must pay. **So be sure to explicitly stop your codespace when you are done by going to this page (https://github.com/codespaces).** You can also chose to fully delete your codespace when you're done exploring tutorial content. + +### On your computer + +Running tutorials on your computer requires some setup: We recommend using [`conda-lock`](https://conda.github.io/conda-lock/) to ensure a fully reproducible Python environment @@ -29,21 +55,3 @@ conda-lock install conda/conda-lock.yml --name xarray-tutorial conda activate xarray-tutorial jupyter lab ``` - -## Organization - -Tutorials are approximately divided into sections with increasing levels of complexity: `Fundamentals`, `Intermediate`, `Advanced`. You'll also find content specific to various `Workshops` hosted over the years, often with accompanying video recordings of instructors going over content and answering questions that come up. - -## Jupyter Lab - -JupyterLab is a next-generation web-based user interface for Project Jupyter. If you are new to this interface, spend some time reviewing the [documentation and videos](https://jupyterlab.readthedocs.io/en/stable/getting_started/overview.html). - -## Jupyter Notebooks - -If you haven't used the Jupyter Notebooks before, the quick intro is - -1. There are two modes: command and edit -1. From command mode, press Enter to edit a cell (like this markdown cell) -1. From edit mode, press Esc to change to command mode -1. Press shift+enter to execute a cell and move to the next cell. -1. The toolbar has commands for executing, converting, and creating cells. diff --git a/workshops/online-tutorial-series/README.md b/workshops/online-tutorial-series/README.md index 01ebafaa..e777722c 100644 --- a/workshops/online-tutorial-series/README.md +++ b/workshops/online-tutorial-series/README.md @@ -1,4 +1,4 @@ -# Xarray Online Tutorial +# Xarray Online Tutorial 2020 Presented October 6 2020 by: diff --git a/workshops/scipy2024/README.md b/workshops/scipy2024/README.md deleted file mode 100644 index ee025838..00000000 --- a/workshops/scipy2024/README.md +++ /dev/null @@ -1,76 +0,0 @@ -# SciPy 2024 - -## Xarray: Friendly, Interactive, and Scalable Scientific Data Analysis - -Organized by: - -- Scott Henderson (Univ. Washington) -- Jessica Scheick (Univ. New Hampshire) -- Negin Sobhani (National Center for Atmospheric Research) -- Tom Nicholas [C]worthy -- Max Jones (CarbonPlan) -- Wietze Suijker (Space Intelligence) - -## Learning Goals - -- Learn how to leverage Xarray’s powerful backend and extension capabilities to customize workflows and open a variety of scientific datasets -- Effectively use Xarray’s multidimensional indexing operations -- Understand how Xarray can wrap other array types in the scientific Python ecosystem -- Understand how to apply custom functions to Xarray data structures -- Orient yourself to Xarray resources to continue on your Xarray journey! - -## Outline - -These are links to rendered webpages if you'd just like to read. Further down this page is an 'Instructions' section that explains how to spin up an interactive computing environment. - -```{dropdown} Introduction -{doc}`../../overview/get-started` - -{doc}`../../fundamentals/02.1_indexing_Basic` - -TODO: Domain-agnositic data model, backends/engines -``` - -```{dropdown} Indexing and Computation -{doc}`../../intermediate/indexing/advanced-indexing` - -{doc}`../../intermediate/01-high-level-computation-patterns` - -{doc}`../../intermediate/xarray_and_dask` -``` - -```{dropdown} Extending & Customizing Xarray -{doc}`../../advanced/01_accessor_examples.ipynb` - -{doc}`../../advanced/1.Backend_without_Lazy_Loading.ipynb -``` - -```{dropdown} Synthesis -TODO: A Guided 'bring-your-own data exercise -``` - -## Instructions - -### Running Locally - -See instructions to set up the environment for running the tutorial material [here](get-started). - -### Github Codespaces - -This tutorial is available to run within [Github Codespaces](https://github.com/features/codespaces) - "a development environment that's hosted in the cloud" - with the conda environment specification in the [`conda-lock.yml`](../../conda/conda-lock.yml) file. - -[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new/xarray-contrib/xarray-tutorial/tree/main?devcontainer_path=.devcontainer%2Fscipy2023%2Fdevcontainer.json) - -☝️ Click the button above to go to options window to launch a Github codespace. - -A codespace is a development environment that's hosted in the cloud. -You can choose from a selection of virtual machine types: 2 cores - 4 GB RAM - 32 GB storage, and 4 cores - 8 GB RAM - 32GB storage. -Additionally, you are able to chose from various Dev container configuration, for this specific workshop, please ensure that `Scipy2024` is selected. -GitHub currently gives every user [120 vCPU hours per month for free](https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts), beyond that you must pay. **So be sure to explicitly stop or shut down your codespace when you are done by going to this page (https://github.com/codespaces).** - -Once your codespace is launched, the following happens: - -- [Visual Studio Code](https://code.visualstudio.com/) Interface will open up within your browser. -- A built in terminal will open and it will execute `jupyter lab` automatically. -- Once you see a url to click within the terminal, simply `cmd + click` the given url. -- This will open up another tab in your browser, leading to a [Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) Interface. diff --git a/workshops/scipy2024/index.ipynb b/workshops/scipy2024/index.ipynb index e626e17d..da1822ce 100644 --- a/workshops/scipy2024/index.ipynb +++ b/workshops/scipy2024/index.ipynb @@ -5,18 +5,26 @@ "id": "0", "metadata": {}, "source": [ - "\n", + "# SciPy 2024\n", "\n", + "## Welcome to the Xarray SciPy 2024 Tutorial! \n", "\n", - "# Welcome to the Xarray SciPy 2024 Tutorial! \n", + "\n", "\n", "**Xarray**: *Friendly, Interactive, and Scalable Scientific Data Analysis*\n", "\n", "July 8, 13:30–17:30 (US/Pacific), Room 317\n", "\n", - "This *4-hour* workshop will explore content from [the Xarray tutorial](https://tutorial.xarray.dev), which contains a comprehensive collection of hands-on tutorial Jupyter Notebooks. We won't cover it all today, but instead will review a curated set of examples that will prepare you for increasingly complex real-world data analysis tasks!\n", + "This *4-hour* workshop will explore content from [the Xarray tutorial](https://tutorial.xarray.dev), which contains a comprehensive collection of hands-on tutorial Jupyter Notebooks. We will review a curated set of examples that will prepare you for increasingly complex real-world data analysis tasks!\n", "\n", - "## *Draft* Schedule \n", + ":::{admonition} Learning Goals\n", + "- Orient yourself to Xarray resources to continue on your Xarray journey!\n", + "- Effectively use Xarray’s multidimensional indexing and computational patterns\n", + "- Understand how Xarray can wrap other array types in the scientific Python ecosystem\n", + "- Learn how to leverage Xarray’s powerful backend and extension capabilities to customize workflows and open a variety of scientific datasets\n", + ":::\n", + "\n", + "## Schedule \n", "\n", "*Times in US/Pacific Timezone (Tacoma, WA)\n", "\n", @@ -27,24 +35,52 @@ "| Introduction and Setup | 1:30 (10 min) | --- | \n", "| Xarray Data Model, Backends, Extensions | 1:40 (40 min) | [Quick Introduction to Indexing](../../fundamentals/02.1_indexing_Basic.ipynb)
[Boolean Indexing & Masking](../../intermediate/indexing/boolean-masking-indexing.ipynb) | \n", "| *10 minute Break* \n", - "| Computational Patterns | 2:30 (50 min) | [Computation Patterns](../../intermediate/01-high-level-computation-patterns.ipynb) | \n", + "| Computational Patterns | 2:30 (50 min) | [Advanced Indexing](../../intermediate/indexing/advanced-indexing.ipynb)
[Computation Patterns](../../intermediate/01-high-level-computation-patterns.ipynb)
| \n", "| *10 minute Break* | \n", - "| Wrapping other arrays | 3:30 (50 min) | [Xarray and Dask](../../intermediate/xarray_and_dask.ipynb) | \n", + "| Wrapping other arrays | 3:30 (50 min) | [The Xarray Ecosystem](../../intermediate/xarray_ecosystem.ipynb)
[Accessors](../../advanced/accessors/01_accessor_examples.ipynb)
[Backends](../../advanced/backends/1.Backend_without_Lazy_Loading.ipynb)
| \n", "| *10 minute Break* | \n", - "| Synthesis, Explore your data! | 4:30 (30 min)


5:00 (30 min) | Apply what you've learned, let's work together with your own data |\n", - "| | **End 5:30** | |\n", + "| Synthesis, Explore your data! | 4:30 (50 min)
| [Data Tidying](../../intermediate/data_cleaning/05.1_intro.md)
|\n", + "| | End 5:30 | |\n", + "\n", + "\n", + "### Tutorial Setup\n", + "\n", + "We recommend using a preconfigured GitHub Codespace for this tutorial. This section describes how to access and manage a GitHub Codespace.\n", + "\n", + ":::{note}\n", + "If you prefer to work on your own computer, refer to instructions in the [Getting Started Section](../../overview/get-started.md)\n", + ":::\n", + "\n", + "This tutorial is available to run within [Github Codespaces](https://github.com/features/codespaces) - \"a development environment that's hosted in the cloud\" - with the conda environment specification in the [`conda-lock.yml`](../../conda/conda-lock.yml) file.\n", + "\n", + "[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://github.com/codespaces/new/xarray-contrib/xarray-tutorial/tree/main?devcontainer_path=.devcontainer%2Fscipy2024%2Fdevcontainer.json)\n", + "\n", + "☝️ Click the button above to go to options window to launch a Github Codespace.\n", + "\n", + "GitHub currently gives every user [120 vCPU-hours per month for free](https://docs.github.com/en/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces#monthly-included-storage-and-core-hours-for-personal-accounts), beyond that you must pay. **So be sure to explicitly stop your Codespace when you are done by going to this page (https://github.com/codespaces).**\n", + "\n", + "Once your Codespace is launched, the following happens:\n", + "\n", + "- [Visual Studio Code](https://code.visualstudio.com/) Interface will open up within your browser.\n", + "- A built in terminal will open and it will execute `jupyter lab` automatically.\n", + "- Once you see a url to click within the terminal, simply `cmd + click` the given url.\n", + "- This will open up another tab in your browser, leading to a [Jupyter Lab](https://jupyterlab.readthedocs.io/en/latest/) Interface.\n", + "\n", "\n", "\n", "## Thanks for attending!\n", "\n", - "Please continue to explore the subfolders in the JupyterLab File Browser for additional tutorial notebooks to run, or read the rendered notebooks at [https://tutorial.xarray.dev](https://tutorial.xarray.dev)" + "Please continue to explore the subfolders in the JupyterLab File Browser for additional tutorial notebooks to run, or read the rendered notebooks at [https://tutorial.xarray.dev](https://tutorial.xarray.dev)\n", + "\n", + "### SciPy 2024 Organized by:\n", + "\n", + "- Scott Henderson (Univ. Washington)\n", + "- Jessica Scheick (Univ. New Hampshire)\n", + "- Negin Sobhani (National Center for Atmospheric Research)\n", + "- Tom Nicholas [C]worthy\n", + "- Max Jones (CarbonPlan)\n", + "- Wietze Suijker (Space Intelligence)" ] - }, - { - "cell_type": "markdown", - "id": "1", - "metadata": {}, - "source": [] } ], "metadata": { diff --git a/workshops/thinking-like-xarray/README.md b/workshops/thinking-like-xarray/README.md index 7b26493e..3d9fdc70 100644 --- a/workshops/thinking-like-xarray/README.md +++ b/workshops/thinking-like-xarray/README.md @@ -1,4 +1,4 @@ -# Thinking like Xarray +# Thinking like Xarray 2022 Presented March 2022 for the [NCAR Python Seminar Series](https://ncar.github.io/esds/posts/2022/Thinking-with-Xarray/) by Deepak Cheerian