Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Change page title to better reflect page's current purpose

...

For each map (i.e. FV-FV mono, FV-SE monotr), see the sections below on naming conventions and specific command line options used to produce each map.  

Table of Contents

Recommended Settings for E3SM

Often map file algorithm choices dont have much of an impact on the solution, but occasionally they do. 

...

All mapping files should be tested as described in the "Testing and Validating Mapping Files" section below.   This testing is necessary, but not sufficient to ensure good results.  

E3SMv2 with pg2

ATM FV grids with physics on the 2x2 physgrid (i.e. pg2) coupled to FV ocean and FV land. E3SMv2 will still use the spectral element dynamical core on the GLL grid, but the coupling between component always happens between the physics columns, which are now on a FV grid. 

  1. fluxes:  FV→FV mono
  2. state and vector maps:  
    1. ocn→atm: currently this map must be the same as used for fluxes (FV→FV mono)
      1. This restriction is because the range of the state and vector maps must match the range of the flux map.  
    2. lnd↔atm and atm→ocn
      1. if source grid resolution >> target grid resolution (fine-to-coarse):  "FV→FV mono"  
      2. if source grid resolution <= target grid resolution (coarse-to-fine):  use ESMF's bilin.
      3. New as of 2022/10:  TR's FV→FV intbilin should work well for all resolution combinations, replacing both maps above.  Not yet tested in E3SM.  

E3SMv1

ATM SE grids with physics on the "np4" grid (used in V1), coupled to FV ocean and FV land. E3SMv1 uses the same spectral element GLL grid for both dynamics and physics in the atmosphere, so coupling between components happens on this grid.

  1. SE→FV  for fluxes:  use "SE→FV mono" 
  2. SE→FV for state and vector maps:  SE->FV intbilin
  3. FV→SE for fluxes:  FV→SE monotr
    1. The best map is the transpose of the SE->FV map computed above:
    2. This is the most important map, as it is used to compute the domain files and defines the ocean/land mask on the atm/land grid.  
  4. FV→SE for state and vector maps:  
    1. ocn→atm: currently this map must be the same as used for fluxes (FV→SE monotr) 
    2. lnd→atm:   if land grid resolution >> atmosphere resolution (fine-to-coarse):  "FV→SE mono". 
    3. lnd→atm:   if land grid resolution <= atmosphere resolution (coarse-to-fine):   ESMF's bilin.  (replace by FV→SE intbilin if it becomes available)

Mapping Analysis and Input Data (lat-lon grids)

For ESMF maps, we previously recommend bilinear maps for coarse-to-fine and aave for fine-to-coarse.  All the TempestRemap algorithms recommended here should work well for either coarse-to-fine or fine-to-coarse.  

...

  1. Lat/Lon → SE 
    1. FV→SE "mono".   Disabling the conservation constraint with --noconserve does not improve accuracy
  2. SE → SE
    1. SE→SE "mono"


...

Background

Motivation for Moving to TempestRemap

Most mapping files used in the E3SM coupled system and used to remap to lat/lon grids for analysis are based on the ESMF_Regrid package. The ESMF remap algorithms and underlying tools are quite good, but they are targeted at finite volume grids and assume cell centered data.   The TR algorithms have native support for vertex centered finite element grids, such as used by the E3SM atmosphere dycore.

...

  1. Some compsets use ESMF bilinear maps for state variables The bilinear algorithm introduces aliasing artifacts for fine-to-coarse maps.  Some v1 compsets already use TR high-order for atm2ocn maps, which avoid this issue.    
  2. We currently use ESMF conservative maps for fluxes. This algorithm uses piecewise-constant finite volume reconstruction. These maps are good for fine-to-coarse mapping, but will produce blocky artifacts with coarse-to-fine maps.   
  3. ESMF conservative maps for spectral element grids requires us to first generate a "dual grid" that puts a finite volume around each spectral element node.  Constructing this dual grid requires running a Matlab tool that uses Newton iteration to find the dual grid. For a high-resolution grid, this procedure can take several days.  (For information on the dual grid, see SE Atmosphere Grid Overview (EAM & CAM)).  The dual grid is contained in the SCRIP format metadata file.  
  4. TR algorithms natively support finite element grids, do not require the SCRIP dual grid, and give more accurate results when remapping to/from a spectral element atmosphere grid.
  5. TR algorithm recommended for state variables is cell integration based, so can always be used when mapping from high-res to low-res grids.
  6. Inline mapping: TempestRemap algorithms are part of the MOAB coupler, making it possible to eliminate mapping files and have them computed as needed.
  7. Land/Ocean Mask consistency:   The flux ocn2atm map is used to define the land/ocean mask on the atmosphere grid. All other ocn2atm maps (state and vectors) must have the same range as the map uses for fluxes.  That is, if a point on the atmosphere grid receives ocean data from the flux map, it must also receive ocean data from all other maps.  The aave and bilinear maps do not have the same range, and thus if an aave map is used for fluxes, it must be used for all other ocn2atm maps.   We speculate that TR maps all have the same range and thus we can use high order maps for ocn2atm state and vectors.   

Notation and Abbreviations

