Bepi Colombo MIO
MEA
Flight Data Processing / Analysis Log

Fedorov
The PDF file of this doc is in Data_assessment_log_20_Aug_2019.pdf

1 MIO and MEA cruise phase configuration

The instrument configuration during the cruise phase is shown in Figure 1. The important information is in the small table below:
Sensor
GF, c m 2 sreV/eV
Note
MEA-1
1 0 -5 2 π
Anodes (elevation channels) 10,11,12,13 are obscured
MEA-2
1 0 -4 2 π
image: 8_home_fedorov_MERCURY_FLIGHT_DOCLOG_MMO_Cruise_Configuration_20_Aug_2019.jpg
Figure 1: MEA 1 and 2 cruise phase configuration. See the sectors attitudes in the right panel. Attention: The sector numbers are starting with “1”!

Instruments data modes used for commissioning

2.1 3D data product

Note: This subsection shall be moved to a special document (like User Manual). Some technical information is in MDP_DPU1_MEA_software.2014-03-20.doc.MDP
  1. MDP generates a 3D product from MEA-1 data ONLY.
  2. 3D data product can be accumulated in several time intervals according to Table 1 (see MDP_DPU1_MEA_software.2014-03-20.doc).
  3. MDP generates 3D data as shown in Figure 2 top panel. The corresponding CDF L1 file shall contain the recovered data as it is shown in Figure 2 bottom panel.
  4. The 16 energy steps (see Section xxx) are the concatenation of the 8 sub-steps of the original MEA energy table. It correspond of a sum of two MEA frames.
Product
Accumulation, s
Energy, Rot. Sectors, Elevation Anodes
3D_L
4 every 600 s
16, 16, 8
3D_M
8 or 4 (?)
16, 16, 8 TBC
3D_H
4
16, 16, 8 TBC
Table 1: 3D products contents
image: 9_home_fedorov_MERCURY_FLIGHT_DOCLOG_MEA_1_3D_processing_21_Jul_2019.jpg
Figure 2: 3D product. Top: The Structure of measurements and TM packet filling
Bottom: the contents (Shell Be) of the corresponding CDF file
The energy table for T0 option (the reason, why I show T0 table only, see in subsection 5.1) is as follows :
0 7
[280.6, 212.2, 158.0, 117.7, 87.63, 65.26, 48.603, 36.20,
8 15
26.96, 20.08, 14.95, 11.13, 8.292, 6.175, 4.600, 3.425]
The corresponding width of the energy bin and the bin accumulation time are as follows:
Δ E/E=1.341 Δ t[ s ] =1.951 0 -3 8.0=0.0156
One energy bin is the concatenation of 8 energy sub-steps from the first table in tables_HT.XLSX.

2.2 Et-OMN data product

This product is just an energy spectrum with the properties as shown in Table 2.
Product
Esteps
Accumulation
Energy table
Energy bin width
Comment
Et-OMN
16
4s
See subsection 2.1
See subsection 2.1
T0 table
TBD
Table 2: The main properties of Et-OMN product
Subsection 5.2 compares the 3D and OMN spectra of GF #1 taken the the same moment.

3 The first commissioning data

