Radiometer Calibration: Implementation of Counts to TA Processor Frank Wentz and Thomas Meissner Aquarius Algorithm Workshop, Santa Rosa, CA, March 9-11,

Slides:



Advertisements
Similar presentations
F. Wentz, T. Meissner, J. Scott and K. Hilburn Remote Sensing Systems 2014 Aquarius / SAC-D Science Team Meeting November ,
Advertisements

L1a to L2 Aquarius Processor Frank Wentz and Thomas Meissner Aquarius Algorithm Workshop, Santa Rosa, CA, March 9-11, 2010.
Measuring High-Frequency Networks and Components using Vector Network Analyzers Giovanni D’Amore Welcome to “Measuring High-Frequency Networks and Components.
Chapter 7 Introduction to Procedures. So far, all programs written in such way that all subtasks are integrated in one single large program. There is.
National Aeronautics and Space Administration Goddard Space Flight Center Greenbelt, MD Information contained in this document may be subject to U.S. export.
Removing 60 Hz from EKG signal William Rose, May 2009 Original EKG signal looked good on paient monitor but had very small amplitude (+- 4 bits) at the.
The Aquarius Salinity Retrieval Algorithm Frank J. Wentz and Thomas Meissner, Remote Sensing Systems Gary S. Lagerloef, Earth and Space Research David.
Maintaining and Improving the AMSR-E and WindSat Ocean Products Frank J. Wentz Remote Sensing Systems, Santa Rosa CA AMSR TIM Agenda 4-5 September 2013.
Algorithmic (Cyclic) ADC
Cold Sky Calibration Aquarius: D. M. Le Vine MWR: J. C. Gallo.
280 SYSTEM IDENTIFICATION The System Identification Problem is to estimate a model of a system based on input-output data. Basic Configuration continuous.
Program Design and Development
Aquarius/SAC-D Mission Mission Simulators - Gary Lagerloef 6 th Science Meeting; Seattle, WA, USA July 2010.
Solving Linear Equations
Ninth Synthesis Imaging Summer School Socorro, June 15-22, 2004 Cross Correlators Walter Brisken.
Solving Equations Medina1 With Decimal & Fractions.
JPEG C OMPRESSION A LGORITHM I N CUDA Group Members: Pranit Patel Manisha Tatikonda Jeff Wong Jarek Marczewski Date: April 14, 2009.
Exercise problems for students taking the Programming Parallel Computers course. Janusz Kowalik Piotr Arlukowicz Tadeusz Puzniakowski Informatics Institute.
GRD - Collimation Simulation with SIXTRACK - MIB WG - October 2005 LHC COLLIMATION SYSTEM STUDIES USING SIXTRACK Ralph Assmann, Stefano Redaelli, Guillaume.
Programmable Logic Controllers
Aquarius Algorithm Meeting To Do Lists. From Frank Wentz:  Implement Ruf RFI flagging  Implement other QC flags  Further test review, and finalize.
TelCal Phasing Engine description Draft Robert Lucas
SCIENCE PROCESSING OVERVIEW David Le Vine Aquarius Deputy PI 07 July 2009.
7 th SMOS Workshop, Frascati, October /17 AMIRAS campaign Fernando Martin-Porqueras.
25 June 2009 Dawn Conway, AMSR-E TLSCF Lead Software Engineer AMSR-E Team Leader Science Computing Facility.
The Multiplication Principle of Equality 2.3a 1.Solve linear equations using the multiplication principle. 2.Solve linear equations using both the addition.
Solving Equations Medina1 with Multiplication and Division.
Aquarius Algorithm Workshop Santa Rosa, CA 9 March 2010 College of Engineering Department of Atmospheric, Oceanic & Space Sciences Chris Ruf University.
Chapter 11 Amplifiers: Specifications and External Characteristics.
What’s in W-band Level 1 Fits Data (or what I did while in Chile besides shoveling snow and breaking the telescope) Telescope pointing Time Ordered 100.
Integrated Smart Sensor Calibration Abstract Including at the sensor or sensor interface chip a programmable calibration facility, the calibration can.
Workshop Agenda: Day One 9:30 IntroductionLagerloef / Le Vine 9:45 Workshop objectivesG. Feldman 10:00 Overview of the Aquarius Data Processing System:G.
Amplifiers Amplifier Parameters Gain = Po/Pi in dB = 10 log (Po/Pi)
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Collimator BPM electronics – Results from the lab, SPS and LHC
HAWKES LEARNING SYSTEMS Students Matter. Success Counts. Copyright © 2013 by Hawkes Learning Systems/Quant Systems, Inc. All rights reserved. Section 2.4.
Do Now (3x + y) – (2x + y) 4(2x + 3y) – (8x – y)
Mission Operations Review February 8-10, 2010 Cordoba, ARGENTINA SECTION 16.x Aquarius Science Commissioning and Acceptance Draft 2 Prepared by: Gary Lagerloef,
Differences in SFMR Measurements Alan S. Goldstein, NOAA/Aircraft Operations Center Lt. Col. Jonathan Talbot, USAFR AFRC 53 WRS Dr. Eric Uhlhorn, NOAA/Hurricane.
Level 2 Scatterometer Processing Alex Fore Julian Chaubell Adam Freedman Simon Yueh.
Aquarius Simulation Studies Gary Lagerloef Aquarius Principal Investigator Algorithm Workshop 9-11 March 2010.
HAWKES LEARNING SYSTEMS Students Matter. Success Counts. Copyright © 2013 by Hawkes Learning Systems/Quant Systems, Inc. All rights reserved. Section 8.2.
ADPS Science Software Development Bryan Franz NASA Ocean Biology Processing Group Aquarius Data Processing Workshop, NASA/GSFC, March 2007.
System To Generate Test Data: The Analysis Program Syed Nabeel.
Aquarius Level 0-to-1A Processing Rule #1: save everything from the Level 0 data. Rule #2: never forget Rule #1! The objective is to ensure that the Level.
Learning about Inverse Operations. What is the inverse of Opening the door? Turning Right? Driving Forward? The inverse undoes the original function.
ChE 433 DPCL Model Based Control Smith Predictors.
Application of a Charge Transfer Model to Space Telescope Data Paul Bristow Dec’03
April 12 | Comparison of Sophisticated Synthesizer Concepts and Modern Step Attenuator Implementations | 2 Comparison of Sophisticated Synthesizer Concepts.
Filters– Chapter 6. Filter Difference between a Filter and a Point Operation is that a Filter utilizes a neighborhood of pixels from the input image to.
SOLVING ONE-STEP EQUATIONS Integrated Math I Objective: Solve one-step linear equations in one variable with strategies involving inverse operations and.
Title Instrument Simulator and L1B Processor Meeting
MECH 373 Instrumentation and Measurement
STATISTICAL ORBIT DETERMINATION Kalman (sequential) filter
96-channel, 10-bit, 20 MSPS ADC board with Gb Ethernet optical output
Solve for variable 3x = 6 7x = -21
Calibration Activities of GCOM-W/AMSR2
Data Reduction and Analysis Techniques
Introduction to data converters
Frank Wentz and Carl Mears Remote Sensing Systems, Santa Rosa CA, USA
Lesson 11: Transducer Electrical Interfaces
PCA based Noise Filter for High Spectral Resolution IR Observations
Analysis of Adaptive Array Algorithm Performance for Satellite Interference Cancellation in Radio Astronomy Lisha Li, Brian D. Jeffs, Andrew Poulsen, and.
Load-Pull Measurements
Chapter 6 Discrete-Time System
Writing Equations from Tables
Fixed-point Analysis of Digital Filters
AD5933 報告人:葉榮陞 指導教授:沈毓泰.
Defining the Products: ‘GSICS Correction’
Regression and Correlation of Data
Presentation transcript:

