I am currently using MPAS-JEDI to perform 3DVar data assimilation for a regional forecast, but I am unable to find suitable static BE (background error covariance) files for my domain(15km, 1000km radius domain). The tutorial doesn’t seem to provide instructions for generating background error covariance by myself, and my current computing resources cannot support using ensemble forecasting。
I noticed that the NMC method can be used to generate BE files, but I’m curious whether mpasjedi_error_covariance_toolbox.x supports using regional forecast outputs as input. Additionally,I got fatal error without log*.err file when I run BJ’ programs using regional f48-f24 result cutting from global domain. there seems to be an issue with computing stream functions in regional configurations?
I also noticed some researchers use interpolation methods to downscale coarse-resolution BE (e.g., 60km) to their regional domains. I’d like to seek assistance on this approach.
Thank you for your interest in MPAS-JEDI. We have a limited resource for user support, especially this B training part. However, we are preparing the hands-on practice and some documentation to generate the static background error statistics in upcoming tutorial in June 2025. The materials and test dataset should be available to generic users after the event.
For your question, mpasjedi_error_covariance_toolbox.x can handle the regional forecast outputs as an input. In this case, however, it can only estimate the univariate B (without cross variable covariance).
Or did you first convert the zonal/meridional winds to stream function and velocity potential in the global mesh, then interpolate (or cut) to your regional mesh ? I have not tried this before, but in principal this will work.
Yes, we can interpolate the B statistics into different horizontal mesh (even regional). We may include this part in the tutorial.
Hi there, How to generate global BE matrix for a variable 60-15-km domain? I used to run all test runs, but now I wanted to create a good BE for my 60-15-km variable mesh. Thanks, Minghua
As posted above, we will share the scripts and documentation on generating own B statistics after the upcoming tutorial. In principle, the training should work with a variable mesh.
Thanks so much BJ. Does the tutorial provide online attendance option? If so, do you mind sharing with me the registration information? Thanks for your time!
Thanks a lot for your support. I went through tutorial section 9 to create my own static B Matrix, and I finally managed to get it working. The issue appeared when I tried to use it with 3DVAR DA (with MPAS-JEDI).
On my first attempt, I got an error: “wrong size for dimension nl0” in NICAS read. After looking into the code (type_nicas_blk), I found that the problem was with surface_pressure. The code compares the number of levels in the file with geom%nl0 and it stops if different. In the files, there is only 1 level (which I believe is correct, since surface_pressure is 2D), but geom%nl0 is 55 (the total model levels).
So, why doesn’t the code recognize that surface_pressure has only one level? Why does it try to read more than one level for surface_pressure? Should I generate NICAS files by repeating the same level up to 55 so that all variables have the same number of levels? If so, how can this be done?
Your yaml file for 3DVAR DA needs to include this section.
There are some differences between the NICAS files of the pre-generated static B (which is used for the hands-on practice) and section 9.
In the pre-generated static B, the NICAS files are generated with all variables together. In this case, surface_pressure also has nl0=55, and NICAS will handle those non-physical levels as missing values. In this case, we don’t need to set grids key in the yaml file.
In the section 9, the NICAS files are generated for each variables separately, then merged later. In this case, surface_pressure will contain nl0=1, as you investigated. In this case, we need to set a different set of grids as shown above.
Hope this help other users, too and please be careful on the indentation when you add grids to your yaml file. grids section is the same indentation as drivers section under read.
Thank you very much for your reply. I included the grid section in my YAML file as you suggested, and it worked perfectly. I was able to run 3DVAR DA using my own B matrix. Many thanks!