Giter VIP home page Giter VIP logo

poddensity's Introduction

University Logo

POD Density Inversion: A Near-Real Time Approach for Thermospheric Density Retrieval

This repository contains the supporting code for the paper "Near-Real Time Thermospheric Density Retrieval 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.
  • Branch Structure:
    • The main branch includes the complete codebase and precomputed density results for the satellites studied: CHAMP, TerraSAR-X, and GRACE-FO-A. Also contains with scripts to reproduce all results in the paper.
    • The lite branch mirrors the main branch but excludes the SWindices directory (~2 GB of space weather index data), which is primarily used for index plotting.
  • 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.GFOAccelerometryBenchmark
python -m source.DensityInversion.Plotting.PODDensityPlotting

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-Derived Densities to Model 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

Time Series Benchmarking of All Studied Methods Against Accelerometer Data

Amplitude Spectral Density of Accelerometer Data for Each Method

Mean Absolute Percentage Error and Root Mean Square Error of 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 and submit a pull request, or raise an issue with a description of your proposal or question. I will review and respond to all submissions and inquiries as promptly as possible.

Thank you for your interest and support!

poddensity's People

Contributors

charlesplusc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.