Coder Social home page Coder Social logo

griti's Introduction

GRITI: General Resource for Ionospheric Transient Investigations

About GRITI

GRITI is an open-source, Python 3-based analysis tool for ionospheric activity. For several data sources it supports data download, loading, and analysis while for other data sources it only covers data loading and analysis. It is designed for flexibility and expandability in adding new data sources and analysis methods.

Using GRITI

Everything in GRITI is launched from GRITI_main.py. The settings are from the beginning from the file to the line #!!!END OF SETTINGS!!!. The settings are grouped under data sources or analysis methods, if the analysis method spans multiple data sources. Data sources are loaded on run based on the analysis methods chosen in GRITI_main.py's settings.

In GRITI_main_config.ini you must set paths and relevant login info (if you don't plan on using a data source that needs login info, then you don't need to fill that login info in).

Supported Data Sources

Automatic Download

User Must Download from Source

  • Haystack ISR (incoherent scatter radar)
  • Canadian magnetometer network
    • Create a set of folders in your data directory like this and put the data in them: datafolder/Magnetometer//NRCan
  • SuperMAG Indices/Individual Stations
    • For indicies on the Indices page's "Download Indicies" tab you need to choose "Large Download Durations: (Full Year)" (set to the year you want), "Format: CSV", and check whatever you want included to be analysed. Create a set of folders in your data directory like this and put the CSV files in it: datafolder/SuperMAG/Indices
  • LISN's TEC dataset supports LISN's modified post-processed RINEX format

Not Fully Implemented

  • Pokerflat ISR (needs more methods for data processing to achieve higher output quality)

Selection of Supported Analysis Methods

  • Keograms [delta-vTEC, AMPERE-derived ionospheric model estimates, and Canadian magnetometer network]
  • Radius-around-a-point averaging [delta-vTEC]
  • Movies & snapshots of movies [delta-vTEC, AMPERE-derived ionospheric model estimates]
  • RTI (range-time-intensity) [ISR]
  • FFT, Lomb-Scargle, & CPSD (cross-power spectral density) [all]
  • Walking FFT [delta-vTEC, AMPERE-derived ionospheric model estimates, NASA OMNI data]
  • Sliding correlation, walking-sliding correlation

Installation

To get the code from this repository, clone it using Git or click the green Code button at the top and "Download ZIP". All of the functions need to be in the same directory as GRITI_main.py but the data sources folder and other output folders can be set elsewhere in GRITI_main_settings.ini.

GRITI has dependencies on the following Python 3 packages: NumPy, Matplotlib, Scipy, h5py, netCDF4, Numba, Cartopy, Joblib, aacgmv2, timezonefinder, pytz, pandas, and html2text.

Anaconda, a Python 3 distribution that includes many useful scientific packages, comes with many of those needed packages automatically. It doesn't come with:

  • aacgmv2 install with pip using pip install aacgmv2. On Windows you'll likely need to install Visual Studio Build Tools to get it to install; errors will tell you what to get.
  • timezonefinder install with conda using conda install -c conda-forge timezonefinder.
  • html2text install with conda using conda install -c conda-forge html2text.

Note: On Windows, use Anaconda Prompt to input conda commands.

Anaconda comes with Spyder, a Python IDE, that is a very easy place to run GRITI from. Open GRITI_main.py in Spyder, set the relevant settings, and hit the green "Run File" arrow to use GRITI quickly.

GRITI has been tested with Python 3.10, so later versions should work and earlier Python 3 versions may work. Python 2 probably won't work.

GRITI has only been tested with Windows 10, and paths may not be properly be setup to work in all instances (among other things, I'm sure). Raise an issue on this repo to let me know if any issues arise from other OSes.

GRITI is still under some construction (like the Basemap to Cartopy conversion) and some functions may not work as-is. Raise an issue on this repo to let me know about it.

Find any issue? Raise that issue!

Contributing

Follow this code of conduct and raise an issue or make a pull request with the new addition/fix. Make sure the new feature/fix is commented!

GRITI is simple as far as a software suite goes, and GRITI_main.py ideally should only have function calls. (I develop in GRITI_main.py before packaging as a function, so GRITI_main.py isn't only functions at the moment - but I wish it was!)

GRITI Literature

Cite this code with

Dinsmore, R., Mathews, J.D., Urbina, J., 2021. General resource for ionospheric transient investigations (GRITI): An open-source code developed in support of the Dinsmore et al. (2021) results. MethodsX 8, 101456. https://doi.org/10.1016/j.mex.2021.101456

Papers that have used GRITI

Dinsmore, R., Mathews, J.D., Coster, A., Robinson, R.M., Sarkhel, S., Erickson, P.J., Urbina, J., 2021. Multi-instrument observations of SCIPS: 1. ISR and GPS TEC results. Journal of Atmospheric and Solar-Terrestrial Physics 213, 105515. https://doi.org/10.1016/j.jastp.2020.105515

Bostan, S.M., Urbina, J.V., Mathews, J.D., Dinsmore, R.L., Robinson, R.M., 2023. Multi-instrument study of a spread-F event at Arecibo linked to solar wind variations. Journal of Atmospheric and Solar-Terrestrial Physics 249, 106099. https://doi.org/10.1016/j.jastp.2023.106099


GRITI was made by Ross Dinsmore, who was supported by the US National Science Foundation under Grant No. AGS-1241407 to The Pennsylvania State University for updates up to the "Multi-instrument observations of SCIPS: 1." paper.

griti's People

Contributors

dinsmoro 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.