NOAA-EMC / JEDI-T2O

JEDI Transition to Operations activities.
GNU Lesser General Public License v2.1
5 stars 4 forks source link

Observer End-to-End Test for GOES ABI AMVs #72

Open emilyhcliu opened 1 year ago

emilyhcliu commented 1 year ago

This issue is to document the end-to-end tests for GOES-AMVs

Observer End-to-End Tests for GOES-AMVs processing

This is a plumbing test between IODA and UFO. Scientific assessment will be performed later by AMV experts.

Check results for GOES-16 and GOES-17

emilyhcliu commented 1 year ago

Look at Obs (IODA obs converted from BUFR dump file) - HofX

GOES-17 AMVs windEastward (U-wind) O-F

1st Hour (Timeframe 1) 2nd Hour (Timeframe 2)
3rd Hour (Timeframe 3) 4th Hour ITimeframe 4)
5th Hour (Timeframe 5) 6th Hour (Timeframe 6)

Each Timeframe contains AMVs retrieved from 5 algorithms (240, 245, 246, 246, 251) Example: Timeframe 3

Type 240 (IRSW) Type 245(IRLW)
Type 246 (WVCT) Type 247(WVCA/DL)
Type 251 (VIS) All Types
emilyhcliu commented 1 year ago

Compare GOES-17 AMV windEastward O-F between UFO and GSI (1st Hour)

UFO O-F without QC

ufo_abi_goes-17_omf_noqc_time0

UFO O-F with Basic QC- exclude data with the following conditions: (1) satellite zenith angle > 68 (2) obs pressure > 125 mb (3) VIS data (ObsType 251)

ufo_abi_goes-17_omf_noqc_time0

UFO O-F with Basic QC- exclude data with the following conditions: (1) saellite zenith angle > 68 (2) obs pressure > 125 mb (3) VIS data (ObsType 251) (4) data over non-water surface + latitude > 20 for Types 240 and 245 These QC steps are GSI read routine QC --- obs tossed without passing to setup routine

ufo_abi_goes-17_omf_windEastward_qc_time1

Break down for data passed read-routine QC Type 245 Type 246 Type 247

GSI O-F (with read routine QC; no setup routine QC applied)

gsi_abi_goes-17_omf_gsi_noqc_time0

UFO O-F with QC: ufo_abi_goes-17_omf_windEastward_qc_time1

GSI O-F with QC: gsi_abi_goes-17_omf_windEastward_qc_time1

emilyhcliu commented 1 year ago

Compare GOES-16 AMV windEastward O-F between UFO and GSI (1st Hour)

O-F without QC ufo_abi_goes-16_omf_noqc_time0

O-F with Basic QC- exclude data with the following conditions: (1) satellite zenith angle > 68 (2) obs pressure <125 mb (3) VIS data (ObsType 251) ufo_abi_goes-16_omf_noqc_time0

O-F with Basic QC- exclude data with the following conditions: (1) satellite zenith angle > 68 (2) obs pressure <125 mb (3) VIS data (ObsType 251) (4) data over non-water surface + latitude > 20 for Types 240 and 245 These QC steps are GSI read routine QC --- obs tossed without passing to setup routine

ufo_abi_goes-16_omf_windEastward_qc_time1

Break down data pass GSI read routine QC

Type 240 Type 245
Type 246 Type 247

GSI O-F (with read routine QC; no setup routine QC applied)

gsi_abi_goes-16_omf_gsi_noqc_time0

UFO O-F with QC: ufo_abi_goes-16_omf_windEastward_qc_time1

GSI O-F with QC: gsi_abi_goes-16_omf_windEastward_qc_time1

emilyhcliu commented 1 year ago

Notes - general:

Notes - specific:

In the GOES AMV QC test: ObsErrorFactorPressureCheck and ObsErrorFactorDuplicateCheck are turned off In addition, gross check is also turned off since this check depends on error inflation from ObsErrorFactorPressureCheck.

BrettHoover-NOAA commented 1 year ago

land_type_index _NPOESS (ranges from 0 to 19) is not the typical land/sea/sea-ice/snow index (0, 1,2, 3) For now, I replace the land_type_index_NPOSS with water_area_fraction/land_area_fraction) in the filters.

Hi @emilyhcliu, I was not aware that land_type_index_NPOESS and the GSI's surface type variable are not intended to be identical. This affects QC of both satellite winds and scatterometer winds since we are using the NPOESS variable in place of the GSI's variable for QC based on surface type. There is one particular case with scatterometer winds where the UFO and GSI disagree on QC because they have different surface type categories, but your description of the NPOESS variable here makes me think that the disagreement on surface type isn't straightforward. Do you have a reference for what the 20 categories are for the NPOESS variable, in case I need to update the satwind and scatwind YAMLs?

emilyhcliu commented 1 year ago

@BrettHoover-NOAA The definition of NPOESS land index type can be found in crtm_interface.f90

  ! Indices for the CRTM NPOESS EmisCoeff file
  integer(i_kind), parameter :: INVALID_LAND = 0
  integer(i_kind), parameter :: COMPACTED_SOIL = 1
  integer(i_kind), parameter :: TILLED_SOIL = 2
  integer(i_kind), parameter :: IRRIGATED_LOW_VEGETATION = 5
  integer(i_kind), parameter :: MEADOW_GRASS = 6
  integer(i_kind), parameter :: SCRUB = 7
  integer(i_kind), parameter :: BROADLEAF_FOREST = 8
  integer(i_kind), parameter :: PINE_FOREST = 9
  integer(i_kind), parameter :: TUNDRA = 10
  integer(i_kind), parameter :: GRASS_SOIL = 11
  integer(i_kind), parameter :: BROADLEAF_PINE_FOREST = 12
  integer(i_kind), parameter :: GRASS_SCRUB = 13
  integer(i_kind), parameter :: URBAN_CONCRETE = 15
  integer(i_kind), parameter :: BROADLEAF_BRUSH = 17
  integer(i_kind), parameter :: WET_SOIL = 18
  integer(i_kind), parameter :: SCRUB_SOIL = 19
BrettHoover-NOAA commented 1 year ago

Thank you!

emilyhcliu commented 10 months ago

The calculation of tropopause pressure is not correct. The bug fix had been checked into fv3-jedi repository. See details in the following PRs: GDASApp PR #575 fv3-jedi PR #1001 More Informationon Tropopause Pressure Fix

emilyhcliu commented 9 months ago

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 satwind use idomsfc from deter_sfc2 use iflg from deter_sfc_type

emilyhcliu commented 9 months ago

I replaced the use of water_area_fraction and land_area_fraction with slmsk This changed the results slightly but still very close to the GSI results.

The slmsk is not a good ideal.
Go back to use water_area _fraction and land_area_fraction.

emilyhcliu commented 8 months ago

Correct a bug in using the threshold for water_area fraction. The results between GSI and UFO are closer with the bug fix.

emilyhcliu commented 8 months ago

GOES-17 Final OMF ufo_abi_goes-17_omf_windEastward_qc_time1 gsi_abi_goes-17_omf_windEastward_qc_time1 GOES-17 Final Obs Error ufo_abi_goes-17_obserr_windEastward_qc_time1 gsi_abi_goes-17_obserr_windEastward_qc_time1 GOES-16 Final OMF ufo_abi_goes-16_omf_windEastward_qc_time1 gsi_abi_goes-16_omf_windEastward_qc_time1 GOES-16 Final Obs Error

ufo_abi_goes-16_obserr_windEastward_qc_time1 gsi_abi_goes-16_obserr_windEastward_qc_time1