\n",
"\n",
"- Extension of `xr.open_dataset()` and `xr.open_mfdataset()` with post-processing options\n",
@@ -322,8 +372,8 @@
"- Generate missing bounds, center time coords, convert lon axis orientation\n",
"- Geospatial weighted averaging\n",
"- Temporal averaging, climatologies, departures\n",
- "- Horizontal structured regridding (extension of xESMF and Python port of regrid2)\n",
- "- Vertical structured regridding (extension of xgcm)\n",
+ "- Horizontal regridding (extension of `xesmf` and Python port of `regrid2`)\n",
+ "- Vertical regridding (extension of `xgcm`)\n",
"\n",
"
\n",
"
\n",
@@ -571,12 +621,10 @@
"\n",
"#### Accessors classes include:\n",
"\n",
- "- `spatial`\n",
- " - `.average()`, `.get_weights()`\n",
- "- `temporal`\n",
- " - `.average()`, `.group_average()`, `.climatology()`, `.depatures()`\n",
- "- `bounds`\n",
- " - `.get_bounds()`, `.add_bounds()`, `.add_missing_bounds()`\n"
+ "- `spatial` -- `.average()`, `.get_weights()`\n",
+ "- `temporal` -- `.average()`, `.group_average()`, `.climatology()`, `.depatures()`\n",
+ "- `regridding` -- `horizontal()`, `vertical()`\n",
+ "- `bounds` -- `.get_bounds()`, `.add_bounds()`, `.add_missing_bounds()`\n"
]
},
{
@@ -612,8 +660,7 @@
"\n",
"### Overview\n",
"\n",
- "This exercise will walkthrough using `xcdat` to perform computation and analysis\n",
- "on E3SM v2 CMIP6 data.\n",
+ "Use `xcdat` to perform computation and analysis on CMIP6 data from the E3SM v2 model.\n",
"\n",
"### Sections\n",
"\n",
@@ -622,8 +669,7 @@
"3. Horizontal Regridding\n",
"4. Vertical Regridding\n",
"5. Spatial Averaging\n",
- "6. Temporal Computations\n",
- "7. General Dataset Utilities\n"
+ "6. Temporal Computations"
]
},
{
@@ -731,23 +777,19 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "-"
+ "slide_type": "notes"
}
},
"source": [
- "We will be analyzing E3SM v2 CMIP6 monthly near-sea surface air temperature (`tas`) data from 2000 to 2014.\n"
+ "- Use `xc.open_dataset()` to a single netCDF dataset as an `xr.Dataset` object.\n",
+ "- API Documentation: https://xcdat.readthedocs.io/en/stable/generated/xcdat.open_dataset.html\n"
]
},
{
"cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "notes"
- }
- },
+ "metadata": {},
"source": [
- "- Use `xc.open_dataset()` to a single netCDF dataset as an `xr.Dataset` object.\n",
- "- API Documentation: https://xcdat.readthedocs.io/en/stable/generated/xcdat.open_dataset.html\n"
+ "Analyzing monthly `tas` (near-sea surface air temperature) data from 2000 to 2014."
]
},
{
@@ -4781,7 +4823,10 @@
"source": [
"#### Calculate the near-surface air temperature (`tas`) in the Niño 3.4 region.\n",
"\n",
- "Users can also specify their own bounds for a region.\n"
+ "Users can also specify their own bounds for a region. In this case, we specified `keep_weights=True`.\n",
+ "\n",
+ "- The weights provide full spatial weighting for grid cells entirely within the Niño 3.4 region.\n",
+ "- Partial weights for grid cells partially in the region."
]
},
{
@@ -4799,25 +4844,6 @@
").compute()"
]
},
- {
- "cell_type": "markdown",
- "metadata": {
- "slideshow": {
- "slide_type": "-"
- }
- },
- "source": [
- "In this case, we specified `keep_weights=True`.\n",
- "\n",
- "- The weights provide full spatial weighting for grid cells entirely within the Niño 3.4 region.\n",
- "- Partial weights for grid cells partially in the region.\n",
- "\n",
- "Other notes:\n",
- "\n",
- "- We use the 4 x 4 degree grid in this example to show the partial weights and to speed up plotting.\n",
- "- You can also supply your own weights, but you can't automatically subset with `lat_bounds` and `lon_bounds` if you supply your own weights\n"
- ]
- },
{
"cell_type": "markdown",
"metadata": {
@@ -5018,7 +5044,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "fragment"
+ "slide_type": "subslide"
}
},
"source": [
@@ -5051,7 +5077,7 @@
"source": [
"ds_global_anomaly = ds_global.temporal.departures(\n",
" \"tas\", freq=\"month\", reference_period=(\"2000-01-01\", \"2009-12-31\")\n",
- ")"
+ ") "
]
},
{
@@ -5116,7 +5142,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"source": [
@@ -5131,7 +5157,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "-"
+ "slide_type": "skip"
}
},
"source": [
@@ -5145,7 +5171,7 @@
"execution_count": 25,
"metadata": {
"slideshow": {
- "slide_type": "-"
+ "slide_type": "skip"
}
},
"outputs": [],
@@ -5157,7 +5183,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"source": [
@@ -5169,7 +5195,7 @@
"execution_count": 26,
"metadata": {
"slideshow": {
- "slide_type": "-"
+ "slide_type": "skip"
}
},
"outputs": [
@@ -5215,7 +5241,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"source": [
@@ -5235,7 +5261,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"source": [
@@ -5262,7 +5288,7 @@
"metadata": {
"cell_style": "split",
"slideshow": {
- "slide_type": "-"
+ "slide_type": "skip"
}
},
"outputs": [
@@ -5284,7 +5310,7 @@
"metadata": {
"cell_style": "split",
"slideshow": {
- "slide_type": "-"
+ "slide_type": "skip"
}
},
"outputs": [
@@ -5306,7 +5332,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"source": [
@@ -5322,7 +5348,7 @@
"cell_type": "markdown",
"metadata": {
"slideshow": {
- "slide_type": "notes"
+ "slide_type": "skip"
}
},
"source": [
@@ -5334,7 +5360,7 @@
"execution_count": 30,
"metadata": {
"slideshow": {
- "slide_type": "fragment"
+ "slide_type": "skip"
}
},
"outputs": [
@@ -5361,7 +5387,7 @@
"execution_count": 31,
"metadata": {
"slideshow": {
- "slide_type": "subslide"
+ "slide_type": "skip"
}
},
"outputs": [
@@ -6265,8 +6291,7 @@
"\n",
"- Parallel computing with Dask (xCDAT): https://xcdat.readthedocs.io/en/latest/examples/parallel-computing-with-dask.html\n",
"- Parallel computing with Dask (Xarray): https://docs.xarray.dev/en/stable/user-guide/dask.html\n",
- "- Xarray with Dask Arrays: https://examples.dask.org/xarray.html\n",
- "\n"
+ "- Xarray with Dask Arrays: https://examples.dask.org/xarray.html\n"
]
},
{
@@ -6323,11 +6348,11 @@
"source": [
"
\n",
"
\n",
- "
Recap of Key Points
\n",
+ "
Key takeaways
\n",
"
\n",
"\n",
- "- xCDAT is an **extension of Xarray for climate data analysis on structured grids**, a modern successor to the Community Data Analysis Tools (CDAT) library\n",
- "- **Focused on routine climate research analysis operations** including loading, wrangling, averaging, such as temporal averaging, spatial averaging, and regridding\n",
+ "- xCDAT is an **extension of Xarray for climate data analysis on structured grids**\n",
+ "- Focused on routine **climate research analysis operations** \n",
"- Designed to encourages **software sustainability and reproducible science**\n",
"- **Parallelizable** through Xarray’s support for Dask, which enables efficient processing of large datasets\n"
]