136 lines
2.8 KiB
Python
136 lines
2.8 KiB
Python
|
|
from rapid_fgm import *
|
|||
|
|
from datetime import datetime
|
|||
|
|
import numpy as np
|
|||
|
|
import matplotlib.pyplot as plt
|
|||
|
|
|
|||
|
|
#---------USER INPUT------------------
|
|||
|
|
SC_ID = 'C3'
|
|||
|
|
|
|||
|
|
TIME_PERIOD = (datetime(2002,6,27,23), datetime(2002,6,28,23))
|
|||
|
|
|
|||
|
|
|
|||
|
|
PARTICLE_TYPE = "electron" #'electron' oder "ion"
|
|||
|
|
|
|||
|
|
#-----------------------------------------------------
|
|||
|
|
instrument = "IES" if PARTICLE_TYPE == "electron" else "IIMS"
|
|||
|
|
|
|||
|
|
r = RAPID(sc_id=SC_ID, time_period=TIME_PERIOD, particle_type=PARTICLE_TYPE)
|
|||
|
|
|
|||
|
|
data_rapid = r.load_rapid()
|
|||
|
|
r.get_rapid_var(r.data_rapid)
|
|||
|
|
print('rapid time:', r.time_rapid[0], r.time_rapid[-1])
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
flow = FLOW(
|
|||
|
|
sc_id=SC_ID,
|
|||
|
|
time_period=TIME_PERIOD,
|
|||
|
|
particle_type=PARTICLE_TYPE
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
flow.get_flow_var(flow.data_flow)
|
|||
|
|
flow.load_flow()
|
|||
|
|
|
|||
|
|
|
|||
|
|
#font in Times New Roman
|
|||
|
|
plt.rcParams['font.family'] = 'Times New Roman'
|
|||
|
|
plt.rcParams['mathtext.fontset'] = 'stix'
|
|||
|
|
|
|||
|
|
|
|||
|
|
f = FGM(sc_id=SC_ID, time_period=TIME_PERIOD)
|
|||
|
|
f.load_fgm()
|
|||
|
|
f.get_fgm_var(f.data_fgm)
|
|||
|
|
|
|||
|
|
p = PITCH_CSA(sc_id=SC_ID, time_period=TIME_PERIOD)
|
|||
|
|
p.load_pad()
|
|||
|
|
pad_data = p.get_pad_var(p.data_pad)
|
|||
|
|
|
|||
|
|
w = WORKSPACE()
|
|||
|
|
sync = w.sync_all_by_resolution(r, f, flow)
|
|||
|
|
|
|||
|
|
t_sync = sync['time']
|
|||
|
|
rapid_sync = sync['rapid']
|
|||
|
|
fgm_sync = sync['fgm']
|
|||
|
|
sc2gse = sync['sc2gse']
|
|||
|
|
|
|||
|
|
sc_data = w.spacecrafts(
|
|||
|
|
sc_id=SC_ID,
|
|||
|
|
t_sync=t_sync,
|
|||
|
|
rapid_sync=rapid_sync,
|
|||
|
|
fgm_sync=fgm_sync,
|
|||
|
|
sc2gse=sc2gse,
|
|||
|
|
time_period=None
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
flux = sc_data['flux']
|
|||
|
|
|
|||
|
|
time = sc_data['time'][:flux.shape[0]]
|
|||
|
|
|
|||
|
|
mask = (time >= start) & (time <= end)
|
|||
|
|
flux = np.where(flux < 0, np.nan, flux)
|
|||
|
|
|
|||
|
|
print(len(time))
|
|||
|
|
print(flux.shape)
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
energy = r.energy_table
|
|||
|
|
|
|||
|
|
mean_flux_energy = np.nanmean(flux, axis=(0, 2, 3))
|
|||
|
|
|
|||
|
|
# Standardabweichung aus denselben Dimensionen
|
|||
|
|
flux_sd = np.nanstd(flux, axis=(0, 2, 3))
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
plt.figure()
|
|||
|
|
color1 = '#0070C0'
|
|||
|
|
color2 = '#63A375'
|
|||
|
|
plt.errorbar(
|
|||
|
|
energy,
|
|||
|
|
mean_flux_energy,
|
|||
|
|
yerr = flux_sd,
|
|||
|
|
marker='o',
|
|||
|
|
markerfacecolor = color1,
|
|||
|
|
markeredgecolor = None,
|
|||
|
|
linestyle='None',
|
|||
|
|
color=color2,
|
|||
|
|
label=r'Flux $\pm$ SD',
|
|||
|
|
capsize=5
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
plt.xticks(fontsize=14)
|
|||
|
|
plt.yticks(fontsize=14)
|
|||
|
|
plt.xscale('log')
|
|||
|
|
plt.yscale('log')
|
|||
|
|
#plt.tick_params(fontsize = 14)
|
|||
|
|
|
|||
|
|
gamma_ref = -1.5
|
|||
|
|
|
|||
|
|
scale_factor = 2
|
|||
|
|
|
|||
|
|
ref_line = mean_flux_energy[0] * scale_factor * (energy / energy[0])**gamma_ref
|
|||
|
|
|
|||
|
|
plt.plot(
|
|||
|
|
energy,
|
|||
|
|
ref_line,
|
|||
|
|
linestyle='--',
|
|||
|
|
color='black',
|
|||
|
|
label=rf'$E^{{{gamma_ref}}}$'
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
plt.xlabel(r'Energy / $\mathrm{keV}$', fontsize = 12)
|
|||
|
|
plt.ylabel(r'Flux / $(\mathrm{cm^{2}\,s\,sr\,keV})^{-1}$',fontsize = 12)
|
|||
|
|
t0, t1 = (t.strftime('%Y-%m-%d') for t in TIME_PERIOD)
|
|||
|
|
plt.title(f'{SC_ID} – RAPID {instrument} Energy Spectrum – {t0} to {t1}', fontsize = 14)
|
|||
|
|
|
|||
|
|
plt.grid(True, which='both')
|
|||
|
|
plt.legend()
|
|||
|
|
|
|||
|
|
filename = 'C:/Users/lview/OneDrive/Dokumente/Desktop/C3_RAPID_20020628/'+ f'{SC_ID}_{instrument}_Power_law_fit_'+'20020627_20020629.pdf'
|
|||
|
|
print(filename)
|
|||
|
|
plt.savefig(filename)
|
|||
|
|
plt.show()
|
|||
|
|
|
|||
|
|
|