Skip to content

Python tools for estimating thermospheric density using near-real-time precise spacecraft orbit data

Notifications You must be signed in to change notification settings

CharlesPlusC/PODDensity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

University Logo

Evaluating Near-Real Time Thermospheric Density Retrieval Methods from Precise Low Earth Orbit Spacecraft Ephemerides During Geomagnetic Storms

This repository contains the supporting code for the paper "Evaluating Near-Real Time Thermospheric Density Retrieval Methods from Precise Low Earth Orbit Spacecraft Ephemerides During Geomagnetic Storms" by Charles Constant, Santosh Bhattarai, Indigo Brownhall, Anasuya Aruliah, and Marek Zeibart (2024).
Report Issues · Request Features

Introduction

This repository provides a suite of tools for the processing and analysis of precise ephemeris data to derive thermospheric densities during geomagnetic storms.

Key Features

  • Data Acquisition: Automated scripts to fetch SP3 orbit files from the GFZ Potsdam FTP server, convert them into continuous ephemerides, and transform the data to the inertial frame (J2000/EME2000). See Get_SP3_from_GFZ_FTP.py for implementation details.
  • Density Inversion: Core routines to perform density inversion from satellite ephemerides, as detailed in source/DensityInversion/PODDensity.py and source/DensityInversion/EDRDensity.py.
  • Batch Processing: The StormTimeDensity.py script enables batch processing of multiple geomagnetic storms, facilitating density inversion on compute clusters.
  • Space Weather Indices: Scripts for identifying and categorizing geomagnetic storms based on space weather indices are available in SWIndices.py, which includes methods to process data for the entire operational lifetime of each satellite.

Reproducing the Paper's Results

To replicate the figures and results presented in the paper, execute the following commands from the root directory:

python -m source.DensityInversion.Plotting.{}.py

where {} is the name of the script to run. For example, to generate the density inversion plots comparing all methods on the same storm, run:

python -m source.DensityInversion.Plotting.AllMethods1Storm.py

Outputs

This repository allows the reproduction of all figures included in the paper, along with additional plots that provide further insights. Examples of the generated outputs are illustrated below:

Comparison of POD-Accelerometry, EDR and Accelerometer Derived Densities Across All Available Storms

Relative POD Density for Each Storm as a Function of Argument Latitude and Time

Time Series of POD-Derived Densities and Model Densities for a Single Storm

Histogram Comparing MAPE of each method against accelerometer derived densities

Amplitude Spectral Density of Accelerometer Data for Each Method

System Overview

The system is designed for deployment on a compute cluster and is structured as follows:

Environment Setup

To set up the environment required to run the code, follow these steps:

  1. Clone the repository:

    git clone https://github.com/CharlesPlusC/PODDensity.git
    cd PODDensity
  2. Install the required packages using the provided environment file:

    conda env create -f pod_density_env.yml
  3. Activate the environment:

    conda activate pod_density_env
  4. Run the scripts as described above to reproduce the results.

Invitation to Collaborate

We welcome and encourage contributions and collaborations from researchers, engineers, and enthusiasts who are interested in advancing the fields of space weather modeling and satellite operations. If you would like to contribute or collaborate, please feel free to fork the repository or raise an issue with a description of your proposal or question. I will review and respond to all inquiries as promptly as possible.

Thank you for your interest and support!

About

Python tools for estimating thermospheric density using near-real-time precise spacecraft orbit data

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages