Homework on AERMOD

[ Home | Homework | ]

Homework Assignments

Caution: Text in Red indicates assignments from 2 years ago.  Please ignore them.

Due by

14 Sep 2021
a) Read   Chapter 19 Pollutant Dispersion from Stull, 2017: Practical Meteorology.
b) Read the BC Primer on Air Quality  Modeling.  https://www2.gov.bc.ca/assets/gov/environment/air-land-water/air/reports-pub/primer-bc-aq-dispersion-modelling-guideline.pdf 
Be prepared to discuss Chapter 19 of Stull in class.
16 Sep
a) Read   Chapter 18 Atmospheric Boundary Layers from Stull, 2017: Practical Meteorology.
b) Skim the BC Modeling Guideline. 
Be prepared to discuss Chapter 18 of Stull in class.

21 Sep a) Read  Chapter 5 Atmospheric Stability from Stull, 2017: Practical Meteorology.
b) Reinforce your understanding by reading p1 37 from the BC MoE 2017 talk. 
Be prepared to determine static stability from an atmospheric sounding, in class.  We will also learn more about Gaussian plumes in class.
23 Sep
# Gaussian Plume - simple
# R. Stull, 8 Feb 2016, Modified 4 Jul 2018.

# Givens ==============
# meteorology
m = 20.          # wind speed (m/s)
zi = 2000.       # mixed layer depth (m)
sigma_v = 1.3    # lateral velocity variance (m/s)
sigma_w = 1.02   # vertical velocity variance (m/s)
tl = 60.         # Lagrangian time scale (s)

# plume
zcl = 150.       # plume centerline height (m)
q = 300.         # emission rate (g/s)

# domain, assuming origin (x, y, z) = (0,0,0) is a base of smoke stack
xmax = 10000.    # x downwind domain size for x = 0 to xmax (m)
ymax = 500.     # y crosswind domain size for y = -ymax to +ymax (m)
zmax = 500.     # z vertical domain size for z = 0 to zmax (m)

# spatial resolution for calculations of concentration
delx = 200.      # x increment (m) 
dely = 20.       # y increment (m)
delz = 20.       # z increment(m)

# Assignment ==============
# Create contour plots of concentration (µg/m^3)
# using Stull eq.(19.20) with eqs. (19.13) within the domain for:
# a) horizontal (x,y) slice at earth's surface (z = 0)
# b) horizontal (x,y) slice at height of plume centerline (z = zcl).
# c) vertical along-wind (x,z) slice of thru plume centerline (y = 0)
# d) vertical crosswind (y,z) slice at a downwind distance x
# from the stack of

xslice = 3000.   # x-location of crosswind (y,z) slice (m)

# Hints:
# Use any computer language; e.g., R, MatLab, python, fortran, excel. (I used R.)
# Use a contour interval of 20 µg/m^3.
# Check that your answer to part (a) is similar to the sample
# application
(Solved Example) in Stull p734 before you do the
# other parts.
(It won't be exactly equal, because of different
# inputs in this HW assignment.)
# Turn in your contour plots AND your code.
# Please have your name on everything you turn in.
This is a chance for you to learn about the simplest dispersion model - - the Gaussian plume model.  It is useful for short range (< 50 km) near-source dispersion calculations for statically neutral or statically stable conditions. 

You can write your code in any language; e.g., R, MatLab, python, fortran, excel, etc.

(Note, although the assignment description at left is written using syntax for the R language, you may use any computer language you want.  In R, the # symbol denotes the start of a comment.)

28 Sep in-class
Install AERMOD on your computer, and run the test case.  See details at https://www.eoas.ubc.ca/courses/atsc507/ADM/aermod/index.html
Install AERMET on your computer, and run the test case.  See details at https://www.eoas.ubc.ca/courses/atsc507/ADM/aermod/index.html .
We will do this in class on 28 Sep, so you might not need to do anything else for this HW.
5 Oct

Install AERMAP on your computer, and run test case. See details at https://www.eoas.ubc.ca/courses/atsc507/ADM/aermod/index.html .

 Present a section of the AERMOD Model Formulation material to the class.

a) Look over the EPA AERMOD home page 
b) Model Formulation and Evaluation Document (PDF) 2021. 

