Heterogeneous support radius and subgrid sampling in NICAS

Hi there,

In the NICAS document

Figure 8 shows heterogeneous support radius, with the subsampled grid denser in some regions (with smaller rh) and coarser in other regions (with larger rh). I wonder what settings in the .yaml file can use this feature? As far as my colleagues and I tried, the outcoming subsampled grid seems to be homogeneous (using random_uniform in subgrid sampling).

What we are thinking of is on the use of variable resolution mesh in JEDI-MPAS. Is it better to use a matching heterogeneous support radius and subgrid sampling corresponding to the MPAS mesh that has refine regions and resolution transition? Intuitively, for a refined part of the mesh, there may be finer correlation pattern among cells, which are here denser and better resolving the land surface, over shorter length-scale than those for coarser part spanning the rest of the globe, while spurious correlation may occur due to finite ensemble size. So a shorter rh should be used to suppress spurious / unwanted resulting correlation (and retain the meaningful fine correlation pattern), and also a denser NICAS subgrid should be used to represent the corresponding finer localization pattern?

I’d be grateful to anyone shedding some light on it.

Thanks and regards,
Chris

Hi @chrischeung, thank you for your question. To activate the heterogeneous length-scale estimation, you need to set the yaml key local_diag to true and to set an estimation radius local_rad in meters (for local averaging). For a global model, local_rad: 1000.0e3 (1000 km) could be a safe start. If this heterogeneous length-scale is then provided for the NICAS correlation operator generation, the mesh used by NICAS should be heterogeneous. I haven’t checked this feature recently, but it should still work.

You can write an extra file containing only NICAS mesh coordinates by setting write_nicas_grids: true in the yaml. A file is produced for each MPI task, it contains the lon/lat/lev coordinates of each NICAS mesh gridpoint. You can use lon_sa, lat_sa and lev_sa (owned points for each task) to plot the mesh.

Please let me know if you get unexpected results, I’ll have a closer look at the code and do some extra tests.

1 Like

Hi @benjaminmenetrier,

Thank you for your reply. With local_diag: True and local_rad: 1000.0e3 we can get the program running. From the log we see that it runs some different steps from those run with specifying rh and rv. We can now investigate more as needed.

Thanks and regards,
Chris

1 Like