Radiometer Calibration: Implementation of Counts to TA Processor Frank Wentz and Thomas Meissner Aquarius Algorithm Workshop, Santa Rosa, CA, March 9-11, 2010

TA to Counts (Forward Model) PRT MeasurementsTA Orbit Simulator Temperature Coefficients Front End Losses L i Noise Diode Injection Temperatures T ND, T CND Non-Linearity Coefficients c 2, c 3 Gains + Offsets Phase Imbalance TA_hat Accumulation Counts (linear) Accumulation Counts (non- linear) InputOutput External Parameters

Counts to TA (Calibration) PRT Measurements Accumulation Counts measured Temperature Coefficients Front End Losses L i Noise Diode Injection Temperatures T ND, T CND Non-Linearity Coefficients c 2, c 3 Averaging over Calibration Cycles Phase Imbalance Averaging over subcycles Accumulation Counts (linear) InputOutput External Parameters TA Gains + Offsets TA_hat

Subroutines that are called: call initialize call read_l1a call geolocation call count_to_TA call get_ancillary_data call fd_tb_toa call fd_tbsur_sss call fd_ta_expected call write_l2_arrays L1a to L2 Aquarius Processor

Calibration constants for counts-to-ta process: Subroutine get_prelaunch_calibration_coeffs Values read in from external files: coeff_loss_file and coeff_nl_file Reference temperatures for front end losses and noise diodes real(4) Tref_3, Tref_4, Tref_5, Tref_6, Tref_CND, Tref_ND Coefficients for front end losses and noise diodes (value at reference temperature + gradient) real(4), dimension(2,n_rad) CL1 real(4), dimension(2,n_rad) CL2A, CL2B, CL3, CL4, dL4_dT4, CL5, dL5_dT5 real(4), dimension(2,n_rad) CCND, dTCND_dT4, dTCND_dT, CND, dTND_dT Values provided by J. Piepmeyer, 7/7/2009 RAD1 RAD2 RAD3 REF TEMP [C] V H V H V H CL CL2A CL2B CL CL dL4dT ! Multiplied by 1.0E-6 CL dL5dT ! Multiplied by 1.0E-6 CCND dTCNDdT dTCNDdT CND dTNDdT Phase imbalances of CND network / OMT subsystem [in deg] real(4), parameter :: delta_phi(n_rad)=1.0, delta_phi_f(n_rad)=1.0 Subroutine Initialize

