# Resources¶

## Complete list of training notebooks¶

### Data Access¶

**python-awips: How to Access Data**

This notebook covers the relevant methods for accessing EDEX and investigating what data is available. For this example we look at the “grid” data type and investigate the Global Forecast System (GFS) model. We will talk quite a bit about the DataAccessLayer utility, and its online documentation might be a helpful reference.**Pandas and Numpy (csv data)**

This notebook uses pandas and numpy to read and manipulate data from a csv file.**Siphon (catalogs basic)**

This notebook covers the basics for using the library Siphon to interact with THREDDS Catalogs. Topics covered include reading remote THREDDS Catalogs, moving from one catalog to another, and interacting with THREDDS Catalog Datasets.**Siphon (catalog filtering)**

This notebook provides tips and tricks for filtering datasets contained within a THREDDS Catalog based on time when the dataset names include date and time information.**Siphon (remote_open)**

This notebook demonstrates the Siphon`remote_open`

function, which opens a TDS Catalog remote dataset for random access, and provides examples of interacting with the returned file-like object.**Siphon (remote_access)**

This notebook covers opening, inspecting, subsetting, and plotting a TDS dataset using Siphon’s`remote_access`

method.**Siphon (subset)**

This notebook demonstrates how to use Siphon to subset and download data using the NetcdfSubset service (NCSS). NCSS supports coordinate-based subsetting, i.e. selecting data by latitude, longitude, time, etc.**Xarray Data Access**

This notebook demonstrates how to access local NetCDF and GRIB files and remote OPeNDAP files with xarray, as well as briefly how to connect NetCDF data loaded from Siphon into xarray.

### Data Analysis¶

**Numpy (basics)**

This notebook highlights pythonic programing with numpy arrays as opposed to lists.**Pandas (basics)**

This notebook is an introduction to time series analysis and plotting using pandas.**Indexing with xarray**

This notebook discusses the various methods for indexing and selecting subsets of data in xarray.**Interpolation and regridding with xarray**

This notebook discusses interpolating and regridding data in xarray and the companion package xesmf.**Xarray aggregation operations**

This notebook demonstrates how to easily apply aggregation operations (mean, sum, variance, etc.) to data in xarray objects.**Calculations in xarray**

This notebook describes calculations other than aggregations that can be easily performed with xarray data (including some verification metrics from xskillscore)**Unit-aware operations (Pint)**

This notebook is an introduction to unit support in MetPy via Pint.**MetPy (basic calculations)**

This notebook provides a basic introduction to meteorological calculations using MetPy.**MetPy and Soundings: Calculations**

This notebook demonstrates how MetPy can be used to compute common sounding derived parameters, such as the Lifting Condensation Level, convective available potential energy (CAPE), and convective inhibition (CIN).**MetPy with xarray**

MetPy provides a fair number of helpful utilities to make working with gridded atmospheric science datasets easier in xarray (in the areas of coordinates/coordinate reference systems, units, and calculations). This notebook also acts as a big-picture introduction to using xarray, with directions to the more focused xarray notebooks where applicable, so this might be the best one to start out with among the xarray notebooks!

### Meteorological Background Material¶

**Isentropic Analysis**

Provides a basic description and example of Isentropic analysis techniques.

### Visualization¶

**Cartopy (basic)**

This notebook covers the basic of Cartopy, a package which is useful for creating maps. Examples of creating a basic map, adding map features, and plotting data are covered in this notebook. The Cartopy Example Gallery would be another useful resource for users.

**Declarative Plotting**

This notebook provides an overview on how to use the declarative syntax within MetPy to create satellite, surface, upper-air, and model data maps. MetPy’s METAR parsing functionality is also utilized in this tutorial, along with data smoothing methods. Another useful resource for those interested in learning more about the declarative syntax is the declarative tutorial on MetPy’s website**Matplotlib: Basics**

This notebook covers the basics of how to use matplotlib.pyplot. It describes the two main parts of the plot: the figure and axes. The notebook walks through how to create simple line and scatter plots, how to modify the axes and titles, how to draw multiple data sets on the same graph, and how to alter the display settings for the data.**Matplotlib: Intermediate**

This notebook builds upon the Matplotlib: Basics notebook and details how to create more complicated plots. It starts by describing how to draw multiple plots in one figure. It also covers the scatter function and how it can be used to control the colorization of individual scatter points. Finally, the notebook gives an introduction to imshow, contour, and contourf and how they can be used to visualize data.**MetPy SkewT**

This notebook demonstrates how to download archived sounding data from the University of Wyoming sounding archive. It then demonstrates how to plot that sounding data on a skew-T diagram using MetPy and add an inset hodograph to that diagram.**python-awips: Working with the Maps and Topography Databases**

This notebook covers how to use the AWIPS Maps Database to access GIS objects, which are returned as Shapely geometries (Polygon, Point, MultiLineString, etc.) and can be easily plotted by Matplotlib, Cartopy, MetPy, and other packages. It shows how to use maps and topo data types to obtain GIS data from the AWIPS databases. Finally, it walks through the steps of plotting data to create a very informative map of a County Warning Area.**python-awips: Working with Models**

This notebook creates a colorized plot for the continental US of model data (GRIB). It explains how to access the model data from an EDEX server and limit the data returned by using model specific parameters. The notebook covers how to use both pcolormesh and contourf to create colorized plots, and compare the differences between the two.**python-awips: Working with Satellite Data**

This notebook investigates what satellite data is available from an EDEX server. It describes how to define map properties in a function that can be used to plot multiple images. It then walks through how to retrieve Mesoscale GOES satellite grid data from an EDEX server. Finally, it uses matplotlib pcolormesh to plot the colorized images with a colorbar.**python-awips: Working with Surface Obs**

This notebook creates a colored temperature plot for North America using AWIPS METAR observations (datatype*obs*), similar to existing products in GEMPAK and CAVE. We will be accessing the data through an EDEX server and limiting what’s returned based geographic extend, and specific parameters we’re interested in. We’ll also be creating a color mapping and colorizing the surface data based on our mapping. Finally we use matplotlib to plot and display the output.**python-awips: Working with Upper Air Obs**

This notebook shows how to retrieve upper air vertical profile data from EDEX server. It uses EDEX to get the pressure, temperature, dewpoint lines and wind profile data for the Upper Air observation. Finally, it describes how to plot a Skew-T/Log-P plot with Hodograph using Matplotlib and MetPy.

### Notebook Enhancements¶

**Notebook widgets**

This notebook explores various interactive Jupyter Widgets and how they might be used to create dynamic visualizations and user interaction in a Jupyter Notebook.

## Links to other various Python resources¶

**Unidata MetPy Monday YouTube Playlist**

A weekly video series showing how to use MetPy or other Python libraries to solve problems relevant to geoscience applications.**Unidata Python Training**

The Unidata Python Training site is meant to be a one-stop website for learning how to use Python for earth-science education and research for any experience level.