Versions Compared

Key

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

This page is under construction...explanation and links will be added in the coming days and weeks...feedback welcome!

...

The new grids and mapfiles address these problems, which have always existed in ACME and its predecessors (CESM, CCSM, CCM), and therefore cannot be too severe. The numerical flaws explained above can be thought of as fuzziness at the level of a few tenths of a degree in geo-referencing regridded data to the native model grid. These location errors produce only small (<< 1%) errors in regional or global statistics. So, why migrate? One aim is that diagnostics and observational evaluations with regridded data (often much more intuitive to visually evaluate than native SE grids) produce the same answers (to double precision whenever possible) as statistics computed on the native model grid. Without migration, agreement between native and regridded statistics beyond single precision is a matter of luck and coincidence, not determinism and reproducibility. As ACME grids shift to ~1/4 degree and finer, it becomes even more important to exploit the full double precision accuracy that software can guarantee when supplied with accurate grids.

 

...

129x256_SCRIP.130510.nc 

...

We generated new FV grids with NCO (version 4.5.2 or later) and commands shown in the tables below. These grids have replaced the flawed grids on the ACME inputdata server: https://acme-svn2.ornl.gov/acme-repo/acme/mapping/grids. Gaussian grids were never distributed within ACME and so the improved versions are not currently stored on ACME's inputdata server. However, Gaussian grids have been used extensively by the CESM community. Their replacements are available on rhea (/lustre/atlas/proj-shared/cli115/zender/grids) and yellowstone (/glade/p/work/zender/grids).

Old (flawed) GridfileNew (corrected)FV Grid Generation:

129x256_SCRIP.130510.nc 

257x512129x256_SCRIP.20150901.ncncks --rgr grd_ttl='FV-scalar grid 257x512129x256' --rgr grid=${DATA}/grids/257x512129x256_SCRIP.20150901.nc --rgr lat_nbr=257 129 --rgr lon_nbr=512 256 --rgr lat_typ=fv --rgr lon_typ=grn_ctr ~zender/nco/data/in.nc ~/foo.nc
801x1600257x512_SCRIP.130510.nc 801x1600257x512_SCRIP.20150901.ncncks --rgr grd_ttl='FV-scalar grid 801x1600257x512' --rgr grid=${DATA}/grids/801x1600257x512_SCRIP.20150901.nc --rgr lat_nbr=801 257 --rgr lon_nbr=1600 512 --rgr lat_typ=fv --rgr lon_typ=grn_ctr ~zender/nco/data/in.nc ~/foo.nc

801x1600_SCRIP.130510.nc

...

801x1600_SCRIP.20150901.nc

ncks --rgr grd_ttl='FV-scalar grid 801x1600' --rgr grid=${DATA}/grids/801x1600_SCRIP.20150901.nc --rgr lat_nbr=801 --rgr lon_nbr=1600 --rgr lat_typ=fv --rgr lon_typ=grn_ctr ~zender/nco/data/in.nc ~/foo.nc

Other (non-ACME) Gridfiles:

Old (flawed) GridfilesNew (corrected)Generation:
t42_SCRIP.20150901.nc

ncks --rgr grd_ttl='T42 ncks --rgr grd_ttl='T42 Gaussian grid' --rgr grid=${DATA}/grids/t42_SCRIP.20150901.nc --rgr lat_nbr=64 --rgr lon_nbr=128 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc

T62_040121.nct62_SCRIP.20150901.ncncks --rgr grd_ttl='T62 Gaussian grid' --rgr grid=${DATA}/grids/t62_SCRIP.20150901.nc --rgr lat_nbr=94 --rgr lon_nbr=192 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc
T85_011127.nc

t85_SCRIP.20150901.nc

