View on GitHub

ats641_spring2023

repository for ATS 641 at CSU in spring 2023

Lab assignment 1

Due Friday, February 3

For lab assignment 1, we’ll be using python, and in particular MetPy, developed by Unidata, to produce maps and other graphics. The first step, if you haven’t done this before, will be to install python, and then ultimately install MetPy and related packages.

Installing python via mambaforge

First, let’s install the mambaforge 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.) Following the instructions, which are based on those in the Unidata python workshop, but modified to use Mambaforge 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. (People tried to sell them on me and I resisted for a long time, but once I started using them, now it’s my favorite way to test out new code.)

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 1800 UTC 3 January 2023 over the eastern part of the US. 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_spring2023/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_spring2023/blob/main/lab1/metar_20230103_1800.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 Allie 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_spring2023/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.

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