Reference temperatures and coefficients for correcting detector non-linearity real(4), dimension(4,n_rad) Dnl20, Dnl21, Dnl22, Dnl30, Dnl31, Dnl32, Tref_nl Values provided by J. Piepmeyer, 7/7/2009 Subroutine Initialize (cont)

Subroutine Read_L1A Simply reads in all the L1A variables and arrays for a single orbit. integer(4), parameter :: max_cyc= 5000 ! max number of block in l1a file = (5872 sec/orbit)*(1.2 overlap)/(1.44 sec/block) + slop integer(4), parameter :: n_rad=3 ! number of radiometers (i.e., horns) (inner, middle, outer) integer(4), parameter :: n_prt=85 ! number of thermistors integer(4), parameter :: n_subcyc=12 ! number of sub cycles per cycle integer(4), parameter :: npol=4 !number of polarizations (v, h, plus, minus) integer(4), parameter :: n_Sacc=6 ! number of S(short) accum (antenna) integer(4), parameter :: n_Lacc=8 ! number of L(long) accum (calibration) integer(4) iorbit, n_cyc real(8), dimension (max_cyc) :: time_utc_2000, time_ut1_2000 real(8), dimension(3,max_cyc) :: scpos_j2k, scvel_j2k, scrpy integer(4), dimension (max_cyc) :: iflag_qc real(4), dimension(n_prt,max_cyc) :: t_prt ! Short accumulation radiometer raw counts ! 6 records for each of the 12 subcycles. ! S1 and S2 are double accumulatons and will be divided by 2 during processing. ! Polarization order (last dimension) is 1=V, 2=P, 3=M, 4=H real(4), dimension(n_Sacc, n_subcyc, npol, n_rad, max_cyc) :: S_acc_raw! raw SA counts ! Long accumulation radiometer raw counts ! 8 records per cycle. ! L1-L4 are to be divided by 10. L5-L8 are to be divided by 2. The divisions will be performed during processing. real(4), dimension(n_Lacc, npol, n_rad, max_cyc) :: L_acc_raw! raw LA counts