ncks --rgr grd_ttl='T85 Gaussian grid' --rgr grid=${DATA}/grids/t42t85_SCRIP.20150901.nc --rgr lat_nbr=64 128 --rgr lon_nbr=128 256 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc
t62_SCRIP.20150901.ncncks --rgr grd_ttl='T62 Gaussian grid' --rgr grid=${DATA}/grids/t62_SCRIP.20150901.nc --rgr lat_nbr=94 --rgr lon_nbr=192 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc

t85_SCRIP.20150901.nc

ncks --rgr grd_ttl='T85 Gaussian grid' --rgr grid=${DATA}/grids/t85_SCRIP.20150901.nc --rgr lat_nbr=128 --rgr lon_nbr=256 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc

Generating Gridfiles:

The netCDF Operator ncks generates accurate and complete SCRIP-format gridfiles for select grid types, including equi-angular, FV, and Gaussian rectangular latitude/longitude grids. Full documentation is at http://nco.sf.net/nco.html#grid. Options pertinent to the grid geometry and metadata are passed to NCO via key-value pairs prefixed by "--rgr". Pass at least six key-value pair arguments to create a fully explicitly specified, well-annotated grid. The six arguments, and their corresponding keys, are: grid title (grd_ttl), grid filename (grid), number of latitudes (lat_nbr), number of longitudes (lon_nbr), latitude grid type (lat_typ), and longitude grid type (lon_typ). Four other arguments (the NSEW bounding box) are necessary to construct regular regional (non-global) grids, but for now we focus on global grids.

The lat_typ options for global grids are "eqa" for Equi-angular, "fv" for Finite Volume, and "gss" for Gaussian. An FV grid is nearly identical to an Equi-angular grid, with some important data and metadata differences at the poles. FV grids must have an odd number of latitudes because the first and last latitudes have special properties (and span half the width
of the other latitudes), whereas the Equiangular grid may have any number of latitudes. Gaussian grids must have an even number of latitudes. The lon_typ options for global grids are "grn_ctr" and "180_ctr" for the first gridcell centered at Greenwich or 180 degrees, respecitvely. And "grn_wst" and "180_wst" for Greenwich or 180 degress lying on the western edge of the first gridcell.

These keywords allow one to generate grids commonly used by ACME, CESM, and other models. New FV grids have replaced the flawed grids on the ACME inputdata server: https://acme-svn2.ornl.gov/acme-repo/acme/mapping/grids. The newer FV grids were generated by NCO (version 4.5.2 or later) with:

Gaussian grids were never distributed within ACME and the improved versions are not on ACME's inputdata server, either. However, Gaussian grids have been used extensively by the CESM community. Their replacements are available on rhea (/lustre/atlas/proj-shared/cli115/zender/grids) and yellowstone (/glade/p/work/zender/grids). The newer Gaussian grids were generated by NCO (version 4.5.2 or later) with:

ncks -O -D 7 --rgr grd_ttl='T42 Gaussian grid' --rgr grid=${DATA}/grids/t42_SCRIP.20150901.nc --rgr lat_nbr=64 --rgr lon_nbr=128 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc
ncks -O -D 7 --rgr grd_ttl='T62 Gaussian grid' --rgr grid=${DATA}/grids/t62_SCRIP.20150901.nc --rgr lat_nbr=94 --rgr lon_nbr=192 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc
ncks -O -D 7 --rgr grd_ttl='T85 Gaussian grid' --rgr grid=${DATA}/grids/t85_SCRIP.20150901.nc --rgr lat_nbr=128 --rgr lon_nbr=256 --rgr lat_typ=gss --rgr lon_typ=Grn_ctr ~zender/nco/data/in.nc ~/foo.nc

For convenience, all grids created for this migration are filename date-stamped with 20150901 to facilitate recognizing updated gridfiles and mapfiles. Full creation metadata is in the file header. Any valid netCDF file may be named as the source (e.g., in.nc). It will not be altered. The destination file (foo.nc) will be overwritten. Its contents are immaterial. The "-D 7" option increases the output verbosity so one can easily check, e.g., the precision of normalization of area and latitude weights. The API for creating grids is primitive (e.g., having to repeat "--rgr") because it was quickly bolted-on to NCO. We may improve and extend the NCO API to specify other grids and maps in the future. Important updates will be noted here.

