IMA science data, providing the count rate data access

It is a common part of IMA count rate science data access in the Matlab format.

For nominal use, refer to irfpy.mima.scidata and irfpy.vima.scidata.

irfpy.imacommon.scidata.reshape_mat3d(mat, npol=16)[source]

Reshape the matlab contents into MAEPT order

The function reshapes the matrix to MAEPT order (mass-azimuth-energy-polar-time).

Polar (elevaion) number should be specified, if you know it is not 16 elevation mode.


(spectra, masslist, azimlist, polarlist, timelist). spectra has (N, 32, 16, 96, 16) element, where N is the number of 3-D data. masslist, azimlist, polarlist has (N, 2, 16, 96, 16) shape. timelist has (N, 16, 96, 16) shape.


Reshape the matlab contents into MAET order.

The function reshape the matrix to MAET order.


mat – Matlab contents.


(spectra, masslist, azimlist, elevlist, timelist)

Each output has the shape of (32, 16, 96, T) for spectra; (32, 16, T) for timelist; and (2, 32, 16, T) for others. T is the number of time.


mat – Matlab format data file


Tuple of array. (spectra, mass, azimuth, polar, time).

irfpy.imacommon.scidata.matfile2timeseries(matrix, emulate_full=False)[source]

Getting the matrix data in Matlab, time series of matrix is returned.

  • matrix – Matlab data (dictionary) read via, or using higher-level way, e.g. irfpy.vima.scidata.ImaCountFile

  • emulate_full – Data is emulated to represent the full matrix, namely (M32, A16, E96) size matrix. For mode such as 28, where the original data is (M32, A8, E96) is expanded by assuming the uniform count rate over the bins to the full size.


Time series of 2D matrix

Return type


This is a function for developer.

>>> from irfpy.vima.scidata import get_ima_count_file_full
>>> import datetime
>>> matlab_data = get_ima_count_file_full(datetime.datetime(2008, 3, 3, 14, 55))
>>> timeseries2d = matfile2timeseries(matlab_data.mat)