Map Projections and Vertical Coordinate Systems

Version 4.0 of Vis5D added support for new map projections and vertical coordinate systems. When we use the term map projection, we're referring to the relationship between the rows and columns of data in the 3-D grid to the latitude/longitude of the earth. The term vertical coordinate system refers to the relationship between the vertical levels of data in the 3-D grid to altitude in the atmosphere (or depth in the ocean).

Map projections

Vis5D 5.2 supports the following map projections:

Generic rectilinear

This is a linear, regularly-spaced coordinate system with no implied units. This system is useful when your data is not related to earth science (computational fluid dynamics for example.) North/south coordinates increase upward and east/west coordinates increase to the left. The projection is defined by four parameters:

NorthBound: Northern boundary of 3-D box
WestBound: Western boundary of 3-D box
RowInc: Increment (spacing) between grid columns
ColInc: Increment (spacing) between grid rows

Example: Suppose your 3-D grid has 80 rows and 60 columns and NorthBound = 100.0 meters, WestBound = 50.0 meters, RowInc = 0.5 meters, and ColInc = 0.5 meters, then:

the south boundary will be at 60.5 meters, i.e.

southbound = NorthBound - (RowInc * (rows-1))

and the east boundary will be at 20.5 meters, i.e.

eastbound = WestBound - (ColInc * (columns-1))

Rectilinear lat/lon (cylindrical equidistant)

This is the rectangular latitude/longitude coordinate system used in previous versions of Vis5D. Latitude increases to the North (upward in the graphical display) and longitude increases to the West (leftward in the graphical display; positive west latitude). The projection is defined by four parameters:

NorthBound: Northern boundary of 3-D box in degrees of latitude in therange [-90S,90N].
WestBound: Western boundary of 3-D box in degrees of longitude in therange [-180E,180W].
RowInc: Increment (spacing) between grid rows in degrees of latitude greater than zero.
ColInc: Increment (spacing) between grid columns in degrees of longitude greater than zero.

Example: If your 3-D grid has 30 rows and 60 columns and if NorthBound = 70.0, WestBound = 140.0, RowInc = 1.0, and ColInc = 0.5, then:

the south boundary will be at 41 degrees latitude. i.e.

(NorthBound - RowInc * (rows-1))

and the east boundary will be at 110.5 degrees longitude. i.e.

(WestBound - ColInc * (columns-1))

Lambert conformal

This is a conic projection defined by the following six parameters.

Lat1, Lat2: First and second standard latitudes in the range [-90S,90N]. Lat1 and Lat2 define where the imaginary cone intersects the sphere of the Earth. Lat1 and Lat2 must have the same sign, that is, they must both be positive or both negative. Also, Lat1 must be greater than or equal to Lat2.
PoleRow, PoleCol: These parameters indicate the position of the north or south pole with respect to the 3-D grid coordinate system. These values may be outside the 3-D grid. If Lat1 and Lat2 are positive, the north pole is assumed, else, the south pole is assumed.
CentLon: Central longitude: this parameter indicates which Earth longitude is to be parallel to the 3-D grid columns.
ColInc: Increment (spacing) between grid columns at the central longitude and standard latitudes, in km. This parameter controls the scale of the projection.

Example 1: Suppose your 3-D grid has 35 rows and 40 columns and you want a Lambert conformal projection of the United States centered over Wisconsin:

Lat1 = 70.0 Lat2 = 20.0 PoleRow = -35.0 PoleCol = 20.0 Central Longitude = 90.0 ColInc = 100.0

Example 2: Suppose your 3-D grid has 35 rows and 40 columns and you want a Lambert conformal projection over Australia:

Lat1 = -20.0 Lat2 = -70.0 PoleRow = 60.0 PoleCol = 20.0 Central Longitude = -130.0 ColInc = 200.0

Note: Beware that when the pole is visible in a Lambert conformal projection, there is usually a wedge-shaped region (with its apex at the pole) which is undefined (i.e. Longitude is >180 AND <-180). In this region, there will be no map lines and the topography will be incorrect.

Azimuthal Stereographic

An aximuthal stereographic projection defined by five parameters:

CentLat, CentLon: Latitude and longitude of the center of projection. The apex of the imaginary cone will be over this coordinate.
CentRow, CentCol: Row and column of the center of projection. The grid row and column indicated will be at the center of the projection. These values may be outside the 3-D box.
ColInc: Increment (spacing) between grid columns in km at the center of the projection. This parameter controls the scale of the projection.

Example: Suppose your 3-D grid has 40 rows and 40 columns and want an azimuthal stereographic projection centered over of the north pole:

CentLat = 90.0 CentLon = 0.0 CentRow = 20.0 CentCol = 20.0 ColInc = 200.0

Rotated rectilinear lat/lon

