Ejemplo n.º 1
0
                                            (np.invert(cumsumpos.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
useneg = ((cumsumneg > 2. * cumsumpos) & (nobsinwindow == window) &
          (np.abs(omni.bxlong) < bxlim)) | ((cumsumpos.isnull()) &
                                            (np.invert(cumsumneg.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
omni.loc[:, 'usepos'] = usepos
omni.loc[:, 'useneg'] = useneg
omni.loc[:, 'milanlong'] = omni.milan.rolling(
    window, min_periods=window, center=False).mean()  #average IMF data
#omni = omni.drop(['bxlong','bzlong','byneg','bypos','PC_N_INDEX','Beta','E','Mach_num','Mgs_mach_num','y'],axis=1) #need to drop PC index as it contain a lot of nans. Also other fields will exclude data when we later use dropna()

#Combine omni and sophie list
sophiexp.loc[:, 'tilt'] = dipole.dipole_tilt(sophiexp.index)
omni.loc[:, 'tilt'] = dipole.dipole_tilt(omni.index)
omni2 = omni.reindex(index=sophiexp.index, method='nearest', tolerance='30sec')
sophiexp.loc[:, 'bylong'] = omni2.bylong
sophiexp.loc[:, 'milanlong'] = omni2.milanlong
sophiexp.loc[:, 'substorm'] = sophiexp.ssphase == 2
bybins = np.append(np.append([-50], np.linspace(-9, 9, 10)), [50])
bybincenter = np.linspace(-10, 10, 11)
sgroup = sophiexp.groupby([pd.cut(sophiexp.tilt, bins=np.array([-35,-10,10,35])), \
                pd.cut(sophiexp.bylong, bins=bybins)])
ogroup = omni.groupby([pd.cut(omni.tilt, bins=np.array([-35,-10,10,35])), \
                pd.cut(omni.bylong, bins=bybins)])

#Plotting
fig = plt.figure(figsize=(15, 15))
Ejemplo n.º 2
0
nobsinwindow = omni.milan.rolling(window).count()
cumsumneg = milanneg.rolling(window,min_periods=1).sum()                                            
cumsumpos = milanpos.rolling(window,min_periods=1).sum()
omni.loc[:,'bxlong'] = omni.BX_GSE.rolling(window,min_periods=1).mean()
omni.loc[:,'bzlong'] = omni.BZ_GSM.rolling(window,min_periods=1).mean()
omni.loc[:,'bylong'] = omni.BY_GSM.rolling(window,min_periods=1).mean()
bxlim = 200
usepos = ((cumsumpos>2.*cumsumneg) & (nobsinwindow==window) & (np.abs(omni.bxlong)<bxlim)) | ((cumsumneg.isnull()) & (np.invert(cumsumpos.isnull())) & (nobsinwindow==window) & (np.abs(omni.bxlong)<bxlim))
useneg = ((cumsumneg>2.*cumsumpos) & (nobsinwindow==window) & (np.abs(omni.bxlong)<bxlim)) | ((cumsumpos.isnull()) & (np.invert(cumsumneg.isnull())) & (nobsinwindow==window) & (np.abs(omni.bxlong)<bxlim))                                     
omni.loc[:,'usepos'] = usepos
omni.loc[:,'useneg'] = useneg
omni.loc[:,'milanlong'] = omni.milan.rolling(window, min_periods=window, center=False).mean()    #average IMF data
#omni = omni.drop(['bxlong','bzlong','byneg','bypos','PC_N_INDEX','Beta','E','Mach_num','Mgs_mach_num','y'],axis=1) #need to drop PC index as it contain a lot of nans. Also other fields will exclude data when we later use dropna()
omnicopy = omni.copy()
omni2 = omni.reindex(index=dtimes, method='nearest',tolerance='30sec')    #new ocb
omni2.loc[:,'tilt'] = dipole.dipole_tilt(omni2.index)

#Sophie list statistics
sophie = pd.read_hdf('sophie75.h5')
use = (sophie.index>=dtimes[0]) & (sophie.index<=dtimes[-1])
sophie = sophie[use].copy()
exp = sophie.ssphase == 2
sophiexp = sophie[exp].copy()

#begin experimental
sophiexp.loc[:,'tilt'] = dipole.dipole_tilt(sophiexp.index)
omni3 = omni.reindex(index=sophiexp.index, method='nearest', tolerance='30sec')
use = (omni.index>=sophiexp.index[0]) & (omni.index<=sophiexp.index[-1])
omni4 = omni[use].copy()
chunk = 1e6
n = len(omni4)
Ejemplo n.º 3
0
bxlim = 200
usepos = ((cumsumpos > 2. * cumsumneg) & (nobsinwindow == window) &
          (np.abs(omni.bxlong) < bxlim)) | ((cumsumneg.isnull()) &
                                            (np.invert(cumsumpos.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
useneg = ((cumsumneg > 2. * cumsumpos) & (nobsinwindow == window) &
          (np.abs(omni.bxlong) < bxlim)) | ((cumsumpos.isnull()) &
                                            (np.invert(cumsumneg.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
omni.loc[:, 'usepos'] = usepos
omni.loc[:, 'useneg'] = useneg
omni.loc[:, 'milanlong'] = omni.milan.rolling(
    window, min_periods=window, center=False).mean()  #average IMF data
fuvlist.loc[:, 'tilt'] = dipole.dipole_tilt(fuvlist.index)
omni.loc[:, 'tilt'] = dipole.dipole_tilt(omni.index)
omni_fuvlist = omni.reindex(index=fuvlist.index,
                            method='nearest',
                            tolerance='30sec')
fuvlist.loc[:, 'bylong'] = omni_fuvlist.bylong
fuvlist.loc[:, 'milanlong'] = omni_fuvlist.milanlong
fuvlist.loc[:, 'substorm'] = True
#bybins = np.append(np.append([-50],np.linspace(-9,9,10)),[50])
#bybincenter = np.linspace(-10,10,11)

#plot substorm occurrence from the sophie-75 list
fig = plt.figure(figsize=(10, 15))

#Negative dipole tilt
ax = fig.add_subplot(311)
Ejemplo n.º 4
0
bxlim = 200
usepos = ((cumsumpos > 2. * cumsumneg) & (nobsinwindow == window) &
          (np.abs(omni.bxlong) < bxlim)) | ((cumsumneg.isnull()) &
                                            (np.invert(cumsumpos.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
useneg = ((cumsumneg > 2. * cumsumpos) & (nobsinwindow == window) &
          (np.abs(omni.bxlong) < bxlim)) | ((cumsumpos.isnull()) &
                                            (np.invert(cumsumneg.isnull())) &
                                            (nobsinwindow == window) &
                                            (np.abs(omni.bxlong) < bxlim))
omni.loc[:, 'usepos'] = usepos
omni.loc[:, 'useneg'] = useneg
omni.loc[:, 'milanlong'] = omni.milan.rolling(
    window, min_periods=window, center=False).mean()  #average IMF data
supermag.loc[:, 'tilt'] = dipole.dipole_tilt(supermag.index)
omni.loc[:, 'tilt'] = dipole.dipole_tilt(omni.index)
omni_supermag = omni.reindex(index=supermag.index,
                             method='nearest',
                             tolerance='30sec')
supermag.loc[:, 'bylong'] = omni_supermag.bylong
supermag.loc[:, 'milanlong'] = omni_supermag.milanlong
supermag.loc[:, 'substorm'] = True
#bybins = np.append(np.append([-50],np.linspace(-9,9,10)),[50])
#bybincenter = np.linspace(-10,10,11)

#plot substorm occurrence from the sophie-75 list
fig = plt.figure(figsize=(10, 15))

#Negative dipole tilt
ax = fig.add_subplot(321)