Weatherwarriors.weebly.com



Meteo 473 Team ReportMilestone 3Team Members: Michael Priante (mjp5600@psu.edu), Matt Brown (mib5333@psu.edu) Zach Wolff (zsw5019@psu.edu), Jacob Spivey (jvs5819@psu.edu)Team Name: Weather WarriorsTeam Number: 4Milestone Leader: Michael PrianteProgram Information: the previous milestone, we simply displayed the in situ data from the Wyoming King Air Research (in addition to mapping the flight path). In Milestone 3, we paired this in situ data with remote sensing data from Wyoming King Air Research to develop time-height plots of radar and lidar data.This particular milestone uses four classes in total, two which were written specifically for this milestone, and two were taken from our library of classes from previous milestone. Let us first review the functionality of our old classes.The first of these is Get_Variable. Get_Variable is a class which opens the file and takes out a specified variable. In the case of this milestone, Get_Variable is used to access the time and altitude of the associated with the radar and lidar instruments (giving us our initial time-height reference frame), and then the various variables (reflectivity, velocity, QC variables) that are plotted within this reference frame as a continuous color map.The other class which we are taking from our library of classes is Save_Figure, which we renamed “Save” in this milestone. This class automatically saves the plots to whatever formats are specified by the drive program, allowing the user to access the specified plots after the code is run. In this particular milestone, we had our drive program instruct the class to save the plots in PNG, Postscript, and PDF formats. Now that we have reviewed our old classes, let us examine our two new classes. The first of these classes is RadarLidar, which reads the filename(s) and saving method specified by the driver program, and uses this information to create time-height plots of radar and lidar data. In order to delineate which filename(s) correspond to radar and lidar, a function called FileTypePlot essentially “searches” through the filename(s) for the phrases “WCR” and “WCL”. In doing so, it only pulls from WCR files to create plots of radar data (and same goes for WCL and lidar data). After identifying the route which the file information is being directed, the function specifies which time-height plots are to be generated with the WCR and WCL data using WCR_Plot and WCL_Plot, respectively. The function WCR_Plot then retrieves the WCR variables using Get_Variable and generates two graphs from the WCR data, a time-height plot of radar reflectivity and a time-height plot of Doppler velocity, displaying both to the user. Then the function WCL_Plot retrieves the WCL variables using WCL_Plot using Get_Variable and generates a four-panel display containing time-height plots of two variables, as well as two useful quantities derived from these variables. The variables plotted are the 10log10 of CopolHiPower and CrossHiPower (both associated with backscattering detected by lidar), which represents lidar reflectivity. From these quantities we derive and plot both lidar depolarization (CrossHiPower divided by CopolHiPower) and the difference between CopolHiPower and CrossHiPower, both of which are important with respect to OWLeS project and lake-effect snow storms, because it can tell us about the size and concentration of snow and ice crystals throughout the atmosphere. After each of the plots described above are displayed, Save automatically saves these plots to the formats specified in the drive program. The second of our “new” classes is QC_Plots. Similar to RadarLidar, this class starts with a function which makes sure the WCR files are being used to generate radar plots (and the same with WCL and lidar plots), which is called QC_File_Type. This function also specifies which QC variables are to be plotted for WCR and WCL. The function WCR_Mask uses Get_Variable to access the WCR QC variable, WCR Mask. It then generates a time-series chart of this variable, displays it to the user, and saves it to the formats specified by the drive program using Save. The function WCL_QC goes through nearly the same process, except it plots time-series for two different QC variables, pitch and roll. Two components of our time-height graphs bear mentioning. The first is our adjustment to time, seen in our code as “ddays” and “dhours”. This calculation converts the time variable we access from ‘seconds since 1970’ to ‘seconds from the beginning of the day the flight started recording said variable’. This makes the time variable more readily understandable to the user, as well as keeps the time axes on our time-height plots from getting crowded with excessively long time values. The other component is the function we used to actually generate our time-height plots, ‘pcolormesh’. This function is a form of the basic function ‘pcolor’ found in matplotlib.pyplot. Though this function takes a little longer to generate and display plots (and thus, those plots take slightly longer to save), there are advantages to using ‘pcolormesh’ over other faster plotting methods such as ‘imshow’ and ‘matshow’. We will go into detail about these advantages below in our explanation of glory tasks.Glory-Task Explanations:Object Oriented Program- We wrote well-organized and classes to accomplish the tasks of the milestone. This included the use of two classes from previous milestones, which demonstrates the power, versatility, and usefulness of the classes that we have been writing. Saving Function-We adapted a class from one of our previous milestones (which demonstrates, once again, the versatility and usefulness of our classes) in order to automatically save the plots being generated by the other classes into whatever formats the drive program instructed them to. Depolarization and CopolHiPower and CrossHiPower difference-We used the lidar data (CopolHiPower and CrossHiPower) to derive two other quantities which are particularly useful for the atmospheric phenomena being studied in the OWLes Project by Wyoming King Air Research, lake-effect snow storms. As explained before, these derived quantities will be useful in our next milestone, as they can tell us about the size and concentration of snow and ice crystals (and any particles or hydrometers, for that matter) throughout the atmosphere. In addition to deriving these important quantities, we plotted them in the same figure as the WCL Copol High and Cross High Reflectivity using subplots, in order for the user to recognize relationships between these four graphs. pcolormesh-We used pcolormesh because of unique the way in which generates and displays plots. Whereas plotting functions such as imshow assume that all data elements being fed into the functions are ”meant to rendered at the same size”, pcolormesh uses quadrilateral meshes, meaning that the data elements are treated as “rectangular elements whose size may vary over the rectangular grid”.This can often lead to a higher quality of interpolation of data with pcolormesh as opposed imshow, whose interpolation settings would have to be adjusted to match the characteristics of pcolormesh. Additionally, the imshow displays plots with the y-axis inverted, causing more work for the coder to alter image to get it into a usable form, and can also crash if the user tries to zoom in too much on the plots it generates. Luckily, pcolormesh has neither of those problems, providing a high quality and easily-navigable image to the user. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download