PANORAMA

Package for ANalysis Of RApidly rotating MAssive stars:
one environment from the observing plan to the 3D model.

Why PANORAMA?

Massive stars are frequently very rapid rotators, and most of them live in binary or multiple systems. Rotation flattens them into a Roche shape, makes the surface temperature and gravity depend on latitude through gravity darkening, and broadens and reshapes their spectral lines. Standard one-dimensional, non-rotating analyses are often not enough to interpret what we observe.

Studying these stars also means going through a long analysis chain: planning observing campaigns, handling and normalising the spectra, measuring line profiles and broadening, modelling the distorted star and preparing the results for publication. Each step is usually done with a different tool, written in a different language, with its own formats and conventions, which makes the analysis hard to keep consistent and to reproduce.

PANORAMA (Package for ANalysis Of RApidly rotating MAssive stars) brings the entire analysis workflow into a single Python environment. Developed from scratch as a modular framework, it provides independent tools for each stage of the analysis while maintaining consistent conventions across the package. Explicit input validation, comprehensive documentation, and a ready-to-run demos make the workflow reproducible and easy to adopt, from detailed studies of individual objects to the analysis of large observing campaigns.

From the telescope to the 3D star

The whole analysis chain of a rotating massive star, one module per step.

  1. Plan the observations. Estimate the exposure time needed to reach a target SNR, predict the next eclipses or maxima of a periodic system and check which orbital phases can be covered each night from a given observatory. Telescope pointings and FITS observing logs complete the bookkeeping, and the BinarAlt planner gathers visibility, lunar constraints and live weather in the browser (obs).
  2. Prepare the spectra. Read 1D spectra in the most common ASCII and FITS layouts, compare several of them in one figure and remove cosmic rays, telluric features or artefacts by mouse selection. The continuum is then normalised following the IRAF continuum algorithm, interactively or in batch for large samples (spec).
  3. Measure the lines. Fit each line with Gaussian, Lorentzian, Voigt or rotation and macroturbulence profiles to obtain its centre, radial velocity, depth, equivalent width and FWHM, with MCMC uncertainties and an automatic quality assessment. Projected rotational velocity and macroturbulence are disentangled with IACOB-BROAD, combining the Fourier transform and goodness-of-fit methods (fitline, iacob_broad).
  4. Model the rotating star. Convert between polar, equatorial, volume- and surface-equivalent radii of the Roche-distorted star, and compute critical velocities and rotation rates, propagating symmetric or asymmetric uncertainties. The 3D surface model represents the star's temperature, gravity, and brightness, which serves as the basis for spectral synthesis with SPAMMS and for interferometric observables (rot).
  5. Match synthetic and observed spectra. Transform a spectrum into what a given instrument and star would produce: estimate its signal-to-noise ratio and degrade it to a target SNR, resample it onto a new wavelength grid, and lower its resolving power by Gaussian convolution. Rotational and radial-tangential macroturbulent broadening can also be applied, to prepare synthetic spectra for comparison with observations or to test the analysis methods (specblur).
  6. Prepare the results. Convert wavelength shifts into velocities with the classical or relativistic Doppler formula, move wavelengths between vacuum and air, and evaluate how close a star is to the Eddington limit. For the paper, query VizieR catalogs for a list of targets, find uncited BibTeX entries and reopen saved figures for editing (units, tex).
Module Area Functions
obsObservational planning and observing logssky_dist, estimate_exposure, estimate_SNR, fits_catalog, periodic_event, obs_phase, obs_phase_night, telescope_pointing, binaralt
specSpectra managementreadspec, plotspec, rmvspec, normspec
fitlineFitting and characterisation of spectral linesfitline, fitline_bin
iacob_broadv sin i and macroturbulence (FT + GOF)iacob_broad
rotPhysics of rotating starsrpole_to_requator, requator_to_rpole, rpole_to_requiv, requator_to_requiv, rpole_to_rsurf, requator_to_rsurf, vrot_crit, angularrot_crit, rot_rate, rot_rate_angular, rot_params
broadSpectral broadening and degradation (in development)estimate_snr, snrblur, resample, resbroad, rotbroad, macbroad
unitsPhysical conversionswl2kmps, kmps2wl, wl2kmps_rel, kmps2wl_rel, vac2air, air2vac, R2kmps, eddington
texPapers utilitiesnobib, queryviz, read_pkl

Analysis capabilities

What sets PANORAMA apart: from reliable measurements to a consistent physical model.

BinarAlt planner

A browser-based planner with ephemerides, lunar constraints, live observatory weather and an interactive exposure timeline.

Interactive spectra tools

Remove artefacts and normalise the continuum IRAF-style, either interactively or in batch for large samples.

Fits you can trust

Every line fit comes with residual diagnostics, MCMC posteriors and an automatic PASS / WARN / FAIL assessment with advice.

IACOB-BROAD in Python

A port of the IDL tool by S. Simón-Díaz: each stage is saved to disk and reused, and save files of the original version can be read.

Errors everywhere

Classical and MCMC uncertainties are computed and propagated in the analysis of stellar parameters.

Spectroscopy + interferometry

A single 3D surface model provides both the line profiles (SPAMMS) and the interferometric models needed to fit the observations.

PANORAMA in action

From planning the night to measuring the lines and modelling the rotating star.

BinarAlt planner in dark mode: altitude and airmass of eight north circumpolar stars through one night at the Teide Observatory, with the scheduled exposure timeline.

BinarAlt observation planner

Plot the visibility of your targets for any night and organize the observing sequence around their visibility windows. During the observing session, follow the night in real time with live ephemerides, countdowns, and timing information.

Try the web version with the buttons above; live weather data requires launching the local service from PANORAMA.

Simulated Si III 4552.62 Å line with its rotation plus macroturbulence model, and the Fourier transform of the profile with its first zero marking a projected rotational velocity of 120 km/s.
iacob_broadAI generated image

Rotation hidden in a line

In OB stars, rotation and macroturbulence broaden the lines by similar amounts and are hard to tell apart by eye. Rotation, however, leaves a clear signature: its Fourier transform drops to zero at a frequency set only by v sin i.

A goodness-of-fit over a grid of rotation and macroturbulence profiles then gives both velocities with their uncertainties.

Roche-distorted star rotating at 95% of its critical angular velocity, seen at 60 degrees, with hot orange poles and a cool blue equator, and its temperature and gravity profiles against latitude.
rotAI generated image

A star flattened by rotation

Close to its critical velocity, a star stops being a sphere. The centrifugal force pushes the equator outwards, lowering the effective gravity there, while the poles remain more compact and experience stronger gravity.

Gravity darkening then turns this gravity contrast into a temperature contrast between poles and equator, making the poles hotter while the equatorial regions become cooler.