Posts

Week 5 & 6 - The Work You Don't See 👀

Image
🔍 Behind the Scenes Users probably won't notice most of the work from these past two weeks... and that's completely okay. When people think about open source, it's easy to imagine exciting new features, shiny visual changes, or new capabilities. This wasn't one of those weeks. Instead, I spent the last two weeks working on something that's much less visible but just as important - making radiospectra easier to maintain, easier to extend and hopefully a little easier for future contributors to understand. 🏗️ Building a Better Metadata System The biggest piece of work was redesigning how metadata is handled across the package. Instead of relying on plain dictionaries everywhere, I introduced a proper metadata architecture using SpectrogramMetaABC and SpectrogramMeta , backed by NDCube's NDMeta . Once the foundation was in place, I gradually added dedicated metadata classes for each supported instrument, moving instrument-specific logic out of the sp...

GSoC 2026 – Weeks 3 & 4: Looking Beyond the Code

Image
Understanding the Infrastructure 🔧 The past two weeks have been quite different from the start of the coding period. Instead of spending most of my time implementing new functionality, I found myself exploring a part of open source development that I had very little experience with before: testing infrastructure, CI workflows and release tooling. One thing I've learned so far is that writing code is only part of maintaining a project. Making sure that code continues to work months or years later is an equally important challenge. Bringing Figure Tests to Radiospectra 📊 The main focus of the last two weeks was introducing the initial figure testing infrastructure to radiospectra. Before this, I had never worked with figure tests. My understanding of testing was mostly limited to checking outputs and functionality. Testing plots turned out to be a completely different world. To understand how it worked, I spent time exploring the figure testing workflow used across the SunPy e...

GSoC 2026 - Weeks 1 & 2: Understanding Before Implementing

The Journey Begins 💪 The first two weeks of the coding period have been a mixture of excitement, confusion, debugging, learning and the occasional moment of staring at a terminal wondering why something that worked five minutes ago suddenly doesn't. As someone once said: "The expert in anything was once a beginner who refused to give up." That quote has felt surprisingly relevant over the past couple of weeks. Building the Foundation with NDCube 💻 A major part of my work focused on integrating radiospectra with NDCube. This involved migrating the core GenericSpectrogram  class, understanding how coordinate-aware data is represented and diving deeper into World Coordinate Systems (WCS) than I ever expected. At first glance it sounded simple: "just integrate NDCube." It was not. Along the way, I had to understand how time and frequency coordinates interact, how plotting components work and spend a fair amount of time convincing Git that my branches and commits w...

GSoC 2026 - My Journey to SunPy Under OpenAstronomy

My GSoC Journey I’m incredibly excited to share that I’ve been selected for Google Summer of Code 2026  under OpenAstronomy for the SunPy project:  Improving radiospectra’s Functionality and Interoperability. This has been one of the most emotional and memorable journeys of my life so far. Getting Started with Open Source A few months ago, I started exploring open source and eventually came across the SunPy ecosystem and the radiospectra repository. What initially began as curiosity slowly turned into genuine interest as I started understanding the codebase, participating in discussions, attending weekly meetings and contributing through pull requests and issues. As I spent more time with the project, I became increasingly interested in the architectural discussions around scientific software, interoperability, plotting systems and coordinate-aware APIs. Over time, the project became much more than just a GSoC application for me. The Rejection 😢 On 30th April, when the...

Bringing radiospectra into the Modern SunPy Ecosystem

Image
What is radiospectra?   If you've ever looked at a spectrogram of a solar radio burst i.e. a colorful time vs frequency heatmap showing how the Sun's radio emission changes during a flare then there's a good chance the data was handled by radiospectra. It's a Python package in the SunPy ecosystem that provides tools for fetching, reading and visualising solar radio spectral data from instruments like e-Callisto, WIND/WAVES and SWAVES. Radiospectra plugs into SunPy's unified data search through Fido, meaning you can query and download radio data from multiple observatories with a few lines of Python in the same way you'd fetch solar images or timeseries data. The problem: a foundation that hasn't kept up 🔍 While radiospectra works, its internal architecture hasn't evolved alongside the rest of the SunPy ecosystem. Here's the core issue: Spectral data is stored as plain NumPy arrays with instrument-specific metadata conventions. There is no unified...