-
Notifications
You must be signed in to change notification settings - Fork 94
Preetam Sundar Das: MISSION SUPPORT SYSTEM(MSS): GUI FOR AUTOMATED PLOTTING : GSOC2024
- Name: Preetam Sundar Das
- Organization: Python Software Foundation
- Sub-organization: Mission Support System
- Mentors: Sreelakshmi Jayarajan, Reimar Bauer, Matthias Riße
- Proposal Link: Link to Proposal
- Project Size: Large (350 Hours)
- GSoC Branch: GSOC2024-PreetamSundarDas
- Weekly Blogs: Mastodon Blogs link
- Develop the Autoplot Docking Widget, a graphical interface to enhance user interaction with the existing CLI tool in the Mission Support System (MSS).
- Allow users to create, upload, and modify JSON configuration files for current or future plot downloads.
- Integrate the widget into multiple views, such as Top View, Side View, and Linear View, for seamless operation within MSS.
- Enable downloading a set of plots from start time to end time with a particular intervals.
- Offer the ability to directly download plots from the widget, streamlining the process for scientists and researchers.
The Mission Support System (MSS) is a software developed by scientists in the field of atmospheric science. It aims to simplify the planning of scientific flights, where atmospheric parameters are measured. Research aircraft carry comprehensive scientific payloads with data acquisition instruments from various companies and research institutions. Measuring parameters such as the chemical composition of trace gases, temperature, or aerosol particle characteristics is crucial for understanding atmospheric processes, climate change, and ozone hole recovery.
This project involves developing the Autoplot Docking Widget, designed to enhance user interaction with an existing CLI tool for downloading plots from servers. Integrated into multiple views (Top View, Side View, and Linear View), the widget allows users to create or upload JSON configuration files for current or future plot downloads.
Users can configure settings through the MSUI, upload configurations into the widget, and make adjustments. The widget ensures consistency by updating the MSUI based on loaded configurations and replicating changes across the application. It also provides options to set start and end times, along with time intervals for plot downloads.
The Autoplot Docking Widget includes several components:
- Select Configuration File: Upload a pre-existing JSON file to the widget, make changes, download, or use it as needed.
-
Tree Widgets:
- Left Tree Widget: Configure parameters namely: Flight, Map Sections, Vertical, Filename, Initial Time, and Valid Time.
- Right Tree Widget: Configure parameters namely: URL, Layer, Style, Level, Start Time, End Time, and Interval.
- Three Combo Boxes: Configure start time, end time, and time interval.
- Download Plots: Directly download plots based on widget configurations and save them in the default JSON file.
- Update/Create Configuration File: Update a pre-existing JSON file or create a new one based on current configurations.
Video 1: Making Configurations in the Top View (All Possibilities) and Storing in the JSON File (Creating and Updating)
S.No | Description | Link to PR |
---|---|---|
1 | Creation of the GUI | Link to PR |
2 | Complete integration of the widget, update MSUI based on configurations, download plots implemented, enhancements of the CLI tool | Link to PR |
The Autoplot Docking Widget is a PyQt5-based project designed to extend the functionality of the mssautoplot Command Line Interface (CLI), offering users a more intuitive and interactive experience. This widget introduces a comprehensive Graphical User Interface (GUI) that simplifies the process of downloading plots based on user-defined configurations. By integrating seamlessly into the existing Mission Support System (MSS) Software, the docking widget enhances usability by allowing users to interact with their plot settings in a visual, user-friendly manner. The Autoplot Docking Widget brings additional features and flexibility, empowering users to manage and customize their plot downloads with ease. The widget is accessible across all the three views—Top View, Side View, and Linear View—ensuring that users can configure their plots from any perspective that suits their workflow.
The final implementation provides the following key features:
- Users can directly access the Autoplot Docking Widget through the MSS UI, with support for all three views.
- Configurations for automated plotting can be easily added, updated, or removed through the Tree Widgets, and these changes are immediately reflected in the MSUI, providing real-time updates for the users.
- Pre-existing configuration files can be uploaded in JSON format to the widget. These files can be used for modifying configurations or directly downloading plots.
- Users can also create new configuration files or update existing ones using the widget, allowing for full flexibility in managing automated plotting settings.
The Download Plots feature offers users multiple options to tailor the plot downloads according to their requirements. The following use cases have been implemented:
-
Download directly from the uploaded JSON configuration: Users can download plots exactly as configured in the JSON file without any additional modifications.
-
Download plots using a valid time: Users can choose a valid time for the plots, enabling quick and efficient downloads based on predefined times.
-
Download plots from a specific start time to an end time with a time interval: This feature allows users to download plots over a specified time range with specified time intervals, ensuring precise control over the plotting frequency.
-
Download plots with or without flight and filename: Users can choose to download plots that either include or exclude flight tracks and filenames, providing further customization based on specific needs.
- A significant challenge was updating the MSUI based on current configurations, which required a thorough review of the wms_control.py and top_view.py files.This review process was time-consuming but provided valuable insights into the codebase and its implementations.
- Initially, integrating the docking widget with the MSUI was difficult due to my unfamiliarity with the concept. But later I got a good hold of this concept.
- Another challenge was the high level of interconnection between methods, which limited the reusability of certain functions.However, this tight coupling was necessary for specific functionalities, and I drew inspiration from these methods to design similar functionalities where applicable.The guidance and support from my mentors were instrumental in helping me overcome these challenges.
- Currently, the Autoplot Docking Widget supports configurations for only one layer from one URL. Future improvements could include support for multilayering and multiple WMS servers.
- Start times and end times are not currently stored in the JSON file. This may be further added to make it more convenient for users.
I would like to express my deep gratitude to my mentors, Sreelakshmi Jayarajan, Reimar Bauer, and Matthias Riße, for their unwavering support, patience, and guidance throughout the course of this project. Their insights and expertise were invaluable in helping me navigate through challenges and ensuring the successful completion of the project.I am also thankful to the Python Software Foundation and the Mission Support System sub-organization for giving me the opportunity to work on this exciting project. The experience has not only strengthened my technical skills but also taught me the importance of collaboration, persistence, and adaptability in a real-world software development environment. Lastly, I extend my gratitude to the Google for organising this Google Summer of Code programme and providing this incredible platform and opportunity. GSoC has been a transformative experience, and I am thankful for the chance to contribute to open-source software while growing as a developer. This program has been a key motivator, and I look forward to applying the skills and knowledge I gained through future contributions to the community.