Build a new grid
This section describes how to set the grid parameters for building a new grid.
Please see gridtools.gridutils.GridUtils.setGridParameters()
for explanation of all available parameters.
By default, a grid center is defined. A total distance in the \(x\) and \(y\) direction of the grid is defined. The number of grid points is determined by the defined resolution of the grid cells in the \(x\) and \(y\) direction.
This example creates the IBCAO grid as described by the Technical Reference and User’s Guide. [JCW+00] [MJV03]
The user manual states that the IBCAO grid is a Cartesian grid which has coordinates in meters in the \(x\) and \(y\) direction. The grid center or Origin is the North Pole. The Cartesian grid system starts at an \((x,y)\) of \((0,0)\) at the North Pole.
The grid size is 580.5 km in both directions giving a size of 2902500 meters on all sides of the North Pole.
To create an IBCAO grid suitable for MOM6, grid parameters need to be set to appropriate values.
The user manual states the IBCAO grid is in
the Polarsterographic projection. For gridtools,
this is specified as Stereographic
. In that
projection, the true scale is preserved at 75 degrees
North. For gridtools, this is specified by setting
lat_ts
to 75.0
. Although the grid in
Cartesian space is \((0,0)\), in gridtools, the
grid center needs to be specified in map coordinates
for the projection center and the grid center.
To specify that the grid should be centered
at the North Pole, in gridtools set the grid
projection parameters lon_0
to 0.0
and lat_0
to 90.0
. The grid parameters CenterX
is also 0.0
and CenterY
is 90.0
. The CenterUnits
should
be set to degrees
.
The user manual specifies a standard radius of the Earth
by stating that the “horizontal datum is World Geodetic
System (WGS 84)”. This is specified in gridtools using
the projection parameter of WGS84
for the ellps
(ellipsoid) parameter.
The user manual states the grid distance is 2.5 km. The
grid resolution is 2500 meters. In gridtools, dx
and dy
are set to the total distance of the grid
or 5805000.0
meters. The gridResolution
is
set to 2500.0
meters. The units should be set
to meters
for dxUnits
, dyUnits
, and
gridResolutionUnits
.
The grid parameters tilt
is optional. The
default value of 0.0
is shown in the example.
For now, MOM6 grids should all be created using
a gridMode
of 2
to specify creation of
a supergrid. For MOM6 grids, the gridType
should be MOM6
.
The parameters ensureEvenI
and ensureEvenJ
ensure the supergrid is properly sized. Use the
default value of True
for now.
Here is the command pulling all the above parameters together ready to create the IBCAO grid:
# Create a gridtools object
from gridtools.gridutils import GridUtils
grd = GridUtils()
# Define IBCAO grid for gridtools library
grd.setGridParameters({
'projection': {
'name': "Stereographic",
'ellps': 'WGS84',
'lon_0': 0.0,
'lat_0': 90.0,
'lat_ts': 75.0,
},
'centerX': 0.0,
'centerY': 90.0,
'cneterUnits': 'degrees',
'dx': 5805000.0,
'dy': 5805000.0,
'dxUnits': 'meters',
'dyUnits': 'meters',
'gridResolution': 2500.0,
'gridResolutionUnits': 'meters',
'tilt': 0.0,
'gridMode': 2,
'gridType': 'MOM6',
'ensureEvenI': True,
'ensureEvenJ': True
})
After setting the grid parameters, the next command will instruct gridtools to make the grid:
grd.makeGrid()
For systems with smaller amounts of memory, example #6 constructs a mini IBCAO grid with fewer grid points.