This file describes the different calibration steps to bring SOIR raw data
(PSA
level 1B) to calibrated data (PSA level 2).
(written by E. NEEFS and A. MAHIEUX)
STEP 1 : DETECTOR NON-LINEARITY CORRECTION
------------------------------------------
For low signal intensity the detector has a non-linear response. The
definition
of linearity by the manufacturer is not fully understood. Nevertheless, one
has
the impression that the pixel is linear within 2 % if it is filled less than
98 % and more than 25 %. Between 10 and 25 % of full well the error grows to
about 4 %. Non-linearity correction has to be applied.
It is understood that this correction routine is only applicable on data sets
that contain signal values with on board subtracted background.
a. calculate exact number of accumulations for this observation
n_accum = (dcbf+1) * (nrac1-1)/2
with dcbf and nracc two parameters in the SOIR telemetry
(dcbf is number of lines binned)
(nracc is number of bins accumulated)
(for details see TMTC TM/TC document in DOCUMENT directory)
b. calculate exact integration time for this observation (in milliseconds)
integ_time_ms = deit1/1000
with deit a parameter in the SOIR telemetry
(deit is integration time in microseconds)
(for details see TMTC TM/TC document in DOCUMENT directory)
c. read the background value corresponding to this integration time (ADC
codes)
in the bkgcodes_vs_integtime table (based on measurement during CRUISE
phase
on Feb 21st 2006)
## background codes vs integration time for integtime = 0,1,....,150 ms
bkgcodes_vs_integtime =
[663,663,679,693,706,721,738,755,772,790,808,827,846,866,886,908,930,
952,975,1000,1024,1050,1077,1104,1134,1164,1194,1225,1257,1289,1323,1357,
1391,1427,1463,1500,1536,1574,1611,1650,1688,1727,1766,1806,1846,1886,
1926,1966,2008,2048,2089,2131,2173,2215,2257,2299,2340,2383,2426,2469,
2511,2555,2599,2641,2684,2729,2772,2815,2860,2903,2947,2992,3035,3080,
3125,3168,3213,3257,3302,3346,3391,3437,3481,3527,3572,3616,3661,3706,
3752,3797,3842,3887,3933,3977,4022,4068,4113,4159,4205,4250,4296,4342,
4387,4432,4479,4524,4570,4616,4661,4707,4753,4799,4844,4891,4936,4982,
5028,5075,5121,5166,5212,5259,5305,5350,5396,5442,5488,5534,5581,5627,
5672,5719,5765,5811,5858,5903,5950,6042,6088,6134,6182,6227,6274,6319,
6366,6412,6458,6504,6551,6597]
The ADC values correspond to different integration times and hence to
different quantities of thermal background photons. The collected pixel
charges are converted by the read-out process into ADC units. There is
a non-linear relation between collected photons and observed ADC units.
The ADC values include an offset (about 660 units) in the video amplifier
electronics introduced to allow for aging margin.
We assumed a perfectly linear relationship between integration time and
the quantity of photons that is equal for all pixels within a grating
order and over all grating orders (wavelengths).
This assumption is only valid if pixel quantum efficiency would be
constant over pixels and wavelengths. This relationship is most probably
also temperature dependent.
adc_bkg = non_lin_correction.bkgcodes_vs_integtime[ integ_time_ms ]
d. reduce the spectrum pixel values to one non-binned non-accumulated values
adc_sig = float(data[i]) / n_accum
e. make sum of ADC value of (measured) signal and (estimated) background
For spectra which have the thermal background subtracted on-board,
the
real charge collected on the pixel capacitor is still the result of
the
combined input of signal photons and thermal background photons
adc_sig_plus_bkg = adc_sig + adc_bkg
f. conversion of ADC units into Arbitrary Charge Units (ACU)
During the measurement with different integration times (Feb 21st
2006)
we have collected different amounts of thermal background photons
that
have produced different amounts of electrons or charges in the pixel.
Because we do not know the exact thermal background level, these
quantities are not calibrated. Therefore we introduce the concept of
Arbitrary Charge Units, in which we will express signal levels. It is
suggested that the value of the arbitrary charge units equals the
integration time value.
The measured relation between ADC units and ACUs can be approximated
by the following equation (10 degress polynomial if ADC units < 6000
and a linear relationship above 6000 ADC units) :
adccode_to_charge( x ):
if x < 6000:
y=-109.4112717552833+x*(0.3281672408563101+\
x*(-0.0003846513541535442+x*(2.869226627796301E-07+\
x*(-1.381722060516796E-10+x*(4.459643046851159E-14+\
x*(-9.752279474228916E-18+x*(1.426792904826683E-21+\
x*(-1.337703563748429E-25+x*(7.266297806363216E-30+\
x*-1.738835026549852E-34)))))))))
else:
y = 6.0634764 + 0.02184421*x
with x = ADC units and y = ACUs
g. calculation of new corrected pixel values
charge = non_lin_correction.adccode_to_charge( adc_sig_plus_bkg )
- integ_time_ms
STEP 2 : WAVENUMBER CALIBRATION
-------------------------------
Full scan / full sun calibration
Based on regularly registered in flight full sun scans and mini scans, and
taking into account the measurement parameters (binning, accumulation,
integration time) conversion formulas are produced for distinct periods of
the mission, converting the pixel scale into a shifted and stretched
wavenumber scale (formulas in SOIR_CALIBRATION_SOFTWARE)
Definition of relationship order vs AOTF frequency is as follows (linear
approximation) :
Order extremes, slopes and frequency for order 101 (base order)
Le_MINUS_OFFSET = 2274.75
Le_PLUS_OFFSET = 2256.41
Le_MINUS_SLOPE = 22.52135922
Le_PLUS_SLOPE = 22.34019417
AOTF_FREQ_BASE = 12915
ORDER_BASE = 101
ORDER_SLOPE = 145.3913
Calculating the order from the AOTF frequency "aofs" read in the
telemetry of a spectrum
order = int((aofs-AOTF_FREQ_BASE)/ORDER_SLOPE + 0.5 + ORDER_BASE)
Calculating extremes and slope for a given order "order"
Le_minus = (order - ORDER_BASE) * Le_MINUS_SLOPE + Le_MINUS_OFFSET
Le_plus = (order - ORDER_BASE) * Le_PLUS_SLOPE + Le_PLUS_OFFSET
slope = (Le_minus - Le_plus) / 319
Mapping a pixel x towards a wavenumber in a certain order
lambda x <-- x * slope + Le_plus
STEP 3 : FULL SUN REFERENCING
-----------------------------
a. selection of the zone of interest from the total data set
the zone of interest is defined using the following criteria:
- beginning when SOIR altitude of measurement is 220km
(defined from the attitude files, refraction taken into account)
- end when SOIR altitude of measurement is 60 km
(defined from the altitude files, refraction taken into account)
b. selection of the reference zone
the reference zone is defined using the following criteria:
- end one second before start of the zone of interest
- beginnig such that reference zone lasts for 39 or 40s
the reference spectrum is calculated for every pixel as a linear
regression in function of time on the reference zone as described here
above. This is to account for the observed drift of the satelite during
the occultation.
c. division of spectra in observation zone by reference spectrum to obtain
transmittance values (between 0 and 1)
STEP 4 : TRACING THE CALIBRATION HISTORY
----------------------------------------
Look into the .TRT additional data files on PSA level 2.
Example :
0.1_TO_0.2_SCRIPT_VERSION,[SVN revision nr]
0.2_TO_0.3_SCRIPT_VERSION,[SVN revision nr]
0.2_TO_0.3_REGRESSION_ZONE,20070415053104-20070415053143
0.2_TO_0.3_OCCULTATION_ZONE,20070415053144-20070415053230
0.2_TO_0.3_REGRESSION_ALTITUDE,220
0.3_TO_1.0_PDS_CREATION,[SVN revision nr]