Main Content

Work in UTM Without a Displayed Map

You can set up UTM to calculate coordinates without generating a map display, using the defaultm function. The utmzone and utmgeoid functions help you select a zone and an appropriate ellipsoid. In this example, you generate UTM coordinate data for a location in New York City, using that point to define the projection itself.

Define a location in New York City. Obtain the UTM zone for this point.

lat = 40.7;
lon = -74.0;
z = utmzone(lat,lon)
z = 
'18T'

Get the suggested ellipsoid vector and name for this zone.

[ellipsoid,estr] = utmgeoid(z)
ellipsoid = 1×2
106 ×

    6.3782    0.0000

estr = 
'clarke66'

Set up the UTM coordinate system based on this information.

utmstruct = defaultm('utm');
utmstruct.zone = z;
utmstruct.geoid = ellipsoid;
utmstruct = defaultm(utmstruct);

Transform the coordinates, without a map display.

[x,y] = projfwd(utmstruct,lat,lon)
x = 5.8448e+05
y = 4.5057e+06

Compute the zone limits (latitude and longitude limits) for a specified zone by using the utmzone function. You can also call utmzone recursively to obtain the limits of the UTM zone within which a point location falls.

utmzone('18T')
ans = 1×4

    40    48   -78   -72

[zonelats,zonelons] = utmzone(utmzone(40.7,-74.0))
zonelats = 1×2

    40    48

zonelons = 1×2

   -78   -72

Alternatively, set up a UTM coordinate system using a projcrs object. To create the object, specify an EPSG code. For information about EPSG codes, see the EPSG registry. Verify that the projcrs object has the correct name and ellipsoid. Then, transform the coordinates.

p = projcrs(26718);
p.Name
ans = 
"NAD27 / UTM zone 18N"
p.GeographicCRS.Spheroid.Name
ans = 
'Clarke 1866'
[xp,yp] = projfwd(p,lat,lon)
xp = 5.8448e+05
yp = 4.5057e+06

See Also

| | | |