View on GitHub

ats641_spring2025

repository for ATS 641 at CSU in spring 2025

Lab assignment 1

Due Friday, February 7

For lab assignment 1, we’ll be using various python tools that are useful for analyzing and visualizing weather data, including MetPy, developed by NSF Unidata. The first step, if you haven’t done this before, will be to install python, and then ultimately install MetPy and related packages.

Note on python installation

For some of the things we will do in class with python, you could quite easily use Google’s Colab to run the needed python code and notebooks. This could save you some time initially if you don’t have a lot of python experience or run into trouble. However, for activities later in the semester, it’ll likely be a lot easier to have it installed on your computer, because we’ll be dealing with larger files that aren’t saved in the cloud, etc. So I’d recommend following the install steps below, but will leave that choice up to you as to what you think will work best for your own preferences and computing situation.

Installing python via miniforge

First, let’s install the miniforge version of python. (If you already have miniconda/anaconda/mamba installed on the computer you want to use, you can skip this step and go to the assignment. Though you may still want to create a new conda environment for the class.) Following the instructions, which are based on those in the Unidata python workshop, but modified to use Miniforge/mamba instead, which is much faster:

Windows

Mac/Linux

Setting up your environment

Now we will set up an environment with the packages we need to have installed. Here is a link to an environment file that we’ll use for the class (adapted from Unidata’s workshop materials): environment.yml file

To set up this environment, follow these steps:

Opening and running a jupyter notebook

There are different ways you can run and interact with python, but a great way to get started is with Jupyter notebooks. They allow for you to write and test your code in a really user-friendly way.

Lab 1 assignment

Now, we’re going to use some of these approaches to plot a surface weather map to analyze in multiple ways. For those of you with a lot of meteorological background, some of this may seem simple, but we want to make sure everyone’s on the same page before moving on to more complicated analyses.

Surface map

We’ll start by plotting a surface map from 0000 UTC 18 January 2025 over eastern North America. I’ve provided an example notebook that you can use for this (adapted from a MetPy example; you can right-click and save from this link): https://github.com/russ-schumacher/ats641_spring2025/blob/main/lab1/Station_Plot.ipynb. You’ll also need the file with all of the surface observations (in METAR format, which MetPy nicely decodes), here: https://github.com/russ-schumacher/ats641_spring2025/blob/main/lab1/metar_20250118_0000.txt.

Go through the steps in the notebook to get your surface map. Print it out, or if you have a tablet with a pencil you could do the analysis that way too. (If you don’t have easy access to a color printer, let Russ or Jacob know.)

Analyze the map given the guidelines below. For this analysis, focus on the synoptic-scale features by keeping your contours fairly smooth.

In a couple sentences, describe the key features of the weather pattern that were revealed from your surface analysis.

MetPy automated analysis

Manual analysis is a valuable way to get a real “feel” for the data in a given weather situation, but it also can be time consuming. A wide variety of methods for automating the analysis of weather data have been developed over the years, with varying complexity. MetPy has some of these methods built in. We’ll use one of those methods here to analyze the same data that you analyzed by hand above.

Another example notebook, modified from a MetPy example, is at https://github.com/russ-schumacher/ats641_spring2025/blob/main/lab1/METAR_data_interpolation_dist.ipynb This will plot the same surface map as before, but will also analyze the pressure and temperature and plot them on the map. Go through this notebook to get the map.

Are there any noticeable/relevant/interesting differences between your hand analysis and this analysis?

You might not like how this map looks, so spend some time making a nicer-looking version of this analysis. The MetPy notebook that my example was based on (linked near the top) provides some ideas, but feel free to experiment with your own style.

GFS analysis

Finally, we can see how the analysis of solely surface observations compares to an operational forecast system with sophisticated data assimilation. Here, we’ll use NOAA’s GFS (but you could replicate this with other modeling systems if you want). In the same notebook above, steps are included to acquire the needed data using a magical tool called Herbie. Plot surface map(s) from the GFS following similar steps to what you used above.

Are there any noticeable/relevant/interesting differences between your hand analysis and the GFS analysis? What about between the interpolation method and the GFS? Discuss the strengths and weaknesses of each method, at least as far as you can determine from this single case.

When you turn in your write-up, include your hand-analyzed map, the initial map with the automated analysis, and your “final product” maps (hard copy and/or electronic versions are fine).