irfpy.earth.volland

Simple implementation of Volland-Stern potential

This is an empirical model of electric potential of the Earth’s magnetosphere.

The Volland-Stern model is a parametric model. We prepared several presets in the original paper. (V78_Model1, V78_Model2).

A typical parameter for Mercury is also available (Mercury_Model).

To obtain the electric potential, one can use methods starting with “from”. For example, one can get the electric potential for L-value 10 and Local time 18:00 as follows. The unit is kV.

>>> potential = V78_Model1.fromLLT(10, 18)
>>> print('{:.2f}'.format(potential))
-6.57

To produce a model using own parameter, one can start from ModelParameter as an argument of VollandPotential, as seen below.

>>> V78_Model1 = VollandPotential(ModelParams(15, 10, 15, 10, -1, 4, 4, 1.5 * (1 + 1j), 14.8, 13.0, 14.0, 16.5, 270))
class irfpy.earth.volland.ModelParams(sigmaPbar: float, sigmaHbar: float, sigmaP: float, sigmaH: float, P1: complex, P2: complex, n1: complex, n2: complex, A1: complex, theta1: float, theta0: float, theta2: float, tauMax: float)[source]

Bases: object

Model parameter for Volland-Stern model. See the paper Volland 78 for details.

irfpy.earth.volland.lt2deg(tau_LT: float)[source]

Convert the local time (0 to 24) to the angle (degrees)

Parameters:

tau_LT – Local time in hour

Returns:

Angle in degrees.

>>> print(lt2deg(18))
270.0
irfpy.earth.volland.lt2rad(tau_LT: float)[source]

Convert the local time (0 to 24) to radians.

Parameters:

tau_LT – Local time in hour.

Returns:

Angle in radians

>>> print('{:.2f}'.format(lt2rad(12)))
3.14
irfpy.earth.volland.lshell(r: float, theta_rad: float)[source]

L-shell obtained from the colatitude in radians

Parameters:
  • r – Distance from the center, unit Re

  • theta_rad – Colatitude in radians

Returns:

The L-shell, $r/sintheta^2$

irfpy.earth.volland.lshell_deg(r: float, theta_deg: float)[source]

L-shell obtaine from the colatitude in degrees

Parameters:
  • r – Distance form the center. Rm.

  • theta_deg – Colatitude in degrees

Returns:

The L-shell, $r/sintheta^2$

>>> print('{:.2f}'.format(lshell_deg(2.5, 90)))
2.50
class irfpy.earth.volland.VollandPotential(model_parameters: ModelParams)[source]

Bases: object

V78 potential model implementation

Make potential calculation class from the given parameter (Model)

Parameters:

model_parameters – Model parameters.

Model shall be given as in the paper by Volland-1978.

>>> model1 = VollandPotential(ModelParams(15, 10, 15, 10, -1, 4, 4, 1.5 * (1 + 1j), 14.8, 13.0, 14.0, 16.5, 270))
>>> model1.fromPosition(5, 15, 14)   # Potential (in kV) at R=5, coLat=15deg, Localtime at 14:00
-3.807631535691775
>>> model1.fromLLT(17.5, 15.5)   # L=17.5 and LT=15:30
-11.229792294255114
fromLLT(lvalue: float, localtime: float) float[source]

Get the potential from the L-value and the local time

Params lvalue:

The L-value

Params localtime:

The local time in the unit of hours.

fromLLTs(lvalues, localtimes)[source]

Obtain the potentials from an array of L-value and LT.

Parameters:
  • lvalues – A numpy array of L-value

  • localtimes – A numpy array of local time in the unit of Hours.

fromPositions(rs, coLats_deg, localtimes)[source]
fromPosition(r: float, coLat_deg: float, localtime: float) float[source]

Obtain the potential at the given position

Params r:

The radial distance in the unit of Re

Params coLat_deg:

The colatitude in degrees.

Params localtime:

The local time in hours.

irfpy.earth.volland.V78_Model1 = <irfpy.earth.volland.VollandPotential object>

A parameter set for the Model1 in V78 paper

irfpy.earth.volland.V78_Model2 = <irfpy.earth.volland.VollandPotential object>

A parameter set for the Model2 in V78 paper

irfpy.earth.volland.Mercury_Model = <irfpy.earth.volland.VollandPotential object>

A parameter set for typical Mercury.

Experimental implementation. Please use carefully. Mercury is different from the Earth.

Note that the ionospheric parameters will be disappered regardless of the numbers (conductivity) by formulation.