-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
YAML Configuration | Surface ship #77
Comments
Looking good @gmao-jjin3. Thanks for sharing the plots |
Observational errors for airTemperature and virtaulTemperature in UFO don't match those values in GSI even after inflated errors made by UFO functions are replaced by GSI adjusted obs errors. This is because UFO does not have the additional error inflation as in GSI: |
UFO air temperature and virtual temperature results match GSI values after using (1) updated pressure-check inflation function written by @gmao-wgu , and (2) GSI adjust errors which are configured in YAML files. |
@gmao-jjin3 great. I will remove gsiadjusterr from my code and use gsiadjusterr in the yaml instead. Thanks! |
@gmao-wgu Not sure why I don't see your last post about updating testing environment: You can copy, edit and run this bash script to change names after you build your JEDI checkout: The new testing data are in /discover/nobackup/jjin3/jedi/For_others/x0044.jj_20230201.iodav3/ BTW, I have updated your PressureCheck codes and you copy them over, and edit them before making a PR: |
@gmao-jjin3 Thanks. I already did that, but I did not realize we have a script ready to convert the yaml into the one with the new naming convention though. |
@gmao-jjin3 By the way, can you cut your yaml to include only those necessary so that we can see clearly about how to handle gsiadjusterror in the yaml? |
@gmao-wgu Here it is in (/discover/nobackup/jjin3/jedi/jedi-work2/Wei_Gu/ioda_v3_temperature/sondes_geos_qc.yaml)
|
@gmao-jjin3 Thanks. So I only need to replace airTemperature with windEastward, it that correct? |
Yes, it is. |
Duplicate factors are applied for above two figures. Need further check. |
The reason for why there are a few larger observational errors in UFO after duplication than GSI final errors is that location (longitudes values) in UFO are different from those in GSI because of machine errors. For example: Duplicate factor = 1 in UFO at (0N, 220.1E) :
However, they are at (0N, 220.1E) and (0N, 220.10001E) in GSI:
|
The reason for under-estimate of observation errors for Air Temperature in UFO than in GSI at quite a few locations is that some data which have the same locations, observation time, and values are treated as one observation in IODA and UFO. However, they are treated as different observations in GSI. As a result, there are larger duplicate factors in GSI than in UFO. Here is an example:
However, there are three obervations in GSI (duplicate factor is about 1.73 which is sqrt(3):
|
Okay, it is because that GSI hofx "qges" and saturated moisture "qsges" are values at the 1st model level for marine surface specific humidity! The grid number "dpres" is reset to 1 |
I don't know why they did it, but it seems to me to make sense to place the surface marine observations at the surface level of the model. The observations are taken at the surface of the ocean (though I guess for ships it could be slightly higher than the surface) and there is no issue with differing model topography vs real world topography. |
Thank you @gmao-msienkie . It makes sense to me too, but have to think about how to do that in UFO. |
It's possible that this could be related to type 183 see: https://www.emc.ncep.noaa.gov/mmb/data_processing/prepbufr.doc/table_2.htm which is "SURFACE MARINE (SHIP, BUOY, C-MAN, TIDE GAUGE) OR LAND [SYNOPTIC (fixed and mobile), METAR] WITH MISSING STATION PRESSURE - Tv, q, Pstn, sst" |
Right. It looks like that. Thanks @CoryMartin-NOAA ! |
Any idea? |
@gmao-jjin3 you may need this: https://github.com/JCSDA-internal/ufo/blob/785cc133070e37860425e96e8605b26e3e562c1c/src/ufo/operators/identity/ObsIdentityParameters.h#L37 |
A PR to make GeoVals top_down during reading the geoval file if the levels are not top_down in it. |
Air temperature and virtual temperature errors in UFO match those in GSI after additional changes in GSI: 1) discard observations which have the same location, pressure, and time; 2) determine duplicated observations by single precision location an pressure values; 3) not to consider co-located air temperature and virtual temperature as duplicated observations. |
On further inspection of the 39 locations where the GSI-provided saturated specific humidity for a given location did not equal the UFO interpolated saturated specific humidity, we've found that the pressure at the obs location is between the first two model levels. The other locations where the two values for saturated specific humidity are equal have the pressure at obs location outside of the pressure model levels. The following is a print out of the first two levels of the saturated specific humidity profile, the GSI-provided saturated specific humidity for a given location, and the UFO interpolated saturated specific humidity. These values are printed out when a difference between the two saturated specific humidity values occur: q_profile[0]: 0.00446344 q_profile[0]: 0.00446462 q_profile[0]: 0.00446581 In all these locations, the GSI seems to pick the first saturated specific humidity level as the saturated specific humidity for the given location, whereas UFO tries to interpolate it. If saturated specific humidity is set to the first level of the saturated specific humidity profile, then the obserror perfectly matches the GSI for sfcship. |
It turns out that GSI HofX for marine ships wind data cannot be reproduced by UFO even they are interpolated in a geometric coordinate in UFO:
The likely reason is that observation heights for some of wind data are manipulated between interpolation is conducted. See code between lines 588 - 600 |
GSI HofX is reproduced in UFO when the GSISfcModel obs operator is used for windEastward and windNorthward |
@asewnath that operator does not yet have a TL/AD included in UFO for it, and I was planning on removing it... Is this a case where the VertInterp can reproduce GSI if you provide it the 10m wind reduction factor? Or does that need to be computed by UFO? |
Thanks for flagging that @CoryMartin-NOAA. That would indeed by an issue. I don't think the wind scaling factor is sufficient. Have you been able to reproduce the winds from surface marine using the regular vertical interpolation operator? |
I thought that I had done so back in the fall with just a combination of 10m wind reduction factor and the VertInterp. Perhaps we use GSI slightly differently for these obs? I would still think it would be a good idea to remove that GsiSfcModel operator, so perhaps we can code up a variable transform/obs function to do what we need to scale the winds? |
With adding the surface wind scaling to the Identity operator in UFO (https://github.com/JCSDA-internal/ufo/pull/2853) we can reproduce the wind h(x). Even though the counts are the same it looks like different observations might be passing QC as the stats in the density plots reveal very small differences. |
Never mind, I misread the plots, there is a count difference of 10. If you want to check the YAML to see if all filters are active it is here: /discover/nobackup/drholdaw/JediUfoTests/Config/sfcship_geos_qc.yaml |
@CoryMartin-NOAA this means this code is ready for JEDI©! |
@danholdaway @asewnath @gmao-wgu Here is my search to these 10 data in the GSI ncdiag output file I don't see this kind of gross error check in the |
Thanks for looking into this Jianjun! Adding Wei's gross check to the sfcship yaml took care of the remaining 10 obs. |
Validation against GEOS x0048 results (/discover/nobackup/jjin3/jedi/For_others/x0048.jj_20230818/conv/combine_conv/obs/sfcship_obs_2021121200.nc4).
|
This website cannot be opend. Is there any new website viewing this table ? |
We had a data center meltdown and non-operational things such as the EMC website are currently down. I hope its back sometime next week. |
Agreement with GSI using GeoVaLs in UFO (Hofx)
Agreement with GSI using GeoVaLs in UFO (Quality control)
Agreement with GSI using Swell
Current issues:
Notes
The text was updated successfully, but these errors were encountered: