bilinear and intbilin map file tests
In mid-2023, the TR “intbilin” algorithm was failing when the source grid was not global (i.e. MPAS ocean grids). This has been resolved in 2024. Here are some tests comparing ESMF’s bilin, TR’s bilin and TR’s intbilin. Because the different bilinear options have different ranges (i.e. ESMF with the -i option only maps to atmosphere cells that are 100% over ocean cells), we compute the L2 and Max error over cells on the atmosphere grid where the ocean fraction (as defined by the flux map) is 1.0 (to 8 digits. ).
mapping error for the Y16_32 test function, oEC60to30v3 → ne30pg2 |
| ||
---|---|---|---|
Algorithm | L2 Error | Max Error | num points with missing ocean data |
aave | 2.157e-03 | 6.782e-03 | 0 |
fv2 | 1.659e-03 | 5.322e-03 | 0 |
ESMF bilin | 4.874e-04 | 1.931e-03 | 1370 |
TR bilin | 4.919e-04 | 1.934e-03 | 1040 |
TR intbilin | 2.318e-03 | 7.018e-03 | 0 |
Note that the cell integrated methods have significantly higher errors as compared to bilin. This is in part due to the fact that the target grid is coarse, and the error is computed as a pointwise error at cell centers (as opposed to the harder-to-compute cell averaged error). To check the performance of cell-integrated algorithms where the difference between pointwise and cell-averaged error will be smaller, we ran the test with maps from a coarse to fine grid:
mapping error for the Y16_32 test function IcoswISC30E3r5 → ne120pg2 |
| ||
---|---|---|---|
Algorithm | L2 Error | Max Error | num points with missing ocean data |
aave | l2=3.636e-04 | max=1.850e-03 | 0 |
fv2 | l2=5.972e-05 | max=5.959e-04 | 0 |
ESMF bilin | l2=1.232e-04 | max=4.769e-04 | 9315 |
TR bilin | l2=1.231e-04 | max=4.770e-04 | 5809 |
TR intbilin | l2=2.272e-04 | max=2.325e-03 | 0 |
For this case, intbilin performs better relative to the other maps. But now the most accurate map is fv2, even outperforming bilin interpolation.
Note on possible OCN->ATM state maps:
The 4th column in the above gives the number of points on the atmosphere grid, which are fractional ocean points (as determined by the aave map), but will receive no data from the ocean->atmosphere map. Maps with such points are unusable in E3SM as ocn->atm statemaps, because the atmosphere will be expecting ocean data at these points but instead will receive 0. As one of the main state variables it Temperature, this will cause the model to crash with unphysically cold temperatures, or create speckling patterns of stationary low surface temperature ( i.e.: https://acme-climate.atlassian.net/wiki/spaces/NGDNA/pages/3597565953 ).
Note that all the cell integrated TR algorithms are consistent with the aave map. This is because they use the same overlap mesh to compute the mapping weights. Thus we could, for the first time, consider using these higher order maps in E3SM for mapping state variables from ocean to atmosphere.