PDS_VERSION_ID = PDS3
RECORD_TYPE = STREAM
RELEASE_ID = 0001
REVISION_ID = 0000
OBJECT = TEXT
PUBLICATION_DATE = 2008-10-28
NOTE = "Description of the CALIB directory
contents for an ASPERA-3 release."
END_OBJECT = TEXT
END
CALIB Directory Contents
The CALIB directory contains calibration tables for a MEX ASPERA-3
archive volume. The files listed below are found in this directory.
CALINFO.TXT - The file you are reading.
IMA_MASS.TAB - The ASPERA-3 Ion Mass Analyzer (IMA) Mass channels data
calibration table. This table provides the background
noise values and the correction ratio for each of the
32 mass channels. This table is applicable for all IMA
sectors, and thus is used for all IMA_AZ* data products.
IMA_MASS.LBL - PDS label that describes the ASPERA-3 Ion Mass Analyzer
(IMA) Mass channels data calibration table.
IMA_ENERGYn.TAB - The ASPERA-3 Ion Mass Analyzer (IMA) Energy steps data
calibration tables. These tables provide the center
energy in eV for each energy step, and the fraction of
noise dependent on energy step. These tables also
contain elevation angle information per elevation
(polar) index and per energy step. These tables are
applicable for all IMA sectors, and thus used for all
IMA_AZ* data. Note that there are different tables
for different time periods, so the tables are numbered
where 'n' starts at 1. The time periods each table
covers is documented in the associated .LBL file.
IMA_ENERGYn.LBL - PDS labels that describe the ASPERA-3 Ion Mass Analyzer
(IMA) Energy steps data calibration, tables including
the time periods for which the associated table is valid.
IMA_AZIMUTH.TAB - The ASPERA-3 Ion Mass Analyzer (IMA) Azimuth sectors data
calibration table. This table provides the central
directions (in degrees) of each azimuth sector as well
as the efficiencies and very rough estimation of the
geometric factors for each of the sectors. There is one
row per azimuth sector corresponding to each IMA_AZ*
data product for a total of 16 rows (16 sectors).
IMA_AZIMUTH.LBL - PDS label that describes the ASPERA-3 Ion Mass Analyzer
(IMA) Azimuth sectors data calibration table.
******************************* IMPORTANT NOTE *******************************
The ASPERA-3 IMA data is complicated and there is no unique procedure to
calibrate the data. Proper calibration depends on the data itself and
user specific judgments. There are many issues to address when analyzing
the ASPERA-3 IMA data. The IMA_CALIBRATION_REPORT.PDF (in the DOCUMENT
directory) addresses these issues and it is advised to contact the IMA
team (Rickard Lundin - rickard@irf.se, Stas Barabash - stas@irf.se, and
Andrei Fedorov - Andrei.Fedorov@cesr.fr) for guidance in analyzing IMA
data. The calibration information and tables provided in this IMA data
set are to mainly describe how to remove background noise. Although a
description and tables are provided in this IMA data set to convert from
raw counts [cnts/accum] to differential number flux [cnts/(cm**2-sr-s-eV)],
the user is to BEWARE - the many issues to address are NOT taken into
account here. For instance, the default geometric factor is used here
even though the geometric factor is dependent on the data itself
(different for O+ and H+). This is just a very simplified procedure to
show how to convert IMA data from raw units to differential number flux
using the IMA tables.
** Please contact the ASPERA-3 IMA Team (Rickard Lundin - rickard@irf.se,
Stas Barabash - stas@irf.se, Andrei Fedorov - Andrei.Fedorov@cesr.fr)
for more information before using IMA data.
********************************** END NOTE **********************************
Description of calibration table formulation and use:
This is the calibration table formulation for all the IMA_AZ* data
products. These tables provide calibration values (columns) for the
mass channels (IMA_MASS.TAB, 32 rows), the energy steps (IMA_ENERGYn.TAB,
96 rows), and the azimuth sectors (IMA_AZIMUTH.TAB, 16 rows). There is
a description of each calibration value and how to apply the value to
the SENSOR data for removing background noise and for converting raw
counts [cnts/accum] to differential number flux [cnts/(cm**2-sr-s-eV)].
Removing Background
-------------------
Four of the mass channels (0, 4, 10, and 22) have been identified as
not trustworthy. So, the data in these must first be replaced.
Let each data value be represented by
Data(i)(j), where i represents the energy step (0-95)
and j represents the mass channel (0-31)
Replace data values in channel 0 with zeros:
Data(i)(0) = 0
Replace data values in channels 4, 10, and 22 by averaging their
adjacent mass channel data values for each energy step:
Data(i)(4) = [Data(i)(3) + Data(i)(5)] / 2
Data(i)(10) = [Data(i)(9) + Data(i)(11)] / 2
Data(i)(22) = [Data(i)(21) + Data(i)(23)] / 2
Now, calculate the Data Mean for each energy x mass matrix:
N = 96 * 32 (Number of samples: 96 energy steps x 32 mass channels)
E_M_MATRIX_SUM = SUM [Data(i)(j)] for i=0-95 and j=0-31
DATA_MEAN = E_M_MATRIX_SUM / N
Compute standard deviation, SD:
E_M_MATRIX_SQR_SUM = SUM {[Data(i)(j)]**2} for i=0-95, j=0-31
+- -+
| N * E_M_MATRIX_SQR_SUM - E_M_MATRIX_SUM**2 |
SD = SQRT | ------------------------------------------ |
| N**2 - N |
+- -+
If the standard deviation is greater than the data mean, then the
background mean is computed. If standard deviation is less than or
equal to the data mean, then the data mean is the background mean.
The background mean is computed by excluding any data greater than
the data mean + 2 * standard deviation:
If SD > DATA_MEAN, do the following:
NB = Number of data samples that meet the criteria
If Data(i)(j) less than or equal to (DATA_MEAN + 2 * SD),
Add Data(i)(j) to BACKGROUND_SUM
Increment NB
BACKGROUND_MEAN = BACKGROUND_SUM / NB
If SD <= DATA_MEAN, BACKGROUND_MEAN = DATA_MEAN
C CODE EXAMPLE to compute BACKGROUND_MEAN:
E_M_MATRIX_SUM = 0;
E_M_MATRIX_SQR_SUM = 0;
N = 96*32;
for (i=0; i < 96; ++i)
{
for (j=0; j < 32; ++j)
{
E_M_MATRIX_SUM = E_M_MATRIX_SUM + Data[i][j];
DATA_SQR = Data[i][j] * Data[i][j];
E_M_MATRIX_SQR_SUM = E_M_MATRIX_SQR_SUM + DATA_SQR;
}
}
DATA_MEAN = E_M_MATRIX_SUM / N;
SD = sqrt((N * E_M_MATRIX_SQR_SUM - E_M_MATRIX_SUM**2) / (N**2 - N));
if (SD > DATA_MEAN)
{
NB = 0;
BACKGROUND_SUM = 0;
for (i=0; i < 96; ++i)
{
for (j=0; j < 32; ++j)
{
if (Data[i][j] <= (DATA_MEAN + 2*SD))
{
BACKGROUND_SUM = BACKGROUND_SUM + Data[i][j];
NB = NB + 1;
}
}
}
BACKGROUND_MEAN = BACKGROUND_SUM / NB;
}
else
BACKGROUND_MEAN = DATA_MEAN;
Computing and Subtracting Background Noise
------------------------------------------
The IMA_MASS.TAB and IMA_ENERGYn.TAB calibration tables are used to
determine the background noise per mass channel, per energy step.
Please note that the correct IMA_ENERGYn.TAB file must be used based
on the time period. Check the IMA_ENERGYn.LBL files for the time
period covered for that energy table where n = 1, 2, etc. (Use the
START_TIME and STOP_TIME values for time range of the corresponding
IMA_ENERGYn.TAB file.) In addition, please note that negative values
for the CENTER_ENERGY in the energy tables indicate that IMA cannot
measure the positive ions on the given energy step so data at these
energy levels should be ignored and not used. Also included in the
IMA_ENERGYn.TAB files are the elevation angles per index (polar angle
index found as a MODE value in the data files) and per energy step.
Columns 4-19 correspond to the elevation (polar) index and the 96 rows
correspond to the energy steps. Please note that elevation angles less
than -50.0 (degrees) indicate invalid data that should be excluded from
data analysis.
Let the background noise for each data value be represented by
BACKGROUND_NOISE(i)(j), where i represents the energy step (0-95)
and j represents the mass channel (0-31)
In the IMA_MASS.TAB, column 1 gives the mass channel name to which
the calibration data applies.
COLUMN 2 of IMA_MASS.TAB: MASS_CHANNEL_NOISE per mass channel
This is the mass channel noise for all energy steps (i).
BACKGROUND_NOISE(i)(j) = BACKGROUND_MEAN * MASS_CHANNEL_NOISE(j), j=0-31
In the IMA_ENERGYn.TAB, column 1 gives the energy index value for the
energy step the calibration data applies.
COLUMN 3 of IMA_ENERGYn.TAB: E_STEP_NOISE per energy step
This is the energy step noise for all mass channels (j).
BACKGROUND_NOISE(i)(j) = BACKGROUND_MEAN * E_STEP_NOISE(i), i=0-95
Now, the background noise needs to be adjusted based on summation modes.
Use the MODE DATA rows in the data files for the time period of the data
matrix (energy x mass) currently processing, Data(i)(j). The values for
the following summation mode descriptions (defined in the label files as
SENSOR_NAME), are used to adjust the background noise.
ASUM = "Azimuth Sum Mode" value in the data file
PSUM = "Polar Angle Sum Mode" value in the data file
MSUM = "Mass Channel Sum Mode" value in the data file
ADJUST_FACTOR = 2**ASUM * 2**PSUM * 2**MSUM
For example, if ASUM = 0, PSUM = 2, and MSUM = 3, then
ADJUST_FACTOR = 1 * 4 * 8 = 32
The adjusted background noise is then:
ADJ_BCKGRND_NOISE(i)(j) = BACKGROUND_NOISE(i)(j) / ADJUST_FACTOR
Now subtract the adjusted background noise from the data:
Adj_Data(i)(j) = Data(i)(j) - ADJ_BCKGRND_NOISE(i)(j)
One last correction to make before converting to flux:
Apply the mass correction ratio.
COLUMN 3 of IMA_MASS.TAB: MASS_CORR_RATIO per mass channel
This is the mass channel correction ratio for all energy steps (i).
Bckgrnd_Removed_Data(i)(j) = Adj_Data(i)(j) * MASS_CORR_RATIO(j), j=0-31
Converting to Number Flux
-------------------------
To go from corrected cnts/accum to cnts/(cm**2-sr-s-eV):
The differential number flux (DNF) per energy step (i),
per mass channel (j), per anode (Azimuth Sector (k)) is:
Bckgrnd_Removed_Data(i)(j)
DNF(i)(j) = ---------------------------------------------------------
Detector_eff(k) * DATA_ACCUM * Geom_Fac(k) * center_eV(i)
In the IMA_AZIMUTH.TAB, column 1 gives the IMA Azimuth sector name to
which the calibration data applies. This table contains one row per
IMA_AZ* data product. Column 2 of the IMA_AZIMUTH.TAB contains the
central directions (in degrees) of each of azimuthal sector from +X
to +Z of S/C.
COLUMN 3 of IMA_AZIMUTH.TAB: AZIMUTH_EFF per azimuth sector (IMA_AZ*)
This is the detector efficiency for each IMA azimuth anode (or sector).
Detector_eff(k) = AZIMUTH_EFF
where k is the row for the azimuth sector (IMA_AZ* data)
DATA_ACCUM is constant for all energy steps, mass channels, and azimuths.
DATA_ACCUM is 0.1209 seconds
COLUMN 4 of IMA_AZIMUTH.TAB: GEOM_FACTOR per azimuth sector (IMA_AZ*)
This is the detector geometry factor (cm**2-ster-eV/eV).
Geom_Fac(k) = GEOM_FACTOR
where k is the row for the azimuth sector (IMA_AZ* data)
COLUMN 2 of IMA_ENERGYn.TAB: CENTER_ENERGY per energy step
This is the center energy (eV) for each energy step (j).
NOTE: Negative values indicate that IMA cannot measure the positive
ions on the given energy step and therefore data at these energy
steps should be ignored and not used in the data analysis.
Center_eV(j) = CENTER_ENERGY
where j is the corresponding ENERGY_INDEX based on the position
of the items in the data files, starting at 0
This completes the set of terms needed to determine the differential
number flux [cnts/(cm**2-sr-s-eV)] per energy step (i), per mass channel(j),
per IMA Azimuth sector (IMA_AZ* data product (k)) using the equation given:
Bckgrnd_Removed_Data(i)(j)
DNF(i)(j) = ---------------------------------------------------------
Detector_eff(k) * DATA_ACCUM * Geom_Fac(k) * center_eV(i)