Finding unspecified plate angular velocities using data from published tables

Vince Cronin, begun March 29, 2021

User-Defined Functions

makeLocationVector[lat_, long_]:={Cos[lat Degree] Cos[long Degree], Cos[lat Degree] Sin[long Degree], Sin[lat Degree]};

findGeogCoord[vect_]:=Module[{lat,long,a,b,θ},a=ArcSin[vect[[3]]];θ=ArcCos[vect[[1]]/(Sqrt[(((vect[[1]])^2)+((vect[[2]])^2))])];b=If[(vect[[2]]<0),(-θ),(θ)];lat=a(180/π);long=If[((Abs[vect[[1]]]<(1×(10^(-14))))&&(Abs[vect[[2]]]<(1×(10^(-14))))),0,(b(180/π))];{lat,long}];

How do I find the angular velocity vector of an observed plate relative to a reference plate if all I know is the angular velocity vectors of those two plates relative to the Pacific plate?

We will define vector (Subscript[, A])(Subscript[ω, B]) as the angular velocity of plate B as observed from plate A.  Because plate A defines the reference frame, we will call plate A the reference plate in this example, and plate B will be the observed plate -- the plate whose motion is being observed from the reference plate.  Vector (Subscript[, A])(Subscript[ω, B]) is parallel to the unit location vector to the positive pole of instantaneous motion of plate B relative to plate A, and the corresponding angular speed is indicated by the double-lined bracket symbols, as in [[(Subscript[, A])(Subscript[ω, B])]].  The magnitude of angular velocity vector (Subscript[, A])(Subscript[ω, B]) is its angular speed [[(Subscript[, A])(Subscript[ω, B])]].

How do I make an angular velocity vector from published data involving the geographic coordinates of a pole and an angular speed?

Input Data

Most published models of plate motion describe the instantaneous motion of a plate in some specified reference frame as a positive (right-handed or anticlockwise) rotation around a pole at a given angular speed, as in these data from Kreemer, Blewitt, and Klein (2014), Table 2, where the reference frame is fixed to the Pacific plate.

latitude     longitude       rate        plate            plate
  (°N)         (°E)        (°/Myr)    abbreviation         name
  
 59.12        -73.31        0.942         AF              Africa
 49.30        -76.01        0.791         NA           North America

To make these input data into an angular velocity vector, start by defining the input variables for the two plates

paωafPoleLat=59.12; paωafPoleLong=-73.31; paωafAngSpeed=0.942;

paωnaPoleLat=43.30; paωnaPoleLong=-76.01; paωnaAngSpeed=0.791;

Defining the corresponding instantaneous angular velocity vectors

Convert the pole location, expressed in geographic coordinates, into Cartesian-geographic coordinates with the user-defined function makeLocationVector[].

paωafPole=makeLocationVector[paωafPoleLat,paωafPoleLong];

paωnaPole=makeLocationVector[paωnaPoleLat,paωnaPoleLong];

The two vectors defined above are unit location vectors, meaning that they have a length of 1.  We need to change the length of each of these so that they are be equal to the angular speed.  The angular velocity vector of the African plate relative to the Pacific plate (paAngVelaf) is equal to the angular speed of the African plate relative to the Pacific plate (paωafAngSpeed) multiplied by (×) the unit location vector of the pole around which Africa rotates anticlockwise relative to the Pacific plate (paωafPole).

paAngVelaf=paωafAngSpeed×paωafPole;

The angular velocity vector of the North American plate relative to the Pacific plate (paAngVelna) is equal to the angular speed of the North American plate relative to the Pacific plate (paωnaAngSpeed) multiplied by (×) the unit location vector of the pole around which North America rotates anticlockwise relative to the Pacific plate (paωnaPole).

paAngVelna=paωnaAngSpeed×paωnaPole;

How do I find the angular velocity vector between two plates other than the Pacific plate (using the angular velocity of each of the other plates relative to the Pacific Plate)?

Background

One of the fundamental relationships of instantaneous rigid-body motion on a sphere involving any three plates (plate A, plate B, plate C) is

(Subscript[, A])(Subscript[ω, B]) + (Subscript[, B])(Subscript[ω, C]) + (Subscript[, C])(Subscript[ω, A]) = 0, or          
          (Subscript[, A])(Subscript[ω, B]) = (Subscript[, C])(Subscript[ω, B]) - (Subscript[, C])(Subscript[ω, A])

The instantaneous angular velocity vectors of three plates sum together to equal zero.  They form a closed vector circuit.

Computation

The instantaneous angular velocity vector of the North American plate relative to the African plate (afAngVelna) equals the difference of the instantaneous angular velocity vector of the North American plate relative to the Pacific plate (paAngVelna) minus the instantaneous angular velocity vector of the African plate relative to the Pacific plate (paAngVelaf).

afAngVelna=paAngVelna-paAngVelaf;

The instantaneous angular velocity vector of the African plate relative to the North American plate (afAngVelna) equals the difference of the instantaneous angular velocity vector of the African plate relative to the Pacific plate (paAngVelaf) minus the instantaneous angular velocity vector of the North American plate relative to the Pacific plate (paAngVelna).

naAngVelaf=paAngVelaf-paAngVelna;

How do I find the angular speed between these two plates?

The angular speed of the North American plate relative to the African plate (afωnaAngSpeed) is the magnitude of the instantaneous angular velocity vector of the North American plate relative to the African plate (afAngVelna).  The magnitude is found using the built-in Mathematica function Norm[], acting on the instantaneous angular velocity vector of the North American plate relative to the African plate (afAngVelna).

afωnaAngSpeed=Norm[afAngVelna];

The angular speed of the African plate relative to the North American plate (naωafAngSpeed) is found using the built-in Mathematica function Norm[], acting on the instantaneous angular velocity vector of the African plate relative to the North American plate (naAngVelaf).

naωafAngSpeed=Norm[naAngVelaf];

How do I find the instantaneous pole of rotation for these two plates?

The unit location vector associated with a given angular velocity vector is found using the built-in Mathematica function Normalize[].  Then we can convert that vector from Cartesian-geographic coordinates to geographic coordinates with the user-defined function findGeogCoord[].
The instantaneous pole around which the North American plate rotates in a positive (right-handed or counter-clockwise) direction relative to the African plate is

afPolena=findGeogCoord[Normalize[afAngVelna]];

The instantaneous pole around which the African plate rotates in a positive (right - handed or counter - clockwise) direction relative to the North American plate is

naPoleaf=findGeogCoord[Normalize[naAngVelaf]];

Results

The instantaneous pole around which the North American plate rotates in a positive (right-handed or counter-clockwise) direction relative to the African plate is located at latitude

N[afPolena[[1]]]

degrees north and longitude

N[afPolena[[2]]]

degrees east, and has an angular speed of

N[afωnaAngSpeed]

degrees per million years.

The instantaneous pole around which the African plate rotates in a positive (right-handed or counter-clockwise) direction relative to the North American plate is located at latitude

N[naPoleaf[[1]]]

degrees north and longitude

N[naPoleaf[[2]]]

degrees east, and has an angular speed of

N[naωafAngSpeed]

degrees per million years.

References

Kreemer, C., Blewitt, G., and Klein, E.C., 2014, A geodetic plate motion and Global Strain Rate Model:  Geochemistry, Geophysics, Geosystems, v. 15, p. 3849-3889, doi:10.1002/2014GC005407.