# 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.

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