Use the Slack chat space to communicate with me and other students to decide who wants to present which section, so that there are no duplicate presentations.  One topic per student. Your topic choices are:
  1. Energy Balance. p 11-13.
  2. Derived Parameters in Convective Boundary Layer (CBL). p14-16 (top parag.).
  3. Derived Parameters in the Stable Boundary Layer (SBL). p16-21.
  4. Mixing height. p21 - 24.
  5. Vertical, lateral, and mechanical turbulence. p25-38.
  6. Vertical inhomogeneity in the boundary layer. p39-43
  7. General structure of AERMOD including terrain. p44-50.
  8. Concentration predictions in the CBL. p51-59.
  9. Gaussian plume eqs for direct and indirect sources in CBL. p60-63.
  10. Gaussian plume in SBL including meander.  p63-66.
  11. Estimation of sigma_y and sigma_z. p67-75.
You don't need to prepare any powerpoint slides.  Just be prepared to show the appropriate pages from the AERMOD Model Formulation manual as you explain your section to the class.  If you don't understand every part of the section you present, that is OK - - we can discuss it together during class.

7 Oct

Finish student presentations (see above).

Everyone, please go to the Hysplit page and register.  It is free, but there could be a week delay between when you register and when you have access to the hysplit source code.    So by starting now, you will be ready for the hysplit lessons in a couple weeks. 


Also, Stull will lecture on:

  • Plume rise theory
  • Lagrangian particle dispersion (in preparation for hysplit) 

12 Oct

Stull continues lecture on Lagrangian particle dispersion.

Turn in your results and code for the following exercise:

# Deardorff Plume Dispersion in Unstable PBL
# R. Stull, 13 Feb 2016

# Re-read Stull (2017) Practical Meteorology, pages 735-738.

# Givens ==============
# meteorology
g_by_tv = 0.0333       # g/Tv approx. constant  (m s^-2 K^-1)
mycase = c("Morning", "Mid-day")   # To identify each case
m = c(2., 5.)          # wind speed (m/s)  in (morning , mid-day)
zi = c(100., 1000.)    # mixed layer depth (m) in (morning , mid-day)
FH = c(0.05, 0.2)      # effective surface kinematic heat flux (K m/s) in (morning , mid-day)

# plume
zs = 75.         # source height of pollutants after plume rise (m)
q = 300.         # emission rate (g/s)
xmax_d = 6.      # dimensionless max distance X downwind, for Deardorff's calculations
ymax_d = 3.      # dimensionless max crosswind range, for Y within +- ymax_d.

# Assignment ==============
# Use any computer language; e.g., R, matlab, python, fortran, excel.    (I used R.)

# (A) Plot the dimensionless Zcl vs. X curves (analogous to Stull Fig. 19.7), with separate curves
# for the two cases (morning, midday).
# Hint: Increment X between 0 and 6 (using very small delta-X at small X,
# and larger deltz-X as X gets larger),
# and apply to eq. (19.32).  Use 0 ≤ Z ≤ 1 for the range of dimensionless heights.

# (B) Find and plot the dimensionless cross-wind integrated concentration contours
# (similar to Stull Fig. 19.8),
# but for dimensionless release heights corresponding to the two cases (morning , mid-day),
# for dimensionless ranges:  0 ≤ X ≤ 6  and 0 ≤ Z ≤ 1 .

# (C) Plot a graph of dimensionless Cy vs. X, at Y=0 , Z =0, with separate curves
# for each of the two cases. 
# Namely, this is the dimensionless crosswind integrated concentration at the ground,
# under the plume centerline,
# vs. dimensionless downwind distance X.  Confirm that these curves agree with the
# contour plots from (B).
# for 0 ≤ X ≤ 6  and 0 ≤ Cy ≤ 4 .

# (D) Create contour plots of the dimensionless concentration C at the earth's surface (Z = 0), for
# a surface map spanning the following region: dimensionless coordinates of 0 ≤ X ≤ 6 and -3 ≤ Y ≤ 3 ,
# using a separate plot for each case (morning, midday).
# Plot the concentration isopleths for dimensionless C values of
#  levels = c( seq(0.05, 0.35, 0.05) , seq(0.4, 2.0, 0.2), seq(3, 10, 1) ),
# Note: this has nothing to do with exercise (D), but it can be built on your
# results for exercise (B).

# (E) Same as D, but plot contours for actual concentrations c (mg/m3) vs. actual distances x (m) and y (m).
# Hints: Your plot domain could be  for 0 ≤ x ≤ 3,000 m , and  -1500 ≤ y ≤ 1500 m .
# You can draw the concentration contours for the following values:
# c (mg/m3) = 0.05, 0.1, 0.2,  0.3, 0.5,  1.0 , 2.0 , 3.0 , 5.0 , 10.0 , 15.0, 20.0 , 30.0

