NOAA-EMC / JEDI-T2O

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

OMPS/OMI Validation #57

Open ADCollard opened 1 year ago

ADCollard commented 1 year ago

Review current use of OMPS and add a test YAML to parm/atm/obs/testing in GDASApp to reproduce the GSI (HofX, QC and final obs error)

azadeh-gh commented 1 year ago

image

azadeh-gh commented 1 year ago

ompsnp_npp test YAML added to parm/atm/obs/testing in GDASApp to reproduce the GSI HofX, QC and final obs error. JEDI h(x) vs. GSI h(x) was identical.

gsi_hofx_vs_jedi_hofx_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

azadeh-gh commented 1 year ago

JEDI h(x) - GSI h(x) were almost zero

hofxdiff_histogram_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

azadeh-gh commented 1 year ago

Difference of JEDI and GSI final obs error was zero

errordiff_histogram_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

azadeh-gh commented 1 year ago

gsi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer jedi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

azadeh-gh commented 1 year ago

GSI omb vs JEDI omb for both all obs and obs passed QC in JEDI were identical.

gsi_omb_vs_jedi_omb_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

azadeh-gh commented 1 year ago

omi_aura test YAML added to parm/atm/obs/testing in GDASApp to reproduce the GSI HofX, QC and final obs error.

azadeh-gh commented 1 year ago

JEDI h(x) vs. GSI h(x) was identical. gsi_hofx_vs_jedi_hofx_diag_omi_aura_ozoneTotal

azadeh-gh commented 1 year ago

errordiff_histogram_diag_omi_aura_ozoneTotal hofxdiff_histogram_diag_omi_aura_ozoneTotal

azadeh-gh commented 1 year ago

Scatter plots from omi_aura with Gross error check with (O - B)

gsi_omb_vs_jedi_omb_omi_aura_diag_2021080100_omi_aura_ozoneTotal

jedi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

gsi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

azadeh-gh commented 1 year ago

Scatter plots from omi_aura without Gross error check

gsi_omb_vs_jedi_omb_omi_aura_diag_2021080100_omi_aura_ozoneTotal

jedi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

gsi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

azadeh-gh commented 1 year ago

ompstc8_npp test YAML to parm/atm/obs/testing in GDASApp that reproduces the GSI (HofX, QC and final obs error).

gsi_hofx_vs_jedi_hofx_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

hofxdiff_histogram_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

errordiff_histogram_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

gsi_omb_vs_jedi_omb_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

gsi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal jedi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

azadeh-gh commented 1 year ago

Sent pull request (PR438)

emilyhcliu commented 1 year ago

Re-evaluate OMPSNP NPP

(1) Create input data (obs and geoval) - need to include obs filtered out in the read routine (2) Update QC filters - there are some minor updates ---> Will issue PR in GDASApp to update the filters in the YAML (3) Update variable names so they follow the IODA naming convention

Here are the updated checks

HofX JEDI vs. GSI

gsi_hofx_vs_jedi_hofx_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

JEDI HofX vs. Obs GSI HofX vs. Obs
jedi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer gsi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

gsi_omb_vs_jedi_omb_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

HofX Difference vs. Pressure Layers hofxdiff_vs_pressure_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

hofxdiff_vs_qcdiff_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

ObsError JEDI vs. GSI errordiff_vs_pressure_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

emilyhcliu commented 1 year ago

Here are the re-evaluation results for OMPSTC using the updated obs file and filters

(no thinning in the input obs file)

gsi_hofx_vs_jedi_hofx_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

JEDI HofX vs. Obs GSI HofX vs. Obs
jedi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal gsi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

gsi_omb_vs_jedi_omb_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

errordiff_vs_pressure_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

hofxdiff_vs_pressure_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

hofxdiff_vs_qcdiff_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

emilyhcliu commented 1 year ago

Re-evaluation for OMI AURA

(No data thinning for input data)

gsi_hofx_vs_jedi_hofx_omi_aura_diag_2021080100_omi_aura_ozoneTotal

JEDI HofX vs. Obs GSI HofX vs. Obs
jedi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal gsi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

gsi_omb_vs_jedi_omb_omi_aura_diag_2021080100_omi_aura_ozoneTotal

errordiff_vs_pressure_omi_aura_diag_2021080100_omi_aura_ozoneTotal hofxdiff_vs_pressure_omi_aura_diag_2021080100_omi_aura_ozoneTotal

hofxdiff_vs_qcdiff_omi_aura_diag_2021080100_omi_aura_ozoneTotal

The last plot does not look right. Some observations have QC difference = 14, meaning GsiEffectiveQC= 0, but JEDI EffectiveQC =14.
This is not because the filters are wrong. This is related to how we prepared the obs file from the GSI diagnostic. I will check and redo the obs file from GSI and run the GDASApp test again.

emilyhcliu commented 1 year ago

See more information in the following T2O issues related to end-to-end tests for ozone OMI Issue #77 OMPSTC Issue #75 OMPSNP Issue #76

emilyhcliu commented 1 year ago

The GDASApp test results based on the updated GSI obs file for OMI AURA

gsi_hofx_vs_jedi_hofx_omi_aura_diag_2021080100_omi_aura_ozoneTotal JEDI HofX vs Obs GSI HofX vs Obs
jedi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal gsi_hofx_vs_obs_omi_aura_diag_2021080100_omi_aura_ozoneTotal

gsi_omb_vs_jedi_omb_omi_aura_diag_2021080100_omi_aura_ozoneTotal

errordiff_vs_pressure_omi_aura_diag_2021080100_omi_aura_ozoneTotal

hofxdiff_vs_pressure_omi_aura_diag_2021080100_omi_aura_ozoneTotal hofxdiff_vs_qcdiff_omi_aura_diag_2021080100_omi_aura_ozoneTotal

Here is how to interpret the plot: QC diff = 9 --- GsiEffectiveQC = 1, and JEDI EffectiveQC = 10 (Missing Value) --- observations are screened from both GSI and UFO.

QC diff = 13 --- GsiEffectiveQC = 1, and JEDI EffectiveQC = 14 (RejectList)--- observation are screened from both GSI and UFO

QC diff = 0 --- GsiEffectiveQC (GSI) and EffectiveQC (JEDI)) are zeros

The plot tells us that the QC results between GSI and JEDI are identical.

emilyhcliu commented 1 year ago

The GDASApp test results based on the updated GSI obs file for OMPSTC8 NPP

gsi_hofx_vs_jedi_hofx_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

JEDI HofX vs. Obs GSI HofX vs. Obs
jedi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal gsi_hofx_vs_obs_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

gsi_omb_vs_jedi_omb_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal errordiff_vs_pressure_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal hofxdiff_vs_pressure_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal hofxdiff_vs_qcdiff_ompstc8_npp_diag_2021080100_ompstc8_npp_ozoneTotal

emilyhcliu commented 1 year ago

The GDASApp test results based on the updated GSI obs file for OMPSNP NPP

gsi_hofx_vs_jedi_hofx_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

JEDI HofX vs. Obs GSI HofX vs. Obs
jedi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer gsi_hofx_vs_obs_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

gsi_omb_vs_jedi_omb_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer errordiff_vs_pressure_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer hofxdiff_vs_pressure_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

hofxdiff_vs_qcdiff_ompsnp_npp_diag_2021080100_ompsnp_npp_ozoneLayer

emilyhcliu commented 1 year ago

@ADCollard @azadeh-gh Please check the last three new comments. They are updated results for omi, ompstc, and ompsnp.
These results show that the QC flag differences (GsiEffectiveQC vs. EffectiveQC) between GSI and UFO are identical.