Upload
laureen-walton
View
219
Download
0
Embed Size (px)
Citation preview
SMOS L2 Ocean Salinity
www.argans.co.uk
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
L2OS v600 status
SMOS L2 Ocean Salinity
www.argans.co.uk
First results with v600 L2OS & L1PP
L1OP v504 L1PP v600 delta = v600 – v504AFFOV median (X/Y) 0.35/-1.12 1.30/-0.12 0.92/1.14
Single orbit OTT: 20100802T153815
SMOS L2 Ocean Salinity
www.argans.co.uk
First results with v600 L2OS & L1PP
L1OP v504 L1PP v600 delta = v600 – v504(not using new L1c RFI flags)
SMOS L2 Ocean Salinity
www.argans.co.uk
First results with v600 L2OS & L1PPCross-track salinity profile(latitude -15 to 0)
L1OP v504(slope -0.04/degree)
L1PP v600(slope -0.03/degree)
SMOS L2 Ocean Salinity
www.argans.co.uk
First results with v600 L2OS & L1PPCross-track salinity quality profile(latitude -15 to 0)
L1OP v504
L1PP v600
SMOS L2 Ocean Salinity
www.argans.co.uk
Need to evaluate integration between v600 L1PP & L2OS
• new sun point/tail width
• new RFI flagsTest with more than one orbit: 9 RFI orbits used to tune L2OS RFI algorithms
v600 L2OS & L1PP integration
Fm__L1c_RFI_YY
Fm__L1c_sun_tailsFm__L1c_sun_point
Fm__L2_RFI_outlier
SMOS L2 Ocean Salinity
www.argans.co.uk
Filters and flagsPrevious 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)
SMOS L2 Ocean Salinity
www.argans.co.uk
Filters and flagsIn 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.
SMOS L2 Ocean Salinity
www.argans.co.uk
Filters and flagsFlag 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?)
SMOS L2 Ocean Salinity
www.argans.co.uk
Filters and flagsFlags 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.>
SMOS L2 Ocean Salinity
www.argans.co.uk
RFIv600 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...
SMOS L2 Ocean Salinity
www.argans.co.uk
RFI: snapshot out-of-rangeSnapshot discarded if any out-of-range TBs & no land/ice contamination
20100709T161301Threshold 50K in AFFOV, 100K in EAFFOV& <20% land/coast/ice pixels in snapshot
SMOS L2 Ocean Salinity
www.argans.co.uk
RFI: snapshot standard deviationSnapshot discarded if standard deviation / radiometric accuracy too high (eg RFI tails)
20100709T161301Threshold 2.5 K& > 35% measurements in snapshot
SMOS L2 Ocean Salinity
www.argans.co.uk
RFI: measurement outliersMeasurements discarded if dwell line standard deviation / theoretical std too high
20100709T161301Threshold 2.4 (was 1.2)& > 3% RFI outliers & > 15 measurements
RFI tails not detected by snapshot std/ra
SMOS L2 Ocean Salinity
www.argans.co.uk
RFI: measurement outliersWhy is std/theory above theoretical value of 1.2?
Measurement outlier detection computes outliers differently:
SMOS L2 Ocean Salinity
www.argans.co.uk
RFI: summaryTest 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_DGGRFIDg_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)
SMOS L2 Ocean Salinity
www.argans.co.uk
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.
Cardioid model & iceberg detection
20110825T171549 v600
Iceberg at 59S, 163W
v550
Fg_sc_ice_acard
SMOS L2 Ocean Salinity
www.argans.co.uk
But icebergs trigger false RFI measurement outlier detection
Cardioid model & iceberg 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.
20120611T191812
SMOS L2 Ocean Salinity
www.argans.co.uk
Proposed evolution for v650
• TEC from Stokes 3Analyse prototype/breadboard: test near land, low TEC regions, & ascending orbits
• Land-mass proximity update to AUX_DISTANThresholds 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 modifiedESL requests for retrieved WS in UDP, ...
• Review DAP: add OTT dataSupports drift analysis & automatic OTT generation – xi/eta, replaces Tb_gal_H/V, snapshot ID replaced Diff_TB_4
L2OS v650