Subroutine count_to_ta: Major Output Gains + offsets real(4), dimension (n_rad,max_cyc) :: gvv, ghh, ov, oh, gpv, gph, op, gmv, gmh, om, gpU, gmU TA before front end loss corrections real(4), dimension(3,n_rad,max_cyc) :: TA_hat TA after front end loss corrections real(4), dimension(3,n_rad,max_cyc) :: TA 1 = v-pol2=h-pol3= 3 rd Stokes

Subroutine count_to_ta (cont) Step 1: Compute Zone temperatures from PRT values call get_zone_temperatures Step 2: OOB check TBD Step 3: non-linearity correction call nl_correction Step 4: Determine Dicke load reference temperature and CND and ND injection temperatures do icyc =1,n_cyc TND( :,:,icyc) = CND + dTND_dT*(TND_P(:,:,icyc) - Tref_ND) TCND(:,:,icyc) = & CCND + dTCND_dT4*( T4(:,:,icyc) - Tref_CND) +dTCND_dT*(TCND_P(:,:,icyc) - Tref_CND) enddo Step 5: Calculate gains and offsets call find_cal_VH call find_cal_PM call find_cal_U Step 6: Count to TA before front end loss corrections. RFI filter (TBD). Averaging over subcycles call find_TA_hat Step 7: Front end loss corrections call fe_loss_corr

Subroutine get_zone_temperatures Mapping between 85 PRT readings and temperature in the various zones ! Reflector temperature (zone 1), average over 8 thermistors, same for each radiometer T1(1,icyc) = sum(t_prt(34:41,icyc))/8.0 T1(2,icyc) = sum(t_prt(34:41,icyc))/8.0 T1(3,icyc) = sum(t_prt(34:41,icyc))/8.0 ! zone 2A T2A(1,icyc) = t_prt(1,icyc) T2A(2,icyc) = t_prt(2,icyc) T2A(3,icyc) = t_prt(3,icyc) !zone 3 T3(1,1,icyc) = t_prt(5,icyc) !RAD1 V T3(2,1,icyc) = t_prt(4,icyc) !RAD1 H T3(1,2,icyc) = t_prt(7,icyc) !RAD2 V T3(2,2,icyc) = t_prt(6,icyc) !RAD2 H T3(1,3,icyc) = t_prt(9,icyc) !RAD3 V T3(2,3,icyc) = t_prt(8,icyc) !RAD3 H ! zone 2B = arithmetic average of 2A and 2B ? T2B(1,icyc) = (T2A(1,icyc) + (T3(1,1,icyc)+T3(2,1,icyc))/2.0) /2.0 T2B(2,icyc) = (T2A(2,icyc) + (T3(1,2,icyc)+T3(2,2,icyc))/2.0) /2.0 T2B(3,icyc) = (T2A(3,icyc) + (T3(1,3,icyc)+T3(2,3,icyc))/2.0) /2.0

Subroutine get_zone_temperatures (cont) ! zone 4 T4(1,1,icyc) = t_prt(11,icyc) ! RAD1 V T4(2,1,icyc) = t_prt(10,icyc) ! RAD1 H T4(1,2,icyc) = t_prt(13,icyc) ! RAD2 V T4(2,2,icyc) = t_prt(12,icyc) ! RAD2 H T4(1,3,icyc) = t_prt(15,icyc) ! RAD3 V T4(2,3,icyc) = t_prt(14,icyc) ! RAD3 H ! zone 5 T5(1,1,icyc) = t_prt(17,icyc) ! RAD1 V T5(2,1,icyc) = t_prt(16,icyc) ! RAD1 H T5(1,2,icyc) = t_prt(19,icyc) ! RAD2 V T5(2,2,icyc) = t_prt(18,icyc) ! RAD2 H T5(1,3,icyc) = t_prt(21,icyc) ! RAD3 V T5(2,3,icyc) = t_prt(20,icyc) ! RAD3 H

