Flight

OTSO.flight
flight(latitudes: Sequence[float], longitudes: Sequence[float], dates: Sequence, altitudes: Sequence[float], cutoff_comp: str = 'Vertical', solar_wind: SolarWindParams = {}, geomagnetic: GeomagneticParams = {}, tsyganenko: TsyganenkoParams = {}, magfield_params: MagFieldParams = {}, integration_params: IntegrationParams = {}, particle_params: ParticleParams = {}, rigidity_params: RigidityParams = {}, coordinate_params: CoordinateParams = {}, computation_params: ComputationParams = {}, data_retrieval_params: DataRetrievalParams = {}, custom_field_params: CustomFieldParams = {}, asymptotic_params: AsymptoticParams = {}, *args, **kwargs)
Compute cosmic-ray cutoff rigidities along a flight path using OTSO.
Calculates cutoff rigidities at specified time-varying locations, typically used for aircraft or satellite trajectory analysis. Supports automatic space weather data retrieval based on flight times.
Parameters:
-
latitudes(list) –Latitude coordinates along flight path.
-
longitudes(list) –Longitude coordinates along flight path.
-
dates(list) –Date/time stamps for each location (datetime objects).
-
altitudes(list) –Altitude coordinates in km along flight path.
-
cutoff_comp(str, default:'Vertical') –Cutoff computation method ("Vertical", "Custom").
-
magfield_params(MagFieldParams, default:{}) –Magnetic field models.
Available keys:
internalmag(str, default="IGRF"): "NONE", "IGRF", "Dipole", "Custom Gauss"externalmag(str, default="TSY89c"): "NONE", "TSY89c", "TSY01", "TSY15B", etc.boberg(bool, default=False): Enable Boberg extensionbobergtype(str, default="EXTENSION"): Boberg extension typemagnetopause(str, default="Kobel"): "NONE", "Kobel", "Sibeck", "Lin", "Sphere"spheresize(float, default=25): Spherical boundary radius (Re)AdaptiveExternalModel(bool, default=False): Auto-select external model
-
rigidity_params(RigidityParams, default:{}) –Rigidity scanning.
Available keys:
startrigidity(float, default=20): Initial rigidity (GV)endrigidity(float, default=0): Final rigidity (GV)rigiditystep(float, default=0.01): Step size (GV)rigidityscan(str, default="ON"): Enable scanning ("ON"/"OFF")
-
solar_wind(SolarWindParams, default:{}) –Solar wind parameters (optional for auto-retrieval).
All values should be provided as lists of floats, one per flight point.
Available keys:
vx(list of float, default=-500): Solar wind velocity x-component (km/s)vy(list of float, default=0): Solar wind velocity y-component (km/s)vz(list of float, default=0): Solar wind velocity z-component (km/s)bx(list of float, default=0): IMF x-component (nT)by(list of float, default=5): IMF y-component (nT)bz(list of float, default=5): IMF z-component (nT)by_avg(list of float, default=0): Averaged IMF By (nT)bz_avg(list of float, default=0): Averaged IMF Bz (nT)density(list of float, default=1): Solar wind density (particles/cm³)pdyn(list of float, default=0): Solar wind dynamic pressure (nPa)
-
geomagnetic(GeomagneticParams, default:{}) –Geomagnetic indices (optional for auto-retrieval).
Available keys:
Dst(float, default=0): Dst index (nT)kp(float, default=0): Kp index (0-9)n_index(float, default=0): Newell coupling functionb_index(float, default=0): Boynton coupling functionsym_h_corrected(float, default=0): Corrected SYM-H index (nT)
-
tsyganenko(TsyganenkoParams, default:{}) –Tsyganenko model coefficients (optional for auto-retrieval).
Available keys:
G1(float, default=0): Tsyganenko G1 coefficientG2(float, default=0): Tsyganenko G2 coefficientG3(float, default=0): Tsyganenko G3 coefficientW1(float, default=0): Tsyganenko W1 coefficientW2(float, default=0): Tsyganenko W2 coefficientW3(float, default=0): Tsyganenenko W3 coefficientW4(float, default=0): Tsyganenko W4 coefficientW5(float, default=0): Tsyganenko W5 coefficientW6(float, default=0): Tsyganenko W6 coefficient
-
integration_params(IntegrationParams, default:{}) –Integration settings.
Available keys:
intmodel(str, default="Boris"): "Boris", "4RK", "Vay", "HC"gyropercent(float, default=15): Gyration period percentageminaltitude(float, default=20): Minimum altitude (GDZ = km or other = Re)maxdistance(float, default=100): Maximum distance (Re)maxtime(float, default=0): Maximum timemintrapdist(float, default=0): Minimum trapping distancestartaltitude(float, default=20): Starting altitude (GDZ = km or other = Re)betaerror(float, default=0.001): Maximum allowed beta error for integration steps %totalbetacheck(bool, default=False): Enable cumulative beta check during integrationadaptivestep(bool, default=True): Enable adaptive time stepsmaxsteps(int, default=None): Maximum number of integration steps
-
particle_params(ParticleParams, default:{}) –Particle settings.
Available keys:
Anum(int, default=1): Atomic number (0=electron, 1=proton, 2=alpha)anti(str, default="YES"): YES = anti-particle, NO = particlezenith(float, default=0): Zenith angle for Custom cutoff computationazimuth(float, default=0): Azimuth angle for Custom cutoff computation
-
coordinate_params(CoordinateParams, default:{}) –Coordinate systems.
Available keys:
coordsystem(str, default="GEO"): Coordinate system used for calculationsinputcoord(str, default="GDZ"): Input coordinate system
-
asymptotic_params(AsymptoticParams, default:{}) –Asymptotic computation parameters.
Available keys:
unit(str, default="GeV"): Rigidity unit ("GeV", "GV")asymptotic(str, default="NO"): Enable asymptotic cone computation ("YES"/"NO")asymlevels(list, default=[0.1,0.3,0.5,1,2,3,4,5,6,7,8,9,10,15,20,30,50,70,100,300,500,700,1000]): Rigidity levels for asymptotic computation
-
computation_params(ComputationParams, default:{}) –Computation settings.
Available keys:
corenum(int, default=None): Number of CPU cores for multicore processingVerbose(bool, default=True): Enable verbose outputdelim(str, default=";"): Delimiter for asymptotic output formatting
-
data_retrieval_params(DataRetrievalParams, default:{}) –Data retrieval.
Available keys:
serverdata(str, default="OFF"): Server data retrieval from OMNIlivedata(str, default="OFF"): real-time data retrieval from NOAA
-
custom_field_params(CustomFieldParams, default:{}) –Custom fields.
Available keys:
g(list, default=None): Gauss g coefficientsh(list, default=None): Gauss h coefficientsMHDfile(str, default=None): MHD simulation fileMHDcoordsys(str, default=None): MHD coordinate system
Returns:
-
list–[flight_dataframe, summary_text, input_dataframe] - flight_dataframe: Cutoff rigidities along flight path - summary_text: Input parameter summary - input_dataframe: Flight path input data
Examples:
import datetime
import OTSO
# Basic flight path analysis
lats = [60.0, 65.0, 70.0]
lons = [25.0, 20.0, 15.0]
alts = [35, 40, 45] # km
times = [datetime.datetime(2023, 6, 1, h) for h in [10, 11, 12]]
flight_result = OTSO.flight(lats, lons, times, alts,
computation_params={"corenum": 2})
# With automatic space weather data retrieval
flight_auto = OTSO.flight(lats, lons, times, alts,
data_retrieval_params={"serverdata": "ON"})
# Access the results
flight_df, metadata, input_df = flight_result