Difference between revisions of "Recent Flare List (2021)"

From EOVSA Wiki
Jump to: navigation, search
(Code to read spectrogram file)
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(80000)
+
         tmp = f.read(83608) # max 10000 times and 451 frequencies
 
         f.close()
 
         f.close()
         tdat = struct.unpack('10000d',tmp[:80000])
+
        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[0]-nt[0]
+
         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
EOVSA20210522 M1flare.png
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