SE =  Atmosphere spectral element dycore mesh ( SE Atmosphere Grid Overview (EAM & CAM) ). Usually in "np4" configuration where each element has a 4x4 array of GLL nodes.   

...

Note 3:  For SE atmosphere grids, the Exodus file is what is used by the model, and it contains the corners of all the spectral elements.  The dual grid (SCRIP format) metadata files are not needed by TempestRemap.  


...

Map File Naming Convention

See Mapping file algorithms and naming convention page.  

Using TempestRemap

Generic TR Commands to Generate Mapping Files

Update to TR options 2020/2/21:  to fix precision issues, with row sums and conservation errors not close to machine precision at high resolution meshes, added the "–correct_areas" option to the recommendations.  

2022/9 update:  newer versions of TR replace the --mono* options with --method mono*

E3SM v2 (all maps are FV->FV)

  • Bilinear maps:
    • With E3SMv2's transition to PG2, we now often need bilinear maps for state variables.  These currently are not supported by TR and need to be computed with the ESGF utility
    • ESGF options for bilinear maps:  ADD HERE.  
  • FV→FV aave (conservative, monotone, 1st order)
    • The classic cell integrated piecewise constant map.  Equivalent to the ESMF "aave" map and NCO's built in map.  
    • ./GenerateOfflineMap --in_mesh $ocngrid --out_mesh $atmgrid --ov_mesh overlap_mesh.g --in_type fv --in_np 1 --out_type fv --out_np 1 --correct_areas  --out_map map_ocn2atm_mono.nc
  • FV→FV integrated bilinear
    • promising new capability in TR 2022/10, not yet tested in E3SM

E3SM v1 (maps with SE grids.  also sometimes used to produce E3SM v2 initial conditions which are on SE grids)

  • SE→SE mono (conservative, monotone, 1st order)
    • ./GenerateOfflineMap --in_mesh $atmgrid --out_mesh $atmgrid2 --ov_mesh overlap_mesh.g --in_type cgll --in_np 4  --out_type cgll --out_np 4 --mono --correct_areas --out_map map_atmgrid_to_atmgrid2_mono.nc
  • SE→FV mono (conservative, monotone, 1st order)
    • ./GenerateOfflineMap --in_mesh $atmgrid --out_mesh $ocngrid --ov_mesh overlap_mesh.g --in_type cgll --in_np 4  --out_type fv  --mono --correct_areas --out_map map_atm2ocn_mono.nc
  • SE→FV intbilin (nonconservative, monotone, higher order)
    • ./GenerateOfflineMap --in_mesh $atmgrid --out_mesh $ocngrid --ov_mesh overlap_mesh.g --in_type cgll --in_np 4  --out_type fv --mono3 --noconserve --correct_areas --out_map map_atm2ocn_intbilin.nc
  • SE→FV highorder. (conservative, nonmonotone)
    • ./GenerateOfflineMap --in_mesh $atmgrid --out_mesh $ocngrid --ov_mesh overlap_mesh.g --in_type cgll --in_np 4  --out_type fv --correct_areas --out_map map_atm2ocn_highorder.nc
  • FV→SE monotr (conservative, monotone, 1st order)
    • The transpose of the SE→FV mono map: 
    • ./GenerateTransposeMap --in map_atm2ocn_mono.nc --out map_ocn2atm_monotr.nc
  • FV→SE highorder (conservative, non-monotone)
    • ./GenerateOfflineMap --in_mesh $ocngrid --out_mesh $atmgrid --ov_mesh overlap_mesh.g --in_type fv --in_np 2 --out_type cgll --out_np 4  --out_map map_ocn2atm_highorder.nc
    • Do these maps need "–correct_areas" ?
  • FV→SE mono (conservative, monotone, 1st order)
    • ./GenerateOfflineMap --in_mesh $ocngrid --out_mesh $atmgrid --ov_mesh overlap_mesh.g --in_type fv --in_np 1 --out_type cgll --out_np 4 --out_map map_ocn2atm_mono.nc
    • Do these maps need "–correct_areas" ?
  • FV→SE intbilintr  (nonconservative, nonmonotone, higher order)
    • The transpose of the SE→FV intbilin map.  No negative weights, but weights can be larger than 1.   
    • ./GenerateTransposeMap --in map_atm2ocn_intbilin.nc --out map_ocn2atm_intbilintr.nc

The Overlap Mesh

IMPORTANT!!!: MAPS grids often have holes where there are no mesh points. When computing the TempestRemap overlap grid (step 1 below), the grid with less coverage must be the "a" grid, while the global grid should be the "b" grid.   To generate the overlap grid:

./GenerateOverlapMesh --a $ocngrid --b $atmgrid --out overlap_mesh.g

TR support in NCO and ncremap

The TR maps discussed in "Recommended Settings" above include many options and requirements (transposes, ocean grid first) that might slow-down casual TR users. NCO's ncremap provides a "Make Weight Files" (MWF) mode that automatically generates and correctly names all recommended TR (or ESMF) maps. Instructions and examples for MWF mode are summarized on the ncremap page here, with more in-depth discussion in the NCO manual here.


...

Testing and Validating Mapping Files

NCO as of 4.9.0-beta01 can test maps for conservation and consistency.   See:  Assess and Address Regridding Weights in Map-Files with ncks.  

...