Subroutine get_zone_temperatures (cont) ! Dicke load T0(1,1,icyc) = (t_prt(24,icyc) + t_prt(25,icyc))/2.0 ! RAD1 V T0(2,1,icyc) = (t_prt(22,icyc) + t_prt(23,icyc))/2.0 ! RAD1 H T0(1,2,icyc) = (t_prt(28,icyc) + t_prt(29,icyc))/2.0 ! RAD2 V T0(2,2,icyc) = (t_prt(26,icyc) + t_prt(27,icyc))/2.0 ! RAD2 H T0(1,3,icyc) = (t_prt(32,icyc) + t_prt(33,icyc))/2.0 ! RAD1 V T0(2,3,icyc) = (t_prt(30,icyc) + t_prt(31,icyc))/2.0 ! RAD1 H ! ND TND_P(1,1,icyc) = (t_prt(72,icyc) + t_prt(74,icyc))/2.0 ! RAD1 V TND_P(2,1,icyc) = (t_prt(73,icyc) + t_prt(75,icyc))/2.0 ! RAD1 H TND_P(1,2,icyc) = (t_prt(77,icyc) + t_prt(79,icyc))/2.0 ! RAD2 V TND_P(2,2,icyc) = (t_prt(79,icyc) + t_prt(80,icyc))/2.0 ! RAD2 H TND_P(1,3,icyc) = (t_prt(82,icyc) + t_prt(84,icyc))/2.0 ! RAD3 V TND_P(2,3,icyc) = (t_prt(83,icyc) + t_prt(85,icyc))/2.0 ! RAD3 H ! CND TCND_P(1,1,icyc) = t_prt(71,icyc) !RAD1 TCND_P(2,1,icyc) = t_prt(71,icyc) !RAD1 TCND_P(1,2,icyc) = t_prt(76,icyc) !RAD2 TCND_P(2,2,icyc) = t_prt(76,icyc) !RAD2 TCND_P(1,3,icyc) = t_prt(81,icyc) !RAD3 TCND_P(2,3,icyc) = t_prt(81,icyc) !RAD3 ! Detector Tdet(1:4,1,icyc) = t_prt(42:45,icyc) ! RAD1 V/P/M/H Tdet(1:4,2,icyc) = t_prt(46:49,icyc) ! RAD2 V/P/M/H Tdet(1:4,3,icyc) = t_prt(50:53,icyc) ! RAD3 V/P/M/H

Subroutine nl_correction Difference between measured detector temperature and reference temperature delta_t = Tdet - Tref_nl Calculate non-linearity correction coefficients at detector temperature c2 = Dnl20 + Dnl21*delta_t + Dnl22(delta_t**2) c3 = Dnl30 + Dnl31*delta_t + Dnl32*(delta_t**2) Perform non-linearity correction vave = raw counts from short/long accumulations corrected counts = vave + c2*(vave**2) + c3*(vave**3)