The first real commissioning was performed on Jul 1-2 2019. The data summary are shown in Figure 3 and Figure 4. MEA-1 only provides 3D product to get more or less complete information about the electron distribution.
image: 10_home_fedorov_MERCURY_FLIGHT_DOCLOG_bepi_darmstadt_data_mea1.png
Figure 3: MEA-1 commissioning data of Jul 1st 2019
image: 11_home_fedorov_MERCURY_FLIGHT_DOCLOG_bepi_darmstadt_data_mea2.png
Figure 4: MEA-2 commissioning data of Jul 2nd 2019
The commissioning L1 level data are in rosina1:/DATA/BEPI/DATA/L1/20190701/*.cdf

IDL patch to work with the last CDF version

  1. Read cdf_patch_for_idl. Get the last idl_cdf.so and idl_cdf.dlm for x86-64, get showcdfversion.pro procedure.
  2. Backup /usr/local/itt/idl/bin/bin.linux.x86_64/idl_cdf.so
  3. Backup /usr/local/itt/idl/bin/bin.linux.x86_64/idl_cdf.dlm
  4. run idl and run showcdfversion.pro. The output shall be:
    CDF library: 3.7.1.0
    Latest Leap Second in Table: 2017 1 1

5 3D Data analysis

5.1 General assessment

The table below shows the main attributes of the data analysis:
Data
MEA1_L1_3DL__20190701_V00.cdf
Data Dir
/DATA/BEPI/DATA/L1/20190701/
rosina1:
IDL script
read_cdf_mea.pro
Working dir
MERCURY/FLIGHT/DATA_READER
fedorov@matrix:
CDF “count” correction
See below
CDF “energy” correction
T0 table, 8 steps concatenation
Important notes:
  1. To recovery a standard original MEA-1 sampling matrix ( see Figure 2) I have used the procedure as follows. If not, the data analysis gives you an irrelevant data. (This part shall be removed as soon as Alain makes a new CDF version)
    for i = 0, 3 do begin
    CountsArr(*,i*4,0) = CountsArr(*,i*4+2,0)/2.0
    CountsArr(*,i*4+1,0) = CountsArr(*,i*4+2,0)/2.0
    CountsArr(*,i*4+2,0) = CountsArr(*,i*4+2,0)/2.0
    CountsArr(*,i*4+3,0) = CountsArr(*,i*4+3,0)/2.0
    CountsArr(*,i*4,7) = CountsArr(*,i*4+2,7)/2.0
    CountsArr(*,i*4+1,7) = CountsArr(*,i*4+2,7)/2.0
    CountsArr(*,i*4+2,7) = CountsArr(*,i*4+2,7)/2.0
    CountsArr(*,i*4+3,7) = CountsArr(*,i*4+3,7)/2.0
    CountsArr(*,i*4,1) = CountsArr(*,i*4,1)/2.0
    CountsArr(*,i*4+1,1) = CountsArr(*,i*4+1,1)/2.0
    CountsArr(*,i*4+2,1) = CountsArr(*,i*4+2,1)/2.0
    CountsArr(*,i*4+3,1) = CountsArr(*,i*4+3,1)/2.0
    CountsArr(*,i*4,6) = CountsArr(*,i*4,6)/2.0
    CountsArr(*,i*4+1,6) = CountsArr(*,i*4+1,6)/2.0
    CountsArr(*,i*4+2,6) = CountsArr(*,i*4+2,6)/2.0
    CountsArr(*,i*4+3,6) = CountsArr(*,i*4+3,6)/2.0
    endfor
  2. The Energy table #1 in the CDF file is not correct. The electron energy spectrum is adequate to the expected solar wind if we concatenate 8 sub-steps in T0 table (see tables_HT.XLSX. A very approximate formula is: E=3.4251.34 1 ( 15-i ) [ eV ] i=[ 0..15 ]
  3. It is ONE 4s MEA spectrum. There is NO accumulation of such spectrum over 600 s. CDF parameter “Duration” does not correct
The available data for the working MCP HV and different #GF are shown in Table 
Time
#GF
Comments
2019.7.1 22:17:48
0
dT = 600s, time interval between the steps
2019.7.1 22:28:50
1
2019.7.1 22:39:52
1
2019.7.1 22:50:54
2
3
Does not exist
2019.7.1 23:01:57
4
Table 3: The list of all 3D samplings taken for this analysis
Figure 5 shows the analysis of the MEA-1 spectra with #GF = 1.
image: 12_home_fedorov_MERCURY_FLIGHT_DOCLOG_MEA_1_GF_1_Spectra_1_Jul_2019.jpg
Figure 5: Energy, rotation sectors, and anode spectra of two 3D samplings with #GF = 1 taken on 22:28 and 22:39. See the text for details

5.2 Correspondence between 3D and Et-OMN spectrum

I have recalculated the Et-OMN product from the 3D product using the formulas explained in annex 7.2 converted to the 16 energy bins. My conversion code is shown below.
; Canode is the cos(Azimuth), Anodes cosines
d_Lcl_MEA_TBL_GF0 = '40'xus
d_Lcl_MEA_TBL_RD1 = '1ff'xus
d_Lcl_MEA_TBL_GF = 'bf'xus
us_gf = ['89'xus, 'a1'xus, '9c'xus, '96'xus, 'a7'xus, 'a7'xus, 'b4'xus, 'b6'xus, 'b2'xus, 'cf'xus, '00'xus, '00'xus, '00'xus, '00'xus, 'a9'xus, '9d'xus] + d_Lcl_MEA_TBL_GF0 ; GF #1 !!
us_gf(10:13) = 0
OMNIcf = Canode*float(us_gf(0:7))*16.0/float(d_Lcl_MEA_TBL_GF) ; d_Lcl_MEA_TBL_RD1 removed since Canode is real cosin and s_cosp is Canode*d_Lcl_MEA_TBL_RD1
CountToWork = float(CountsArr(*,*,*))
for ie = 0, NeN -1 do for iaz = 0, Naz - 1 do CountToWork(ie,iaz,*) = CountToWork(ie,iaz,*)*OMNIcf
OmniSpec = total(total(CountTowork,3),2)
The resulting comparison of the real OMN product and the OMN recalculated from the 3DL product is shown in Figure 6. The local conclusion is as follows:
  1. The Et-OMN and 3DL products are the same origin (time stamps are correct)
  2. The 3DL product is just a ONE 4s instant distribution. There is NO integration or averaging of several successive distributions.
image: 15_home_fedorov_MERCURY_FLIGHT_DOCLOG_MEA_1_3D_Omni_Comp_1_Jul_2019.jpg
Figure 6: Comparison of the GF #1 Et-OMP (red) and 3DL spectra (blue). The 3DL spectra have been recalculated to the et-OMP product by MDP algorithm.

5.3 GF variation analysis

The Energy spectra, calculated from the corresponding 3D distributions, for corresponding states of GF, are shown in Figure 7. See also Table 3. We see that the integral statistics is rather bad and also the integral count level equal to 5 can be interpreted as a noise level. The relative GF values (the right panel) have been calculated as follows:
  1. Remove the noise level ( = 5) from each spectrum
  2. Divide the spectrum to E 2 and integrate it.
  3. The resulting value is CNGF . Here “C” is a constant. If we assume number density “N” as a constant during 50 minutes of the measurements, we can calculate a relative GF.
image: 13_home_fedorov_MERCURY_FLIGHT_DOCLOG_MEA_1_3D_EnergySpec_GFs_1_Jul_2019.jpg
Figure 7: Integral energy spectra (the same condition as in Figure 5) for different GF states
# GF
GF value, arbitrary units
GF/GF(1)
Instrument GF, GF/GF(1)
Instrument GF/GF(1)
0
2.400
0.65
4.305e-06
0.61
1
3.937 (3.70 av)
1.07
7.112e-06
1.0
1
3.462 (3.70 av)
0.94
7.112e-06
1.0
2
1.191
0.32
2.281e-06
0.32
4
0.3309
0.09
0.149e-06
0.021
Table 4: Comparison of the relative GFs estimated in flight (left columns) and Calibration numbers (right columns)
The result of GF comparison is shown in Table 4. It looks reasonable if we take into account:
  1. Solar wind number density can vary during almost one hour of measurements.
  2. The statistics of the measurements is very bad for the low GF.

5.4 Moments calculation

5.4.1 The solar wind conditions

We use the ACE data to estimate possible conditions at BepiColombo position. The corresponding ACE data are shown in Figure 8. The all derived contains are gathered in Table 5. You can see that it was a density perturbation in the time of the measurements. We can estimate the two density values shown in the last line of Table 5.
image: 14_home_fedorov_MERCURY_FLIGHT_DOCLOG_Ace_Data_around_Bepi_1_Jul_2019.jpg
Figure 8: Top: Bepi Colombo distance from Sun, middle: ACE density, bottom ACE velocity. The left vertical mark shows the expected condittions at Bepi Colombo position on 1st of Jul 2019 22:30.
Radial distance from Earth
0.2 AU (antisunward)
2.99196e+07 km
Longitudinal distance
0
Velocity
330.0 km/s
Delay
25.1848 hours
Density in point, cm-3
2.0
4.0
Recalculated density to 1.2AU
1.4
2.8
Expected temperature
13 eV
See
Table 5: Possible densities at Bepi Colombo position
Electron temperature of the solar wind is more-or-less constant (see Figure ) and can be estimated around 13 eV.
image: 16_home_fedorov_MERCURY_FLIGHT_DOCLOG_Electron_Temperature_Montgomery_1968.jpg
Figure 9: Electron temperature in the solar wind. After Montgomery, 1968.

5.4.2 Important constants used for the moment calculation and calculation code

dT
0.0156
One bin accumulation, s
GV
3.56e-06
Velocity geometrical factor, c m 2 sr Δ V/V
W
0.067V[ cm/s ] cos( Elevation )
one bin accumulation velocity space, (cm/s ) 3
dV/V
0.171
velocity integration cell (16 steps mode)
Table 6: Main MEA-1 calibration and measurement constants used for moments calculation
The IDL code used for the moment calculation is as follows:
Canode = cos(AnodeAngle/180.0*!PI) ; Elevation angle
GV = 7.11e-6/2.0*(1.95e-3*8.0) ; Geometrical factor in cm2 sr dV/V (GF /2) * dT [s]
Varr = 5.96e7*sqrt(MeTable) ; Velocity, cm/s
Omega = double((22.5/180.0*!PI))^2*double(Canode) ; Integration solid angle, sr, array for Elevations
dV = ((dE-1.0)/2.0)*Varr ; Integration V interval, cm/s as a function of Energy step
dW = dblarr(Nen, Naz, Nel) ; Integration Volume, (cm/s)^3
CN = dblarr(Nen, Naz, Nel) ; Density conversion factor
for iaz = 0, Naz - 1 do for iel = 0, Nel-1 do begin
dW(*,iaz,iel) = double(Omega(iel))*double(Varr)^2*double(dV)
CN(*,iaz,iel) = dW(*,iaz,iel)/(GV*(double(Varr))^4)
endfor
LowEn = 15
HighEn = 1
Full3D = dblarr(Nen, Naz, Nel)
for iaz = 0, Naz - 1 do for iel = 0, Nel-1, 2 do begin
Full3D(HighEn:LowEn,iaz,iel) = double(CountsArr(HighEn:LowEn,iaz,6))*double(Canode(iel))
Full3D(HighEn:LowEn,iaz,iel+1) = double(CountsArr(HighEn:LowEn,iaz,7))*double(Canode(iel))
endfor
dN = dblarr(Nen, Naz, Nel)
for iaz = 0, Naz - 1 do for iel = 0, Nel-1, 2 do begin
dN(HighEn:LowEn,iaz,iel) = (CountsArr(HighEn:LowEn,iaz,6) - NoiseLevel/2.0/16.0)*CN(HighEn:LowEn,iaz,iel)
dN(HighEn:LowEn,iaz,iel+1) = (CountsArr(HighEn:LowEn,iaz,7) - NoiseLevel/2.0/16.0)*CN(HighEn:LowEn,iaz,iel+1)
endfor
T = double(0.0)
for iaz = 0, Naz - 1 do for iel = 0, Nel-1 do T += total(MeTable*dN(*,iaz,iel))
T = T/total(dN) ; TEMPERATURE, eV
N = total(dN) ; DENSITY, cm-3

5.4.3 Moments calculation results

Figure 5 shows that only anodes (Elevation channels) 6 and 7 of MEA-1 can see the unobscured solar wind. Thus to calculate the moments, I have replaced the data of the channels 0 - 5 to the channels 6 and 7 data. The result is shown in Figure 10. You can see that the moments are very close to the expected (section 5.4.1). The numerical simulation used the Maxwell distribution and the MEA-1 calibration data shows also very similar result.
image: 17_home_fedorov_MERCURY_FLIGHT_DOCLOG_Data_Simul_Measur_Comp_31_Aug_2019.jpg
Figure 10: The 3D distribution (blue) used to calculate the moments and the numeral simulation of the MEA-1 response (red)

Conclusions

  1. Et-OMN and 3DL products data correspond to the expected MEA-1 properties
  2. The moments calculated form 3DL data correspond to the expected solar wind parameters
  3. The 3DL data obtained for different GF states show the proper GF variation. The very bad data statistics does not allow to estimate correctly GF #4 data
  4. MEA-1 3DL has a very bad statistics due to just one spin (4s accumulation). It will be factor 10 better at Mercury. I would suggest to sum at least 8 successive distributions.
  5. CDF L1 data issues
    1. The CDF 3D Counts array shall be filled by another way. The correct algorithm is shown in Figure 2.
    2. The energy table in the CDF file does not correspond to the real Energy table, shall be T0 during commissioning
    3. CDF variable “Duration” is not clear
  6. CL issues:
    1. 3DL times in Figure 3 do not correspond to the times in Table 3
    2. The total counts of the instrument is going back while the GF # increasing. But CL color scale show the increasing of the count. This is incorrect scaling.

7 Annex

7.1 3D generation code:

See APP03
//M2 data USE 0-7ch of [16sc][16ch][32en] in L&M&H(4s) modes
// 3D-LL(600s) [88dir][16en] uc_f = 0 L 0-7ch
// 3D-M(4 or 8s) [88dir][16en] uc_f = 0 M 0-7ch
// 3D-H(2s & 4s) [88dir][32en] uc_f = 2 H 0-7ch
// uc_f = 3 H 8-15ch
char app03_MEA_3D( unsigned short *pus_inbuf, //[INPUT] [16sc]( 12B + [16ch][32en])
unsigned short *pus_outbuf, //[OUTPUT][88dir][16or32en]
unsigned char uc_f) //[INPUT] Data ID,
{
int i, j, k, k2;
int i_eSize, i_ch_os, i_sc, i_hd;
i_ch_os = (uc_f != 3) ? 0 : 8; // 8 for 2nd product of 3D-H(2s) // 0 for 3DLL
i_eSize = (uc_f <= 1) ? 16 : 32; // Number of energy steps // 16 for 3DLL
i_sc = d_Lcl_MEA_PACSZ/2; //Size of sector(packet) at USHORT //
i_hd = d_Lcl_MEA_HDRSZ/2; //Size of header in packet
pus_inbuf += i_hd;
//ADD in L&M modes
for (k = 0; k < 32; ++k) { //energy step
k2 = (uc_f <= 1) ? k/2 : k; // k/2 for et-3DLL (thus two energies are added )
i = 0; // channel (elevation anode # )
for (j = 0; j < 4; ++j) // directions (tale 4 selected sectors (azimuthal rotation)
*(pus_outbuf + k2 + j*i_eSize) += *(pus_inbuf + i+i_ch_os + k*16 + (4*j+2)*i_sc)
+ *(pus_inbuf + i+i_ch_os + k*16 + (4*j+3)*i_sc);
i = 1;
for (j = 0; j < 8; ++j)
*(pus_outbuf + k2 + (j+4)*i_eSize) += *(pus_inbuf + i+i_ch_os + k*16 + 2*j *i_sc)
+ *(pus_inbuf + i+i_ch_os + k*16 + (2*j+1)*i_sc);
for (i = 2; i <= 5; ++i) //channel
for (j = 0; j < 16; ++j) //sector(sweep)
*(pus_outbuf + k2 + (j+12 + (i-2)*16)*i_eSize) += *(pus_inbuf + i+i_ch_os + k*16 + j*i_sc);
i = 6;
for (j = 0; j < 8; ++j)
*(pus_outbuf + k2 + (j+76)*i_eSize) += *(pus_inbuf + i+i_ch_os + k*16 + 2*j *i_sc)
+ *(pus_inbuf + i+i_ch_os + k*16 + (2*j+1)*i_sc);
i = 7;
for (j = 0; j < 4; ++j)
*(pus_outbuf + k2 + (j+84)*i_eSize) += *(pus_inbuf + i+i_ch_os + k*16 + (4*j+2)*i_sc)
+ *(pus_inbuf + i+i_ch_os + k*16 + (4*j+3)*i_sc);
}

7.2 Et-OMN generation code

See APP03
in function app03_MEA_makeM()
i_sc = 16*16
us_cnt[secoros(azimut rotation = 16), energies( = 32),channels(anodes = 16)] // array of the data from MEA
//assume:
// in SOURCES/mk_romtbl/mk_mea_rom.c:
// See MDP_SOURCES: app_romTable_MEA_body.txt
// uc_gf[1,*] = [0x89, 0xa1, 0x9c, 0x96, 0xa7, 0xa7, 0xb4, 0xb6, 0xb2, 0xcf, 0x00, 0x00, 0x00, 0x00, 0xa9, 0x9d]
//us_gf[ianode] = (pP->uc_gf[ianode + i_gf*16]) ? d_Lcl_MEA_TBL_GF0 + pP->uc_gf[ianode + i_gf*16] : 0;
//GF #1 us_gf[ianode] = uc_gf[1,*] + d_Lcl_MEA_TBL_GF0
//us_gf[i] = cos(Anode_Phi[i])*d_Lcl_MEA_TBL_RD1
#define d_Lcl_MEA_TBL_GF0 0x40
#define d_Lcl_MEA_TBL_RD1 0x1ff //RAD.
#define d_Lcl_MEA_TBL_GF 0xbf
//--------------------------------------
for (k = 0; k < 32; ++k) { //energy step
ui_et2 = 0; ui_et3 = 0; // for one and secind half of anaodes (channels) one enetrgy step
for (i = 0; i < 16; ++i) //channel, 16 anodes (elevations)
{
ui_et0 = 0; ui_et1 = 0; // for one and secind half of rotational sectors
//sector(sweep)
for (j = 0; j < 8; ++j) ui_et0 += us_cnt[i + k*16 + j*i_sc]; // summ halfs of sectors
for (j = 8; j < 16; ++j) ui_et1 += us_cnt[i + k*16 + j*i_sc]; // summ halfs of sectors
ui_ttl_ch[i] += ui_et0 + ui_et1; // all sectors together
ui_et2 += ui_et0*us_gf[i]*s_cosp[i]; // GF and polar cosine
ui_et3 += ui_et1*us_gf[i]*s_cosp[i];
}
pDat->ui_MEtO[k] += ui_et2*16/d_Lcl_MEA_TBL_GF/d_Lcl_MEA_TBL_RD1;
pDat->ui_MEtO[k+32] += ui_et3*16/d_Lcl_MEA_TBL_GF/d_Lcl_MEA_TBL_RD1;
}
Yokota-san mentioned, that for 1st of August 2019, the algorithm is as follows:
ui_et2 += ui_et0*us_gf[i]/d_Lcl_MEA_TBL_GF*s_cosp[i];
ui_et3 += ui_et1*us_gf[i]/d_Lcl_MEA_TBL_GF*s_cosp[i];
}
pDat->ui_MEtO[k] += ui_et2;
pDat->ui_MEtO[k+32] += ui_et3;