irfpy.ica.data_class
¶
Description:
A wrapper class handling RPC-ICA level 1 data. Centralises various attributes from the initial matlab files under a single class, as well as new attributes for a broader use (see below). The class includes methods for various purposes, and aims to ease the filtering of different modes, software versions and post-acceleration values. Filtering is however optional. The object will contain all data available for one day. It is not meant to span over several days (because of the size of the arrays) and do not allow a shorter selection.
To create one object:
date = '20141128'
ICADataSet = ICAData(date, dataPath='/<bli>/<bla>/') ## (Absolute) path to the data directory, e.g. containing /level1.
A more detailed example is given in pltSpec.py
Arguments:
day Day of interest. dataPath (default rcDataPath) Where data can be found. Should lead to the top level of the data tree - ex ‘/…/processed’ - optional - string modeSel (default ‘mostPresent’) Desired mode(s) - optional - float swSel (default ‘accordingToMode’) Desired software version(s) - optional - float paccSel (default ‘all’) Desired pacc value(s) - optional - float cleanCT (default True) If cross-talk cleaning wanted - optional - boolean
Dependencies:
irfpy.ica.modules irfpy.ica.io.readproc()
- class irfpy.ica.data_class.ICAData(day, dataPath=None, modeSel='mostPresent', swSel='accordingToMode', paccSel='all', cleanCT=True)[source]¶
Bases:
object
day [necessary] = ‘yyyymmdd’ ; dataPath [optionnal but…] = ‘/<bli>/<bla>/ICAPy/’ ; the absolute/relative path to the ICAPy directory.
- elevTableNew¶
Since the given elevation table is not necessarely “alligned” (elevation/energy dependency), one cannot simply use the indices along elevation dimension and calculate a physical elevation from it (as done with azimuth anodes, because anodes are always at the same physical angle, no matter the energy!) So we define a new “artificial” elevation table, and will sort all (elevation, energy) combination according to this new table, ICAData.elevTableNew . This is in fact a re-binning.
- cleanCT()[source]¶
Removing electronic cross-talk between sectors, empirical approach. With E the counts in the emitter sector, R the counts in the receiver sector:
R -= (a*ln(E)+b) * E
- alignElev()[source]¶
Produces a new ionSPectraScan array with aligned elevation bins: for a same elevation index, all energies correspond to one physical elevation, and this new elevation table is given in ICAData.elevTableNew
- initFOVEM(species=['H+'])[source]¶
WARNING: initFOVEM integrate 16 time instances to create 1 FOV for each species. SO using ICAData.initFOVEM without considering the different modes operated for the data set considered is not appropriate. ICAData.FOVSpecies can be initialized with any data set since any binned or absent azimuth/elevation is expanded again in the process. Modes 8, 16, 24 correspond to the highest angular resolution (16x16). Modes 9, 17, 25 have binned elevation (from 16 down to 8), and maximum azimuth resolution (16). See Nilsson et al., 2007, ssr, p.682-683
- initFOVEMScan(masks)[source]¶
WARNING: initFOVEMScan integrate 16 time instances to create 1 FOV for each species. SO using ICAData.initFOVEMScan without considering the different modes operated for the data set considered is not appropriate. ICAData.FOVSpecies can be initialized with any data set since any binned or absent azimuth/elevation is expanded again in the process. Modes 8, 16, 24 correspond to the highest angular resolution (16x16). Modes 9, 17, 25 have binned elevation (from 16 down to 8), and maximum azimuth resolution (16). See Nilsson et al., 2007, ssr, p.682-683
- initSpecSpecies(species=['H+'])[source]¶
Initialise a 5D matrix for the specified species, with elevation aligned.
- initSpectraSpecies(species, msp=None)[source]¶
Returns an array of same shape as ICAData.ionSpectraScan. The counts outside the manual selection for the specified species are put to 0.
- indToEl(ind)[source]¶
From an elevation index (as binned previously) [0,nbElev] to [-elevLim,elevLim]
- indToVec(secInd, elevInd)[source]¶
From (secInd,elevInd) to a unit VIEWING DIRECTION vector in ICA reference frame