PANORAMA

Package for the 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 normalizing the spectra, measuring line profiles and broadening, modeling 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 reproducible.

PANORAMA (Package for the 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 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 artifacts by mouse selection. The continuum is then normalized 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 center, 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, pyiacob_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 maps the star's temperature, gravity, and brightness, and 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. Fit spectroscopy and interferometry together. Compare the same 3D surface model with stellar intensity interferometry (SII) measurements and observed spectra at once, so that a single set of stellar parameters has to reproduce both the line profiles and the interferometric data (sii).
  7. 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 Description Status Documentation
fitline Spectral-line profile fitting and measurement of line parameters 🚧 -
obs Target visibility, observation scheduling, timing, and observing logs ✅ obs_README.md
prismas Input and output handling for the PRISMAS pipeline 🚧 -
pyiacob_broad IACOB-BROAD tool for the analysis of stellar rotation and macroturbulence 🚧 -
rot Physics of rapidly rotating stars 🚧 -
sii Joint fitting of stellar intensity interferometric and spectroscopic data 🚧 -
spec Reading, visualization, cleaning, and continuum normalization of spectra ✅ spec_README.md
specblur Spectral degradation in SNR, resolution, rotation, and macroturbulence 🚧 -
tex LaTeX checks and VizieR/SIMBAD catalog queries ✅ tex_README.md
units Physical and astronomical unit conversions and derived stellar parameters ✅ units_README.md

✅ Stable: available and documented  |  🚧 In development: access upon request

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 artifacts and normalize 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 files saved by the original version can still be read.

Uncertainties 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 modeling 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.
pyiacob_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 poles and a cool 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 outward, 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.