spacepy.LANLstar¶
Lstar and Lmax calculation using artificial neural network (ANN) technique.
Authors: Steve Morley, Josef Koller, Yiqun Yu, Aaron Hendry Contact: smorley@lanl.gov, yiqunyu17@gmail.com
Copyright 2012 Los Alamos National Security, LLC.
Functions
|
Calculate last closed drift shell (Lmax) |
|
Calculate Lstar |
|
Function to add pitch angle to input dictionary from, e.g., omni module |
- spacepy.LANLstar.LANLmax(inputdict, extMag)[source]¶
Calculate last closed drift shell (Lmax)
Based on the L* artificial neural network (ANN) trained from different magnetospheric field models.
- Parameters:
- extMaglist of string(s)
containing one or more of the following external Magnetic field models: ‘OPDYN’, ‘OPQUIET’, ‘T89’, ‘T96’, ‘T01QUIET’, ‘T01STORM’, ‘T05’
- inputdictdictionary
containing the following keys, each entry is a list or array. Note the keys for the above models are different.
- – For OPDYN:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘dens’, ‘velo’, ‘BzIMF’, ‘PA’]
- – For OPQUIET:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘dens’, ‘velo’, ‘BzIMF’, ‘PA’]
- – For T89:
[‘Year’, ‘DOY’, ‘Hr’, ‘Kp’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘PA’]
- – For T96:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’,’PA’]
- – For T01QUIET:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘G1’, ‘G2’,’PA’]
- – For T01STORM:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘G2’, ‘G3’, ‘PA’]
- – For T05:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘W1’,’W2’,’W3’,’W4’,’W5’,’W6’, ‘PA’]
Dictionaries with numpy vectors are allowed.
- Returns:
- outdictionary
Lmax array for each key which corresponds to the specified magnetic field model.
Examples
>>> import spacepy.LANLstar as LS >>> inputdict = {} >>> inputdict['Kp'] = [2.7 ] # Kp index >>> inputdict['Dst'] = [7.7777 ] # Dst index (nT) >>> inputdict['dens'] = [4.1011 ] # solar wind density (/cc) >>> inputdict['velo'] = [400.1011 ] # solar wind velocity (km/s) >>> inputdict['Pdyn'] = [4.1011 ] # solar wind dynamic pressure (nPa) >>> inputdict['ByIMF'] = [3.7244 ] # GSM y component of IMF magnetic field (nT) >>> inputdict['BzIMF'] = [-0.1266 ] # GSM z component of IMF magnetic field (nT) >>> inputdict['G1'] = [1.029666 ] # as defined in Tsganenko 2003 >>> inputdict['G2'] = [0.549334 ] >>> inputdict['G3'] = [0.813999 ] >>> inputdict['W1'] = [0.122444 ] # as defined in Tsyganenko and Sitnov 2005 >>> inputdict['W2'] = [0.2514 ] >>> inputdict['W3'] = [0.0892 ] >>> inputdict['W4'] = [0.0478 ] >>> inputdict['W5'] = [0.2258 ] >>> inputdict['W6'] = [1.0461 ] >>> # now add date >>> inputdict['Year'] = [1996 ] >>> inputdict['DOY'] = [6 ] >>> inputdict['Hr'] = [1.2444 ] >>> # and pitch angle, which doesn't come if taking params from OMNI >>> inputdict['PA'] = [57.3874 ] # pitch angle [deg] >>> # and then call the neural network >>> LS.LANLmax(inputdict, ['OPDYN','OPQUIET','T01QUIET','T01STORM','T89','T96','T05']) {'OPDYN': array([10.6278]), 'OPQUIET': array([9.3352]), 'T01QUIET': array([10.0538]), 'T01STORM': array([9.9300]), 'T89': array([8.2888]), 'T96': array([9.2410]), 'T05': array([9.9295])}
- spacepy.LANLstar.LANLstar(inputdict, extMag)[source]¶
Calculate Lstar
Based on the L* artificial neural network (ANN) trained from different magnetospheric field models.
- Parameters:
- extMaglist of string(s)
containing one or more of the following external magnetic field models: ‘OPDYN’, ‘OPQUIET’, ‘T89’, ‘T96’, ‘T01QUIET’, ‘T01STORM’, ‘T05’
- inputdictdictionary
containing the following keys, each entry is a list or array. Note the keys for the above models are different.
—For OPDYN: [‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘dens’, ‘velo’, ‘BzIMF’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
- – For OPQUIET:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘dens’, ‘velo’, ‘BzIMF’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
—For T89: [‘Year’, ‘DOY’, ‘Hr’, ‘Kp’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
- – For T96:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
—For T01QUIET: [‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘G1’, ‘G2’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
- – For T01STORM:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘G2’, ‘G3’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
—For T05: [‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘W1’,’W2’,’W3’,’W4’,’W5’,’W6’, ‘Lm’, ‘Bmirr’, ‘PA’, ‘rGSM’, ‘latGSM’, ‘lonGSM’]
- – For RAMSCB:
[‘Year’, ‘DOY’, ‘Hr’, ‘Dst’, ‘Pdyn’, ‘ByIMF’, ‘BzIMF’, ‘PA’, ‘SMx’,’SMy’,’SMz’]
Dictionaries with numpy vectors are allowed.
- Returns:
- outdictionary
Lstar array for each key which corresponds to the specified magnetic field model.
Examples
>>> import spacepy.LANLstar as LS >>> inputdict = {} >>> inputdict['Kp'] = [2.7 ] # Kp index >>> inputdict['Dst'] = [7.7777 ] # Dst index (nT) >>> inputdict['dens'] = [4.1011 ] # solar wind density (/cc) >>> inputdict['velo'] = [400.1011 ] # solar wind velocity (km/s) >>> inputdict['Pdyn'] = [4.1011 ] # solar wind dynamic pressure (nPa) >>> inputdict['ByIMF'] = [3.7244 ] # GSM y component of IMF magnetic field (nT) >>> inputdict['BzIMF'] = [-0.1266 ] # GSM z component of IMF magnetic field (nT) >>> inputdict['G1'] = [1.029666 ] # as defined in Tsganenko 2003 >>> inputdict['G2'] = [0.549334 ] >>> inputdict['G3'] = [0.813999 ] >>> inputdict['W1'] = [0.122444 ] # as defined in Tsyganenko and Sitnov 2005 >>> inputdict['W2'] = [0.2514 ] >>> inputdict['W3'] = [0.0892 ] >>> inputdict['W4'] = [0.0478 ] >>> inputdict['W5'] = [0.2258 ] >>> inputdict['W6'] = [1.0461 ] >>> # now add date >>> inputdict['Year'] = [1996 ] >>> inputdict['DOY'] = [6 ] >>> inputdict['Hr'] = [1.2444 ] >>> # and pitch angle, which doesn't come if taking params from OMNI >>> inputdict['Lm'] = [4.9360 ] # McIllwain L >>> inputdict['Bmirr'] = [315.6202 ] # magnetic field strength at the mirror point >>> inputdict['rGSM'] = [4.8341 ] # radial coordinate in GSM [Re] >>> inputdict['lonGSM'] = [-40.2663 ] # longitude coodrinate in GSM [deg] >>> inputdict['latGSM'] = [36.44696 ] # latitude coordiante in GSM [deg] >>> inputdict['PA'] = [57.3874 ] # pitch angle [deg] >>> inputdict['SMx'] = [3.9783 ] >>> inputdict['SMy'] = [-2.51335 ] >>> inputdict['SMz'] = [1.106617 ] >>> # and then call the neural network >>> LS.LANLstar(inputdict, ['OPDYN','OPQUIET','T01QUIET','T01STORM','T89','T96','T05','RAMSCB']) {'OPDYN': array([4.7171]), 'OPQUIET': array([4.6673]), 'T01QUIET': array([4.8427]), 'T01STORM': array([4.8669]), 'T89': array([4.5187]), 'T96': array([4.6439]), 'TS05': array([4.7174]), 'RAMSCB','array([5.9609])}
- spacepy.LANLstar.addPA(indict, PA)[source]¶
Function to add pitch angle to input dictionary from, e.g., omni module
- Parameters:
- indictdictionary-like
containing keys required for LANLstar and LANLmax
- PAfloat
pitch angle
- Returns:
- outdictionary
input dictionary with input pitch angle added as ‘PA’ key having the length of other inputs
Examples
>>> import spacepy.LANLstar as LS >>> inputdict = {} >>> inputdict['Year'] >>> # additional keys would be defined here >>> LS.addPA(indict, PA)