Opened 8 years ago

Last modified 7 years ago

#474 new enhancement

Dynamic vs static error estimation in statistical optimization

Reported by: Stig Syndergaard Owned by: Stig Syndergaard
Priority: major Milestone: DMI ROPP developments
Component: ropp_pp Version: 8.0
Keywords: Cc:

Description

Investigations of new WO (GS2 test data) and GO (NRT data) processsings, revealed several cases where the dynamic error estimation puts the transition between observation and background either too high or too low.

When it is too high, even moderate ionospheric noise can result in negative optimized bending angle near the top of profiles, which could produce negative refractivity and very noisy dry temperature at high altitudes, if it doens't totally fail to process to dry temperature.

When it is too low, it can result in overall biases and removal of stratospheric features, such as gravity waves.

Part of the problem might be the logic of the determination of the interval above 50 km where the observation noise is estimated.

As it is:

     ALLOCATE(m_diff(nh))
     m_diff = ABS( ba_diff(2,:) - ba_diff(1,:) - ba_diff0) > 6.0_wp*ba_diffS
     IF (ANY(m_diff(iil:nh) .AND.   &
            impact_LH(iil:nh)-config%r_curve > 75000.0_wp)) THEN
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 70000.0_wp))
     ELSE IF (ANY(m_diff(iil:nh) .AND. &
            impact_LH(iil:nh)-config%r_curve > 70000.0_wp)) THEN
     ELSE IF (ANY(m_diff(iil:nh) .AND. &
            impact_LH(iil:nh)-config%r_curve > 65000.0_wp)) THEN
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 60000.0_wp))
     ELSE                                                             
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 80000.0_wp))                                                                                                                               
     ENDIF

This seems odd, because if there are, e.g., scintillations above 75 km, the cut is made at 70 km, but there is then no check on if there are also scintillations below 70 km.

A better logic could be:

     ALLOCATE(m_diff(nh))
     m_diff = ABS( ba_diff(2,:) - ba_diff(1,:) - ba_diff0) > 6.0_wp*ba_diffS
     IF (ANY(m_diff(iil:nh) .AND.   &
            impact_LH(iil:nh)-config%r_curve < 66000.0_wp)) THEN
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 60000.0_wp))
     ELSE IF (ANY(m_diff(iil:nh) .AND. &
            impact_LH(iil:nh)-config%r_curve < 71000.0_wp)) THEN
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 65000.0_wp))
     ELSE IF (ANY(m_diff(iil:nh) .AND. & 
            impact_LH(iil:nh)-config%r_curve < 76000.0_wp)) THEN
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 70000.0_wp))  
     ELSE                                                                                                                                                                                                      
       iiu = SUM(MaxLoc(impact_LH(:), impact_LH(:)-config%r_curve < 80000.0_wp))                                                                                                                               
     ENDIF

This seems to give better results, but more investigation is needed.

Alternatively, one could totally skip the dynamic error estimation such that the transition is about the same for all occultations. This would mean that noisy profiles are noisy, also in refractivity and dry temperature, but at least that would reflect the data, and not as now, where sometimes noisy profiles are smoothed too much and less noisy ones end up with excessive noise.

The attached files show some results:

XXXX: processed with GPAC 0.4.1

ROPP: processed with ROPP

PFIX: processed with ROPP after fixing a bug at top sample

HACK: setting a priori ionospheric bending very high (do not smooth L1 - L2 bending)

SAME: setting fixed error estimates on both observation and background giving about the same transition height for all profiles (relative error in background means slightly different absolute errors because all profiles are a bit different, resulting in slightly different transition zones).

More investigation is needed.

Attachments (2)

negative_refrac.ps (1.7 MB ) - added by Stig Syndergaard 8 years ago.
temperatures.ps (365.7 KB ) - added by Stig Syndergaard 8 years ago.

Change history (3)

by Stig Syndergaard, 8 years ago

Attachment: negative_refrac.ps added

by Stig Syndergaard, 8 years ago

Attachment: temperatures.ps added

comment:1 by Stig Syndergaard, 7 years ago

Priority: normalmajor
Note: See TracTickets for help on using tickets.