Boundary Models
Another option for providing boundaries are model specifications. Several
empirically derived mathematical models are included in
ocbpy.boundaries.models to allow access to these formulations. These
models typically depend on magnetic local time (MLT) and a geomagnetic or solar
wind index. OCBpy requires that these functions provide the boundary location in
co-latitude (degrees of magnetic latitude away from the pole), have MLT as
the first input argument, and that all other inputs be keyword arguments.
Starkov
The Starkov 1994 model (see Starkov Model) uses a mathematical formulation based on All-Sky Imager data and the Auroral Electrojet Lower envelope index. They specify three boundaries: the polar edge of the auroral oval, the equatorward edge of the auroral oval, and the equatorward edge of the diffuse aurora (usually more equatorward than the discrete edge). These may be accessed in the code here using the boundary keyworkds: ‘ocb’, ‘eab’, and ‘diffuse’, respectively.
Gussenhoven
The Gussenhoven 1983 model (see Gussenhoven Model) uses a mathematical formulation based on DMSP data and the Kp index. They specify a single boundary: the equatorward edge of the diffuse aurora. As this model defines the boundary using separate linear fits for different MLT bins, the results may be returned at the binned times (‘binned’), at the nearest binned time (‘closest’), or at the requested times using a circle fit to all of binned times (‘circle’).
CH-Aurora-2014
The CH-Aurora-2014 model (see CH-Aurora-2014 Model) uses a mathematical formulation based on CHAMP field-aligned current (FAC) data and a delayed time-history of the Newell Coupling Function. They specify both auroral boundaries in each hemisphere. Although this model may be driven entirely by the Newell Coupling Function, the authors recommend adjusting the model output with CHAMP measurements of the FAC boundaries.
Boundary Models Module
Functions that provide boundary locations through a mathematical model.
References
- ocbpy.boundaries.models.ch_aurora_2014_boundary(mlt, em=0, bnd='ocb', hemi=1, obs_colat=None, obs_mlt=None)[source]
Calculate the location of the CH-Aurora-2014 auroral boundaries.
- Parameters:
mlt (float or array-like) – Magnetic local time in hours
em (float or int) – The time-integrated Newell Coupling Function, as described in Equation 2 of [11] (default=0)
bnd (str) – Boundary to calculate, expects one of ‘ocb’ or ‘eab’ (default=’ocb’)
hemi (int) – Sign denoting the hemisphere, 1 for North and -1 for South (default=1)
obs_colat (array-like) – CHAMP, or other, boundary observation co-latitudes (default=None)
obs_mlt (array-like) – MLT of the observed boundary locations (default=None)
- Returns:
bnd_lat – Location of the boundary in degrees away from the pole in apex geomagnetic coordinates for the specified magnetic local times.
- Return type:
float or array-like
References
- ocbpy.boundaries.models.ch_aurora_2014_coefficient_values(em, bnd, hemi)[source]
Retrive the CH-Aurora-2014 auroral boundary coefficients.
- Parameters:
- Returns:
semix (float) – Semi-axis along the x-plane
semiy (float) – Semi-axis along the y-plane
x0 (float) – x-coordinate of the ellipse center
y0 (float) – y-coordinate of the ellipse center
phi0 (float) – Orientation angle of the ellipse
References
Tables 2 and 3 in [11]
- ocbpy.boundaries.models.ch_aurora_2014_radius(ang_lt, semix, semiy, x0, y0, phi0, del_rad=0.0)[source]
Calculate the CH-Aurora-2014 ellipse radii at the desired times.
- Parameters:
ang_lt (float or array-like) – Angular measure of MLT in radians
semix (float) – Semi-axis along the x-plane in degrees
semiy (float) – Semi-axis along the y-plane in degrees
x0 (float) – x-coordinate of the ellipse center in degrees
y0 (float) – y-coordinate of the ellipse center in degrees
phi0 (float) – Orientation angle of the ellipse in radians
del_rad (float) – Assimilative adjustment to the radius in degrees
- Returns:
rad – Radius of the ellipse at the desired MLT in degrees
- Return type:
float or array-like
References
Equations 3 and 4 in [11]
- ocbpy.boundaries.models.circle_fit(mlt, colat)[source]
Fit a circle to boundary estimates.
- Parameters:
mlt (array-like) – Array of MLT values in hours for the boundary locations
colat (array-like) – Array of magnetic co-latitude values in degrees denoting the boundary locations, paired to the mlt inputs
- Returns:
phi_cent (float) – MLT location of the circle centers in radians
r_cent (float) – Co-latitude of the circle center in degrees
radius (float) – Radius of the circle in degrees latitude
r_err (float) – RMS error of the fit
- Raises:
ValueError – If the inputs are the wrong shape
References
Section D in [10]
- ocbpy.boundaries.models.gussenhoven_colatitudes(kp, mlt_inds=None, closest=False)[source]
Calculate the Gussenhoven EAB model co-latitude values.
- Parameters:
kp (float or int) – Decimal Kp geomagnetic index, ranges from 0 to 9 with “+” translating to plus one third and “-” translating to minus one third
mlt_inds (array-like or NoneType) – MLT hourly bins at which boundary locations will be returned or None to return all available values (default=None)
closest (bool) – If False, will return NaN for the request for an MLT value that does not exist. If True, will find the closest binned value and return that instead (default=False)
- Returns:
colats (array-like) – Co-latitude values in degrees away from the pole for the requested MLT bins
mlts (array-like) – MLT bin values for each co-latitude
References
- ocbpy.boundaries.models.gussenhoven_equatorward_auroral_boundary(mlt, kp=0, model='circle')[source]
Calculate the location of the diffuse EAB.
- Parameters:
mlt (float or array-like) – Magnetic local time in hours
kp (float or int) – Decimal Kp geomagnetic index, ranges from 0 to 9 with “+” translating to plus one third and “-” translating to minus one third (default=0)
model (str) – Model flavour, with ‘binned’ using the value from the available hourly solutions or NaN if that hour is absent, ‘closest’ to use the closest hourly bin, or ‘circle’ to use the value of the circle fit to the available hourly solutions (default=’circle’)
- Returns:
bnd_lat – Location of the boundary in degrees away from the pole in corrected geomagnetic coordinates for the specified magnetic local times.
- Return type:
float or array-like
- Raises:
ValueError – If an unknown model method is requested.
References
- ocbpy.boundaries.models.starkov_auroral_boundary(mlt, al=-1, bnd='ocb')[source]
Calculate the location of the Starkov auroral boundaries.
- Parameters:
- Returns:
bnd_lat – Location of the boundary in degrees away from the pole in corrected geomagnetic coordinates for the specified magnetic local times.
- Return type:
float or array-like
References