UtmProjection Class
Represents a projection in the Universal Transverse Mercator grid.
NuGet/Assembly: Carmenta.Engine.5.16.2.nupkg (in the CECore assembly)
Syntax
public class UtmProjection : Projection
Remarks
An instance of this class represents a UTM projection. Although you can create a new instance, you do not have to, since there are only 120 possible instances, which are also available via the Utm method. Or, if you want to combine your projection instance with the Wgs84 datum, you can use the Crs.Wgs84Utm method to get your Crs directly.
The UTM (Universal Transverse Mercator) projection system divides the earth into 60 zones using different central meridians spaced 6 degrees apart. Each zone consists of two halves, north and south of the equator, which use different projections, but only the false northing differs. On the southern hemisphere, the false northing is defined to make the northings reach 10 000 km at the equator; on the northern hemisphere, it is defined to make the northings restart from 0 km at the equator. Although this difference is trivial, you must take care to use the correct hemisphere.
![]() |
A Utm projection is created from a zone number (1 - 60) and a hemisphere (north or south). Externally, the resulting projection will behave just like a general TransverseMercatorProjection whose parameters are set as follows:
Transverse Mercator parameter | value |
---|---|
authority | epsg |
authorityCode | The number 16000 + zone in the north hemisphere, or 16100 + zone in the south hemisphere. |
centralLongitude | -180° + zone * 6° - 3° |
centralLatitude | 0° (the equator) |
falseEasting | 500 000 m |
falseNorthing | 0 m in the north hemisphere, 10 000 000 m in the south hemisphere. |
scaleFactor | 0.9996 |
The authorityCode above is the EPSG code for the projection instance. Together with a GeodeticDatum, the projection forms a Crs with a different EPSG code.
Geodetic datum | EPSG code for Crs using Utm |
---|---|
WGS84 | 32600 + zone, on north hemisphere |
WGS84 | 32700 + zone, on south hemisphere |
ED50 | 23000 + zone (28 ≤ zone ≤ 38) |
ETRS89 | 25800 + zone (28 ≤ zone ≤ 38) |
ETRS89 | 3012 + zone (26 ≤ zone ≤ 39); these are left-handed (Northing before Easting) |
NAD27 | 26700 + zone (1 ≤ zone ≤ 22) |
NAD27 | 3370 for zone 59N and 3371 for zone 60N |
NAD83 | 26900 + zone (1 ≤ zone ≤ 23) |
NAD83 | 3372 for zone 59N and 3373 for zone 60N |
NAD83(HARN) | 3730 + zone (10 ≤ zone ≤ 19) |
NAD83(HARN) | 3750 for zone 4N, 3751 for zone 5N, and 2195 for zone 2S |
NAD83(NSRS2007) | 3707 + zone (1 ≤ zone ≤ 19) |
NAD83(NSRS2007) | 3706 for zone 59N and 3707 for zone 60N |
Usage
For storage in a DataSet, a UTM projection should normally not be used outside its zone, but there are national reference systems like SWEREF 99 TM that do so. Usually, the national surveyors take care to say that the national grid is not UTM, just a grid that happens to coincide with UTM in some parts of the country. Since Carmenta Engine uses projection formulas with wide accuracy (see TransverseMercatorProjection), it is possible to use a UTM projection world wide (at least within Carmenta Engine: exporting such data is not recommended). The following map uses the projection of UTM zone 25, with the actual zone shown in red. The map solves a classical problem for oceanographers: to show the Arctic Ocean as a small part of the Atlantic. (For an alternative, see the CassiniSoldnerProjection.)
![]() |
Inheritance Hierarchy
System.Object (not available in C#)
EngineObject
ResourceObject
Projection
UtmProjection
Platforms
Windows, Linux, Android
UtmProjection Members
The UtmProjection type has the following members.
Constructors
Name | Description |
---|---|
UtmProjection | Initializes a new instance of the UtmProjection class from zone number and hemisphere (north or south). |
Properties
Name | Description |
---|---|
Authority | Gets the name of an authority, which is often "epsg". Inherited from Projection |
AuthorityCode | Gets the unique code for the projection instance, according to the Authority, for example "19883". Inherited from Projection |
Hemisphere | Gets the hemisphere. |
IsDisposed | Gets a value that tells whether the current UtmProjection has been disposed. Inherited from EngineObject |
Gets a pre-defined LongLatProjection instance. Inherited from Projection | |
Name | Gets or sets the name of the UtmProjection. Inherited from ResourceObject |
NativeHandle | Gets the native Carmenta Engine kernel object the current UtmProjection represents. Inherited from EngineObject |
IUserProperties.UserProperties | Gets the AttributeSet that contains the user properties. Inherited from IUserProperties |
Zone | Gets the zone number, 1 to 60 (see the Utm overview map. |
Methods
Name | Description |
---|---|
Clone | Creates a copy of an object. Inherited from EngineObject |
Dispose | Releases the reference to the native Carmenta Engine kernel instance the EngineObject represents. Inherited from EngineObject |
Equals | Determines whether this instance is equal to another. Inherited from EngineObject |
Returns one of the 120 predefined instances of Universal Transverse Mercator. Inherited from Projection |