rotatem
Transform vector map data to new origin and orientation
Syntax
[lat1,lon1] = rotatem(lat,lon,origin,'forward')
[lat1,lon1] = rotatem(lat,lon,origin,'inverse')
[lat1,lon1] = rotatem(lat,lon,origin,'forward',units
)
[lat1,lon1]
= rotatem(lat,lon,origin,'forward',units
)
Description
[lat1,lon1] = rotatem(lat,lon,origin,'forward')
transforms
latitude and longitude data (lat
and lon
)
to their new coordinates (lat1
and lon1
)
in a coordinate system resulting from Euler angle rotations as specified
by origin
. The input origin
is
a three- (or two-) element vector having the form [latitude
longitude orientation]
. The latitude and longitude are the
coordinates of the point in the original system, which is the center
of the output system. The orientation is the azimuth from the new
origin point to the original North Pole in the new system. If origin
has
only two elements, the orientation is assumed to be 0º. This origin
vector
might be the output of putpole
or newpole
.
[lat1,lon1] = rotatem(lat,lon,origin,'inverse')
transforms
latitude and longitude data (lat
and lon
)
in a coordinate system that has been transformed by
Euler angle rotations specified by origin
to their
coordinates (lat1
and lon1
)
in the coordinate system from which they were originally
transformed. In a sense, this undoes the 'forward'
process.
Be warned, however, that if data is rotated forward and then inverted,
the final data might not be identical to the original. This is because
of roundoff and data collapse at the original
and intermediate singularities (the poles).
[lat1,lon1] = rotatem(lat,lon,origin,'forward',
and units
)[lat1,lon1]
= rotatem(lat,lon,origin,'forward',
specify
the angle units of the data, where units
)units
is
any recognized angle unit. The default is 'radians'
.
Note that this default is different from that of most functions.
The rotatem
function transforms vector
map data to a new coordinate system.
An analytical use of the new data can be realized in conjunction
with the newpole
function. If a selected point
is made the north pole of the new system, then
when new vector data is created with rotatem
, the
distance of every data point from this new north pole is its new colatitude
(90º minus latitude). The absolute difference in the great circle
azimuths between every pair of points from their new pole is
the same as the difference in their new longitudes.
Examples
What are the coordinates of Rio de Janeiro (23ºS,43ºW)
in a coordinate system in which New York (41ºN,74ºW) is
made the North Pole? Use the newpole
function
to get the origin vector associated with putting New York at the pole:
nylat = 41; nylon = -74; riolat = -23; riolon = -43; origin = newpole(nylat,nylon); [riolat1,riolon1] = rotatem(riolat,riolon,origin,... 'forward','degrees') riolat1 = 19.8247 riolon1 = -149.7375
What does this mean? For one thing, the colatitude of Rio in this new system is its distance from New York. Compare the distance between the original points and the new colatitude:
dist = distance(nylat,nylon,riolat,riolon) dist = 70.1753 90-riolat1 ans = 70.1753
Version History
Introduced before R2006a