# (F) Plot a graph of actual ground-level (z=0) centerline (y=0) concentration c (mg/m3) as a function
# of actual distance x (m) downwind, for 0 ≤ x ≤ 3,000 m,
# for concentrations in the range  0 ≤ c ≤ 20. (mg/m3).
# On the one graph, use separate curves for each case (morning, midday), but with the same x axis. 
# Namely, this is similar exercise (C), but with real values instead of dimensionless values. 
# Check that these curves agree with your figures from exercise (E).

# (G) Discuss:
#   (1) Why does C or c decrease seemingly monotonically with increasing distance X or x
# downwind of the first maximum, even though
# the crosswind-integrated concentrations Cy of exercises (B) or (C) seem to show
# a secondary relative minimum at distances of roughly X = 1.5 to 2.5 (dimensionless)
# with a secondary relative maximum beyond that ?
#   (2) Why do the morning and mid-day cases give the max concentrations at roughly the same
# real x (m) location downwind, even though the cross-wind integrated
# concentrations for the mid-day case
# bring the high concentrations down to the surface much sooner than for the morning case?
#   (3) For exercise (E) for the morning case, if you plotted the domains as I
# specified in the exercises,
then why do the contour lines seem to be cut off
#  before extending their full width from the centerline?
#   (4) Given your contour plots from exercise (E), what is the primary advantage of using this
# convective dispersion method (i.e., Deardorff, as approximated by Stull) over using a traditional
# Gaussian plume? 

# Check your answers and discuss the significance. 
# Turn in your code and the contour plots.

This is a chance for you to learn about dispersion in a convective (statically unstable) boundary layer - - also known as a mixed layer.  It uses the discoveries by Deardoff and Willis, as parameterized by me in my Practical Meteorology book. 

Read and follow the instructions in the order given - - it will gently lead you towards a better understanding of dispersion in a convective pbl.

You can write your code in any language; e.g., R, MatLab, python, fortran, excel, etc.

14 Oct Continue working on the AERMOD run, due by the next class meeting (see below).  Note, you can work as a team and submit one report from the whole team.
19 Oct
Due today is your run of AERMOD (and AIRMET and AIRMAP if needed) for a somewhat actual case:

Battle River Generating Station
Alberta, Canada
about 150 km southeast of Edmonton, AB.

power plant

Stack C (Unit 5)
height of stack-top above ground: 161 m
diameter of stack: 5.8 m
fuel: coal
SO2 emission rate:  22,961 tonnes/year

Run your AERMOD for one year only.  (You can pick the year, based on data availability.)

Upper air data: Edmonton Stony Plain. 
Need to use only the morning (12 UTC) soundings. 
Select "Mandatory AND Significant Levels".
Station identifier: WSE
  • WMO Station number: 71119
  • Observation time: 180714/0000
  • Station latitude: 53.53
  • Station longitude: -114.10
  • Station elevation above sea level (m): 766.0
Source of upper air data:  https://ruc.noaa.gov/raobs/

Surface weather data. Nearby weather stations are: Coronation, or Red Deer, or Edmonton, AB.
Note: if you are unable to find a surface data archive in the correct format for a Canadian station near Battle River, then for the purpose of this learning-exercise, use  Havre City-County Airport (KHVR) in Havre, Montana, USA.  It is roughly the same distance east of the Rocky Mtns ad Battle River. 
Lat: 48.54278°NLon: 109.76333°WElev: 2589ft. , and pretend it is at Battle River.  WMO Id: 72777. 

For roughness length, albedo, and Bowen ratio, use Google Maps street view to see the local surface near the power plant.   (Hint you can see the smokestacks in the distance from the road, if you look in the right direction.)  In your submitted report, justify your choice of these 3 variables.

For tips on doing this, see the AERMOD implementation guide. https://www3.epa.gov/ttn/scram/models/aermod/aermod_implementation_guide.pdf

But for this learning-exercise, pretend the surrounding terrain is flat, and that all receptors are at the same elevation as the base of the smokestack.

Put receptors on a cartesian grid, with 2 km grid spacing extending 50 km from the smokestack in each of the main compass directions (north, east, south, west).

In addition to turning in the AERMOD output, please create a 1-page summary/overview report, and indicate which receptor locations (if any) exceed the Canadian air-quality standards for SO2. 

(Please see me if you need additional info or have questions for this exercise.)

Bring your computers to class today, as Tim Chui will show us how to install hysplit.

Other Info

[ Home | Homework | ]

Copyright © 2016, 2018, 2021 by Roland Stull.