How to generate accurate Mapfiles:

ESMF_RegridWeightGen -s ${DATA}/grids/ne30np4_pentagons.091226.nc -d ${DATA}/grids/129x256_SCRIP.20150901.nc -w ${DATA}/maps/map_ne30np4_to_fv129x256_aave.20150901.nc --method conserve
ESMF_RegridWeightGen -s ${DATA}/grids/ne30np4_pentagons.091226.nc -d ${DATA}/grids/257x512_SCRIP.20150901.nc -w ${DATA}/maps/map_ne30np4_to_fv257x512_bilin.20150901.nc --method bilinear
ESMF_RegridWeightGen -s ${DATA}/grids/ne120np4_pentagons.100310.nc -d ${DATA}/grids/257x512_SCRIP.20150901.nc -w ${DATA}/maps/map_ne120np4_to_fv257x512_aave.20150901.nc --method conserve
ESMF_RegridWeightGen -s ${DATA}/grids/ne120np4_pentagons.100310.nc -d ${DATA}/grids/801x1600_SCRIP.20150901.nc -w ${DATA}/maps/map_ne120np4_to_fv801x1600_bilin.20150901.nc --method bilinearNote that ACME gridfiles and mapfiles are date-stamped. The new grid and mapfiles were produced on or after 20150724. Cubed-sphere gridfiles produced before 20150724 are still considered good. Many other atmosphere gridfiles produced before 20150724 contain the flaws mentioned above. Gridfile flaws propagate to mapfiles so in most cases mapfiles must be updated too

The netCDF Operator ncks generates SCRIP-format gridfiles for select grid types, including equi-angular, FV, and Gaussian rectangular latitude/longitude grids. Full documentation is at http://nco.sf.net/nco.html#grid. For convenience, we sumarrize that functionality here. Options pertinent to the grid geometry and metadata are passed to NCO via key-value pairs prefixed by "--rgr". Pass at least six key-value pair arguments to create a fully explicitly specified, well-annotated grid. The six arguments, and their corresponding keys, are: grid title (grd_ttl), grid filename (grid), number of latitudes (lat_nbr), number of longitudes (lon_nbr), latitude grid type (lat_typ), and longitude grid type (lon_typ). Four other arguments (the NSEW bounding box) are necessary to construct regular regional (non-global) grids, but for now we focus on global grids.

The lat_typ options for global grids are "eqa" for Equi-angular, "fv" for Finite Volume, and "gss" for Gaussian. An FV grid is nearly identical to an Equi-angular grid, with some important data and metadata differences at the poles. FV grids must have an odd number of latitudes because the first and last latitudes have special properties (and span half the width
of the other latitudes), whereas the Equiangular grid may have any number of latitudes. Gaussian grids must have an even number of latitudes. The lon_typ options for global grids are "grn_ctr" and "180_ctr" for the first gridcell centered at Greenwich or 180 degrees, respecitvely. And "grn_wst" and "180_wst" for Greenwich or 180 degress lying on the western edge of the first gridcell.

All grids created for this migration thus far are filename date-stamped with 20150901 to facilitate recognizing updated gridfiles and mapfiles. Full creation metadata is in the file header. Any valid netCDF file may be named as the source (e.g., in.nc). It will not be altered. The destination file (foo.nc) will be overwritten. Its contents are immaterial. Add a "-D 7" option to increase the output verbosity and check, e.g., the precision of normalization of area and latitude weights. The API for creating grids is primitive (e.g., having to repeat "--rgr") because it was quickly bolted-on to NCO. We may improve and extend the NCO API to specify other grids and maps in the future. Important updates will be noted here.