Unidata Developer's BlogUnidata Developer's Bloghttps://www.unidata.ucar.edu/blogs/developer/en/feed/entries/atom2024-03-18T20:14:52-06:00Apache Rollerhttps://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-310-how-toMetPy Mondays #310 - How to Deal with Missing Data Part 3 - Filling and InterpolatingJohn Leeman2024-03-04T20:20:25-07:002024-03-04T20:20:25-07:00<p>How can you use filling and interpolation to deal with missing data? Find out in this week's MetPy Monday!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/iF-LsC2wdQM?si=Zi_nI40GdGm_Q9D9" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-307-calculating-dcapeMetPy Mondays #307 - Calculating DCAPE with MetPyJohn Leeman2024-01-22T20:29:14-07:002024-01-22T20:29:14-07:00<p>MetPy can now calculate DCAPE - see how to do it in just one line on this week's MetPy Monday!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/zm_L5b4LXZs?si=oGNLiuhGnETZU7QY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-monday-305-combining-metarsMetPy Monday #305 - Combining METARs and Surface AnalysisJohn Leeman2023-12-26T19:44:56-07:002023-12-26T19:44:56-07:00<p>Learn how to combine declarative and non-declarative plotting in MetPy to create a surface map with METARs and frontal analysis!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/EoE9WedTycY?si=JsBYxtS0o_iQqWVo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/exploring-data-visualization-technologies-atExploring Data Visualization Technologies at UnidataUnidata News2023-08-30T10:45:35-06:002023-08-30T10:45:35-06:00<div class="img_l" style="width: 150px;">
<img width="150" src="/blog_content/images/2023/20230614_jgreenwood.png" alt="Jhamieka Greenwood" />
<div class="caption">
Jhamieka Greenwood
</div>
<p></div></p>
<p>
This summer, I had a fantastic time as a Unidata intern, strengthening my Python
and data visualization skills. Even though my internship was fully remote, I was still
able to have a great experience and attend many events at UCAR. My mentor, Thomas
Martin, and the rest of the Unidata staff were very helpful and always available for
guidance during my time with Unidata.
</p>
<div class="img_l" style="width: 150px;">
<a class="lightbox" title="Jhamieka Greenwood" href="/blog_content/images/2023/20230614_jgreenwood.png">
<img width="150" src="/blog_content/images/2023/20230614_jgreenwood.png" alt="Jhamieka Greenwood" />
</a>
<div class="caption">
Jhamieka Greenwood
</div>
<p></div></p>
<p class="byline">
by
<a href="/community/internship/#2023jg">Jhamieka Greenwood</a>
<br />2023 Unidata summer intern
</p>
<p>
This summer, I had a fantastic time as a Unidata intern, strengthening my Python
and data visualization skills. Even though my internship was fully remote, I was still
able to have a great experience and attend many events at UCAR. My mentor, Thomas
Martin, and the rest of the Unidata staff were very helpful and always available for
guidance during my time with Unidata.
</p>
<p>
My Ph.D. research at Florida State University involves developing physics-based models
for atmosphere-fire interactions and conducting field experiments to investigate the
biogeochemical fluxes within soil post-fire. Coming into the internship, I was excited
to be able to work with atmospheric science data. I became familiar with the THREDDS
Data Server (TDS) and began working with Xarray datasets at the beginning of my internship. Using Xarray
is a great way to house your data in a multi-dimensional array; there is an excellent
interface feature in Jupyter notebooks to display any metadata and information about
your dataset.
</p>
<div class="img_r" style="width: 200px;">
<a class="lightbox" title="Worldwide temperature data visualized using the PyVista toolkit." href="/blog_content/images/2023/20230829_jhamieka_pyvista.png">
<img width="200" src="/blog_content/images/2023/20230829_jhamieka_pyvista.png" alt="Description" />
</a>
<div class="caption">
PyVista visualization (click to enlarge)
</div>
<p></div>
<a class="lightbox" title="For comparison, the same data plotted using Matplotlib." href="/blog_content/images/2023/20230828_jhamieka_matplotlib.png"></a></p>
<p>
I was a bit new to many of the features in Jupyter notebooks, and Unidata provided
many opportunities to learn. I attended the Unidata Users Workshop and Project Pythia
Hackathon virtually; these workshops taught me many Python skills gave me experience
working with atmospheric science data. Both events were a great introduction to
storytelling with data and developing Jupyter cookbooks. After those two events, I was
able to get started with the bulk of my project, which incorporated PyVista and RAPIDS
for graphical data visualization. PyVista is a powerful tool that simplifies 3D
modeling and mesh analysis using a high-level API to the Visualization Toolkit (VTK).
RAPIDS is a collection of open-source software and libraries that provide accelerated
data science and artificial intelligence using the GPU parallelism of the NVIDIA CUDA
framework. I focused my project on giving an overview of the two tools and creating
tutorials for new users to learn how to create interactivity with their data and the
information they are presenting. I developed multiple Jupyter notebooks, each with its
own THREDDS dataset that walks the user through foundational data visualization
techniques using PyVista and RAPIDS. I ensured the notebooks were user-friendly and
friendly to novice Python users.
</p>
<p>
My summer was a great experience developing a learning tool that will potentially
impact many with their work. Unidata provided a practical environment for me to
strengthen my skills in Python programming, problem-solving, source control, data
visualization, and storytelling. They also offered great opportunities for personal
and professional development growth that I will carry on as I continue my academic
journey. After wrapping up my time with Unidata, I plan to improve and maintain my
project deliverables on an open-source platform and incorporate the work into my Ph.D.
research.
</p>
https://www.unidata.ucar.edu/blogs/developer/entry/exploring-python-and-open-scienceExploring Python and Open Science: My Summer at UnidataUnidata News2023-08-08T15:48:30-06:002023-08-08T15:48:30-06:00<div class="img_l" style="width: 150px;">
<img width="150" src="/blog_content/images/2023/20230614_erhoades.png" alt="Erin Rhoades" />
<div class="caption">
Erin Rhoades
</div>
<p></div></p>
<p class="byline">
by
<a href="/community/internship/#2023jer">Erin Rhoades</a>
<br />2023 Unidata summer intern
</p>
<p>
This summer, I had the incredible opportunity to spend it as a Unidata intern. My
main goal for the summer was to solidify my own fundamental Python skills, but I
wanted to do it in a way that would also benefit others. My mentor, Drew Camron, and the
rest of the Unidata staff dedicated their time to help me achieve this goal during
my internship.
</p>
<div class="img_l" style="width: 150px;">
<a class="lightbox" title="Erin Rhoades" href="/blog_content/images/2023/20230614_erhoades.png">
<img width="150" src="/blog_content/images/2023/20230614_erhoades.png" alt="Erin Rhoades" />
</a>
<div class="caption">
Erin Rhoades
</div>
<p></div></p>
<p class="byline">
by
<a href="/community/internship/#2023jer">Erin Rhoades</a>
<br />2023 Unidata summer intern
</p>
<p>
This summer, I had the incredible opportunity to spend it as a Unidata intern. My
main goal for the summer was to solidify my own fundamental Python skills, but I
wanted to do it in a way that would also benefit others. My mentor, Drew Camron, and the
rest of the Unidata staff dedicated their time to help me achieve this goal during
my internship.
</p>
<p>
Unidata really gave me the freedom to customize my summer. I walked into this
internship expecting to work on the same thing every day, but that was definitely
not the case! Throughout the summer, I had the privilege of creating tutorials,
contributing to Open Source projects, attending workshops and hackathons, presenting
my work to the Unidata community, and creating a scientific poster to showcase some
of my work.
</p>
<p>
While my Project Pythia contribution was the main project of my summer, I was able
to work on other projects and explore my other interests as well as attend two
week-long events. Keep reading for an overview of the exciting things I worked on this
summer!
</p>
<h3>
Main Project - Project Pythia: Contributing to This Project and Being a User
</h3>
<p>
<a href="https://projectpythia.org">Project Pythia</a> is an educational and training hub
tailored towards the geoscientific Python community. Its main goal is to teach
valuable skills through Open Source and accessible educational materials. The
website is made up of four sections; Foundations, Cookbooks, Resources, and
Community. The Foundations section has basic information from installing Python to
working with specific core scientific packages such as Xarray.
</p>
<p>
My first experience with Project Pythia was as a user working through the
Foundations material. While working through this material, I fell in love with the
concept of Project Pythia and wanted to contribute to it. Once I completed working
through the Foundations material, I decided I wanted to contribute to the MetPy
Cookbook section.
</p>
<div class="img_r" style="width: 200px;">
<a class="lightbox" title="Sounding with Hodograph inset, created with MetPy for the Project Pythia MetPy cookbook." href="/blog_content/images/2023/20230807_erin_skewt_hodograph.png">
<img width="200" src="/blog_content/images/2023/20230807_erin_skewt_hodograph.png" alt="SkewT plot with Hodograph" />
</a>
<div class="caption">
Skew-T with Hodograph (click to enlarge)
</div>
<p></div></p>
<p>
A Cookbook is essentially a recipe for everything needed to successfully run a
Python notebook. A user will get the proper environment, one or more notebooks of
code, and detailed instructions. Cookbooks even have a
prerequisite section of concepts the user should be familiar with prior to working
through the Cookbook. The prerequisites typically link to a section in Pythia
Foundations.
</p>
<p>
Project Pythia has an extensive Cookbook Contributor’s Guide available on their
website and on GitHub. I followed this Guide and worked with my mentor to
contribute materials for the MetPy Cookbook. I choose to showcase the MetPy Skew-T
capabilities with my Cookbook contributions.
</p>
<p>
I cloned a copy of the Cookbook Template GitHub repository on my own computer to
work on the Skew-T material. I created a full, in-depth tutorial describing how to create a
Skew-T using MetPy and updated seven outdated notebooks into example workflows to be
included with the MetPy Cookbook. I made sure each notebook was formatted similarly and
updated to reflect the MetPy 1.5 version. Once my content was completed, I used
GitHub and Visual Studio Code to open a
<a href="https://github.com/ProjectPythia/metpy-cookbook/pull/4">Pull Request</a>.
This was my first Pull Request and my first contribution to an Open Science project!
</p>
<h3 style="margin-bottom: 1em;">
Other Highlights From My Summer
</h3>
<h4>Unidata Users Workshop</h4>
<p>
The <a href="https://www.unidata.ucar.edu/events/2023UsersWorkshop/">Unidata Users Workshop</a>
was the by far the best workshop I’ve been to. I learned so much about
storytelling, machine learning and Open Science. I’m thankful to have had the
opportunity to participate and am already looking forward to the next one!
</p>
<h4>Project Pythia Cookbook Hackathon</h4>
<p>
I attended this week-long event in order to learn how to create a Cookbook and
work with others who wanted to achieve the same goal. I had zero experience
with Github and content creation prior to this event. By the end of the event, I created a
“mini” cookbook on <a href="https://nbviewer.org/github/erin6541/xarray-cb/blob/main/notebooks/xarray-cb.ipynb">Remote Data Access with Xarray</a>.
This was a great primer for my main summer project.
</p>
<h4>Python-AWIPS</h4>
<p>
I wanted to learn more about <a
href="https://unidata.github.io/python-awips/">Python-AWIPS</a> and more of the
development side of Python. I worked on the way the Environmental Data Exchange
(EDEX) outputs data, changing the output from NumPy arrays to an Xarray Dataset.
While I was unable to finish this due to time constraints, I enjoyed exploring the
development side of Python-AWIPS and laid a good foundation for this project to be
completed at a later date.
</p>
<h4>MetPy Issue</h4>
<p>
Throughout this internship, I had continued exposure to the concept of
contributing to Open Science. I made my first Open Science contribution with my
Project Pythia contribution, but I wanted to learn other ways to keep contributing
to Open Science after my internship was over. This lead me to the <a href="https://github.com/Unidata/MetPy/issues">Issues</a>
in the MetPy GitHub repository. MetPy welcomes
contributions from community members and even has a “good first issue” label on
their issues section. On the final day of my internship, my wonderful mentor Drew
spent several hours teaching me how to start tackling an issue. We got my computer
set up with a development environment, went over a proper workflow, and an overview
of the entire approval process.
</p>
<p>
Overall, my summer at Unidata was the experience of a lifetime that I will never
forget. I felt like a member of the Unidata family from day one. Even on the final
day of my internship, my mentor dedicated a large chunk of the day to teaching me
and setting me up for success for future work. I learned so much from the variety of
projects I worked on and ultimately was able to achieve my goal for the summer.
</p>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-289-drawing-frontsMetPy Mondays #289 - Drawing Fronts with your Mouse in Matplotlib!John Leeman2023-06-19T21:02:39-06:002023-06-19T21:02:39-06:00<p>Check out the latest MetPy Monday tutorial on our YouTube channel, where we'll guide you through using mouse click events to draw weather fronts and more on a map using Python. Enhance your meteorological visualization skills and interactively plot weather features with this step-by-step tutorial. </p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/I5d6ze6kRGU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-265-how-toMetPy Mondays #265 - How to Calculate SWEAT Index with MetPyJohn Leeman2023-01-03T19:50:26-07:002023-01-03T19:50:26-07:00<p>SWEAT index is a way to determine the potential of moisture, instability, wind, and warm air advection to create severe storms and tornadoes. This week learn how to easily calculate it with MetPy!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/G9aN_Bp5VA8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-232-parsing-windsMetPy Mondays #232 - Parsing Winds and Temperatures Aloft Forecasts Part 2John Leeman2022-05-09T21:09:54-06:002022-05-09T21:09:55-06:00<p>This week continue writing a parser for the Aviation Weather Center winds and temperatures aloft forecast. It's time to work out some of the odd quirks of this product.</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/d8LHunYRVss" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-228-adding-stationMetPy Mondays #228 - Adding Station Lats and LonsJohn Leeman2022-04-11T19:34:59-06:002022-04-11T19:34:59-06:00<p>This week we look at the handy add<em>station</em>lat_lon method and what it can do for you! Also don't forget to go fill out the MetPy User's Survey!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/mzcXqm5wbBI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
https://www.unidata.ucar.edu/blogs/developer/entry/metpy-mondays-224-sftp-andMetPy Mondays #224 - SFTP and paramikoJohn Leeman2022-03-14T19:08:38-06:002022-03-14T19:08:38-06:00<p>This week we use the paramiko library and learn about SFTP!</p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/bkN3x3JknG0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>