Use the generic oops interpolator#898
Merged
travissluka merged 10 commits intodevelopfrom Jun 15, 2023
Merged
Conversation
Contributor
Author
|
note, I forgot to update 2 marine operators, I have updated the matching UFO PR. To make sure I have them all covered now, I updated the input obs files here to contain a single point at lat/lon 40.035, -105.243 which should definitely be land, otherwise the JCSDA building would be underwater. |
kbhargava
approved these changes
Jun 14, 2023
Contributor
kbhargava
left a comment
There was a problem hiding this comment.
Builds fine and ctests pass.
Contributor
Author
Contributor
Author
Contributor
climbfuji
added a commit
that referenced
this pull request
Jul 17, 2023
* Use SABER blocks chaining for training (#852) * Adapt to name changes in ufo (#867) * Use VertInterp instead of MarineVertInterp (#874) * remove linear var change from ensevariance ctest (#881) * Bugfixes for BUMP (#869) * A few fixes to the Model to Analysis variable change (#847) * Remove discontinuities in the balance op (#885) * set to min/max instead of 0 * ... * vanilla vert conv * tidy sign * removed jac_mask * tanh filt * updated yamls and test refs * merge develop and update answers after the develop history MESS i created * code tidy/removed vanilla --------- Co-authored-by: Travis Sluka <tsluka@ucar.edu> * default plots (#888) Co-authored-by: Travis Sluka <tsluka@ucar.edu> * add VADER to SOCA (#887) * add vader to build, but dont use it * add State::fromFieldSet * variablechange "uses" vader * switched to ens. templ. (#894) * Implementation of EnsMeanAndVariance (#892) * added the ensmeanandvariance app * ... --------- Co-authored-by: Travis Sluka <tsluka@ucar.edu> * Read the std. dev. instead of the variance (#896) * skip sqrt, saving optional * forgot test yaml * Update test/testinput/varchange_bkgerrsoca_stddev.yml Co-authored-by: Travis Sluka <tsluka@ucar.edu> --------- Co-authored-by: Travis Sluka <tsluka@ucar.edu> * Use the generic oops interpolator (#898) * use oops interpolation * to_fieldset_ad * forgot some halo masks * fix horizfilt * fix some test answers * letkf workaround for missing val bug * work around for getvalues test * change obs input to have 1 guaranteed land point * Update version (#899) * remove ewok repo (#889) Co-authored-by: Yannick Trémolet <30638944+ytremolet@users.noreply.github.com> * Merge B matrix-related applications (#890) * Merge B matrix-related applications * Trigger tests --------- Co-authored-by: Benjamin Menetrier <benjamin.menetrier@irit.fr> Co-authored-by: Travis Sluka <tsluka@ucar.edu> * update for VADER PR#586 (#902) * add ModelData * fix coding norms * Update CMakeLists.txt * Fix vertical gradient (#914) * a fix dvdz * Updating test references --------- Co-authored-by: Hyun-Chul.Lee <Hyun-Chul.Lee@noaa.gov> * libs in soca * Commend out dirac.x test and disable ecbuild_install_project as we did for fv3-jedi prevent the following error: -- Configuring done CMake Error in soca/src/soca/CMakeLists.txt: Target "soca" INTERFACE_LINK_DIRECTORIES property contains path: "/Users/heinzell/work/ufs-bundle/20230714/ufs-bundle-use-jedi-develop/soca/src/soca/." which is prefixed in the source directory. -- Generating done CMake Generate step failed. Build files cannot be regenerated correctly. * Apply same bug fix as for fv3-jedi to fix missing linker path for MPI libraries due to ESMF bug --------- Co-authored-by: Benjamin Menetrier <benjamin.menetrier@irit.fr> Co-authored-by: Wojciech Śmigaj <w.smigaj@gmail.com> Co-authored-by: Travis Sluka <tsluka@ucar.edu> Co-authored-by: Guillaume Vernieres <guillaume.vernieres@noaa.gov> Co-authored-by: Yannick Trémolet <30638944+ytremolet@users.noreply.github.com> Co-authored-by: Benjamin Menetrier <30638301+benjaminmenetrier@users.noreply.github.com> Co-authored-by: Kriti Bhargava <kritib@ucar.edu> Co-authored-by: Hyun-Chul.Lee <Hyun-Chul.Lee@noaa.gov> Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.






Description
Deletes the custom SOCA interpolation and uses the generic OOPS interpolation that @fmahebert put together, resulting in 768 fewer lines of SOCA code 🎉
In order to use the OOPS interpolation I had to fix the way halo regions were handled when being passed around atlas fieldsets
geom%valid_halo_maskthat is true for the non-halo gridpoints and for the non-duplicate halo gridpoints (seesoca_geom_find_invalid_halo()). Anytime a field is packed for atlas fieldset usage this mask is used.INVALID_HALO(-999.0) instead of 0.0 before filling it with the correct lat/lon in the compute domain and doing the first halo update. I then test insoca_geom_find_invalid_halo()to see where there are still invalid lat/lon in the halo then setgeom%valid_halo_masktofalsefor those gridpoints.The one limitation, for now, is that all interpolation uses the same grid. Meaning U/V are assumed to be on the h grid. Options (in a subsequent PR) are
We don't have to decide now. Just keep in mind if/when it is ever realistic that we'll have u/v observations.
Testing
Answers are different, as one would expect from changing the interpolation. On the plus side, the minimum coolskin temp is no longer -69 for
hofx3d, but now a more realistic -4. Also, the interpolated sea ice concentration no longer goes above1.0The
getvaluestest has been mostly disabled (the masked fields were turned off). This is because of a limitation in the unit test. I need to talk to @fmahebert sometime to see how to fix this. (In short, I can't create proper soca analytic init values for the state and geovals because I never know for sure if a point near land will give a missing value or an interpolated value, it depends randomly on how the triangulation is performed for the oops interpolation) I'll deal with that "later"There is a "bug" with LETKF not being able to handle missing values the same way the var does. The workaround for this is to make sure the landmark qc filter is in place for all letkf obs (which they should have been anyway)
Once I'm sure the CI tests are passing I'll run comparisons with a realistic domain and post some plots**
Dependencies