This is the rectangular latitude/longitude coordinate system on a sphere rotated with respect to the Earth's natural latitude/longitude. North/south coordinates increase upward on the rotated sphere and east/west coordinates increase leftward on the rotated sphere. The projection is defined by seven parameters:

NorthBound: Northern boundary of 3-D box in degrees of latitude in the range [-90S,90N].
WestBound: Western boundary of 3-D box in degrees of longitude in the range [-180E,180W].
RowInc: Increment (spacing) between grid rows in degrees of latitude greater than zero.
ColInc: Increment (spacing) between grid columns in degrees of longitude greater than zero.
CentLat, CentLon: Latitude and longitude on Earth corresponding to Latitude/Longitude = (0,0) on the rotated sphere.
Rotation: Clockwise angle of rotation of rotated sphere about its (0,0) point.

Example: Over small regions the Earth is nearly flat and we can exploit this to create nearly square grids for small scale models. We can generate a nearly square grid of 41 rows by 41 columns over a small region over Wisconsin with:

NorthBound = 2.0

WestBound = 2.0

RowInc = 0.1

ColInc = 0.1

CentLat = 43.0

CentLon = 90.0

Rotation = 0.0

Vertical coordinate systems

Vis5D 5.2 supports the following vertical coordinate systems:

Equally spaced, generic units:

This is a linear vertical coordinate system in which levels in the 3-D grid are equally spaced. No specific units are implied. The coordinate system is defined by two parameters:

BottomBound: Bottom boundary boundary of 3-D box.
LevInc: Increment(spacing) between grid levels.

Example: Suppose your 3-D grid has 20 levels and you want the bottom boundary to be 0.0 meters and you want .1 meters between levels. Then:

BottomBound = 0.0

LevInc = 0.1

Equally spaced, kilometers

This is a linear vertical coordinate system used in previous versions of Vis5D. Grid levels are equally spaced. The coordinate system is defined by two parameters:

BottomBound: Bottom boundary of 3-D box in km.
LevInc: Increment (spacing) between grid levels in km greater than zero.

Example: Suppose your 3-D grid has 20 levels and you want .5 kilometers between grid levels. Then:

BottomBound = 0.0

LevInc = 0.5

Unequally spaced, kilometers

This is a linear vertical coordinate system in which grid levels can be unequally spaced. The coordinate system is defined by an array of N height parameters where N is the number of levels in the 3-D grids. If the number of grid levels is different for each variable, N is the maximum number of grid levels.

Height(1): Height of first (bottom) grid level in km
Height(2): Height of second grid level in km
... ...
Height(N): Height of Nth (top) grid level in km

Note: Note that the Height values must increase with N.

Example: Suppose your 3-D grids have 10 levels and you want the grid levels to be more closely spaced near the bottom than near the top. Then:

Height(1) = 0.0
Height(2) = 0.1
Height(3) = 0.2
Height(4) = 0.3
Height(5) = 0.4
Height(6) = 0.6
Height(7) = 0.8
Height(8) = 1.0
Height(9) = 1.3
Height(10) = 1.6

It is also possible to display the vertical axis on a logarithmic scale. This is done with the -log command line option when you start vis5d. In this case, the vertical axis is logarithmic with respect to height but linear with respect to pressure. The relationship between height (H) and pressure (P) is:

P = 1012.5 * exp[ H / -7.2 ]

H = -7.2 * Ln[ P / 1012.5 ]

The constants 1012.5 and -7.2 are just defaults which can be overriden when you specify the -log option. See section 6.1 for details.

Unequally spaced, millibars

This is a linear vertical coordinate system in which grid levels can be unequally spaced. The coordinate system is defined by an array of N pressure parameters where N is the number of levels in the 3-D grids. If the number of grid levels is different for each variable, N is the maximum number of grid levels.

Pressure(1): Pressure of first (bottom) grid level in km
Pressure(2): Pressure of second grid level in km
... ...
Pressure(N): Pressure of Nth (top) grid level in km

Note: Note that the Pressure values must decrease with N.

For the purposes of calculating wind trajectories, Vis5D assumes the relationship between height (H) and pressure (P) is:

P = 1012.5 * exp[ H / -7.2 ]

H = -7.2 * Ln[ P / 1012.5 ]

Only the v5d file format is capable of storing the new map projection and vertical coordinate system information. When a v5d file is read into vis5d this information is used to setup the topography, map lines, and compute wind trajectories.

The vis5d program also supports two other display projections: spherical and cylindrical. Instead of drawing a rectangular 3-D box, these projections will actually warp the 3-D box into a spherical or cylincrical shape. These projections are used by specifying the -projection option with the value spherical or cylindrical; they are not specified in the v5d file. The spherical option can be used to display your data on a 3-D globe. The cylindrical option can be used to display your data on a flat, round topography. It's probably best to just experiment with these options using the LAMPS dataset for example. See the section on Vis5d's command line options for more information.