PowerAnalytics.jl
Quick links: GitHub repo; documentation website aimed at users, including API reference and tutorial; video of JuliaCon presentation aimed at Julia developers; listing of JuliaCon presentation in conference program. Link to presentation slides hopefully coming soon!
One of my main categories of work at the National Renewable Energy Lab has been to develop the open-source power grid simulation platform Sienna, written in Julia. When I joined the lab, Sienna’s abilities to run these simulations was cutting edge, but the built-in simulation output analysis capabilities had lagged behind, forcing our users — generally not sophisticated computer programmers — to build their own analytics or turn to solutions in other languages if the limited built-in functionality was not enough.
In response, I led a complete redesign of the PowerAnalytics.jl package, aiming for a product that presents the simplest possible interface to users familiar with the Sienna ecosystem while enabling a much broader set of analytics. The design centers around the ComponentSelector
, a lazy, grouped collection of Sienna power system components, and the Metric
, a quantity or time series that can be calculated given a ComponentSelector
and a set of simulation results, with built-in aggregation behavior. The result is a framework that provides SQL-level flexibility behind an approachable interface in the Sienna design language. We released PowerAnalytics 1.0 in early 2025 and have been excited to see its actual and planned use since then!
I was honored to give a 30-minute presentation to the Julia community, including inventor of Ethernet Dr. Bob Metcalfe(!), at JuliaCon 2025. That presentation provides a good overview of the user-centered software design behind the package. For a practical demonstration of how PowerAnalytics can be used, see this tutorial on the documentation website.