NOAA-EMC / GDASApp

Global Data Assimilation System Application
GNU Lesser General Public License v2.1
15 stars 30 forks source link

[End-to-End Test Code Sprint] Add SEVIRI METEOSAT-8 satwinds to end-to-end testing #758

Open BrettHoover-NOAA opened 10 months ago

BrettHoover-NOAA commented 10 months ago

Adding satwinds from the Spinning Enhanced Visible and InfraRed Imager (SEVIRI) from METEOSAT-8 to GDASApp end-to-end testing

new files include: parm/atm/obs/config/satwind_seviri_m8.yaml: QC filter YAML for SEVIRI METEOSAT-8 satwinds parm/ioda/bufr2ioda/bufr2ioda_satwind_amv_seviri.json: JSON containing data format, sensor, and satellite information for SEVIRI METEOSAT-8 satwinds ush/ioda/bufr2ioda/bufr2ioda_satwind_amv_seviri.py: bufr2ioda code for extracting SEVIRI METEOSAT-8 satwinds from BUFR

End-to-End Test Results

METEOSAT-8 satwinds consist of 3 observation-types: (LW)IR (253), VIS (243), and both clear-sky and cloud-top WV (254), which are given the same ob-type but can be differentiated by their windComputationMethod values of 3 and 5 respectively. Clear-sky WV winds from SEVIRI/METEOSAT-8 are not assimilated in GSI.

No thinning results

With horizontal and vertical thinning turned off in GSI, all SEVIRI/METEOSAT-8 satwinds are assimilated:

(LW)IR satwinds

There are 61656 IR satwinds in the JEDI dataset and 50024 in the GSI dataset - the discrepancy is almost certainly due to two sources: (1) the exclusion of IR satwinds over land north of 20 degrees latitude in the GSI, and (2): the exclusion of any satwinds with a satelliteZenithAngle value greater than 68 degrees, where these observations are removed from the dataset entirely in read_satwnd.f90 and do not carry through to the diag file. When filtering to only compare assimilated IR satwinds, JEDI assimilates 15206 observations and GSI assimilates 15192, a difference of roughly 0.01%. Some of the differences appear along coastlines and could be due to differences in whether the underlying surface-type is defined as land or water:

image

Comparisons of observations, HofX, and the difference (ob-minus-HofX) all look good: image image image

VIS satwinds

There are 12664 IR satwinds in the JEDI dataset and 10986 in the GSI dataset - the discrepancy is due to the exclusion of VIS satwinds with a satelliteZenithAngle value greater than 68 degrees, where these observations are removed from the dataset entirely in read_satwnd.f90 and do not carry through to the diag file. When filtering to only compare assimilated VIS satwinds, JEDI assimilates 5092 observations and GSI assimilates 5102, a difference of roughly 0.2%.:

image

Comparisons of observations, HofX, and the difference (ob-minus-HofX) all look good: image image image

cloud-top) WV satwinds

All clear-sky WV satwinds are rejected in JEDI for compliance with GSI. There are 104843 combined clear-sky/clout-top WV satwinds in JEDI and 97357 satwinds in GSI - the 7486 ob-count difference is entirely attributable to JEDI satwinds with a satelliteZenithAngle greater than 68 degrees or a pressure of less than 125 hPa, where these observations are removed from the dataset entirely in read_satwnd.90 and do not carry through to the diag file. JEDI assimilates 24514 and GSI assimilates 24435, a differences of less than 0.4%:

image

Comparisons of observations, HofX, and the difference (ob-minus-HofX) all look good: image image image

BrettHoover-NOAA commented 10 months ago

Thinning tests

Horizontal and vertical thinning (NOTE: no JEDI time-thinning applied in this test, but GSI contains time-thinning) was applied in JEDI with the use of the following filter option in obs pre filters:

- filter: Gaussian Thinning
  where:
  - variable: ObsType/windEastward
    is_in: 243, 253
  horizontal_mesh: 200
  vertical_mesh: 10000
  use_reduced_horizontal_grid: true
  round_horizontal_bin_count_to_nearest: true
  partition_longitude_bins_using_mesh: true

This applies horizontal thinning on a 200 km mesh and vertical thinning on a 10000 Pa mesh, matching the horiz/vert thinning mesh size options chosen in GSI global_convinfo.txt. Type 254 (WV) satwinds from SEVIRI/METEOSAT-8 are not thinned in GSI, which is duplicated here. The remaining options used here were carried over from existing testing of JEDI thinning of scatterometer wind data.

Even when applying only horizontal and vertical thinning in JEDI and comparing to GSI's horizontal/vertical/time thinning, JEDI assimilates roughly 25-45% of the SEVIRI/METEOSAT-8 satwinds that are assimilated in GSI. I will show only the differences in QC'd JEDI (blue) vs GSI (orange) observations, since the ob, HofX, and OmB values were already tested without thinning applied. Total ob-counts in JEDI are not changed via thinning, since the thinned satwinds are merely rejected, but ob-counts are changed in GSI because thinned winds are not retained in the diag file.

(LW)IR satwinds Thinning reduces the GSI ob-count from 50024 to 33484 satwinds. JEDI assimilates 1294 satwinds while GSI assimilates 4736: image

VIS satwinds Thinning reduces the GSI ob-count from 10986 to 4802 satwinds. JEDI assimilates 318 satwinds while GSI assimilates 697 satwinds: image

(cloud-top only) WV satwinds No change to WV satwind counts or assimilation, since thinning is not applied to these winds in either system.

BrettHoover-NOAA commented 10 months ago

There needs to be ongoing work to identify differences in the JEDI vs GSI thinning techniques to explain ob-count differences before and after QC. The thinning filter applied here will be included in the YAML file but commented-out with a note summarizing these results.

BrettHoover-NOAA commented 10 months ago

Increment print from non-thinned test:

  0: ----------------------------------------------------------------------------------------------------
  0: Increment print | number of fields = 8 | cube sphere face size: C768
  0: eastward_wind                                | Min:-4.803825e-01 Max:+4.492015e-01 RMS:+6.007858e-04
  0: northward_wind                               | Min:-3.746608e-01 Max:+3.744873e-01 RMS:+5.498480e-04
  0: air_temperature                              | Min:+0.000000e+00 Max:+0.000000e+00 RMS:+0.000000e+00
  0: surface_pressure                             | Min:+0.000000e+00 Max:+0.000000e+00 RMS:+0.000000e+00
  0: specific_humidity                            | Min:+0.000000e+00 Max:+0.000000e+00 RMS:+0.000000e+00
  0: cloud_liquid_ice                             | Min:+0.000000e+00 Max:+1.618770e-20 RMS:+1.293217e-23
  0: cloud_liquid_water                           | Min:+0.000000e+00 Max:+1.474788e-19 RMS:+2.167418e-22
  0: ozone_mass_mixing_ratio                      | Min:+0.000000e+00 Max:+0.000000e+00 RMS:+0.000000e+00
  0: ----------------------------------------------------------------------------------------------------