← Back to projects
Featured project

SolarConflux

Scientific software · Multi-spacecraft geometry · Observation planning

SolarConflux retrieves heliocentric trajectories for spacecraft and planets, then detects geometric alignments to identify time windows enabling coordinated observations of solar events and space weather context.

Overview

The tool supports mission analysis and research workflows by screening large time ranges and multiple assets to find moments where spacecraft configurations match science-driven constraints.

Primary use
Coordinated observation planning and contextualization of solar and heliospheric events
Core capability
Alignment detection between any combination of spacecraft and planets in heliocentric coordinates

Problem

Multi-spacecraft studies require identifying when distributed assets are in favorable relative geometries. Manual screening does not scale with the number of missions, targets, and configuration modes.

Approach

  • Retrieve ephemerides for a list of spacecraft and planets over a defined time range and time step.
  • Transform trajectories to a heliocentric reference frame for consistent geometry evaluation.
  • Evaluate alignment criteria per selected geometry mode and return matching time windows.
  • Export results and visualize trajectories and detected configurations.
Geometry modes supported
  • Opposition (≈ 180°)
  • Quadrature (≈ 90°)
  • Cone (objects within an angular sector)
  • Arbitrary angle (user-defined)
  • Parker spiral alignment (solar wind connectivity)
  • Cone Parker (combined criterion)

Deliverables

  • Reusable Python module for trajectory retrieval and geometry screening
  • Configurable inputs for targets, time ranges, angles, and solar wind speed
  • Export to .csv and polar trajectory visualizations for quick interpretation

Installation & usage

Install directly from GitHub:

pip install git+https://github.com/EmmaVellard/SolarConflux.git

Launch interactively:

from solarconflux import SolarConflux
SolarConflux()

Example workflow (trajectory retrieval → alignment detection → export + plot):

from solarconflux import get_trajectories, matching_dates, save_match, save_plot

body_list = ['BepiColombo', 'Solar Orbiter', 'PSP', 'Stereo-A', 'Earth', 'Mars', 'Jupiter']
start_time = '2020-09-01 09:00'
end_time   = '2020-12-31 23:00'
step = '60m'

trajectories = get_trajectories(body_list, start_time, end_time, step)

geometry_choices = ['cone', 'opposition', 'quadrature', 'arbitrary', 'parker', 'coneparker']
match = matching_dates(geometry_choices, body_list, trajectories,
arbitrary_angle=30, u_sw=400e3)

save_match(match)
save_plot(match, trajectories)

Outputs

  • CSV export listing detected alignment times and involved bodies
  • Polar plots showing trajectories and configurations (cone and Parker spiral examples)

Technical implementation

Python SunPy Astropy Astroquery (JPL Horizons) Heliocentric frame (HCI) Matplotlib CSV