Recent Flare List (2021-): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 1: | Line 1: | ||
== Code to read spectrogram file == | == Code to read spectrogram file == | ||
<pre> | <pre> | ||
from __future__ import print_function | |||
def rd_datfile(file): | def rd_datfile(file): | ||
''' Read EOVSA binary data file | ''' Read EOVSA binary spectrogram file and return a dictionary with times | ||
in Julian Date, frequencies in GHz, and cross-power data in sfu. | |||
Return Keys: | |||
'time' Numpy array of nt times in JD format | |||
'fghz' Numpy array of nf frequencies in GHz | |||
'data' Numpy array of size [nf, nt] containing cross-power data | |||
Returns empty dictionary ({}) if file size is not compatible with inferred dimensions | |||
''' | ''' | ||
import struct | import struct | ||
import numpy as np | import numpy as np | ||
def dims(file): | def dims(file): | ||
# Determine time and frequency dimensions (assumes the file has fewer than 10000 times) | |||
f = open(file,'rb') | f = open(file,'rb') | ||
tmp = f.read( | tmp = f.read(83608) # max 10000 times and 451 frequencies | ||
f.close() | f.close() | ||
tdat = struct.unpack(' | nbytes = len(tmp) | ||
tdat = struct.unpack(str(int(nbytes/8))+'d',tmp[:nbytes]) | |||
nt = np.where(np.array(tdat) < 2400000.)[0] | nt = np.where(np.array(tdat) < 2400000.)[0] | ||
nf = np.where(np.array(tdat) < 1.1)[0] | nf = np.where(np.array(tdat) < 1.1)[0] - nt[0] | ||
return nt[0], nf | return nt[0], nf[0] | ||
nt, nf = dims(file) | nt, nf = dims(file) | ||
f = open(file,'rb') | f = open(file,'rb') | ||
Line 22: | Line 33: | ||
tmp = f.read() | tmp = f.read() | ||
f.close() | f.close() | ||
if len(tmp) != nf*nt*4: | |||
print('File size is incorrect for nt=',nt,'and nf=',nf) | |||
return {} | |||
data = np.array(struct.unpack(str(nt*nf)+'f',tmp)).reshape(nf,nt) | data = np.array(struct.unpack(str(nt*nf)+'f',tmp)).reshape(nf,nt) | ||
return {'time':times, 'fghz':fghz, 'data':data} | return {'time':times, 'fghz':fghz, 'data':data} |
Revision as of 13:33, 15 June 2021
Code to read spectrogram file
from __future__ import print_function def rd_datfile(file): ''' Read EOVSA binary spectrogram file and return a dictionary with times in Julian Date, frequencies in GHz, and cross-power data in sfu. Return Keys: 'time' Numpy array of nt times in JD format 'fghz' Numpy array of nf frequencies in GHz 'data' Numpy array of size [nf, nt] containing cross-power data Returns empty dictionary ({}) if file size is not compatible with inferred dimensions ''' import struct import numpy as np def dims(file): # Determine time and frequency dimensions (assumes the file has fewer than 10000 times) f = open(file,'rb') tmp = f.read(83608) # max 10000 times and 451 frequencies f.close() nbytes = len(tmp) tdat = struct.unpack(str(int(nbytes/8))+'d',tmp[:nbytes]) nt = np.where(np.array(tdat) < 2400000.)[0] nf = np.where(np.array(tdat) < 1.1)[0] - nt[0] return nt[0], nf[0] nt, nf = dims(file) f = open(file,'rb') tmp = f.read(nt*8) times = struct.unpack(str(nt)+'d',tmp) tmp = f.read(nf*8) fghz = struct.unpack(str(nf)+'d',tmp) tmp = f.read() f.close() if len(tmp) != nf*nt*4: print('File size is incorrect for nt=',nt,'and nf=',nf) return {} data = np.array(struct.unpack(str(nt*nf)+'f',tmp)).reshape(nf,nt) return {'time':times, 'fghz':fghz, 'data':data}
List of EOVSA Flares with Spectrogram Data
Date | Time (UT) | GOES Class | Spectrogram | STIX Coverage |
---|---|---|---|---|
2021-01-19 | 17:50 | C1.0 | No | |
2021-02-18 | 18:04 | A8.0 | Yes | |
2021-04-17 | 16:46 | B9.0 | Yes | |
2021-04-19 | 23:36 | M1.0 | No | |
2021-05-05 | 22:30 | B5.0 | Yes | |
2021-05-07 | 19:00 | M4.0 | Yes | |
2021-05-07 | 19:00 | M4.0 | Yes | |
2021-05-08 | 18:30 | C9.0 | Yes | |
2021-05-09 | 13:55 | C4.0 | Yes | |
2021-05-17 | 19:05 | B5.0 | Yes | |
2021-05-21 | 19:25 | C5.0 | Yes | |
2021-05-22 | 16:10 | C1.0 | Yes | |
2021-05-22 | 17:10 | M1.0 | data | Yes |
2021-05-22 | 21:30 | M1.4 | Yes | |
2021-05-22 | 23:11 | C7.0 | Yes | |
2021-05-23 | 17:00 | C2.0 | Yes | |
2021-05-27 | 22:00 | C1.0 | No | |
2021-05-27 | 23:10 | C7.0 | No | |
2021-05-28 | 22:30 | C9.0 | No |