HMI Data Products
AIA Data Products
MDI Data Products
SHA Data Products
IRIS Data Products
SID Data Products

** Useful Links **

Global Helioseismology Products

Global helioseismology is the study of resonant modes of oscillation inside the Sun and infers properties of the interior.

Algorithm for calculation

The global helioseismology pipeline begins with a spherical harmonic decomposition. Dopplergrams are the usual input, but other observables can be used as well. Images are remapped to a uniform grid in longitude and sin(latitude), which provides an opportunity to make various geometric corrections. The resulting map is then apodized in fractional image radius from 0.90 to 0.95, and an inner product is taken with a set of target spherical harmonic masks, yielding a complex amplitude as a function of spherical harmonic degree l and azimuthal order m for each image, up to l=1000. For each l and m a timeseries is constructed, typically of length 72 days, which are then detrended and gapfilled, at which point power spectra are also computed. Fourier transforms of the detrended and gapfilled timeseries up to l=300 are fitted to yield the medium-l mode parameters. The mode parameters can be inverted to yield the Sun's internal rotation and sound speed.

Since we cannot see the entire Sun, the spherical harmonic decomposition is not able to perfectly separate the modes. The extent to which each mode leaks into its neighbors is quantified by the leakage matrix. A separate leakage matrix is required for full disk data and the MDI vw_V proxy, but in each case the same leakage matrix has been used for all times for the standard analysis.

For the full global helioseimology documentation (for developers), see here. For a complete scientific description of the pipeline, see this paper.


Except for the last two dataseries below, all of the dataseries used in the globalhs pipeline have T_START as their first primekey, which is typically slotted with a width of one day and an epoch of 1993.01.01_TAI, the MDI epoch (see the DRMS dataset names documentation). When applicable, the next two primkeys will be LMIN and LMAX, although for some products in the pipeline these will be equal (they are retained for consistency among the dataseries). The last primekey will generally be NDT, the number of points in the corresponding timeseries. Dataseries may optionally contain a final primekey TAG, which is simply a string which serves to label different processing options. For keywords not described here, see the JSOC keywords document.

Dataseries for inversions have these three primekeys as well:

Available Products

Dataseries for window functions and sections have primekeys T_START and NDT. Except for the last two, all others have primekeys T_START, LMIN, LMAX, and NDT. The pipeline also recognizes dataseries with the same structure and with the optional TAG primekey. The dataseries for inversions always have the primekey TAG. The last two dataseries have string primekeys as described below. JSOC series definition (jsd) files for these dataseries can be found at in the directory corresponding to the label that uses them (see below). Data that are not archived can generally be recreated by request.

(COMING SOON! All of the above available for intensity as well.)

Data Formats


Timeseries are stored as two dimensional FITS files. For a single spherical harmonic degree (LMIN=LMAX), the dimensions will be 2*NDT by LMIN+1. The datatype is float, but the data are actually complex, with the real and imaginary parts alternating in the file. For LMIN != LMAX, the second dimension will be (LMAX+1)(LMAX+2)/2 - LMIN(LMIN+1)/2.

Gap and Section Files

Gap files are a series of ones and zeroes stored as one-dimensional FITS files. The datatype is char and the length is NDT. A zero represents a data point that should be discarded. Section data are stored as keywords, but modules may instead take a text file as input. The first line of a section file is the number of continuous sections of data in the corresponding timeseries. Subsequent lines give the first and last timepoint, numbered from zero, of each section. A section file can be generated from a data record REC by "show_info -q REC key=NSECS > file.txt; show_info -q REC key=SECS >> file.txt".

Mode Parameters

Mode parameters are stored as ASCII tables. The fields are degree, order, frequency, amplitude, width, background, x, {tan(asym)}, σ(frequency), σ(amplitude), σ(width), σ(background), σ(x), {σ(tan(asym))}, a1, a2, ..., aN, σ(a1), σ(a2), ..., σ(aN). The parameter x is not fit for and is retained for historical purposes. The parameter tan(asym) and its error will not be present for fits with symmetric profiles. The value of N is either 6, 18, or 36. Any parameter with zero error has not been fit for (such as x).


The segments of each record for 2d RLS rotational inversions include these files: rot.2d, err.2d, splittings.out, and rmesh.orig. The file rot.2d is an ASCII table giving the rotation rate in nHz, and err.2d likewise gives the error estimates for these values. The columns correspond to latitudes of 90-i*15/8 where i is the column number, starting with zero. In other words, every 8 columns correspond to 15 degrees, with latitude decreasing to the right. The rows correspond to the radial mesh points, which are given by taking every fourth value in rmesh.orig, which are given in fractional radius.

The file splittings.out contains an ASCII table that provides the a-coefficients calculated from the inverted rotation rate. The fields of this file are degree, order, frequency, (ia+1)/2, 3, N/2, a_ia_in, σ(a_ia_in), a_ia_out, where ia is the a-coefficient index; only odd ia are used in rotational inversions. As with mode parameters, the number of a-coefficients N is either 6, 18, or 36.


The global pipeline consists of six modules and one stand alone executable. Their source code can be found at and the corresponding "libraries" can be found at


The pipeline is almost always run by the following scripts. They can be found at

The following scripts are not called by doglobalhs.


The execution of the pipeline is controlled by parameter file templates. Each set of parameter file templates is assigned a label that refers to the set of all input parameters needed by all the modules and scripts for one particular way of executing the pipeline. Perhaps most significantly, the parameter file templates determine which dataseries are used as input and output for each of the modules. Therefore, each label describes a set of related data products, although some data products are shared between labels. Parameter file templates are located at

VERSION keyword

The VERSION keyword is typically propagated by the modules and scripts from the input to the output. However, at any point in the processing one may overwrite the VERSION keyword by amending the appropriate parameter file template. The data written by the label hmiv72d originally had VERSION="version0". However, when it was subsequently discovered that the error in the Carrington inclination was not taken into account in the spherical harmonic decomposition, they were reprocessed with VERSION="version1". As of November 2014, this is the current value for dataseries up to the mode parameters. These have been reprocessed again for a change in the application of the Woodard effect described above, and the new records have VERSION="version2". The old prescription used constant coefficients in the expansion of differential rotation, the new one calculated these coefficients from the fitted a-coefficients.


The official data products for the first 72 day time period could have been generated using the command

doglobalhs label=hmiv72d starttime=6328d totaltime=72d lmin=0 lmax=300 lchunk=80

but since the resulting data products are archived, this should not be repeated unless the processing changes. In that case, the corresponding parameter file templates should be amended to write a new value of the VERSION keyword. The parameters lmin and lmax could have been omitted, but here they are explicitly set to their default values for clarity. To create the high-l timeseries, we use

doglobalhs label=hmiv72d starttime=6328d totaltime=72d lmin=301 lmax=1000

where now lchunk is allowed to take its default value (40). For lmin>300, doglobalhs automatically skips the peakbagging. The parameter lchunk describes how many raw timeseries will go into one storage unit. See the documentation for doglobalhs for a full explanation of all its parameters.

Contacts | JSOC Home | Exportdata | Lookdata | SDO-NASA | Stanford Solar Home | Stanford Solar-Center

SDO Privacy Notice