What is Atmospheric Computer Science?

If you’re a meteorology major or graduate student, you probably know the feeling of sitting in a computer lab or your office for hours…and hours…and hours…trying to get your code to compile or plot something.  Then all of a sudden the terminal starts flashing MATH. DOMAIN. ERROR. MATH. DOMAIN. ERROR.  Oh, sorry, am I doing that projection thing again?  Thanks Shawn!  Anyway, maybe it’s for a class, maybe it’s for a research project, maybe it’s because you enjoy it, or maybe it’s because you revel in self-torture, but you still have to do it.

Let’s face it:  light tables, DIFAX charts, and computer punch cards are things of the distant past.  In fact, half the people reading this probably have never even heard of at least one of those.  So instead, atmospheric science has gone the other way:  If you don’t know how to write code, you will probably struggle with something at some point: a course, a degree, a job, a research project.  This has led me to semi-jokingly call our field Atmospheric Computer Science.  That’s supposed to be funny, why aren’t you laughing?  Right okay moving on, let’s explore how we got here and what we do about it.

How’d we get here? 

The short answer:  It’s what many employers and graduate schools now demand.  In 2008, John Knox, a professor of Atmospheric Science at the University of Georgia published an article in the Bulletin of the American Meteorological Society (BAMS) that detailed enrollment trends in U.S. undergraduate atmospheric science/meteorology programs, and the reasons for such.   The article is almost a decade old, but many of Knox’s conclusions still hold.  The line graph below (taken from Knox’s article) shows a dramatic increase in undergraduate meteorology enrollments since the 1970s.  Generally, that trend has continued, although fewer ROTC scholarships being available has hurt to some extent.


So what’s the problem?  More Atmo majors is a great thing, right?  Yay, friends!  Not entirely.  While the number of undergraduates has increased, the number of jobs has at best remained steady (albeit changed form), and has at worst declined.  In fact, even in the mid-2000s, Knox (2008) estimated that increased number of undergraduate atmospheric science majors were choosing to go to graduate school (see Knox’s Table 3 below).  While the specific reasons for this are somewhat unclear, one reason is likely the various National Weather Service (NWS) hiring freezes during the past decade.  Students used to go to college to be a meteorologist to primarily either be a forecaster or a broadcaster, and that has dramatically changed.  In turn, how undergraduate curricula are structured has also changed.

TABLE 3 (from Knox 2008). Career choices of bachelor’s degree recipients in meteorology from the 2000 Curricula and the current online Curricula. Boldfaced numbers indicate the largest single career choice for each time period.
Period of record No. of graduates included Civilian government Military service Private sector Further university education University employment Other Unknown
1997–99 711 9.99% 9.85% 28.69% 19.83% 0.56% 4.36% 26.72%
2003–05 624 7.69% 10.10% 18.59% 29.33% 0.48% 6.09% 27.72%

All of this isn’t to say many of these changes aren’t for the better. Graduates of undergraduate atmospheric science programs are now employable by many different sectors beyond government: energy, insurance, private forecasting, media, and emergency management, just to name a few.  But the changes in employment types and job requirements along with the increased number of students attending graduate school have changed the way all Atmo (undergraduate and graduate) programs approach computer programming.

Where exactly are we? 

John Horel, a professor of Atmospheric Science at the University of Utah, and his coauthors wrote an interesting article in BAMS in 2013 regarding refining undergraduate meteorology curricula for the 21st century, both in terms of student and industry needs.  Here’s what they had to say on the topic of computer programming (a key phrase that I discuss later is in bold):

“We recognize now a clear deficiency in the level of computer programming instruction offered to our undergraduates and some graduate students.  We expect that would be best handled within the department since our computer science department has diminished substantively course offerings relevant to scientific computing.  However, the course content needs to be considered carefully given the breadth of computing needs and approaches in our field: for example, spreadsheet programs; mathematical and statistical toolboxes such as Matlab or IDL; and parallelized Fortran codes. The exploding use of Python in the atmospheric sciences provides an exciting new approach to introduce students to programming concepts.”

Okay, a few things here.  First, Professor Horel is correct; many undergraduate programs ARE deficient in the number of applied computer programming classes they offer in-house.  Second, many computer science (CS) programs either don’t teach the languages that are most prevalent in atmospheric science or teach them in a way that’s not very useful to a young meteorologist.

Back in the stone age at the turn of the millennium, I had to take two programming courses during undergrad.  One was Java (I know I know), which was barely (if ever) used in meteorology and even more uselessly taught by the CS department.  The other was FORTRAN (I know I know) for meteorology, taught by an actual meteorologist.  I didn’t particularly like or retain any Java unless it’s of the coffee variety (what foresight!), but I liked FORTRAN for meteorology so much that I aced it and later TA’d it twice.  I liked it because a) it was taught by someone I could relate to and b) had us solving problems we could relate to, even when we ended up with a MATH. DOMAIN. ERROR.

In my experience, there are five types of Atmo student responses to computer programming:

  • I really enjoy this and it’s pretty easy!
  • It may take me a while, but I can do this and look at my nice plots!
  • I absolutely cannot do this, this sucks.
  • Why am I even here? I should have been a marine biologist.
  • I just want to go look at the 12Z Euro snow maps, they plot them for me in 12674 colors for only $19.99 a month!

Sound familiar?  While students who give the first two responses may thrive, everyone else is either going to dislike the professor, their classmates, themselves, or all of the above.

Where do we go from here? 

Computer programming in atmospheric science isn’t going anywhere anytime soon.  Maybe someday our friendly neighborhood R2D2 will do it for us, but for now it’s just the dinosaurs like me and the students who don’t like doing it who will keep complaining about it.  But there ARE things that universities, faculty, research advisors, students, and the atmospheric science community as a whole can do to make it easier.

Here are my four cents worth of suggestions, which you will unfortunately have to return at the end so I can afford my ivory tower rent:

  • Stop making students take CS classes beyond introductory programming structure and things like that. Students are motivated by solving problems that they feel engaged in.  Programming Jimmy the robot to take two steps in Tetris V9.34 isn’t that problem.
  • Invest in developing and offering more programming for meteorology courses, taught by meteorology instructors. Python, FORTRAN, GrADS, NCL, all of the above.  Get students engaged by making them feel like they are developing skills they may actually need to use someday to earn cash money.
  • Have more patience.   Students learn to program at their own pace.  Most will get there.  Provide examples, tutors, TAs, any sort of support system that makes students feel like even if they get stuck, there is an out.  And for the love of do loops, stop making students feel stupid when they struggle.  I can’t program my way out of a paper bag (I’m actually in one right now), and many people are saying I do alright for myself.
  • Encourage students to participate in short-courses at conferences. For example, at the AMS Annual Meeting, day-long Python short-courses are offered regularly.  This can also help develop that aforementioned support system.

Programming is hard.  Most of us now have to do a lot of it.  Once we realize both those things are true, maybe it will all become just a little bit easier.

Shawn Milrad is an avid GEMPAK fan and dinosaur who chases blue sky.  He is an Assistant Professor of Meteorology at Embry-Riddle Aeronautical University Daytona Beach in his spare time.  He can be reached at milrads@erau.edu or http://www.shawnmilrad.com


Horel, J. D., D. Ziegenfuss, and K. D. Perry, 2013: Transforming an atmospheric science curriculum to meet students’ needs. Bull. Amer. Meteor. Soc.94, 475–484, doi:10.1175/BAMS-D-12-00115.1

Knox, J., 2008: Recent and future trends in U.S. undergraduate meteorology enrollments, degree recipients, and employment opportunities. Bull. Amer. Meteor. Soc.89, 873–883