Visualizing the Boundary Layer using IDV: My Unidata Internship Experience

Hassanpreet Dhaliwal
Hassanpreet Dhaliwal

I started my summer internship with the goals of understanding software development and improving my coding practices to feel confident writing reproducible and sharable code. My time at Unidata not only gave me a structure for writing sharable pieces of software, but also helped me in exploring data manipulation and visualization practices to their full creative extent.

Primarily, I worked on retrieving and visualizing the planetary boundary layer (PBL) values from trajectory sounding type data using Unidata’s Integrated Data Viewer (IDV). IDV is a Java-based, freely available 3D visualization and analysis tool which can be used to view and analyze a rich set of geoscience data; it was created by Unidata for the benefit of atmospheric science students, educators, researchers, aviation, and weather forecasters. In addition to this, I also worked on developing PBL functions in Python.

Boundary Layer visualization
Boundary layer visualization (click to enlarge)

The boundary layer is a critical interface trading mass, energy, and momentum between the surface and free troposphere via turbulence. It ranges from a few hundred to thousands of meters above the ground. The real time retrieval of PBL will greatly benefit education, weather and air quality forecasting, and the aviation industry, especially the pilots since the physical shape of PBL can cause dramatic changes in lift and drag of the aircraft. The PBL depths are often retrieved via rawinsonde data in the lower atmosphere, since the high-frequency measurements to resolve the turbulent scale are not widely available. The PBL retrieved through the temperature gradient method (TGRD) is often marked with a potential temperature inversion (Θ) and moisture lapse (q). It can also be identified as the top of turbulence adjacent to the surface and found using the critical bulk Richardson number (Ri).

PBL depth
PBL depth

To create these visualizations, I devised code in Python that takes a pandas dataframe of any sounding type data, i.e., the vertical profile of atmospheric variables. Using all the required parameters like potential temperature and altitude for the TGRD method, and additional wind magnitude and direction information for Ri yields the height of PBL as per the boundary layer physics.

While developing PBL retrieval functions, I learned a lot about writing clean and concise code with descriptions. My mentors at Unidata were always available when I got stuck at an error and helped me improve my coding practices with detailed code reviews. The brainstorming sessions on the subtleties and limitations of analyzing and visualizing different kinds of data like the gridded and trajectory datasets, along with acquiring specific meteorological data, helped me gain some of the most important skills I acquired over this summer. I spent a large chunk of my time figuring out different services like the AWS, ncdump, Dask, etc. and learned how to work with large number of netCDF files.

From the weekly professional development workshops, to trekking in Boulder's Flatirons, to learning productive lifelong skills as an atmospheric scientist, I had a lot of fun spending my summer in Boulder and working with Unidata. I did a lot of of things these past two months. Some of them ended up in my internship deliverables while others helped me understand where to look for the requisite data and how to make my research practices more efficient. To sum up my summer at UCAR, the journey has been at least as educational as reaching the destination.

Comments:

Post a Comment:
Comments are closed for this entry.
Unidata Developer's Blog
A weblog about software development by Unidata developers*
Unidata Developer's Blog
A weblog about software development by Unidata developers*

Welcome

FAQs

News@Unidata blog

Take a poll!

What if we had an ongoing user poll in here?

Browse By Topic
Browse by Topic
« December 2024
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    
       
Today