Assess and Address Regridding Weights in Map-Files with ncks

E3SM component models employ multiple grids that require regridding to exchange information during coupling and for off-line analyses. High-quality regridding weights are necessary to exploit E3SM's grid versatility, and are traditionally stored in map-files. This page documents the internal structure of map-files, and describes how to assess the quality of their weights. This page assumes some familiarity in regridding (see https://acme-climate.atlassian.net/wiki/spaces/DOC/pages/754286611), though no prior exposure to the internal structure of map-files..

As of NCO version 4.9.0 (December, 2019), invoking --chk_map causes ncks to evaluate the quality of regridding weights in the map-file provided as input-file. This option works with map-files (not grid-files) in ESMF/CMIP6-compliant format (i.e., a sparse matrix variable named S and coordinates [xy][ab]_[cv]. When invoked with the additional --area_wgt option, the evaluation statistics are area-weighted and thus exactly represent the global-mean/min/max/mebs/rms/sdn biases expected when regridding a globally uniform field. This tool makes it easier to objectively assess weight-generation algorithms, and will hopefully assist in their improvement. Thanks to @Mark Taylor and @Paul Ullrich for this suggestion and early prototypes.

$ ncks --chk_map map.nc # Unweighted statistics
$ ncks --chk_map --dbg=2 map.nc # Additional diagnostics
$ ncks --chk_map --area_wgt map.nc # Area-weighted statistics

The map-checker performs numerous checks and reports numerous statistics, probably more than you care about. Be assured that each piece of provided information has in the past proved useful to developers of weight-generation and regridding algorithms. Most of the time, users can learn whether the examined map is of sufficient quality for their purposes by examing only a few of these statistics. Before defining these primary statistics, it is helpful to understand the meaning of the weight-array S (stored in a map-file as the variable S), and the terminology of rows and columns.

A remapping (aka regridding) transforms a field on an input grid to an an output grid while conserving to the extent possible or desired the local and global properties of the field. The map S is a matrix of M rows and N columns of weights, where M is the number of gridcells (or degrees of freedom, DOFs) in the destination grid, and N is the number of gridcells (or DOFs) in the source grid. An individual weight S(m,n) represents the fractional contribution to destination gridcell m by source gridcell n.

By convention the weights are normalized to sum to unity in each row (destination gridcell) that completely overlaps the input grid. Thus the weights in a single row are all equivalent to the fractional destination areas that the same destination gridcell (we will drop the DOF terminology hereafter for conciseness) receives from each source gridcell. Regardless of the values of the individual weights, it is intuitive that their row-sum should never exceed unity because that would be physically equivalent to an output gridcell receiving more than its own area from the source grid. Map-files typically store these row-sum statistics for each destination gridcell in the frac_b variable described further below.

Likewise the weights in a single column represent the fractional destination areas that a single source gridcell contributes to every output gridcell. Each output gridcell in a column may have a different area so column-sums need not, and in general do not, sum to unity. However, a source gridcell ought to contribute to the destination grid a total area equal to its own area. Thus a constraint on column-sums is that their weights, themselves weighted by the destination gridcell area corresponding to each row, should sum exactly to the source gridcell area. In other words, the destination-area-weighted column-sum divided by the source gridcell area would be unity (in a perfect first order map) for every source gridcell that completely overlaps valid destination gridcells. Map-files typically store these area-weighted-column-sum-ratio statistics for each gridcell in the frac_a variable described further below.

Storing the entire weight-matrix S is unnecessary because only a relative handful of gridcells in the source grid contribute to a given destination gridcell, and visa versa. Instead, map-files store only the non-zero S(m,n), and encode them as a sparse-matrix. Storing S as a sparse matrix rather than a full matrix reduces overall storage sizes by a factor on the order of the ratio of the product of the grid sizes to their sum, or about 10,000 for grids with horizontal resolution near one degree, and more for finer resolutions. The sparse-matrix representation is a one-dimensional array of weights S, together with two ancillary arrays, row and column, that contain the one-dimensional row and column indices, respectively, corresponding to the destination and source gridcells of the associated weight. By convention, map-files store the row and column indices using the 1-based convention in common use in the 1990s when regridding software was all written in Fortran. The map-checker prints cell locations with 1-based indices as well:

% ncks --chk_map map_ne30np4_to_cmip6_180x360_nco.20190601.nc
Characterization of map-file map_ne30np4_to_cmip6_180x360_nco.20190601.nc
Cell triplet elements : [Fortran (1-based) index, center latitude, center longitude]
Sparse matrix size n_s: 246659
Weight min S(190813): 5.1827201764857658e-25 from cell
[33796,-45.7998,+136.437] to [15975,-45.5,+134.5]
Weight max S( 67391): 1.0000000000000000e+00 from cell
[33671,-54.4442,+189.645] to [12790,-54.5,+189.5]
Ignored weights (S=0.0): 0
...

Here the map-file weights span twenty-five orders of magnitude. This may seem large though in practice is typical for high-resolution intersection grids. The Fortran-convention index of each weight extreme is followed by its geographic latitude and longitude. Reporting the locations of extrema, and of gridcells whose metrics miss their target values by more than a specificied tolerance, are prime map-checker features.

As mentioned above, the two statistics most telling about map quality are the weighted column-sums frac_a and the row-sums frac_b. The short-hand names for what these metrics quantify are Conservation and Consistency, respectively. Conservation means the total fraction of an input gridcell that contributes to the output grid. For global input and output grids that completely tile the sphere, the entirety of each input gridcell should contribute (i.e., map to) the output grid. The same concept that applies locally to conservation of a gridcell value applies globally to the overall conservation of an input field. Thus a perfectly conservative mapping between global grids that tile the sphere would have frac_a = 1.0 for every input gridcell, and for the mean of all input gridcells.

The map-checker computes Conservation (frac_a) from the stored variables S, row, column, area_a, and area_b in the map-file, and then compares those values to the frac_a values (if any) on-disk, and warns of any disagreements. By definition, conservation is perfect to first order if the sum of the destination-gridcell-area-weighted weights (which is an area) equals the source gridcell area, and so their ratio (frac_a) is unity. Computing the area-weighted-column-sum-ratios and comparing those frac_a to the stored frac_a catches any discrepancies. The analysis sounds an alarm when discrepancies exceed a tolerance (currently 5.0e-16). More importantly, the map-checker reports the summary statistics of the computed frac_a metrics and their imputed errors, including the grid mean, minimum, maximum, mean-absolute bias, root-mean-square bias, and standard deviation.

% ncks --chk_map map_ne30np4_to_cmip6_180x360_nco.20190601.nc
...
Conservation metrics (column-sums of area_b-weighted weights normalized by area_a) and errors---
Perfect metrics for global Grid B are avg = min = max = 1.0, mbs = rms = sdn = 0.0:
frac_a avg: 1.0000000000000000 = 1.0-0.0e+00 // Mean
frac_a min: 0.9999999999991109 = 1.0-8.9e-13 // Minimum in grid A cell [45328,+77.3747,+225]
frac_a max: 1.0000000000002398 = 1.0+2.4e-13 // Maximum in grid A cell [47582,+49.8351,+135]
frac_a mbs: 0.0000000000000096 = 9.6e-15 // Mean absolute bias from 1.0
frac_a rms: 0.0000000000000167 = 1.7e-14 // RMS relative to 1.0
frac_a sdn: 0.0000000000000167 = 1.7e-14 // Standard deviation
...

The values of the frac_a metric are generally imperfect (not 1.0) for global grids. The bias is the deviation from the target metric shown in the second floating-point column in each row above (e.g., 8.9e-13). These biases should be vanishingly small with respect to unity. Mean biases as large as 1.0e-08 may be considered acceptable for off-line analyses (i.e., a single regridding of raw data) though the acceptable tolerance should be more stringent for on-line use such as in a coupler where forward and reverse mappings may be applied tens of thousands of times. The mean biases for such on-line regridding should be close to 1.0e-15 in order for tens-of-thousands of repetitions to still conserve mass/energy to full double-precision.

The minimum and maximum gridcell biases indicate the worst performing locations of the mapping. These are generally much (a few orders of magnitude) greater than the mean biases. Observe that the minimum and maximum biases in the examples above and below occur at longitudes that are multiples of 45 degrees. This is characteristic of mappings to/from for cube-square grids whose faces have edges, and thus additional complexity, at multiples of 45 degrees. This illustrates how intersection grid geometry influences biases. More complex, finer-scale structures, produce greater biases. The Root-Mean-Square (RMS) and standard deviation metrics characterize the distribution of biases throughout the entire intersection grid, and are thus complementary information to the minimum and maximum biases.

Consistency expresses the total fraction of an output gridcell that receives contributions from the input grid. Thus Consistency is directly analogous to Conservation, only applied to the output grid. Conservation is the extent to which the mapping preserves the local and grid-wide integrals of input fields, while Consistency is the extent to which the mapping correctly aligns the input and output grids so that each destination cell receives the appropriate proportion of the input integrals. The mapping will produce an acceptably faithful reproduction of the input on the output grid only if all local and global Conservation and Consistency metrics meet the acceptable error tolerances.

The map-checker computes the Consistency (frac_b) as row-sums of the weights stored in S and compares these to the stored values of frac_b. (Note how the definition of weights S(m,n) as the fractional contribution to destination gridcell m by source gridcell n makes calculation of frac_b almost trivial in comparison to frac_a). Nevertheless, frac_b in the file may differ from the computed row-sum for example if the map-file generator artificially limits the stored frac_b value for any cell to 1.0 for those row-sums that exceed 1.0. The map-checker raises an alarm when discrepancies between computed and stored frac_b exceed a tolerance (currently 5.0e-16). There are semi-valid reasons a map-generator might do this, so this does not necessarily indicate an error. The alarm simply informs the user that applying the weights will lead to a slightly different Consistency than indicated by the stored frac_b.

As with frac_a, the values of frac_b are generally imperfect (not 1.0) for global grids:

% ncks --chk_map map_ne30np4_to_cmip6_180x360_nco.20190601.nc
...
Consistency metrics (row-sums of weights) and errors---
Perfect metrics for global Grid A are avg = min = max = 1.0, mbs = rms = sdn = 0.0:
frac_b avg: 0.9999999999999999 = 1.0-1.1e-16 // Mean
frac_b min: 0.9999999999985523 = 1.0-1.4e-12 // Minimum in grid B cell [59446,+75.5,+45.5]
frac_b max: 1.0000000000004521 = 1.0+4.5e-13 // Maximum in grid B cell [63766,+87.5,+45.5]
frac_b mbs: 0.0000000000000065 = 6.5e-15 // Mean absolute bias from 1.0
frac_b rms: 0.0000000000000190 = 1.9e-14 // RMS relative to 1.0
frac_b sdn: 0.0000000000000190 = 1.9e-14 // Standard deviation
...

This example shows that frac_b has the greatest local errors at similar boundaries (multiples of 45 degrees longitude) as frac_a. It is typical for Conservation and Consistency to degrade in intricate areas of the intersection grid, and these areas occur at multiples of 45 degrees longitude for cubed-sphere mappings.

The map-checker will produce area-weighted metrics when invoked with the --area_wgt flag, e.g., ncks --area_wgt in.nc. Area-weighted statistics show the exact local and global results to expect with real-world grids in which large consistency/conservation errors in small gridcells may be less important than smaller errors in larger gridcells. Global-weighted mean statistics will of course differ from unweighted statistics, although the minimum and maximum do not change:

% ncks --area_wgt map_ne30np4_to_cmip6_180x360_nco.20190601.nc
...
Conservation metrics (column-sums of area_b-weighted weights normalized by area_a) and errors---
Perfect metrics for global Grid B are avg = min = max = 1.0, mbs = rms = sdn = 0.0:
frac_a avg: 1.0000000000000009 = 1.0+8.9e-16 // Area-weighted mean
frac_a min: 0.9999999999999236 = 1.0-7.6e-14 // Minimum in grid A cell [12810,+3.44654,+293.25]
frac_a max: 1.0000000000001146 = 1.0+1.1e-13 // Maximum in grid A cell [16203,-45.7267,+272.31]
frac_a mbs: 0.0000000000000067 = 6.7e-15 // Area-weighted mean absolute bias from 1.0
frac_a rms: 0.0000000000000102 = 1.0e-14 // Area-weighted RMS relative to 1.0
frac_a sdn: 0.0000000000000103 = 1.0e-14 // Standard deviation

Consistency metrics (row-sums of weights) and errors---
Perfect metrics for global Grid A are avg = min = max = 1.0, mbs = rms = sdn = 0.0:
frac_b avg: 1.0000000000000047 = 1.0+4.7e-15 // Area-weighted mean
frac_b min: 0.9999999999998442 = 1.0-1.6e-13 // Minimum in grid B cell [48415,+44.5,+174.5]
frac_b max: 1.0000000000002611 = 1.0+2.6e-13 // Maximum in grid B cell [16558,-44.5,+357.5]
frac_b mbs: 0.0000000000000065 = 6.5e-15 // Area-weighted mean absolute bias from 1.0
frac_b rms: 0.0000000000000129 = 1.3e-14 // Area-weighted RMS relative to 1.0
frac_b sdn: 0.0000000000000133 = 1.3e-14 // Standard deviation
...

The examples above show no outstanding differences (besides rounding) between the unweighted and area-weighted statistics. The absence of degradation between the global unweighted statistics (further up the page) and the global weighted statistics (just above) demonstrates there are no important correlations between local weight biases and gridcell areas. The area-weighted mean frac_b statistic deserves special mention. Its value is the exact factor by which the mapping will shift the global mean of a spatially uniform input field. This metric is, therefore, first among equals when evaluating the quality of maps under consideration for use in time-stepping models where global conservation (e.g., of mass or energy) is crucial.

As of NCO version 4.9.2 (March, 2020), adding the --frac_b_nrm flag changes the map-checker into a read-write algorithm that first diagnoses the map-file statistics described above and then re-writes the weights (and weight-derived statistics frac_a and frac_b) to compensate or "fix" issues that poor-quality input grids can cause. Input grids can and often do have regions that are not tiled by any portion of any input gridcell. For example, many FV ocean grids (such as MPAS) are empty (have no gridcells) in land regions beyond the coasts. Some FV ocean grids have gridcells everywhere and mask (i.e., screen-out) the non-ocean gridcells by setting the mask value to zero. Both these designs are perfectly legal. What is illegal, yet sometimes encountered in practice, is overlapping gridcells on the same input grid. Such an input grid is said to be self-overlapping.

Documentation above this line is generic to all map-files, and documentation below describes specifically applies only to map-files constructed with one particular grid, HYDRO1K. Would it be more logical and easier to digest if we separated the HYDRO1K documentation below into its own sub-page?

The surface topography dataset grid SCRIPgrid_1km-merge-10min_HYDRO1K-merge-nomask_c130402.nc (hereafter the HYDRO1K grid or hydro1k.nc for short) used by E3SM and CESM is self-overlapping. It contains numerous (about 17) quadrilateral gridcells that partially overlap one another. These are cells of differing orientations and sizes that seem to originate from different measurements. They are not repeated or duplicate gridcells. Weight-generators that receive the same input area twice might (if they do not take precautions to idenfity the issue, which no known weight-generators do) double-weight the self-overlapped region(s). In other words, self-overlapping input grids can lead weight-generators to produce values frac_b >> 1.0. Applying these weights would lead to exaggerated values on the destination grid.

Before describing the NCO method to address self-overlapping grids, we should mention that HYDRO1k contains one gridcell whose vertices are stored in clockwise (CW) not counter-clockwise (CCW) order. This gridcell violates the CCW ordering convention followed by all known weight generators and can lead to failure and carnage if not corrected. The practical solution is to re-order the vertices in that gridcell, thereby creating a modified input grid that is completely CCW (yet still suffers from self-overlapping gridcells):

ncap2 -O --no_tmp_fl -s 'grid_corner_lon(50085604,:)={100.024421691894531,100.024421691894531,100.012207031250000,100.012207031250000};grid_corner_lat(50085604,:)={42.598628997802734,42.589633941650391,42.589637756347656,42.598632812500000};' hydro1k.nc hydro1k_ccw.nc

For complex reasons, the map HYDRO1K to ne1024np4 requires the Git code-branch hmb-hydro2-fix (located at https://github.com/nco/nco/tree/hmb-hydro2-fix). The master NCO branch is fine for all other target grids, including ne512pg2 and ne1024pg2.

NCO commands to produce maps that convert HYDRO1K elevation data (on the fixed, pure-CCW grid) to any desired output grid should include appropriate options for niceness, format, and speed. First, the HYDRO1K grid is memory-intensive. Map-files based on it must be created on a node with plenty of RAM. For example, the HYDRO1K-to-ne1024np4 map requires about 120 GB RAM (if the SCRIP overlap mesh is NOT requested). Etiquette requires lowering the priority of memory and CPU-intensive jobs with the nice command on shared resources such as login-nodes. Second, the output weight and vertice arrays may exceed the capacities of the netCDF3 classic and 64-bit offset formats so we recommend setting the output format to CDF5 or to netCDF4-classic with the -5 or -7 switches, respectively. Third, the weight-generation code is threaded and our preliminary benchmarks show that it can scale well up to at least six threads. These options yield commands of the form

nice ncremap -5 --thr_nbr=6 --src_grd=hydro1k_ccw.nc --dst_grd=ne1024np4_scrip_c20191023.nc --map=map_hydro1k_to_ne1024np4_nco.20200401.nc

With six threads on our desktop benchmarking Linux box (e3sm.ess.uci.edu) the command above completes in just under four hours. Such maps will suffer in correctness due to self-overlapping input gridcells as discussed above. The map-checker helps diagnose the extent of the self-overlapping issue:

% ncks --chk_map map_hydro1k_to_ne1024np4_nco.20200401.nc
...
frac_b max: 1.9322116675425409 = 1.0+9.3e-01 // Maximum in grid B cell [27052765,+27.0731,+142.207]
...
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
Danger, Will Robinson! max(frac_b) or min(frac_b) error exceeds 1.0e-01
Regridding with these embarrassing weights will produce funny results
Suggest re-generating weights with a better algorithm/weight-generator
Have both input grid-files been validated? If not, one might be barmy
For example, a source grid that overlaps itself will usually result in frac_b >> 1
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

The map-checker reveals that the maximum frac_b, in grid B cell 27052765, is nearly two! This particular destination cell is nearly completely overlapped by two independent input gridcells. If this map were applied to the HYDRO1K elevation data (despite the WARNING message not to do so), and the input elevations are nearly equal in the two overlapping input gridcells, then then elevation in the output gridcell would be nearly twice as high as the input elevations. We learn more about the self-overlapping problems by invoking the map-checker with a higher debugging level:

% ncks --dbg_lvl=2 --chk_map map_hydro1k_to_ne1024np4_nco.20200401.nc
...
WARNING consistency = 1.0555483035171453 = 1.0+5.6e-02 for grid B cell [17512046,+28.6551,+61.0204]
WARNING consistency = 1.4909408462334364 = 1.0+4.9e-01 for grid B cell [22288166,-10.0243,+142.847]
WARNING consistency = 1.5083400424248017 = 1.0+5.1e-01 for grid B cell [26813058,+24.7855,+141.304]
WARNING consistency = 1.8095310966429947 = 1.0+8.1e-01 for grid B cell [26813059,+24.7929,+141.328]
WARNING consistency = 1.1003605275652104 = 1.0+1.0e-01 for grid B cell [26813062,+24.8271,+141.328]
WARNING consistency = 1.5691716370205997 = 1.0+5.7e-01 for grid B cell [27006682,+26.712,+142.119]
WARNING consistency = 1.3010253856656488 = 1.0+3.0e-01 for grid B cell [27006683,+26.6633,+142.143]
WARNING consistency = 1.5450145730783844 = 1.0+5.5e-01 for grid B cell [27006686,+26.6981,+142.143]
WARNING consistency = 1.6607209155522704 = 1.0+6.6e-01 for grid B cell [27043555,+27.0515,+142.207]
WARNING consistency = 1.3608697313423308 = 1.0+3.6e-01 for grid B cell [27052764,+27.0654,+142.183]
WARNING consistency = 1.9322116675425409 = 1.0+9.3e-01 for grid B cell [27052765,+27.0731,+142.207]
WARNING consistency = 1.1687177202454959 = 1.0+1.7e-01 for grid B cell [27052767,+27.1003,+142.183]
WARNING consistency = 1.3914390175753097 = 1.0+3.9e-01 for grid B cell [27052768,+27.108,+142.207]
WARNING consistency = 1.7110750268542088 = 1.0+7.1e-01 for grid B cell [27052771,+27.1296,+142.207]
WARNING consistency = 1.0005420980107826 = 1.0+5.4e-04 for grid B cell [50257987,+61.086,+59.2809]
WARNING consistency = 1.0004283863341064 = 1.0+4.3e-04 for grid B cell [50257997,+61.0767,+59.3492]
WARNING consistency = 1.0004192624042263 = 1.0+4.2e-04 for grid B cell [50607727,+65.2985,+61.3002]
WARNING non-consistent row-sums (error exceeds tolerance = 1.0e-08) for 17 of 56623106 grid B cells
...

The map checker lists the 17 destination gridcells whose frac_b exceeds 1.0 by a pre-set tolerance of 1.0e-8. We examined the input grid at these 17 latitudes and longitudes (the printed coordinates are formatted to be easily paste-able into Google Maps). For the HYDRO1K dataset, we found that there are self-overlapping gridcells at these locations, which include some islands (e.g., Iwo Jima) and continental regions. The resulting elevation biases in these gridcells range between factors of 1.10 and 1.93. Considering that the other 56623089 destination gridcells trigger no warnings, the ESM simulations are probably not significantly degraded by faulty elevations in only 17 gridcells. However, this remains to be tested.

The best solution to the self-overlapping issue is, of course, to pre-emptively adjust the input grid and input datasets to avoid self-overlap. However, this solution may be difficult or impractical where the original data, producer, or algorithm are unavailable or where it is unclear which of the overlapped input gridcells to retain. In such cases, NCO (versions 4.9.2 and later) provides a practical workaround. The ncks --frac_b_nrm flag invokes a corrective procedure that adjusts for the influence of self-overlapping gridcells.

The procedure first identifies destination gridcells as those with frac_b > 1.0+1.0e-8, as shown above.
Weights that contribute to any such gridcell are then normalized by the sum of the weights (i.e., by frac_b) that contribute to the gridcell. In the example above, the maximum frac_b is 1.93, so all weights contributing to that gridcell are divided by 1.93. The adjusted frac_b is then 1.0, which prevents "double counting" values regridded into that gridcell. The weights that were altered (to avoid double-counting values during regridding) will also alter the frac_a of ALL source gridcells involved. A shortcoming of this procedure is that it misses any self-overlapped input gridcells that contribute to destination gridcells with frac_b < 1, such as can occur along coastlines.

Invoking the corrective procedure is as simple as it is irreversible. Please understand that this procedure alters map-files in-place, so back-up the original file first:

% /bin/cp map_hydro1k_to_ne1024np4_nco.20200210.nc map_hydro1k_to_ne1024np4_nco_fix.20200210.nc
% ncks --frac_b_nrm map_hydro1k_to_ne1024np4_nco_fix.20200210.nc

FIXING consistency = 1.0555483035171453 = 1.0+5.6e-02 for grid B cell [17512046,+28.6551,+61.0204]

FIXING consistency = 1.4909408462334364 = 1.0+4.9e-01 for grid B cell [22288166,-10.0243,+142.847]

FIXING consistency = 1.5083400424248017 = 1.0+5.1e-01 for grid B cell [26813058,+24.7855,+141.304]

FIXING consistency = 1.8095310966429947 = 1.0+8.1e-01 for grid B cell [26813059,+24.7929,+141.328]

FIXING consistency = 1.1003605275652104 = 1.0+1.0e-01 for grid B cell [26813062,+24.8271,+141.328]

FIXING consistency = 1.5691716370205997 = 1.0+5.7e-01 for grid B cell [27006682,+26.712,+142.119]

FIXING consistency = 1.3010253856656488 = 1.0+3.0e-01 for grid B cell [27006683,+26.6633,+142.143]

FIXING consistency = 1.5450145730783844 = 1.0+5.5e-01 for grid B cell [27006686,+26.6981,+142.143]

FIXING consistency = 1.6607209155522704 = 1.0+6.6e-01 for grid B cell [27043555,+27.0515,+142.207]

FIXING consistency = 1.3608697313423308 = 1.0+3.6e-01 for grid B cell [27052764,+27.0654,+142.183]

FIXING consistency = 1.9322116675425409 = 1.0+9.3e-01 for grid B cell [27052765,+27.0731,+142.207]

FIXING consistency = 1.1687177202454959 = 1.0+1.7e-01 for grid B cell [27052767,+27.1003,+142.183]

FIXING consistency = 1.3914390175753097 = 1.0+3.9e-01 for grid B cell [27052768,+27.108,+142.207]

FIXING consistency = 1.7110750268542088 = 1.0+7.1e-01 for grid B cell [27052771,+27.1296,+142.207]

FIXING consistency = 1.0005420980107826 = 1.0+5.4e-04 for grid B cell [50257987,+61.086,+59.2809]

FIXING consistency = 1.0004283863341064 = 1.0+4.3e-04 for grid B cell [50257997,+61.0767,+59.3492]

FIXING consistency = 1.0004192624042263 = 1.0+4.2e-04 for grid B cell [50607727,+65.2985,+61.3002]

ncks: INFO Re-writing S, frac_a, and frac_b arrays to fix 17 (presumed) self-overlaps detected via frac_b >> 1.0 search

NB: The "fixed" file should no longer report any frac_b WARNINGs because the weights have been normalized to prevent this. However, the fixed file is expected to produce frac_a WARNINGs because weights of the self-overlapping grid_a cells were reduced to compensate for the self-overlap. So long as all affected grid_a cells contain valid data the net result should be correct. The best solution is to remove/re-bin the self-overlapping grid_a cells before remapping.

The map-checker will show that the "fixed" map-file no longer generates the above WARNINGs associated with frac_b. Instead, the WARNINGs are now associated with frac_a due to the weight-adjustment as described above. In this particular mapping Grid A (HYDRO1K) is much finer resolution than Grid B (ne1024np4). Moreover, some Grid A cells are much coarser than the Grid A cells that they overlap. The result is that many more Grid A (225) than Grid B (17) cells will produce WARNINGs:

% ncks --dbg_lvl=2 --chk_map map_hydro1k_to_ne1024np4_nco_fix.20200210.nc
...
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

Danger, Will Robinson! max(frac_a) or min(frac_a) error exceeds 1.0e-01

Regridding with these embarrassing weights will produce funny results

Suggest re-generating weights with a better algorithm/weight-generator

Have both input grid-files been validated? If not, one might be barmy

WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

WARNING conservation = 0.9996706918604275 = 1.0-3.3e-04 for grid A cell [33659536,+65.296,+61.269]

WARNING conservation = 0.9996572450703328 = 1.0-3.4e-04 for grid A cell [33659537,+65.3006,+61.2873]

WARNING conservation = 0.9996891511142346 = 1.0-3.1e-04 for grid A cell [33659538,+65.3051,+61.3055]

WARNING conservation = 0.9997350886618364 = 1.0-2.6e-04 for grid A cell [33659539,+65.3097,+61.3237]

WARNING conservation = 0.9997292643552251 = 1.0-2.7e-04 for grid A cell [33664200,+65.2885,+61.2814]

WARNING conservation = 0.9996776946652958 = 1.0-3.2e-04 for grid A cell [33664201,+65.293,+61.2996]

WARNING conservation = 0.9996456406513875 = 1.0-3.5e-04 for grid A cell [33664202,+65.2976,+61.3178]

WARNING conservation = 0.9996530313432401 = 1.0-3.5e-04 for grid A cell [33664203,+65.3022,+61.336]

WARNING conservation = 0.9996396269503361 = 1.0-3.6e-04 for grid A cell [35361737,+61.0865,+59.3292]

WARNING conservation = 0.9998196826401079 = 1.0-1.8e-04 for grid A cell [35361738,+61.0912,+59.3451]

WARNING conservation = 0.9995788060257671 = 1.0-4.2e-04 for grid A cell [35366584,+61.0791,+59.34]

WARNING conservation = 0.9997842546150549 = 1.0-2.2e-04 for grid A cell [35366585,+61.0838,+59.3558]

WARNING conservation = 0.9999989777499242 = 1.0-1.0e-06 for grid A cell [35371430,+61.067,+59.3349]

WARNING conservation = 0.9995725957668791 = 1.0-4.3e-04 for grid A cell [35371431,+61.0717,+59.3507]

WARNING conservation = 0.9997915102063821 = 1.0-2.1e-04 for grid A cell [35371432,+61.0764,+59.3665]

WARNING conservation = 0.9999925859257263 = 1.0-7.4e-06 for grid A cell [35376276,+61.0596,+59.3457]

WARNING conservation = 0.9995717971021633 = 1.0-4.3e-04 for grid A cell [35376277,+61.0643,+59.3615]

WARNING conservation = 0.9997987842708903 = 1.0-2.0e-04 for grid A cell [35376278,+61.069,+59.3773]

WARNING conservation = 0.9999993339084929 = 1.0-6.7e-07 for grid A cell [35381118,+61.0522,+59.3564]

WARNING conservation = 0.9999588686790535 = 1.0-4.1e-05 for grid A cell [35381119,+61.0569,+59.3722]

WARNING conservation = 0.9999708249309734 = 1.0-2.9e-05 for grid A cell [35381120,+61.0616,+59.388]

WARNING conservation = 0.9847481336912906 = 1.0-1.5e-02 for grid A cell [54098342,+28.6576,+61.0034]

WARNING conservation = 0.9824157374186053 = 1.0-1.8e-02 for grid A cell [54098343,+28.6617,+61.013]

WARNING conservation = 0.9929901412042450 = 1.0-7.0e-03 for grid A cell [54098344,+28.6657,+61.0227]

WARNING conservation = 0.9998596480629054 = 1.0-1.4e-04 for grid A cell [54098345,+28.6697,+61.0323]

WARNING conservation = 0.9545319685416730 = 1.0-4.5e-02 for grid A cell [54103930,+28.6497,+61.0072]

WARNING conservation = 0.9473749298520442 = 1.0-5.3e-02 for grid A cell [54103931,+28.6537,+61.0169]

WARNING conservation = 0.9473749298520443 = 1.0-5.3e-02 for grid A cell [54103932,+28.6577,+61.0265]

WARNING conservation = 0.9568197551741818 = 1.0-4.3e-02 for grid A cell [54103933,+28.6618,+61.0361]

WARNING conservation = 0.9999226830735243 = 1.0-7.7e-05 for grid A cell [54103934,+28.6658,+61.0458]

WARNING conservation = 0.9886506927194957 = 1.0-1.1e-02 for grid A cell [54109533,+28.6457,+61.0207]

WARNING conservation = 0.9780725978991968 = 1.0-2.2e-02 for grid A cell [54109534,+28.6498,+61.0303]

WARNING conservation = 0.9823384146280194 = 1.0-1.8e-02 for grid A cell [54109535,+28.6538,+61.04]

WARNING conservation = 0.8668917545591995 = 1.0-1.3e-01 for grid A cell [54171403,+27.1366,+142.204]

WARNING conservation = 0.7708210233813363 = 1.0-2.3e-01 for grid A cell [54171404,+27.1323,+142.214]

WARNING conservation = 0.7640809219574193 = 1.0-2.4e-01 for grid A cell [54177047,+27.1288,+142.2]

WARNING conservation = 0.6618551566924247 = 1.0-3.4e-01 for grid A cell [54177048,+27.1245,+142.21]

WARNING conservation = 0.9874506336272837 = 1.0-1.3e-02 for grid A cell [54177049,+27.1202,+142.219]

WARNING conservation = 0.9093478206207275 = 1.0-9.1e-02 for grid A cell [54182685,+27.121,+142.196]

WARNING conservation = 0.7180905206922275 = 1.0-2.8e-01 for grid A cell [54182686,+27.1167,+142.206]

WARNING conservation = 0.8599721469993953 = 1.0-1.4e-01 for grid A cell [54188311,+27.1132,+142.192]

WARNING conservation = 0.7560711587491101 = 1.0-2.4e-01 for grid A cell [54188312,+27.1089,+142.202]

WARNING conservation = 0.7686078901177825 = 1.0-2.3e-01 for grid A cell [54188313,+27.1046,+142.211]

WARNING conservation = 0.8646925225485205 = 1.0-1.4e-01 for grid A cell [54193931,+27.1098,+142.179]

WARNING conservation = 0.8556386051799951 = 1.0-1.4e-01 for grid A cell [54193932,+27.1054,+142.188]

WARNING conservation = 0.8135973703653829 = 1.0-1.9e-01 for grid A cell [54193933,+27.1011,+142.198]

WARNING conservation = 0.7174066633848911 = 1.0-2.8e-01 for grid A cell [54193934,+27.0968,+142.207]

WARNING conservation = 0.8556386051799953 = 1.0-1.4e-01 for grid A cell [54199548,+27.102,+142.175]

WARNING conservation = 0.8541053865377917 = 1.0-1.5e-01 for grid A cell [54199549,+27.0933,+142.194]

WARNING conservation = 0.6273052077357262 = 1.0-3.7e-01 for grid A cell [54199550,+27.089,+142.203]

WARNING conservation = 0.6796779094372163 = 1.0-3.2e-01 for grid A cell [54199551,+27.0846,+142.213]

WARNING conservation = 0.8009856890667182 = 1.0-2.0e-01 for grid A cell [54205162,+27.0855,+142.19]

WARNING conservation = 0.6333741004419089 = 1.0-3.7e-01 for grid A cell [54205163,+27.0812,+142.199]

WARNING conservation = 0.5266620594912207 = 1.0-4.7e-01 for grid A cell [54205164,+27.0768,+142.209]

WARNING conservation = 0.9502771013693471 = 1.0-5.0e-02 for grid A cell [54205165,+27.0725,+142.218]

WARNING conservation = 0.7354780197672330 = 1.0-2.6e-01 for grid A cell [54210772,+27.0777,+142.186]

WARNING conservation = 0.7177391925921235 = 1.0-2.8e-01 for grid A cell [54210773,+27.0734,+142.195]

WARNING conservation = 0.5244266725885801 = 1.0-4.8e-01 for grid A cell [54210774,+27.069,+142.205]

WARNING conservation = 0.7566880348700910 = 1.0-2.4e-01 for grid A cell [54210775,+27.0647,+142.214]

WARNING conservation = 0.7375536322359714 = 1.0-2.6e-01 for grid A cell [54216381,+27.0742,+142.173]

WARNING conservation = 0.7348241914482313 = 1.0-2.7e-01 for grid A cell [54216382,+27.0699,+142.182]

WARNING conservation = 0.7348241914482312 = 1.0-2.7e-01 for grid A cell [54216383,+27.0656,+142.191]

WARNING conservation = 0.6012167484257523 = 1.0-4.0e-01 for grid A cell [54216384,+27.0612,+142.201]

WARNING conservation = 0.6204979578050407 = 1.0-3.8e-01 for grid A cell [54216385,+27.0569,+142.21]

WARNING conservation = 0.7376546488476173 = 1.0-2.6e-01 for grid A cell [54221992,+27.0578,+142.188]

WARNING conservation = 0.8343223139916016 = 1.0-1.7e-01 for grid A cell [54221993,+27.0534,+142.197]

WARNING conservation = 0.6301455559688913 = 1.0-3.7e-01 for grid A cell [54221994,+27.0491,+142.206]

WARNING conservation = 0.7350243564185099 = 1.0-2.6e-01 for grid A cell [54227602,+27.0543,+142.174]

WARNING conservation = 0.8904205845298773 = 1.0-1.1e-01 for grid A cell [54227603,+27.05,+142.184]

WARNING conservation = 0.8666809414396639 = 1.0-1.3e-01 for grid A cell [54435532,+26.7134,+142.141]

WARNING conservation = 0.6484584468548273 = 1.0-3.5e-01 for grid A cell [54435533,+26.7091,+142.151]

WARNING conservation = 0.6670517167121977 = 1.0-3.3e-01 for grid A cell [54441137,+26.7143,+142.119]

WARNING conservation = 0.7966926061029991 = 1.0-2.0e-01 for grid A cell [54441138,+26.7099,+142.128]

WARNING conservation = 0.6529846226221044 = 1.0-3.5e-01 for grid A cell [54441139,+26.7056,+142.138]

WARNING conservation = 0.6472430858742886 = 1.0-3.5e-01 for grid A cell [54441140,+26.7013,+142.147]

WARNING conservation = 0.6472430858742886 = 1.0-3.5e-01 for grid A cell [54441141,+26.697,+142.156]

WARNING conservation = 0.7868639018544976 = 1.0-2.1e-01 for grid A cell [54446737,+26.7065,+142.115]

WARNING conservation = 0.8942448965267211 = 1.0-1.1e-01 for grid A cell [54446738,+26.7021,+142.124]

WARNING conservation = 0.6472430858742886 = 1.0-3.5e-01 for grid A cell [54446739,+26.6978,+142.134]

WARNING conservation = 0.6472430858742886 = 1.0-3.5e-01 for grid A cell [54446740,+26.6935,+142.143]

WARNING conservation = 0.6493150718643238 = 1.0-3.5e-01 for grid A cell [54446741,+26.6892,+142.152]

WARNING conservation = 0.7035490994887600 = 1.0-3.0e-01 for grid A cell [54452335,+26.69,+142.13]

WARNING conservation = 0.6477128144272543 = 1.0-3.5e-01 for grid A cell [54452336,+26.6857,+142.139]

WARNING conservation = 0.7232303003555811 = 1.0-2.8e-01 for grid A cell [54452337,+26.6813,+142.149]

WARNING conservation = 0.9820250269863580 = 1.0-1.8e-02 for grid A cell [54452338,+26.6727,+142.167]

WARNING conservation = 0.7125546623696107 = 1.0-2.9e-01 for grid A cell [54457927,+26.6779,+142.135]

WARNING conservation = 0.7686245103421760 = 1.0-2.3e-01 for grid A cell [54457928,+26.6735,+142.145]

WARNING conservation = 0.7686245103421759 = 1.0-2.3e-01 for grid A cell [54457929,+26.6692,+142.154]

WARNING conservation = 0.8931291921945560 = 1.0-1.1e-01 for grid A cell [54457930,+26.6649,+142.163]

WARNING conservation = 0.7686245103421759 = 1.0-2.3e-01 for grid A cell [54463515,+26.6657,+142.141]

WARNING conservation = 0.7686245103421760 = 1.0-2.3e-01 for grid A cell [54463516,+26.6614,+142.15]

WARNING conservation = 0.8204311119534793 = 1.0-1.8e-01 for grid A cell [54463517,+26.6571,+142.16]

WARNING conservation = 0.7834438213528149 = 1.0-2.2e-01 for grid A cell [54469102,+26.6536,+142.146]

WARNING conservation = 0.9590178415380325 = 1.0-4.1e-02 for grid A cell [54469103,+26.6493,+142.156]

WARNING conservation = 0.9335964032058677 = 1.0-6.6e-02 for grid A cell [55775309,+24.8236,+141.323]

WARNING conservation = 0.9231200594215428 = 1.0-7.7e-02 for grid A cell [55775310,+24.8194,+141.332]

WARNING conservation = 0.9693651655735562 = 1.0-3.1e-02 for grid A cell [55781069,+24.8157,+141.319]

WARNING conservation = 0.7937142768186147 = 1.0-2.1e-01 for grid A cell [55781070,+24.8115,+141.329]

WARNING conservation = 0.8970021561446317 = 1.0-1.0e-01 for grid A cell [55781071,+24.8073,+141.338]

WARNING conservation = 0.8987802923590350 = 1.0-1.0e-01 for grid A cell [55786829,+24.8078,+141.316]

WARNING conservation = 0.5698527859820962 = 1.0-4.3e-01 for grid A cell [55786830,+24.8036,+141.325]

WARNING conservation = 0.7182824952781132 = 1.0-2.8e-01 for grid A cell [55786831,+24.7994,+141.334]

WARNING conservation = 0.9105913542255818 = 1.0-8.9e-02 for grid A cell [55792595,+24.8041,+141.303]

WARNING conservation = 0.6737707881161614 = 1.0-3.3e-01 for grid A cell [55792596,+24.7999,+141.312]

WARNING conservation = 0.6021037223004556 = 1.0-4.0e-01 for grid A cell [55792597,+24.7957,+141.321]

WARNING conservation = 0.5698716895278045 = 1.0-4.3e-01 for grid A cell [55792598,+24.7914,+141.331]

WARNING conservation = 0.6771765920522744 = 1.0-3.2e-01 for grid A cell [55798358,+24.7962,+141.299]

WARNING conservation = 0.6629804764663038 = 1.0-3.4e-01 for grid A cell [55798359,+24.792,+141.308]

WARNING conservation = 0.6451771241390635 = 1.0-3.5e-01 for grid A cell [55798360,+24.7878,+141.318]

WARNING conservation = 0.5596702802152981 = 1.0-4.4e-01 for grid A cell [55798361,+24.7835,+141.327]

WARNING conservation = 0.6629804764663040 = 1.0-3.4e-01 for grid A cell [55804123,+24.7883,+141.295]

WARNING conservation = 0.6629804764663038 = 1.0-3.4e-01 for grid A cell [55804124,+24.7841,+141.305]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [55809890,+24.7804,+141.292]

WARNING conservation = 0.6647130974802660 = 1.0-3.4e-01 for grid A cell [55809891,+24.7761,+141.301]

WARNING conservation = 0.6970895200896972 = 1.0-3.0e-01 for grid A cell [55815657,+24.7724,+141.288]

WARNING conservation = 0.9462954419050165 = 1.0-5.4e-02 for grid A cell [55821425,+24.7645,+141.284]

WARNING conservation = 0.9991278407997677 = 1.0-8.7e-04 for grid A cell [65001773,+27.1413,+142.205]

WARNING conservation = 0.9963050305148433 = 1.0-3.7e-03 for grid A cell [65001775,+27.1316,+142.195]

WARNING conservation = 0.6336218636446403 = 1.0-3.7e-01 for grid A cell [65001776,+27.1317,+142.205]

WARNING conservation = 0.9699538870485211 = 1.0-3.0e-02 for grid A cell [65001777,+27.122,+142.195]

WARNING conservation = 0.6592044905263356 = 1.0-3.4e-01 for grid A cell [65001778,+27.1221,+142.204]

WARNING conservation = 0.8200518237699191 = 1.0-1.8e-01 for grid A cell [65001779,+27.1222,+142.214]

WARNING conservation = 0.9133815816040498 = 1.0-8.7e-02 for grid A cell [65001780,+27.1122,+142.175]

WARNING conservation = 0.8702580199160638 = 1.0-1.3e-01 for grid A cell [65001781,+27.1123,+142.185]

WARNING conservation = 0.8556386051799952 = 1.0-1.4e-01 for grid A cell [65001782,+27.1124,+142.194]

WARNING conservation = 0.8556386051799951 = 1.0-1.4e-01 for grid A cell [65001783,+27.1026,+142.175]

WARNING conservation = 0.8556386051799951 = 1.0-1.4e-01 for grid A cell [65001784,+27.1027,+142.185]

WARNING conservation = 0.8556386051799952 = 1.0-1.4e-01 for grid A cell [65001785,+27.1027,+142.194]

WARNING conservation = 0.7330484981295143 = 1.0-2.7e-01 for grid A cell [65001786,+27.1028,+142.203]

WARNING conservation = 0.8556386051799951 = 1.0-1.4e-01 for grid A cell [65001787,+27.0931,+142.194]

WARNING conservation = 0.7202901088143162 = 1.0-2.8e-01 for grid A cell [65001788,+27.0932,+142.203]

WARNING conservation = 0.8347929361849666 = 1.0-1.7e-01 for grid A cell [65001789,+27.0833,+142.174]

WARNING conservation = 0.7981082160691604 = 1.0-2.0e-01 for grid A cell [65001790,+27.0834,+142.184]

WARNING conservation = 0.7613508234558181 = 1.0-2.4e-01 for grid A cell [65001791,+27.0835,+142.193]

WARNING conservation = 0.5590394769967006 = 1.0-4.4e-01 for grid A cell [65001792,+27.0836,+142.203]

WARNING conservation = 0.6444912341538356 = 1.0-3.6e-01 for grid A cell [65001793,+27.0837,+142.212]

WARNING conservation = 0.7348241914482314 = 1.0-2.7e-01 for grid A cell [65001794,+27.0738,+142.183]

WARNING conservation = 0.7348241914482312 = 1.0-2.7e-01 for grid A cell [65001795,+27.0739,+142.193]

WARNING conservation = 0.5669881341710906 = 1.0-4.3e-01 for grid A cell [65001796,+27.074,+142.202]

WARNING conservation = 0.6247091425668739 = 1.0-3.8e-01 for grid A cell [65001797,+27.0741,+142.212]

WARNING conservation = 0.7348241914482313 = 1.0-2.7e-01 for grid A cell [65001798,+27.0642,+142.183]

WARNING conservation = 0.7348241914482313 = 1.0-2.7e-01 for grid A cell [65001799,+27.0643,+142.192]

WARNING conservation = 0.5759369360053410 = 1.0-4.2e-01 for grid A cell [65001800,+27.0644,+142.202]

WARNING conservation = 0.6053875623360750 = 1.0-3.9e-01 for grid A cell [65001801,+27.0645,+142.211]

WARNING conservation = 0.7348241914482314 = 1.0-2.7e-01 for grid A cell [65001803,+27.0545,+142.173]

WARNING conservation = 0.7525290720380289 = 1.0-2.5e-01 for grid A cell [65001804,+27.0546,+142.183]

WARNING conservation = 0.8284226465713598 = 1.0-1.7e-01 for grid A cell [65001805,+27.0547,+142.192]

WARNING conservation = 0.6719679456936816 = 1.0-3.3e-01 for grid A cell [65001806,+27.0548,+142.202]

WARNING conservation = 0.6525991164038147 = 1.0-3.5e-01 for grid A cell [65001807,+27.0548,+142.211]

WARNING conservation = 0.8488769868840100 = 1.0-1.5e-01 for grid A cell [65001808,+27.0452,+142.211]

WARNING conservation = 0.9075149271774269 = 1.0-9.2e-02 for grid A cell [65001809,+26.7177,+142.113]

WARNING conservation = 0.8140976964264972 = 1.0-1.9e-01 for grid A cell [65001810,+26.7081,+142.112]

WARNING conservation = 0.7513338302667478 = 1.0-2.5e-01 for grid A cell [65001811,+26.7082,+142.122]

WARNING conservation = 0.7864602592150725 = 1.0-2.1e-01 for grid A cell [65001812,+26.7083,+142.131]

WARNING conservation = 0.6808754468406248 = 1.0-3.2e-01 for grid A cell [65001813,+26.7084,+142.141]

WARNING conservation = 0.6609373366016501 = 1.0-3.4e-01 for grid A cell [65001815,+26.6987,+142.131]

WARNING conservation = 0.6472430858742885 = 1.0-3.5e-01 for grid A cell [65001816,+26.6988,+142.14]

WARNING conservation = 0.6472430858742885 = 1.0-3.5e-01 for grid A cell [65001817,+26.6989,+142.15]

WARNING conservation = 0.6746619936293567 = 1.0-3.3e-01 for grid A cell [65001818,+26.6989,+142.159]

WARNING conservation = 0.6749209745204209 = 1.0-3.3e-01 for grid A cell [65001819,+26.6891,+142.13]

WARNING conservation = 0.6472430858742886 = 1.0-3.5e-01 for grid A cell [65001820,+26.6892,+142.14]

WARNING conservation = 0.6472430858742885 = 1.0-3.5e-01 for grid A cell [65001821,+26.6892,+142.149]

WARNING conservation = 0.7110902695554601 = 1.0-2.9e-01 for grid A cell [65001822,+26.6795,+142.13]

WARNING conservation = 0.7068801100932173 = 1.0-2.9e-01 for grid A cell [65001823,+26.6796,+142.139]

WARNING conservation = 0.7433729143677456 = 1.0-2.6e-01 for grid A cell [65001824,+26.6796,+142.149]

WARNING conservation = 0.7686245103421760 = 1.0-2.3e-01 for grid A cell [65001825,+26.67,+142.139]

WARNING conservation = 0.7686245103421759 = 1.0-2.3e-01 for grid A cell [65001826,+26.67,+142.149]

WARNING conservation = 0.7686245103421759 = 1.0-2.3e-01 for grid A cell [65001827,+26.6701,+142.158]

WARNING conservation = 0.9902767580250751 = 1.0-9.7e-03 for grid A cell [65001828,+26.6702,+142.167]

WARNING conservation = 0.7686245103421758 = 1.0-2.3e-01 for grid A cell [65001830,+26.6603,+142.139]

WARNING conservation = 0.7686245103421758 = 1.0-2.3e-01 for grid A cell [65001831,+26.6604,+142.148]

WARNING conservation = 0.7686245103421760 = 1.0-2.3e-01 for grid A cell [65001832,+26.6605,+142.158]

WARNING conservation = 0.9810991128754526 = 1.0-1.9e-02 for grid A cell [65001833,+26.6606,+142.167]

WARNING conservation = 0.7877873504631504 = 1.0-2.1e-01 for grid A cell [65001834,+26.6507,+142.138]

WARNING conservation = 0.8549256665857662 = 1.0-1.5e-01 for grid A cell [65001835,+26.6508,+142.148]

WARNING conservation = 0.9243546841785417 = 1.0-7.6e-02 for grid A cell [65001836,+26.6509,+142.157]

WARNING conservation = 0.9186353310195068 = 1.0-8.1e-02 for grid A cell [65001856,+24.8241,+141.324]

WARNING conservation = 0.9382286542969672 = 1.0-6.2e-02 for grid A cell [65001857,+24.8242,+141.334]

WARNING conservation = 0.9209661421594448 = 1.0-7.9e-02 for grid A cell [65001860,+24.8146,+141.324]

WARNING conservation = 0.9003809584327678 = 1.0-1.0e-01 for grid A cell [65001861,+24.8147,+141.333]

WARNING conservation = 0.9858731156195857 = 1.0-1.4e-02 for grid A cell [65001863,+24.8048,+141.296]

WARNING conservation = 0.8980729151957667 = 1.0-1.0e-01 for grid A cell [65001864,+24.8049,+141.305]

WARNING conservation = 0.7999368164690951 = 1.0-2.0e-01 for grid A cell [65001865,+24.805,+141.315]

WARNING conservation = 0.6122871612862208 = 1.0-3.9e-01 for grid A cell [65001866,+24.805,+141.324]

WARNING conservation = 0.6684945628429473 = 1.0-3.3e-01 for grid A cell [65001867,+24.8051,+141.333]

WARNING conservation = 0.6735258577024420 = 1.0-3.3e-01 for grid A cell [65001869,+24.7952,+141.296]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [65001870,+24.7953,+141.305]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [65001871,+24.7954,+141.314]

WARNING conservation = 0.5750776232112217 = 1.0-4.2e-01 for grid A cell [65001872,+24.7955,+141.324]

WARNING conservation = 0.6543368734037962 = 1.0-3.5e-01 for grid A cell [65001873,+24.7956,+141.333]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [65001875,+24.7857,+141.295]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [65001876,+24.7858,+141.305]

WARNING conservation = 0.6629804764663039 = 1.0-3.4e-01 for grid A cell [65001877,+24.7859,+141.314]

WARNING conservation = 0.5785215791828798 = 1.0-4.2e-01 for grid A cell [65001878,+24.786,+141.323]

WARNING conservation = 0.6400549208206142 = 1.0-3.6e-01 for grid A cell [65001879,+24.786,+141.333]

WARNING conservation = 0.6629804764663038 = 1.0-3.4e-01 for grid A cell [65001880,+24.7761,+141.295]

WARNING conservation = 0.6672136807196691 = 1.0-3.3e-01 for grid A cell [65001881,+24.7762,+141.304]

WARNING conservation = 0.8815632083641179 = 1.0-1.2e-01 for grid A cell [65001882,+24.7666,+141.295]

WARNING conservation = 0.8286298864723154 = 1.0-1.7e-01 for grid A cell [67943869,-10.0121,+142.83]

WARNING conservation = 0.7564670258224259 = 1.0-2.4e-01 for grid A cell [67943870,-10.0118,+142.84]

WARNING conservation = 0.8109165755630398 = 1.0-1.9e-01 for grid A cell [67943871,-10.0115,+142.849]

WARNING conservation = 0.7949383158170955 = 1.0-2.1e-01 for grid A cell [67944511,-10.0211,+142.831]

WARNING conservation = 0.6707174215035423 = 1.0-3.3e-01 for grid A cell [67944512,-10.0208,+142.84]

WARNING conservation = 0.6707174215035425 = 1.0-3.3e-01 for grid A cell [67944513,-10.0205,+142.849]

WARNING conservation = 0.7861441256914966 = 1.0-2.1e-01 for grid A cell [67945154,-10.0301,+142.831]

WARNING conservation = 0.6707174215035424 = 1.0-3.3e-01 for grid A cell [67945155,-10.0298,+142.84]

WARNING conservation = 0.6707174215035424 = 1.0-3.3e-01 for grid A cell [67945156,-10.0295,+142.849]

WARNING conservation = 0.7545877590968129 = 1.0-2.5e-01 for grid A cell [67945803,-10.0384,+142.849]

WARNING conservation = 0.9999989342057687 = 1.0-1.1e-06 for grid A cell [68757369,+65.2962,+61.2437]

WARNING conservation = 0.9999524287762531 = 1.0-4.8e-05 for grid A cell [69609756,+61.1009,+59.304]

WARNING conservation = 0.9999834779917881 = 1.0-1.7e-05 for grid A cell [69611814,+61.0984,+59.2778]

WARNING conservation = 0.9995208531249582 = 1.0-4.8e-04 for grid A cell [69611815,+61.0935,+59.2935]

WARNING conservation = 0.9996289647269533 = 1.0-3.7e-04 for grid A cell [69611816,+61.0886,+59.3093]

WARNING conservation = 0.9997589105193451 = 1.0-2.4e-04 for grid A cell [69613864,+61.0911,+59.2673]

WARNING conservation = 0.9994581957002505 = 1.0-5.4e-04 for grid A cell [69613865,+61.0862,+59.283]

WARNING conservation = 0.9998060738773542 = 1.0-1.9e-04 for grid A cell [69613866,+61.0813,+59.2988]

WARNING conservation = 0.9999704816965994 = 1.0-3.0e-05 for grid A cell [69615911,+61.0887,+59.241]

WARNING conservation = 0.9995010860494118 = 1.0-5.0e-04 for grid A cell [69615912,+61.0838,+59.2568]

WARNING conservation = 0.9995559480581565 = 1.0-4.4e-04 for grid A cell [69615913,+61.0788,+59.2725]

WARNING conservation = 0.9999955867845445 = 1.0-4.4e-06 for grid A cell [69615914,+61.0739,+59.2883]

WARNING conservation = 0.9999906690994774 = 1.0-9.3e-06 for grid A cell [69617963,+61.0813,+59.2305]

WARNING conservation = 0.9998185845299596 = 1.0-1.8e-04 for grid A cell [69617964,+61.0764,+59.2463]

WARNING conservation = 0.9998692591134432 = 1.0-1.3e-04 for grid A cell [69617965,+61.0715,+59.262]

WARNING conservation = 0.9821350858553980 = 1.0-1.8e-02 for grid A cell [81027111,+28.6475,+61.0028]

WARNING conservation = 0.9884229040335282 = 1.0-1.2e-02 for grid A cell [125576276,-10.0833,+142.917]

WARNING non-conservative weighted column-sums (error exceeds tolerance = 1.0e-08) for 225 of 125599447 grid A cells

...

The new frac_a WARNINGs indicate that the intersection portion of each self-overlapped input gridcell will be weighted less than the portion of the gridcell that is not self-overlapped. This is expected and desired so these WARNINGs may be safely ignored. Again, the locations are printed in a lat,lon format suitable to visualize with Google Maps/Earth. These locations can be used to help identify the root-cause of the overlaps within Grid A.

For reference and reproducibility, see the following files on Cori in ~zender/data/[grids,maps]:

SCRIPgrid_1km-merge-10min_HYDRO1K-merge-nomask_c130402.nc
SCRIPgrid_1km-merge-10min_HYDRO1K-merge-nomask_c130402_ccw.nc
map_hydro1k_to_ne1024np4_nco.20200210.nc
map_hydro1k_to_ne1024np4_nco.20200210_fix.nc

20200710: Update

For complex reasons the map HYDRO1K to ne1024np4 requires the Git code-branch hmb-hydro2-fix (located at https://github.com/nco/nco/tree/hmb-hydro2-fix). The master NCO branch is fine for all other target grids, including ne512pg2 and ne1024pg2.

20200423: Update:

@Ben Hillman this documentation may be useful in constructing high-resolutions ELM IC’s.