Open emilyhcliu opened 1 year ago
Original HofX Configuration
obs operator:
name: VertInterp
- apply near surface wind scaling: true
Modified Hofx Configuration
obs operator:
name: VertInterp
apply near surface wind scaling: true
vertical coordinate: geometric_height
observation vertical coordinate: height
Here is the updated configuration:
obs operator:
name: VertInterp
# Use height vertical coordinate first
vertical coordinate: geopotential_height
observation vertical coordinate group: DerivedVariables
observation vertical coordinate: adjustedHeight
interpolation method: linear
hofx scaling field: SurfaceWindScalingHeight
hofx scaling field group: DerivedVariables
The wind scaling factor is calculated through the UFO variable transform:
# Apply variable changes needed for rescaled height coordinate
- filter: Variable Transforms
Transform: AdjustedHeightCoordinate
# Apply variable changes needed for wind scaling
- filter: Variable Transforms
Transform: SurfaceWindScalingHeight
The larger HofX difference over cold surface area results from using geopotential_height as reference coordinate. The geometric_height should be used (following GSI) Please see the documentation
There are still some outliers in the cold surface area after using the geometric_height. Our previous assessment does not see these outliers. Please see the documentation
There are minor bugs in calculating the surface wind scaling factor in the variable transform. The difference between GSI and UFO are small, though....
Next is to invesgate the HofX + QC with changes from GMAO
HofX Comparison with GSI
QC Comparison with GSI
Obs Error Comparion with GSI
There are several UFO updates from GMAO regarding winds.
This PR is to test the updates from GMAO for Scatterometer Winds
Here is the collection of related UFO PRs PR #3061 PR #3050 PR #3026
Notes for Input Test Data:
The test input data for winds must also be updated since we need to save the original fact10 (data(iff10,i))calculation from the fv3, not the fact10 modified by GSI (factw) based on lower model height (related GSI code section)
add slmsk (related to idomsfc and isflg used in GSI), water_area_fraction, land_area_fraction, ice_area_fraction, snow_area_fraction
Notes: Check GeoVaLs: slmsk and area_fraction (water, ice, snow, and land) Model: slmsk: 0, 1, 2 (sea, land, ice) GeoVaLs: slmsk: 0, 1, 2, 3, 4, 5 (model slmsk + 3 ---> 0+3, 1+3, 2+3 ---> 3, 4, 5
In GSI: for scatwind use idomsfc from deter_sfc2 use iflg from deter_sfc_type
idomsfc is determined by ilsi_full and weights (dist between grid points and obs) idomsfc is determined by model slmsk and slmsk+3 idomsfc ranges from 0, 1, 2, 3, 4, 5
isflg is deermined by islis_full and weights ---> sfcpct (surface type %) ---> isflg surface type % > 0.99 ---> isflg - surface_type isflg = 0 (sea); 1 (land); 2 (ice); 3 (snow); 4 (mixed)
There is no isflg in fv3-jedi, so add area_fractions
add tsavg from deter_sfc_type as surface_temperature in GeoVaLs (need to check fv3-jedi later)
Set nvqc = .false. (turn off varQC)
No FGAT