VLA Data Survey
List of VLA Solar Observations
Date | VLA Time | Observing Setup | Flare Events | Overview Plot | Context Data | Details | Publications |
Mar 3, 2012 | 17:53:23-21:44:54 | 15 ants in Config C 1-2 GHz/1 MHz, 50 ms |
C1.9@18:13 | dynamic spectrum of the entire event with GOES | summary | VLA_20160303 | Chen+2014, Chen+2015, Wang+2017 |
Feb 18, 2016 | 19:12:29-23:54:05 | 27 ants in Config C 1-2 GHz/2 MHz, 50 ms |
C1.2@19:59 C1.8@21:08 | File:20160218.png | summary | VLA_20160218 | |
Feb 19, 2016 | 18:41:49-23:23:25 | 27 ants in Config C 1-2 GHz/2 MHz, 50 ms |
C2.7@22:49 | dynamic spectrum of the entire event with GOES | summary | VLA_20160219 | |
Apr 09, 2016 | 17:56:59-22:57:52 | 14 ants in Config C 1-2 GHz/2 MHz, 50 ms 13 ants in Config C 1-2 GHz/2 MHz, 50 ms |
C1.5@18:44 C1.5@20:34 C1.4@22:04 | dynamic spectrum of the entire event with GOES | summary | VLA_20160409 | |
Apr 16, 2016 | 17:13:00-22:15:504 | ants in Config C 2-4 GHz/2 MHz, 50 ms |
summary | VLA_20160416 |
Data Survey Tutorial
Preparatory Work
Get the visibility data
The first step of the data survey is to get the visbility data of the the event you are focusing on. Always the origrinal data should be in the the dictionary '/srg/data/evla', you can find the folders named by the date of the event.
The casa task 'listobs' can help to check the basic information of the data, to get the better understanding of each casa task, you can both type the task name followed with a question mark( for example, 'listobs?') in the server or directly google 'nrao casa listobs'.
For each casa task(take the listobs as a example), you can type 'tget listobs' and then 'inp' to get and change the input parameters then 'go' to run the task.
Task listobs can tell some basic information and task plotants can tell you the configration of the antanas, these are the basic information of your observation data. About the casa task and example of listobs, see the link to CASA guide
The original data may be too large for us to do the survey directly, we can use the task 'split' to split the data.
Use the 2016 Feb 18 event as a example, the origrin data is 50ms data, we split it into a 1s data.
taskname = "split" vis = "/srg/data/evla/20160219/sun_20160219.50ms.ms/" outputvis = "sun-2016021.50ms.ms" keepmms = True field = "" spw = "" scan = "" antenna = "" correlation = "" timerange = "0" intent = "" array = "" uvrange = "" observation = "" feed = "" datacolumn = "data" keepflags = True width = 1 timebin = "1s" combine = "" #split(vis="/srg/data/evla/20160219/sun_20160219.50ms.ms/",outputvis="sun-20160219.50ms.ms",keepmms=True,field="", spw="",scan="",antenna="",correlation="",timerange="",intent="",array="",uvrange="",observation="",feed="",datacolumn="data",keepflags=True,width=1,timebin="1s",combine="")
Other information of the event
Except the vla data itself, we may also need the X-ray data and EUV data to help us. You can see the summary in Prof. Bin's website or go the flare browser and the helioviewer
If you are in the server, you can do into idl to get the plot of Goes and RHESSI, which can help us identify the features in the dynamic spectrum.
Type 'goes' or 'hessi' you will see the command window.
Use Goes as a example, when you come into the command window, you can select parameters fot the plotting(mainly the timerange) and after clicking 'plot', you can control the plot in the menus and output the figure or you can directly write the idl savefile(for making the dynamic mivie later) in command window.
Always we need flux and derivate information for analysis.
Produce Detailed Dynamic Spectrum
Select the appropriate baselines
Usually we use the task 'dspec' to make the dynamic spectrum, use get_dspec to create a npz file, the most important input is timerange and baseline. You can use the casa task 'viewer' to check the visbility data( remember when using the viewer, don not select too long timerange).
When coming into the window of viewer. First in the data manager to select the timerange(no more than 20 minutes) and so on.
Then get into the display panel, set x,y,animation axis as 'time','channel'and'baselines'. Then you can check the display to select propriate baselines. Remember to check every spectral windows and both LCP and RCP.
Check Each baselines and better select both the longer baselines and shorter baselines to make the npz file.
Plot detailed dynamic spectrum
Use plt_dspec to do the plot, after getting the npz file, you can do the plot. Usually we are interested in both LCP and RCP, here set a example.
from suncasa.utils import dspec msfile = 'sun_20120310A.50ms.ms' # the visbility data vis = msfile bl='4&12' spw='0~7' specfile = msfile+'.bl4-12.190000-194000.spec.npz' timeran='17:58:50~17:59:30' dspec.get_dspec(vis=vis,specfile=specfile,bl=bl,spw=spw,timeran=timeran) dspec.plt_dspec(specfile=specfile,pol='RR',dmin=1,dmax=12) #dmin and dmax is used to change color,pol can be selected as 'RR''LL'or'I'
To get the survey of the whole timerange, we need to get a movie, select the movie as True, you can get a folder called 'dspec' which including the figures to make the movie. You can also attach the goes savefile.
After getting the folders, you can use idl to create the movie like this 2012 Mar 10 event or directly use other ways.
Make overview radio/EUV image
Once you find something in the movie, you can back to the origrinal data to see the details, and we can use the calibrated data to make the overview image at that time.
Make radio image (clean)
First step is to make the clean image using CASA task clean, you can also see details od clean in the CASA guide.
Select the appropriate parameters from the dynamic spectrum to do the clean.
Register cleaned CASA image into FITS file
Use the task 'helioimage2fits.imreg' to get the vla_fits file.
from suncasa.utils import helioimage2fits vis='2110.50ms.cal.ms' imagfile='2110.image' #clean image timerange='21:10:31.275~21:10:31.675' helioimage2fits.imreg(vis=vis,imagefile=imagefile,timerange=timerange)
Plot radio image on AIA
Then add the vla-fits file into the aia map.
aiamap=smap.Map('aia_lev1_171a_2012_03_10t17_48_00_34z_image_lev1.fits') vlafits='1747.fits' vlamap=smap.Map(vlafits) vlamap.data = vlamap.data.reshape(vlamap.meta['naxis1'],vlamap.meta['naxis2']) cmap=smap.CompositeMap(aiamap) cmap.add_map(vlamap,levels=np.array([0.5,0.7,0.9])*np.nanmax(vlamap.data)) cmap.peek()
You can also zoom in and out to see the details in the image.
Survey overview plot
After you get all the information, you can use the routine 'svplot' to create the overview survey plot.
The required input is the dynamic spectrum file, visbility measurement file, timerange and frequency range. If you have done the clean and get the clean image, you can set the imagefile to your clean image, if you have done the fitsfile, you can set fitsfile to your fitsfile, and if you have downloaded the aiafits, you can set the aiafits to your own aiafits, this steps may save your some time. And you can also change the polarzation by setting pol, the default is 'RRLL'. And you can select the aia wavelength to download by changing aiawave.
To run it in CASA, use command svplot. here is an example import svplotpy(in CASA)
vis='2110.50ms.cal.ms' spec=2110.spec.npz' timerange= spw='2~3‘ svplot.svplot(vis=vis,spec=spec,timerange=timerange,spw=spw)
and you can then get the figures as below.
Make radio movie with svplot
Svplot is also capable to make overview movie from a CASA visibility dataset by setting the keyword mkmovie==True. The following short example shows how to make a movie with svplot from a visibility file.
sv.svplot(vis='IDB20170910T153625-180625.ms.corrected.XXYY.slfcaled', ## The input ms file. timerange='17:00:00~18:06:00' ## optional, the timerange within which the movie will span over. specfile='IDB20170910T153625-180625.ms.corrected.XXYY.slfcaled.dspec.med.npz', ## optional, will make a new one if not provided spw=';'.join([str(ll) for ll in range(4, 31)]), ## The spectral window to be imaged niter=500, imsize=[512], ## images size for Clean procedure in unit of pixel cell=['2.5arcsec'], ## images resolution for Clean procedure xycen=[975, -140], ## The center of images for Clean (Also the center of the image display) fov=[512., 512.], ## field of view of the image display in unit of arcsec stokes='XX,YY', overwrite=True, ## If to overwrite the existed fits image files mkmovie=True, ## Set this to True if one want to make a movie twidth=12, ## Number of timestamps to average to form one output image. Say twidth = 12 for an 1 sec integration data, the output time cadence is 12 sec. imax=1e7, ## color scale for the radio image imin=0.5e6, ## color scale for the radio image dmax=0.5e6, ## color scale for the dynamic spectrum plotaia=True, ## optional, set False if you do not want to overlay radio images over AIA EUV images. aiadir = './your-aia-data-path', ## if you have the corresponding AIA fits files somewhere locally, provide the folder path. The code will search the following places: 1. the default AIA data path ("/srg/data/sdo/aia/level1/" on baozi); 2. the path provided by keyword "aiadir"; 3. the current directory. If plotaia is True, and there is no aia fits files found at any of the forementioned paths, it will download the specific AIA fits data to the current directory. aiawave=171, ## optional, AIA passband. plt_composite=True, ## optional, set True if you want to plot radio image contours from all specified spectral windows in one images. ncpu=10)
The resulting images will be saved to "qlookimgs" folder under the current directory.
Example 1: Radio image movie with no AIA files provided.
Example 2: Radio image movie with AIA images in the background.
Example 3: Radio images from different spectral windows combined in one plot.