diff --git a/.github/workflows/build-book-pullrequest.yaml b/.github/workflows/build-book-pullrequest.yaml index 461e2a6d1..d2d52a673 100644 --- a/.github/workflows/build-book-pullrequest.yaml +++ b/.github/workflows/build-book-pullrequest.yaml @@ -28,7 +28,7 @@ permissions: contents: read env: - DOCKER_TAG: pr_107 + DOCKER_TAG: pr_106 jobs: build-book: diff --git a/.github/workflows/build-book.yaml b/.github/workflows/build-book.yaml index c620ddc9d..2fea80eef 100644 --- a/.github/workflows/build-book.yaml +++ b/.github/workflows/build-book.yaml @@ -25,7 +25,7 @@ on: type: string # had a lot of trouble with boolean types, see https://github.com/actions/runner/issues/1483 env: - DOCKER_TAG: pr_107 + DOCKER_TAG: pr_106 jobs: build-container: diff --git a/binder/Dockerfile b/binder/Dockerfile index ce2f163d0..5b46d85d3 100644 --- a/binder/Dockerfile +++ b/binder/Dockerfile @@ -1 +1 @@ -FROM ghcr.io/openradar/erad2024:pr_107 +FROM ghcr.io/openradar/erad2024:pr_106 diff --git a/notebooks/Analysis-Ready/ARCO-Datasets.ipynb b/notebooks/Analysis-Ready/ARCO-Datasets.ipynb index 06e482cef..ab49fdce4 100644 --- a/notebooks/Analysis-Ready/ARCO-Datasets.ipynb +++ b/notebooks/Analysis-Ready/ARCO-Datasets.ipynb @@ -153,7 +153,7 @@ "source": [ "\"FAIR sharing of data is beneficial for both data producers and consumers. Consumers gain access to interesting datasets that would otherwise be out of reach. Producers get citations to their work, when consumers publish their derivative work. OME-Zarr is the technology basis for enabling effective FAIR sharing of large image datasets.\" [Zarr illustrations](https://github.com/zarr-developers/zarr-illustrations-falk-2022?tab=readme-ov-file)\n", "\n", - "\"Fair\"\n", + "\"Fair\"\n", "\n", "Courtesy: [Zarr illustrations](https://github.com/zarr-developers/zarr-illustrations-falk-2022?tab=readme-ov-file)" ] @@ -176,7 +176,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "\"zarr\"\n", + "\"zarr\"\n", "\n", "Courtesy: [Zarr illustrations](https://github.com/zarr-developers/zarr-illustrations-falk-2022?tab=readme-ov-file)" ] @@ -311,7 +311,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "This is store locally, but could be store in a Bucket on the cloud. Let's open it back using `Xarray.backends.api.open_datatree`" + "This is stored locally, but could be stored in a Bucket on the cloud. Let's open it back using `Xarray.backends.api.open_datatree`" ] }, { diff --git a/notebooks/Analysis-Ready/QPE-QVPs.ipynb b/notebooks/Analysis-Ready/QPE-QVPs.ipynb index cc1c46d1d..4881f9f0a 100644 --- a/notebooks/Analysis-Ready/QPE-QVPs.ipynb +++ b/notebooks/Analysis-Ready/QPE-QVPs.ipynb @@ -71,7 +71,8 @@ "| --- | --- | --- |\n", "| [Intro to Xarray](https://foundations.projectpythia.org/core/xarray.html) | Necessary | Basic features |\n", "| [Radar Cookbook](https://projectpythia.org/radar-cookbook/README.html) | Necessary | Radar basics |\n", - "|[Intro to Zarr](https://zarr.readthedocs.io/en/stable/tutorial.html)| Necessary | Zarr basics\n", + "|[Intro to Zarr](https://zarr.readthedocs.io/en/stable/tutorial.html)| Necessary | Zarr basics |\n", + "|[Intro to Hvplot](https://hvplot.holoviz.org/user_guide/Introduction.html)| Necessary | Interactive visualization basics |\n", "\n", "- **Time to learn**: 45 minutes" ] @@ -113,7 +114,8 @@ "import fsspec\n", "import numpy as np\n", "import hvplot.xarray\n", - "import matplotlib.pyplot as plt" + "import matplotlib.pyplot as plt\n", + "import holoviews as hv" ] }, { @@ -271,6 +273,36 @@ "display(dsc)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's use `hvplot.quadmesh` to create interactive plots" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set constant colorbar limits\n", + "ref_C = dsc.reflectivity.compute().hvplot.quadmesh(\n", + " x=\"x\",\n", + " y=\"y\",\n", + " groupby=\"volume_time\",\n", + " clim=(-10, 60),\n", + " cmap=\"ChaseSpectral\",\n", + " width=600,\n", + " height=500,\n", + " widget_type=\"scrubber\",\n", + " widget_location=\"bottom\",\n", + " rasterize=True,\n", + ")\n", + "\n", + "ref_C" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -314,6 +346,35 @@ "display(dsx)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Interactive plot using `hvplot.quadmesh`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set constant colorbar limits\n", + "ref_X = dsx.DBZ.compute().hvplot.quadmesh(\n", + " x=\"x\",\n", + " y=\"y\",\n", + " groupby=\"volume_time\",\n", + " clim=(-10, 60),\n", + " cmap=\"ChaseSpectral\",\n", + " width=600,\n", + " height=500,\n", + " widget_type=\"scrubber\",\n", + " widget_location=\"bottom\",\n", + " rasterize=True,\n", + ")\n", + "ref_X" + ] + }, { "cell_type": "markdown", "metadata": {},