irfpy.mercury.boundary

Boundary model.

Magnetopause:

  • mp_xyz_aMSO_winslow13

Bow shock:

  • bs_xyz_aMSO_winslow13

class irfpy.mercury.boundary.BoundaryTuple(theta, phi, x, y, z)

Bases: tuple

The returned type for the boundary model.

Parameters:
  • theta – Theta array (radians)

  • phi – Phi array (radians)

  • x – x

  • y – y

  • z – z

phi

Alias for field number 1

theta

Alias for field number 0

x

Alias for field number 2

y

Alias for field number 3

z

Alias for field number 4

class irfpy.mercury.boundary.Magnetopause_Winslow13(rss=1.45, alpha=0.5, zd=0.196)[source]

Bases: object

The magnetopause model by Winslow 2013

The model is described by two angles, \(\theta\) and \(\phi\). In the aMSO frame,

\[r = R_{ss} \left(\]

rac{2}{1+cos heta} ight)^lpha

\[x = r\cos heta\]
\[y = r\cos\phi\]
\[z = r\sin\phi + z_d\]

Not well-tested.

>>> mp = Magnetopause_MSM_Winslow13()
>>> t, p, x, y, z = mp.xyz()
>>> # x, y = mp.xy()  # This method is not yet implemented
>>> y, z = mp.yz()
>>> x, z = mp.xz()

Initialize with (average) parameters

Parameters:
  • rss – Rss in the unit of Rm.

  • alpha – alpha

  • zd – zd, the offset of the dipole (defaut, 0.196 Rm, for aMSO frame). If zd=0, aMSM frame.

See mp_xyz_aMSO_winslow13() for more details.

xyz(theta_array=None, phi_array=None)[source]

Getting x, y, and z

Parameters:
  • theta_array – Array of theta to calculate, in radians. (0 to pi)

  • phi_array – Array of phi to calculate, in radians. (0 to 2pi)

xy(theta_array=None)[source]
equator(theta_array=None)
yz(phi_array=None)[source]

Return the x=0 slice, i.e., terminator plane

terminator(phi_array=None)

Return the x=0 slice, i.e., terminator plane

xz(theta_array=None)[source]

Return the y=0 slice, i.e., noon midnight meridian plane.

y=0 slice.

noon_midnight(theta_array=None)

Return the y=0 slice, i.e., noon midnight meridian plane.

y=0 slice.

class irfpy.mercury.boundary.Magnetopause_MSM_Winslow13(rss=1.45, alpha=0.5)[source]

Bases: Magnetopause_Winslow13

Magnetopause in the MSM frame.

Not well-tested.

>>> mp = Magnetopause_MSM_Winslow13()
>>> t, p, x, y, z = mp.xyz()
>>> x, y = mp.xy()
>>> y, z = mp.yz()
>>> x, z = mp.xz()

Initialize with (average) parameters

Parameters:
  • rss – Rss in the unit of Rm.

  • alpha – alpha

  • zd – zd, the offset of the dipole (defaut, 0.196 Rm, for aMSO frame). If zd=0, aMSM frame.

See mp_xyz_aMSO_winslow13() for more details.

xy(theta_array=None)[source]
irfpy.mercury.boundary.mp_xyz_aMSO_winslow13(theta_array=None, phi_array=None, rss=1.45, alpha=0.5, zd=0.196)[source]

Winslow [2013] Magnetopause model

Parameters:
  • theta_array – Array of theta to calculate, in radians. (0 to pi)

  • phi_array – Array of phi to calculate, in radians. (0 to 2pi)

  • rss – Rss in the unit of Rm.

  • alpha – alpha

  • zd – zd, the offset of the dipole (0.196 Rm). If zd=0, aMSM frame.

Returns:

Array of boundary. (theta, phi, x, y, z). In Rm.

Return type:

BoundaryTuple

>>> t, p, x, y, z = mp_xyz_aMSO_winslow13()
irfpy.mercury.boundary.bs_xyz_aMSO_winslow13(theta_array=None, phi_array=None, zd=0.196, X0=0.5, e=1.04, p=2.75)[source]

Winslow [2013] bow shock model

Parameters:
  • theta_array – Array of theta to calculate, in radians. (0 to pi)

  • phi_array – Array of phi to calculate, in radians. (0 to 2pi)

  • zd – zd, the offset of the dipole (0.196 Rm)

  • X0 – X0 in the unit of Rm.

  • e – e

  • p – p

Returns:

Array of boundary. (theta, phi, x, y, z). In Rm.

Return type:

BoundaryTuple

>>> t, p, x, y, z = bs_xyz_aMSO_winslow13()