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