Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. fluxes:  
    1. if source grid resolution uniformly  >> target grid resolution:  TR aave 
    2. otherwise:    FV2+CAAS 
  2. state and vector maps:  
    1. ocn→atm: The state map's non-zero pattern must be a superset of the ocn→atm flux map.  
      1. ocn resolution uniformly >> atm resolution:  TR aave 
      2. otherwise:   FV2+CAAS    or intbilin
      3. avoid bilin due to ocean/land mask consistency issues
    2. lnd↔atm and atm→ocn
      1. if source grid resolution uniformly >> target grid resolution (fine-to-coarse):  TR  aave or intbilin
      2. if source grid resolution uniformly << target grid resolution (coarse-to-fine):  TR bilin or intbilin  (bilin slightly faster)
      3. otherwise:   TR intbilin or FV2+CAAS  (intbilin faster)
      4. For lnd→atm: avoid bilin due to ocean/land mask consistency issues (i.e. 
    3. riv → ocn
      1. continue to use custom maps generated by E3SM/cime/tools/mapping/gen_mapping_files/runoff_to_ocn

...

  • sum of area weights is close to physical area 
  • mapping weights are between 0 and 1. 
    • For higher order maps, it may be acceptable for small overshoots, but we need to test this. 
    • FV2 map weights will violate this condition, but they are then corrected with CAAS.  
  • Consistency:  Row sum of weights (measures what happens when mapping a constant function):  
    • Should be 1 to machine precision for all grids where a >= b.  (global → regional)
    • For grids with a<b (such as ocn→atm) row sums should be 1.0 at all ocean points, 0 at all land points, and between 0 and 1 at coastal points.   
  • Conservation:  area_b weighted column sum of weights =  area_a (exact for conservation, close otherwise)  
    • Should be equal to machine precision for all grids where a <= b. (regional → global)
    • For grids with a>b (such as atm->ocn) should be equal to machine precision at all ocean points, 0 at all land points and between 0 and 1 at coastal points
    • Non-conservative maps are expected to have small errors in the above metric.   The traditional ESMF bilinear map does not include areas in the map file and this metric might not be accurate.  

...

There is a python package that can perform a more detailed analysis of mapping files used within a configured E3SM case:  (see  Map file analysis).   It will create a PDF document with a page for each mapping file listing several metrics as well as their desired value and allowable variation.  It will also apply the map file to can compute the following additional checks:  

  • Row sums:  For o2a maps, separates row sums into those over atm cells that are 100%  ocean (all row sums should be 1), and partial ocean cells (row sums should range from 0 to 1) 
  • Column sums: For a2o grids: separate column sums into those over atm cells that are 100% ocean ( should be 1 for conservative maps) and partial ocean cells (row sums should range from 0 to 1 for conservative maps)
  • For atmosphere target grids, check if the map is consistent with the atmosphere land fraction mask defined by the flux map (i.e. the map must produce land or ocean data for atm cells that have land or ocean fractions>0)  
  • Measure mapping error using a standard test function, plotting the results and computing L2 and max errors. 

...

  • For atmosphere target grids, separates errors into those over atm cells that are 100% land or ocean, and partial land/ocean cells (which can have much larger errors).     These errors can be compared to know working configurations to determine if they are sufficiently small. 





...


Older information from v1 and v2 development:

...