pymsis.calculate#
- pymsis.calculate(dates, lons, lats, alts, f107s=None, f107as=None, aps=None, *, options=None, version=2.1, **kwargs)#
Call MSIS to calculate the atmosphere at the provided input points.
Satellite Fly-Through Mode: If ndates is the same length as nlons, nlats, and nalts, then the input arrays are assumed to be aligned and no regridding is done. This is equivalent to a satellite fly-through, producing an output return shape of (ndates, 11).
Grid Mode: If the input arrays have different lengths the data will be expanded in a grid-like fashion broadcasting to a larger shape than the input arrays. This is equivalent to a full atmosphere simulation where you want to calculate the data at every grid point. The output shape will be 5D (ndates, nlons, nlats, nalts, 11), with potentially single element dimensions if you have a single date, lon, lat, or alt.
The output array can be indexed with the
Variable
enum for easier access.output_array[..., Variable.MASS_DENSITY]
returns the total mass density.- Parameters:
dates (ArrayLike) – Dates and times of interest
lons (ArrayLike) – Longitudes of interest
lats (ArrayLike) – Latitudes of interest
alts (ArrayLike) – Altitudes of interest
f107s (ArrayLike, optional) – Daily F10.7 of the previous day for the given date(s)
f107as (ArrayLike, optional) – F10.7 running 81-day average centered on the given date(s)
aps (ArrayLike, optional) –
Ap for the given date(s), (1-6 only used ifgeomagnetic_activity=-1
)(0) Daily Ap(1) 3 hr ap index for current time(2) 3 hr ap index for 3 hrs before current time(3) 3 hr ap index for 6 hrs before current time(4) 3 hr ap index for 9 hrs before current time(5) Average of eight 3 hr ap indices from 12 to 33 hrsprior to current time(6) Average of eight 3 hr ap indices from 36 to 57 hrsprior to current timeoptions (ArrayLike[25, float], optional) – A list of options (switches) to the model, if options is passed all keyword arguments specifying individual options will be ignored.
version (Number or string, default: 2.1) – MSIS version number, one of (0, 2.0, 2.1).
**kwargs (dict) – Single options for the switches can be defined through keyword arguments. For example, calculate(…, geomagnetic_activity=-1) will set the geomagnetic activity switch to -1 (storm-time ap mode).
f107 (float) – Account for F10.7 variations
time_independent (float) – Account for time variations
symmetrical_annual (float) – Account for symmetrical annual variations
symmetrical_semiannual (float) – Account for symmetrical semiannual variations
asymmetrical_annual (float) – Account for asymmetrical annual variations
asymmetrical_semiannual (float) – Account for asymmetrical semiannual variations
diurnal (float) – Account for diurnal variations
semidiurnal (float) – Account for semidiurnal variations
geomagnetic_activity (float) – Account for geomagnetic activity (1 = Daily Ap mode, -1 = Storm-time Ap mode)
all_ut_effects (float) – Account for all UT/longitudinal effects
longitudinal (float) – Account for longitudinal effects
mixed_ut_long (float) – Account for UT and mixed UT/longitudinal effects
mixed_ap_ut_long (float) – Account for mixed Ap, UT, and longitudinal effects
terdiurnal (float) – Account for terdiurnal variations
- Returns:
- The data calculated at each grid point:[Total mass density (kg/m3),N2 # density (m-3),O2 # density (m-3),O # density (m-3),He # density (m-3),H # density (m-3),Ar # density (m-3),N # density (m-3),Anomalous oxygen # density (m-3),NO # density (m-3),Temperature (K)]
- Return type:
ndarray (ndates, nlons, nlats, nalts, 11) or (ndates, 11)
Notes
The 10.7 cm radio flux is at the Sun-Earth distance, not the radio flux at 1 AU.
aps[1:] are only used when
geomagnetic_activity=-1
.