Magfield
OTSO.magfield
magfield(Locations: Sequence[float], solar_wind: SolarWindParams = {}, geomagnetic: GeomagneticParams = {}, tsyganenko: TsyganenkoParams = {}, datetime_params: DateTimeParams = {}, magfield_params: MagFieldParams = {}, coordinate_params: CoordinateParams = {}, computation_params: ComputationParams = {}, data_retrieval_params: DataRetrievalParams = {}, custom_field_params: CustomFieldParams = {}, *args, **kwargs)
Compute magnetic field vectors at specified locations using OTSO models.
Evaluates the total magnetic field (internal + external) at given locations using various geomagnetic field models.
Parameters:
-
Locations(list) –Locations as [[x, y, z]] in specified coordinate system.
-
datetime_params(DateTimeParams, default:{}) –Date/time parameters.
Available keys:
year(int, default=2024): Year (e.g., 2023)month(int, default=1): Month (1–12)day(int, default=1): Day (1–31)hour(int, default=12): Hour (0–23)minute(int, default=0): Minute (0–59)second(int, default=0): Second (0–59)
-
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 type
-
solar_wind(SolarWindParams, default:{}) –Solar wind parameters (optional for auto-retrieval).
Available keys:
vx(float, default=-500): Solar wind velocity x-component (km/s)vy(float, default=0): Solar wind velocity y-component (km/s)vz(float, default=0): Solar wind velocity z-component (km/s)bx(float, default=0): IMF x-component (nT)by(float, default=5): IMF y-component (nT)bz(float, default=5): IMF z-component (nT)by_avg(float, default=0): Averaged IMF By (nT)bz_avg(float, default=0): Averaged IMF Bz (nT)density(float, default=1): Solar wind density (particles/cm³)pdyn(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
-
coordinate_params(CoordinateParams, default:{}) –Coordinate systems.
Available keys:
inputcoord(str, default="GDZ"): Input coordinate systemcoordout(str, default="GSM"): Coordinate system used for calculations
-
computation_params(ComputationParams, default:{}) –Computation settings.
Available keys:
corenum(int, default=None): Number of CPU cores for multicore processingVerbose(bool, default=True): Enable verbose output
-
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–[magfield_dataframe, summary_text] - magfield_dataframe: Magnetic field vectors at input locations - summary_text: Input parameter summary
Examples:
import OTSO
# Basic field evaluation
field_result = OTSO.magfield([[10, 10, 10]],
coordinate_params={"coordsystem": "GEO"},
computation_params={"corenum": 1})
# With specific field models
field_data = OTSO.magfield([[5, 0, 0]],
datetime_params={"year": 2023, "month": 6},
magfield_params={"externalmag": "TSY01", "internalmag": "IGRF"})
# Access the results
field_df, metadata = field_result