Skip to content
/ GRITI Public

GRITI: General Resource for Ionospheric Transient Investigations

License

Notifications You must be signed in to change notification settings

dinsmoro/GRITI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

GRITI: General Resource for Ionospheric Transient Investigations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages