Commit ce42be55 authored by Leonie Pick's avatar Leonie Pick

Initial push.

parents
# Don't track the following folders
Dump/
# Don't track the following files
Input.nc
# Don't track all files with these endings:
*.pyc
This diff is collapsed.
# General
import warnings
warnings.filterwarnings('ignore')
import xarray as xr
import numpy as np
import pandas as pd
import datetime as dt
import itertools
import time as time
# IPython
from IPython.display import display
# Matplotlib
import matplotlib as mpl
mpl.use('TkAgg')
import matplotlib.pyplot as plt
plt.style.use('bmh')
import matplotlib.gridspec as gridspec
# Scipy
from scipy import interp
from scipy.signal import butter, filtfilt
# Sklearn
import sklearn as sk
from sklearn import metrics, preprocessing
from sklearn.feature_selection import RFE
from sklearn.model_selection import StratifiedKFold, GridSearchCV, cross_validate
from sklearn.pipeline import Pipeline
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neural_network import MLPClassifier
This diff is collapsed.
This diff is collapsed.
# An automatic classifier for geomagnetic storm drivers based on machine learning techniques
### Author
Leonie Pick, GFZ German Research Centre for Geoscieces, leonie.pick@gfz-potsdam.de
### What is ClassifyStorms?
ClassifyStorms is a software package that performs a classification of geomagnetic storms according to their interplanetary driving
mechanisms based exclusively on magnetometer measurements from ground.<br>
In the present version two such driver classes are considered. Class 0 holds storms driven by Corotating or Stream Interaction
Regions (C/SIRs) and Class 1 holds storms driven by Interplanetary Coronal Mass Ejections (ICMEs). The classification task is
executed by a supervised binary logistic regression model in the framework of python's scikit-learn.
### How to run ClassifyStorms?
Download the GitLab project 'ClassifyStorms' from https://gitext.gfz-potsdam.de/lpick/ClassifyStorms by clicking on the 'Download'
button. Additionally, download the directory 'Dump/' and the file 'Input.nc' from ftp://ftp.gfz-potsdam.de/home/mag/pick/ClassifyStorms/ and
place both into the extracted directory ClassifyStorms-master. Navigate to ClassifyStorms-master and start the jupyter
server (https://jupyter.org/) by typing 'jupyter notebook' into the command line. This will open the jupyter 'Home' in your web
browser. Select ClassifyStorms.ipynb from the list and run the notebook by clicking 'Run'.
### Get involved!
+ Fork the GitLab project "ClassifyStorms" from https://gitext.gfz-potsdam.de/lpick/ClassifyStorms by clicking on the 'Fork' button.
+ Clone the forked project to a local directory.
+ Create a new development branch and apply your changes to it.
+ Commit your changes and push them to your forked project at GitLab. If you are done, merge the development branch into the master branch.
+ Should you decide to share your work, create a merge request for your forked project's master branch (source) and the original
project's master branch (destination).
### References
+ This software is a supplement to Pick et al., GRL, 2019, submitted.
+ Details on the HMC index are given in Pick et al., JGR Space Physics, 2019 ( http://doi.org/10.1029/2018JA026185,<br>http://doi.org/10.5880/GFZ.2.3.2018.006 ).
### License
This software is distributed under the GNU General Public Licence with Copyleft.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment