A Python library for predicting electron density using XGBoost
Project description
MISA_XGModel
A Python library for predicting electron density using XGBoost.
Overview
This library provides tools to predict electron density (Ne) using a machine-learning model based on XGBoost. It supports querying predictions for specific latitude, longitude, day of year (DOY), altitude, and solar local time (SLT), while leveraging pre-computed geophysical indices. The library also supports efficient vectorized predictions for multiple inputs.
Features
- Predict electron density (
Ne) for specific geospatial and temporal conditions. - Efficient batch predictions using vectorized input arrays for higher performance.
- Clamp or wrap input values to the bounds of the training dataset for robustness.
- Supports querying geophysical indices from provided datasets.
- Modular design for integrating geophysical models in Python applications.
Installation
You can install this package via pip:
pip install MISA_XGModel
Usage
Quickstart
Here’s how you can use the library to predict electron density:
Single Prediction
from MISA_XGModel import predict_ne, query_model
# Predict Ne with dataset lookup for geophysical indices
predicted_ne = predict_ne(
lat=42.0, lon=-71.0, doy=99, alt=150.0, slt=12.0, year=2024
)
print(f"Predicted Ne: {predicted_ne:.2e}")
# Predict Ne with precomputed geophysical indices
predicted_ne = query_model(
lat=42.0, lon=-71.0, doy=99, alt=150.0, slt=12.0,
hp30=2, ap30=7, f107=209, kp=2.3, fism2=0.0007678
)
print(f"Predicted Ne: {predicted_ne:.2e}")
Batch Predictions
To predict multiple inputs efficiently, you can pass arrays to predict_ne or query_model:
import numpy as np
# Vectorized inputs
lats = np.array([42.0, 41.5, 40.0])
lons = np.array([-71.0, -72.0, -73.0])
doys = np.array([99, 100, 101])
alts = np.array([150.0, 200.0, 250.0])
slts = np.array([12.0, 14.0, 16.0])
year = 2024
# Batch predict Ne with dataset lookup for geophysical indices
predicted_ne = predict_ne(
lat=lats, lon=lons, doy=doys, alt=alts, slt=slts, year=year
)
print(f"Predicted Ne: {predicted_ne}")
# Batch predict Ne with precomputed geophysical indices
predicted_ne = query_model(
lat=lats, lon=lons, doy=doys, alt=alts, slt=slts,
hp30=np.array([2, 3, 4]),
ap30=np.array([7, 8, 9]),
f107=np.array([209, 210, 211]),
kp=np.array([2.3, 2.5, 2.7]),
fism2=np.array([0.0007678, 0.00078, 0.00079])
)
print(f"Predicted Ne: {predicted_ne}")
Inputs and Parameters
Clamping and Wrapping Input Values
Input parameters (lat, lon, alt, slt) are clamped to the boundaries of the training data, while doy is wrapped to stay within [0, 364]. These boundaries are defined as follows:
| Parameter | Min Value | Max Value | Notes |
|---|---|---|---|
lat |
37.5 | 49.9 | Clamped to range |
lon |
-85.7 | -76.1 | Clamped to range |
alt |
94.6 km | 500 km | Clamped to range |
slt |
0.0 hrs | 24 hrs | Clamped to range |
doy |
0 | 364 | Wrapped (e.g., 365 → 0, -1 → 364) |
Requirements
- Python 3.7+
- Dependencies:
xgboostscikit-learnnumpypandasxarrayjoblibnetcdf4
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
- Mateo Cardona Serrano (them)
- GitHub Profile
Acknowledgments
- Thank you to Sevag Derghazarian for his continuous support and consultation on this project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file misa_xgmodel-0.2.0.tar.gz.
File metadata
- Download URL: misa_xgmodel-0.2.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4bd8f39e2480dd66ea7a3ab47d93a3523a42a07804912971cdc436a8ba1cf4a
|
|
| MD5 |
11c2cc2f0ce5bab52e6ef41af76217a8
|
|
| BLAKE2b-256 |
46618c9fe1513f47359dc0504163b42c382cdf55c24bb82e09e4e4ebc696258f
|
File details
Details for the file MISA_XGModel-0.2.0-py3-none-any.whl.
File metadata
- Download URL: MISA_XGModel-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a09dd2e6adc599db941f458a5c722e1c315ee28b36f515ef9e65d4822d51af7c
|
|
| MD5 |
fe394d4d4ea40a2ecbba374c8c07e194
|
|
| BLAKE2b-256 |
193d1b521d4ae684c83c6b9cf7f14a18b5fde902f68221c71c9a9e33607bad54
|