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

  1. Select one or more datasources in the Helioviewer catalog.
  2. Set the Start UTC and End UTC dates.
  3. Set the requested Cadence in seconds.
  4. Check the nominal frame count and video duration estimate shown below the timing controls.
  5. Choose the image width and video options.
  6. Press Start acquisition on the main toolbar.
  7. Watch the Acquisition status area and log while the session runs.
  8. 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

Important: this is a planning estimate, not a promise of the final frame count. Helioviewer archives do not necessarily contain an image at every requested instant.

The final number of accepted frames can be smaller because Sol may:

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

ControlMeaning
WidthRequested image width sent to the Helioviewer image download service.
FPSPlayback frame rate used by FFmpeg. Higher FPS makes the same number of frames play faster.
CRFH.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 framesPreserves the downloaded originals and the timestamped sequence used for video encoding.
Create MP4 with ffmpegEncodes one H.264 MP4 for each datasource that produced a complete video-frame sequence.

7. Main toolbar

CommandFunction
Start acquisitionValidates the current settings and starts a new acquisition session.
StopRequests termination of the active acquisition. Already written files are not intentionally discarded.
Open ./outOpens the configured output directory using the operating system.

8. Acquisition status area

The status area groups the information needed while a session is running:

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:

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.

PathPurpose
./binExternal runtime tools such as curl.exe and ffmpeg.exe.
./sysProgram configuration, cached Helioviewer catalog and optional network/certificate files.
./outAcquisition sessions and generated media.
./docThis 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.

Security note: disabling TLS certificate verification reduces connection security. Prefer a valid CA bundle whenever possible.

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.