Sol
Helioviewer solar image acquisition and time-lapse creation tool.
Copyright © 2026 Manuele Turini. Sol is distributed as freeware. See Help > Freeware license in the application for the complete license text.
1. What Sol does
Sol acquires sequences of solar images from datasources exposed by the Helioviewer service. For each selected datasource it requests images over a UTC time interval, stores accepted PNG frames, creates timestamped frames for video use, records acquisition metadata and can encode an H.264 MP4 using FFmpeg.
The program is designed around a simple idea: choose a solar datasource, define when and how often it should be sampled, then let Sol resolve the closest images actually available in the archive.
2. Typical workflow
- Select one or more datasources in the Helioviewer catalog.
- Set the Start UTC and End UTC dates.
- Set the requested Cadence in seconds.
- Check the nominal frame count and video duration estimate shown below the timing controls.
- Choose the image width and video options.
- Press Start acquisition on the main toolbar.
- Watch the Acquisition status area and log while the session runs.
- Use Open ./out to inspect the generated session.
3. Helioviewer catalog
The catalog tree represents datasources reported by Helioviewer. A datasource normally corresponds to a mission/instrument/channel combination. More than one datasource can be selected for the same acquisition interval.
The Refresh Helioviewer catalog command updates the locally cached catalog. The information panel associated with the selected entry shows the metadata made available by the service and, where possible, timing information measured by Sol.
AIA band selection
The AIA helper is a convenience for rapidly selecting common SDO/AIA wavelength channels. It does not change the underlying Helioviewer datasource definitions.
4. UTC interval, cadence and estimated video length
Sol works in UTC. The selected interval is treated as inclusive for the nominal estimate. Given an interval length T and a requested cadence C, the estimated number of requested frames per datasource is approximately:
frames = floor(T / C) + 1
If the video frame rate is FPS, the corresponding nominal MP4 duration is:
video duration = frames / FPS
The final number of accepted frames can be smaller because Sol may:
- adapt to the effective cadence observed for a datasource;
- reject images whose actual timestamp is too far from the requested timestamp;
- discard repeated Helioviewer image IDs so that the same archived image is not saved more than once;
- encounter temporary network, archive or service errors.
5. Timing tolerance and source timing profiles
Maximum time error defines how far the timestamp of the image returned by Helioviewer may be from the requested timestamp before Sol rejects it.
When Use source timing profiles is enabled, known source families can use dedicated tolerances defined in ./sys/sol.ini. This is useful because different instruments and archives can have very different native cadences.
For dense sources such as many AIA channels, Sol can use the requested cadence directly. For other sources it may perform a short cadence probe before the full acquisition in order to avoid generating large numbers of redundant requests.
6. Image and video parameters
| Control | Meaning |
|---|---|
| Width | Requested image width sent to the Helioviewer image download service. |
| FPS | Playback frame rate used by FFmpeg. Higher FPS makes the same number of frames play faster. |
| CRF | H.264 Constant Rate Factor. Lower values generally mean higher quality and larger files. A value around 18 is intended as a high-quality default. |
| Keep original and timestamped PNG frames | Preserves the downloaded originals and the timestamped sequence used for video encoding. |
| Create MP4 with ffmpeg | Encodes one H.264 MP4 for each datasource that produced a complete video-frame sequence. |
7. Main toolbar
| Command | Function |
|---|---|
| Start acquisition | Validates the current settings and starts a new acquisition session. |
| Stop | Requests termination of the active acquisition. Already written files are not intentionally discarded. |
| Open ./out | Opens the configured output directory using the operating system. |
8. Acquisition status area
The status area groups the information needed while a session is running:
- State - current acquisition phase;
- Progress - progress through acquisition tasks and, when enabled, video encoding;
- Runtime paths - the relevant executable/output paths used by the current installation.
The log remains the most detailed diagnostic source and records datasource selection, timing analysis, requests, accepted frames, rejected timestamps, duplicates, encoding and errors.
9. Output structure
Each run creates a new session directory below the configured ./out root. The exact name contains the acquisition time interval. Inside the session, Sol creates a directory for every selected datasource.
Depending on the selected options, a session can contain:
manifest.csv- one-row-per-request acquisition record;session.json- session settings and per-source statistics;- original PNG files named
frame_000000.png,frame_000001.png, ...; - a
video_framesdirectory containing timestamped frames used by FFmpeg; - an MP4 file for each datasource successfully encoded.
If frame preservation is disabled, Sol can remove original and timestamped PNG sequences after successful video creation. Session metadata is retained.
10. Timestamp overlay
The timestamp printed on video frames is based on the actual UTC timestamp returned by Helioviewer, not merely on the nominal requested instant. This is important when a datasource has a cadence coarser than the requested cadence or when the closest available image is offset in time.
11. Runtime folders and configuration
Sol uses paths relative to the application directory unless ./sys/sol.ini specifies otherwise.
| Path | Purpose |
|---|---|
./bin | External runtime tools such as curl.exe and ffmpeg.exe. |
./sys | Program configuration, cached Helioviewer catalog and optional network/certificate files. |
./out | Acquisition sessions and generated media. |
./doc | This help and other user documentation. |
GUI and acquisition preferences are stored through Qt QSettings using organization Officina Turini and application Sol.
12. curl, HTTPS and FFmpeg
Image and API transfers are performed through curl. Video encoding is performed through FFmpeg. Their executable paths are configurable in ./sys/sol.ini.
If HTTPS certificate validation fails and insecure fallback is enabled in the configuration, Sol can retry the transfer without certificate verification and reports this explicitly in the log.
13. Troubleshooting
No frame is accepted
Check the selected datasource, requested date range and maximum timing error. Some sources have a much slower effective cadence than AIA and may require a larger tolerance.
Many requests resolve to duplicates
The requested cadence is probably faster than the effective archive cadence. Sol suppresses repeated image IDs; increasing the cadence can make the acquisition more efficient.
Video is not created
Verify that ffmpeg.exe is present at the configured path and inspect the log. Sol only encodes a source when accepted frames have a corresponding timestamped video-frame sequence.
Help does not open
The Help command opens ./doc/help.html with the system default browser. The file must therefore be distributed together with the executable in the expected relative doc directory.
14. Acknowledgements and data provenance
Sol would not be useful without the extraordinary amount of solar data, software infrastructure and public scientific access created and maintained by many organizations and research teams.
Special thanks go to the Helioviewer Project, which provides the service and APIs used by Sol to discover solar datasources and retrieve imagery.
Sol also gratefully acknowledges NASA, ESA, NOAA, their partner institutions, observatories, mission operations teams, instrument teams, calibration teams, archive maintainers and the scientists and engineers who make solar observations publicly available.
This includes, among the data that may be exposed through Helioviewer, observations from missions and instruments such as SDO/AIA and many other space- and ground-based solar observatories. Availability depends on the Helioviewer catalog and may change over time.
Sol also relies on the work of the Qt, curl and FFmpeg projects.
Official project sites:
Names, trademarks, mission names and third-party software belong to their respective owners. Sol is an independent freeware application by Manuele Turini and is not an official product of, sponsored by, or endorsed by NASA, ESA, NOAA, Helioviewer or the other projects named above.