Skip to main content

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.


Features

  • Predict electron density (Ne) for specific geospatial and temporal conditions.
  • Clamp 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:

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}")

Inputs and Parameters

Clamping Input Values

Input parameters (lat, lon, doy, alt, slt) are clamped to the boundaries of the training data. These boundaries are defined as follows:

Parameter Min Value Max Value
lat 37.5 49.9
lon -85.7 -76.1
alt 94.6 km 500 km
slt 0.0 hrs 24 hrs

predict_ne Function

Parameter Type Description
lat float Latitude of the input location (degrees). Clamped to [37.5, 49.9].
lon float Longitude of the input location (degrees). Clamped to [-85.7, -76.1].
doy int Day of year (1-365).
alt float Altitude in kilometers. Clamped to [94.6, 500].
slt float Solar local time (0-24 hours). Clamped to [0.0, 24].
year int Year to lookup geophysical indices in the dataset.
master_geo_ds xarray.Dataset Dataset containing geophysical indices (default: master_geo_ds).
model XGBRegressor Pre-trained XGBoost model for predictions (default: optimized_xgb).
scaler StandardScaler Scaler used for feature normalization (default: scaler_large).

This function also retrieves geophysical indices (hp30, ap30, f107, kp, fism2) from the provided dataset for the specified year and day of year (doy).


query_model Function

Parameter Type Description
lat float Latitude of the input location (degrees). Clamped to [37.5, 49.9].
lon float Longitude of the input location (degrees). Clamped to [-85.7, -76.1].
doy int Day of year (1-365).
alt float Altitude in kilometers. Clamped to [94.6, 500].
slt float Solar local time (0-24 hours). Clamped to [0.0, 24].
hp30 float Precomputed geophysical index.
ap30 float Precomputed geophysical index.
f107 float Precomputed geophysical index.
kp float Precomputed geophysical index.
fism2 float Precomputed geophysical index.
model XGBRegressor Pre-trained XGBoost model for predictions (default: optimized_xgb).
scaler StandardScaler Scaler used for feature normalization (default: scaler_large).

predict_ne requires geophysical indices as input, allowing for greater control over predictions in scenarios where geophysical data is already available.


Requirements

  • Python 3.7+
  • Dependencies:
    • xgboost
    • scikit-learn
    • numpy
    • pandas
    • xarray
    • joblib
    • netcdf4

License

This project is licensed under the MIT License - see the LICENSE file for details.


Author


Acknowledgments

  • Thank you to Sevag Derghazarian for his continuous support and consultation on this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

misa_xgmodel-0.1.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

MISA_XGModel-0.1.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file misa_xgmodel-0.1.0.tar.gz.

File metadata

  • Download URL: misa_xgmodel-0.1.0.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for misa_xgmodel-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7823fc8bf134298b8fcddb57f576610de6ed5bb0237c2be0776611d36520faa2
MD5 249e456063ff4b5c7ffb44f6ffd76cc8
BLAKE2b-256 84d56c443a377417756a5137bb3536ba39849e27e2f9626c0f43e5e8ffbca2d1

See more details on using hashes here.

File details

Details for the file MISA_XGModel-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: MISA_XGModel-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.4

File hashes

Hashes for MISA_XGModel-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 56bbb1a3726556a9634bc2be4f502060e6d524e32294089bddffd8bde92f91ff
MD5 589f80b97b5147ceed54fb102398bb28
BLAKE2b-256 a9ed469f6a08626f2d47fa03f65204cf19903d79084c252d051a3bafc41bddac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page