260 likes | 383 Views
Level 2 Ocean Salinity status. 4 February 2013. ARGANS. L2OS v600 status. FAT 18/19 December 2012 – redelivery 25/1/2013 with updated schema Significant changes from v550 new RFI snapshot level detection, improved RFI outlier detection
E N D
Level 2 Ocean Salinity status 4 February 2013 ARGANS
L2OS v600 status • FAT 18/19 December 2012 – redelivery 25/1/2013 with updated schema • Significant changes from v550 • new RFI snapshot level detection, improved RFI outlier detection • new galactic noise model LUTs (ascending/descending) • filters & flags moved from code to configuration ADFs • improved Acard filtering near ice • changes to UDP & DAP formats • removed Fg_ctrl_gal_noise from Fg_ctrl_poor_geophysical • bug fixes to iterative scheme, TB_42.5, galactic noise flagging
First results with v600 L2OS & L1PP • L1OP v504 L1PP v600 delta = v600 – v504 • AFFOV median (X/Y) 0.35/-1.12 1.30/-0.12 0.92/1.14 • Single orbit OTT: 20100802T153815
First results with v600 L2OS & L1PP • L1OP v504 L1PP v600 delta = v600 – v504 • (not using new L1c RFI flags)
First results with v600 L2OS & L1PP • Cross-track salinity profile • (latitude -15 to 0) • L1OP v504 • (slope -0.04/degree) • L1PP v600 • (slope -0.03/degree)
First results with v600 L2OS & L1PP • Cross-track salinity quality profile • (latitude -15 to 0) • L1OP v504 • L1PP v600
v600 L2OS & L1PP integration • Need to evaluate integration between v600 L1PP & L2OS • new sun point/tail width • new RFI flags • Test with more than one orbit: 9 RFI orbits used to tune L2OS RFI algorithms Fm__L1c_sun_point Fm__L1c_sun_tails Fm__L2_RFI_outlier Fm__L1c_RFI_YY
Filters and flags • Previous versions of L2OS embedded filtering (eg for grid point & measurement selection) in the code: • if( (ISTRUE(meas->l2flags,fm_resol) == TRUE) || • ((ISTRUE(meas->l2flags,fm_outlier) == TRUE) && (ISTRUE(gp->report->ctrlFlags, fg_ctrl_suspect_rfi) == FALSE))|| • ((ISTRUE(meas->l2flags,fm_l2_rfi) == TRUE) && (ISTRUE(gp->report->ctrlFlags, fg_ctrl_suspect_rfi) == TRUE))|| • (ISTRUE(meas->l2flags,fm_out_of_range) == TRUE) || • (ISTRUE(meas->l2flags,fm_chi_eta) == TRUE) || • (ISTRUE(meas->l1flags,fml1c_border_fov) == TRUE) || • ((!ISTRUE(meas->l1flags,fml1c_af_fov) == TRUE) && (decision_tree->switch_af == TRUE)) || • (ISTRUE(meas->l2flags,fm_moon_specDir) == TRUE) || • (ISTRUE(meas->l2flags,fm_gal_noise_error) == TRUE) || • (((ISTRUE(meas->l2flags,fm_high_sun_glint) == TRUE) && (ISTRUE(meas->l2flags,fm_low_sun_glint) == FALSE))) || • (ISTRUE(meas->l2flags,fm_l1c_sun) == TRUE) || • (ISTRUE(meas->l2flags,fm_suspect_ice) == TRUE) || • (ISTRUE(meas->l2flags,fm_l1c_error) == TRUE) ) • v600 replaces this by a filter defined in AUX_CNFOSF. Code replaced by: • if (applyFilter(configHandle,MEASUREMENT_DECISION_TREE,meas,gp->report[ == TRUE)
Filters and flags • In AUX_CNFOSF, filter MEASUREMENT_DECISION_TREE is defined as: • <Filter><Name>Measurement_decision_tree</Name> • <List_of_tests count="12"> • <Reject>Fm_resol</Reject> • <Reject>Fm_outlier</Reject> • <Reject>Fm_L2_RFI_snapshot_out_of_range</Reject> • <Reject>Fm_out_of_range</Reject> • <Reject>Fm_xi_eta</Reject> • <Reject>Fm_border</Reject> • <Reject>Fm_moon_spec_dir</Reject> • <Reject>Fm_gal_noise_error</Reject> • <Reject>Fm_high_sun_glint</Reject> • <Reject>Fm_L1c_sun</Reject> • <Reject>Fm_suspect_ice</Reject> • <Reject>Fm_L1c_error</Reject> • </List_of_tests> • </Filter> • which is easier to read and modify. Flag names are defined in the ADF.
Filters and flags • Flag names used in filters are defined in AUX_CNFOSF, eg: • <Flag> <Name>Fm_L1c_sun</Name><Mask>0x00000010</Mask> <Test>0x00000010</Test> </Flag> • <Flag> <Name>Fm_sun_glint_fov</Name> <Mask>0x0008</Mask><Test>0x0008</Test></Flag> • <Flag> <Name>Fm_sun_point</Name><Mask>0x0080</Mask><Test>0x0080</Test></Flag> • <Filter><Name>Set_sun_flag_from_L1c</Name> • <Description>Set Fm_L1c_sun measurement flag from L1c flag(s)</Description> • <List_of_tests count="2"> • <Reject>Fm_sun_glint_fov</Reject> • <Reject>Fm_sun_point</Reject> • </List_of_tests> • </Filter> • This mechanism allows new flags to be defined & used in filters without recompilation & delivery of a new L2OS build (eg L1 v600 new RFI flags): • <Flag> <Name>Fm_RFI_XX</Name> <Mask>0x0040</Mask><Test>0x0040</Test></Flag> • <Flag> <Name>Fm_RFI_YY</Name> <Mask>0x4000</Mask><Test>0x4000</Test></Flag> • (Maybe flag names should be in schema?)
Filters and flags • Flags can be combined to make filters easier to read • <Flag> <Name>Fg_sc_land</Name> <Mask>0x00000003</Mask> <Test>0x00000000</Test></Flag> • <Flag> <Name>Fg_sc_ocean</Name><Mask>0x00000003</Mask><Test>0x00000001</Test> </Flag> • <Flag> <Name>Fg_sc_coast</Name><Mask>0x00000003</Mask><Test>0x00000002</Test></Flag> • <Flag> <Name>Fg_sc_near_land</Name><Mask>0x00000003</Mask><Test>0x00000003</Test></Flag> • and user • <Filter.> • <Name>Grid_point_decision_tree</Name> • <Description>Clear Fg_ctrl_valid for ignored grid points</Description> • <List_of_tests count=“4"> • <Reject>Fg_sc_land</Reject> • <Reject>Fg_sc_coast</Reject> • <Reject>Fg_ctrl_num_meas_min</Reject> • <Reject>Fg_sc_ice</Reject> • </List_of_tests> • </Filter.>
RFI • v600 has 3 RFI detection algorithms: • snapshot out-of-range • snapshot standard deviation • measurement outlier detection • New UDP fields support AUX_DGGRFI • L2OS job order optionally uses AUX_DGGRFI • AUX_CNFOSF has several new RFI detection thresholds (& filters), tuned with L1c v504/505, with 9 test orbits: 20100709, 20100730, 20110209, 201206010 & 20120611 • Balance achieved between too many false positives (land, sun/tails, ice, tec...) and visible RFI/tails missed. Visual (snapshot) & statistical analysis performed. • Need to repeat tuning with L1c v600 & compare with new L1c RFI flags...
RFI test orbits • v550 v600 • 20100709T034234
RFI test orbits • v550 v600 • 20100709T161301
RFI test orbits • v550 v600 • 20100730T055514
RFI test orbits • v550 v600 • 20100730T214604
RFI test orbits • v550 v600 • 20120611T191812
RFI: snapshot out-of-range • Snapshot discarded if any out-of-range TBs & no land/ice contamination Threshold 50K in AFFOV, 100K in EAFFOV & <20% land/coast/ice pixels in snapshot 20100709T161301
RFI: snapshot standard deviation • Snapshot discarded if standard deviation / radiometric accuracy too high (eg RFI tails) Threshold 2.5 K & > 35% measurements in snapshot 20100709T161301
RFI: measurement outliers • Measurements discarded if dwell line standard deviation / theoretical std too high RFI tails not detected by snapshot std/ra Threshold 2.4 (was 1.2) & > 3% RFI outliers & > 15 measurements 20100709T161301
RFI: measurement outliers • Why is std/theory above theoretical value of 1.2? Measurement outlier detection computes outliers differently:
RFI: summary • Test with L1c v600 & compare with new L1c RFI flags • Check & tune RFI filters • snapshot out-of-range filter • > 40km from land, no ice, ignore border, sun point (tails?) • snapshot standard deviation filter • > 40km from land, no ice, AFFOV, border, sun point (tails?), out-of-range • measurement outlier filter • >200km from land, border, sun point/glint fov (& tails), out-of-range, hi std • Monitor AUX_DGGRFI • Dg_RFI_X/Y counts Fm_L2_RFI, set by out-of-range & outlier tests (filters could be changed to set Fm_L2_RFI from any/all of the above tests, & from L1c flags)
Cardioid model & iceberg detection • Acard measurement selection previously discarded TBs that were too high for open ocean, but expected for ice. In v600 Acard is retrieved over ice & land, so ice extent & icebergs can be seen & flagged. Iceberg at 59S, 163W v550 20110825T171549 v600 Fg_sc_ice_acard
Cardioid model & iceberg detection 20120611T191812 • But icebergs trigger false RFI measurement outlier detection Acard Fm_L2_RFI_outlier Fg_ctrl_suspect_RFI std/theory for the centre of the iceberg at 57S is 16.8, with 46% measurements flagged as RFI outliers False RFI measurement outlier detection will probably also occur for fresh water lenses.
L2OS v650 • Proposed evolution for v650 • TEC from Stokes 3 • Analyse prototype/breadboard: test near land, low TEC regions, & ascending orbits • Land-mass proximity update to AUX_DISTAN • Thresholds of 40km & 200km in v600 & earlier filters processing near islands as well as large land masses, but we suspect small islands do not cause land/sea contamination • UDP fields modified • ESL requests for retrieved WS in UDP, ... • Review DAP: add OTT data • Supports drift analysis & automatic OTT generation – xi/eta, replaces Tb_gal_H/V, snapshot ID replaced Diff_TB_4