Gains and Offsets Subroutine find_cal_VH Output: gvv, ov, ghh, oh LA counts 1 – 4 (V/H w/o and w/i noise diode ND) t_0 = Dicke load temperature. d_t = Injection temperature of ND c_0 = counts w/o ND c_1 = counts w/I ND Gain is averaged over 42 cycles = approx 1 min. Offset is averaged over 206 cycles = approx 5 min gain = (c_1-c_0)/d_t offset = c_0-gain*t_0 Subroutine find_cal_PM Output: gpv, gph, gmv, gmh, op, om LA counts 1 – 4 For each polarization (P, M) there are 3 constants (gpv, gph, op) and 4 measurements (V/H w/o and w/i ND): The over-determined problem can be solved by a least square fit (see J. Piepmeyer, ATBD) Gain is averaged over 42 cycles = approx 1 min. Offset is averaged over 206 cycles = approx 5 min Subroutine find_cal_U Output: gpU, gmU SA counts 1 – 5 (w/o correlated noise diode CND) and SA count 6 (w/i CND) TCND = injection temperature of CND gpv, gmv, gph, gmh L5= Loss factor of zone 5 (see below) delta_phi = phase imbalance of CND Gain is averaged over 42 cycles = approx 1 min

Subroutine find_TA_hat Counts to TA before front end loss corrections Input: gvv, ghh, gpv, gph, gmv, gmh, gpU, gmU, ov, oh, op, om SA counts 1 – 5 for each polarization Output: TA_hat = TA before front end loss corrections. 3 components: V, H, 3 rd Stokes Inversion of forward model (see J. Piepmeyer ATBD) 1 for each cycle (average over subcycles). RFI Filtering Algorithm by C. Ruf to be implemented Provided FORTRAN code strongly simplified from algorithm description?

Subroutine fe_loss_corr Calculate front end loss coefficients in each zone: L1= CL1(1,irad) L2A(1:2)= CL2A(1:2,irad) L2B(1:2)= CL2B(1:2,irad) L3(1:2)= CL3(1:2,irad) L4(1:2)= CL4(1:2,irad) + dL4_dT4(:,irad)*(T4(1:2,irad,icyc) - Tref_4) L5(1:2)= CL5(1:2,irad) + dL5_dT5(:,irad)*(T5(1:2,irad,icyc) - Tref_5) J. Piepmeyer ATBD version 9/11/2009: L4(1:2)= CL4(1:2,irad) * [1.0 + dL4_dT4(:,irad)*(T4(1:2,irad,icyc) - Tref_4)] L5(1:2)= CL5(1:2,irad) * [1.0 + dL4_dT5(:,irad)*(T5(1:2,irad,icyc) - Tref_5)] differs from CND and ND formulas need to check with Jeff Apply L i to TA_hat in each zone with temperature T i starting at zone 5 : For V/H: TA i, corrected = L i * TA i + (L i – 1 ) T i Phase imbalance of OMT cable for 3 rd Stokes Impedance mismatch not implemented need to check with Jeff

Check of Calibration Code Nominal value for TA  Orbit simulator  Counts  Calibration Code  TA Nominal values for calibration coefficients provided by J. Piepmeyer: gvv=1.00, ghh=1.00, gpv=0.35, gph=0.35, gpU=0.40, gmv=0.35, gmh=0.35, gmU=-0.40 ov = 500.0, oh = 500.0, op = om = Constant temperature of all radiometer components + no NEDT: retrieved gains + offsets = original gains and offsets retrieved TA = original TA

Add NEDT in Forward Model NEDT Integration time:  = sec Bandwidth: B = 25 MHz Receiver noise temperature: T r = 74.6 K NEDT = (T scene + T r ) /  (B*  ) NEDT (T scene = 300 K) = 0.79 K Added to each single short accumulation NEDT (P,M) = NEDT(V,H)/√2

NEDT versus Quantization Error Large quantization error because of small gain. MC simulation: Gain = 1.00 = constant TA = K = constant Average over 12 subcycles Quantization error: 0.49 K Adding NEDT improves error Red star: NEDT ( K)/  (5*12)

To Be Done / To Be Determined 1.Implement RFI filter by C. Ruf FORTRAN code is a simple double-mean filter. What happened with all the elaborate static and dynamic auxiliary data? What happened with the time tagging? 2.Clarification of analytic form for temperature correction for L4 and L5 (J. Piepmeyer)? 3.Impedance mismatch in zone 5 (J. Piepmeyer)?