irfpy.venus.bowshock

Collection of bow shock model

Reference:

Martinecz et al. (2008): “Location of the bow shock and ion composition boundaries at Venus–initial determinations from Venus Express ASPERA-4” PSS 56, 780-784.

Code author: Moa Persson

irfpy.venus.bowshock.xr_martinecz08(scale=1.0)[source]

Return the (x,r) coordinates of Martinecz 08 model.

Returns:

A tuple, (x, r), where x is the array of x coordinates and r is the array of \(\sqrt{y^2+z^2}\). The unit is Rv.

The parameter is \(L = 1.303, \epsilon=1.056, x_0=0.788\). Then, \(r=L/(1+\epsilon\cos\theta)\), where \((r, \theta)\) are measured at \((x_0, 0, 0)\).

>>> from irfpy.venus import bowshock
>>> x, r = bowshock.xr_martinecz08()
>>> print(x.shape, r.shape)
(161,) (161,)

You can plot the boundary as

import matplotlib.pyplot as plt
plt.plot(x, r, 'r')
irfpy.venus.bowshock.inside_martinecz08(x, y, z, scale=1.0)[source]

Return True if the given position is inside Martinecz shock model.

Parameters:

z (x, y,) – Position. The unit should be Rv.

Returns:

True if the given position is inside the Martinecz model.

>>> inside_martinecz08(1, 0, 0)
True
>>> inside_martinecz08(2, 0, 0)
False
>>> inside_martinecz08(1, 1, 0)
True
>>> inside_martinecz08(1, 1, 1)
False