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 http://www.epsg.org/. 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