Difference between revisions of "Tutorial:How to contribute to the flare wiki pages"

From stix
Jump to: navigation, search
Line 2: Line 2:
 
The created pages can be edited manually or by using scripts.
 
The created pages can be edited manually or by using scripts.
  
 
+
== Plugins==
 
If you have python code to be integrated into the pipeline, please prepare them similar to the template below and send them to [mailto:hualin.xiao@fhnw.ch Hualin Xiao]
 
If you have python code to be integrated into the pipeline, please prepare them similar to the template below and send them to [mailto:hualin.xiao@fhnw.ch Hualin Xiao]
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">

Revision as of 11:56, 14 May 2021

Flare wiki pages are created by the flare data processing pipeline, by using |WIKI APIs. The created pages can be edited manually or by using scripts.

Plugins

If you have python code to be integrated into the pipeline, please prepare them similar to the template below and send them to Hualin Xiao

#import  module_name
def plugin_name(flare_id, start_utc, end_utc, flare_peak_utc):
    #Flare ID, start UTC, end UTC and peak UTC values will be provided by the pipeline 
    # A plugin usually consist of blocks as below:
    # - data retrieving, for example using sunpy Fido 
    # - data processing
    # - plotting
    # - save plot to file
    return plot_filename

Below is an example of plugins.

import astropy.units as u
from matplotlib import pyplot as plt
from sunpy.net import Fido, attrs as a
from sunpy.map import Map

def plot(folder,flare_id , start_utc, end_utc, peak_utc,  wavelen=131, overwrite=False):
    sdo_query = Fido.search(a.Time(utc_start, utc_end), a.Instrument('AIA'),
                            a.Wavelength(wavelen* u.angstrom))
    sdo_res = Fido.fetch(sdo_query[0], progress=False, path=folder)
    if not sdo_res:
        print('AIA data not available')
        return None
    if sdo_res:
        sdo = Map(sdo_res[0])
        fig = plt.figure(figsize=(6, 6), dpi=100)
        ax = fig.add_subplot(projection=sdo)
        sdo.plot(clip_interval=[1, 100] * u.percent, axes=ax)
        fname=os.path.join(folder, f'AIA_{wavelen}_{flare_id}.png')
        plt.savefig(fname, dpi=100)
        return fname
    return None

if __name__=='__main__':
    #for test only
    plot('.',0,'2021-04-01T00:00:00', '2021-04-01T00:10:00', '2021-04-01T00:05:00' )

Note that it is also possible to attach plots to flare wiki pages