SolarSoft

The SolarSoft CMES Package includes utilities for access and analysis of CME lists from various sources using a consistant, simple SSW-style interface. Support was recently added for the automatically generated SEEDS data by Zhang, J. Olmedo,O., Wechsler, H., Poland, A. and Borne, K. . to supplement the existing CDAW list by Gopalswamy, N., Yashrio, S., Michalek, G. and Numes, S. and the CACTUS list by Berghmans,D., Robbrecht, E. and Lawrence, G.

Installation & upgrade of the CME package: Per SSW standard procedure, the one line call to ssw_upgrade.pro is sufficient to install and/or upgrade any instrument or package library and identtical for all OS/ARCH. In this case, the call is:

IDL> ssw_upgrade,/cmes,/spawn,/loud [/passive_ftp] ; where the /PASSIVE_FTP switch may be required by local firewall constraints
If you do a fresh install/upgrade and want to proceed with the following examples, exit your current sswidl session, refresh your setup and new sswidl start; make sure that you include cmes in your SSW instrument list $SSW_INSTR

SSW CMES Utilities and Examples
The most useful user entry point is via: the function ssw_getcme_list.pro. The doc-header for that routine includes calling examples and SSW context - no need to repeat all of those in this document (read the doc-header..) we'll demonstrate a few key ideas and calls here - users may cut&paste the verbatim sswdl commands in orange below into an active sswidl session to verify local function and effect. No local data is assumed as assimilation into your client session is via sswidl socket utilities

Example - read in "mission long" catalogs for CDAW, SEEDS, and CACTUS The full catalog contents is the default if no time or time range is supplied (as you no doubt already know since you looked the doc-header..)

IDL> cdaw=ssw_getcme_list(/cdaw)
IDL> cactus=ssw_getcme_list(/cactus)
IDL> seeds=ssw_getcme_list(/seeds)

See what the above calls returned:

IDL> help,cdaw,cactus,seeds & time_window,cdaw & time_window,cactus & time_window,seeds

CDAW            STRUCT    = ->  Array[12913]
CACTUS          STRUCT    = ->  Array[17524]
SEEDS           STRUCT    = ->  Array[25898]
(first, last) = '11-JAN-96  00:14:36', '31-OCT-07  21:26:09'
(first, last) = ' 1-APR-97  06:43:00', '30-MAR-07  17:06:00'
(first, last) = '31-JAN-96  08:01:38', '22-MAR-08  14:30:04'
IDL> help,cdaw,cactus,seeds,/str ; show structure tags available for each dbase
(Output of above not shown for brevity) Although each dbase includes different tags, there is a key common subset: CPA,WIDTH,LSPEED, and common ssw compliant time formats. These should facilitate comparative studies and the antim/utplot ready times allow simple cross refernce to other sswidl data base access routines (goes events, goes light curves, instrument catalogs etc)

The default action of ssw_getcme_list.pro is to access $SSWDB catalogs which are generated from the host sites several times a day (assuming any change at the host site since last generation). Here are a couple of "mission long" plots (ground lying fruit) for the three dbases plotted on common time axis:

CME_compare_CPA.png and CME_compare_WIDTH.png

Realtime Switch Both CACTUS and SEEDS offer realtime/quicklook detection catalogs; you can add the /REALTIME (or synonym /QUICKLOOK ) switch in the call. In this case, the function does a realtime parse/convert of the associated host WWW site - for example:

IDL> srt=ssw_getcme_list(/seeds,/realtime)
IDL> help,srt & time_window,srt

SEEDSRT         STRUCT    = ->  Array[45]
(first, last) = ' 1-MAR-08  01:31:03', '27-MAR-08  09:08:05'

IDL> sum=get_infox(srt,'event_name,lspeed,cpa,width') & more,[sum(0:1),'...',last_nelem(sum,2)]
20080301.013103.w011.v0254.p246      254      246       11
20080304.143004.w023.v0216.p234      216      234       23
...
20080326.110605.w035.v0060.p265       60      265       35
20080327.090805.w014.v0088.p069       88       69       14

Other utilities...

The function ssw_cme2files.pro maps from CME structures (e.g., output of ssw_getcme_list) to supporting/ancillary data sets which are available on the host sites. For example:

IDL> cdaw=ssw_getcme_list('1999-jun-23','1999-jun-24',search=['width=360','lspeed>1000'])
IDL> c2d=ssw_cme2files(cdaw,/c2_diff) & more,c2d

http://cdaw.gsfc.nasa.gov/CME_list/UNIVERSAL/1999_06/jsmovies/1999_06/19990623.073124.p046s/c2_rdif.html
Cheap parlor trick? assimilate remote JavaScript (c2d from CDAW above in this case) movie frames into local data (ssw_jsurl2data & xstepper exist independent of CMES package) for local client display:
ILD> ssw_jsurl2data,c2d,data,times=times,/get_times,r,g,b
IDL> tvlct,r,g,b & xstepper,data

As usual, see the ssw_cme2files.pro doc-header for additional options; currently only applicable to CDAW and SEEDS.

The function ssw_cme2yht.pro returns the Height/Time data for the associated event. For example, applying to the above CDAW event:
IDL> yht=ssw_cme2yht(cdaw,/trunc) & help,yht,/str

** Structure <3159cd4>, 8 tags, length=216, data length=212, refs=1:
   DATE_OBS        STRING    '1999-06-23T07:31:24.000'
   VERSION         INT              3
   ONSET1          STRING    '1999/06/23 06:46:59'
   ONSET2          STRING    '1999/06/23 06:48:19'
   FEAT_CODE       STRING    '1=LE'
   QUALITY_INDEX   INT              3
   YHT_TIME        STRING    Array[10]
   YHT_HEIGHT      FLOAT     Array[10]

IDL> utplot,yht.yht_time,yht.yht_height,/ynoz,psym=2,title=cdaw.event_name,ytitle='Height (R/RSun)'

[your HT plot here]

Any community contributions to the CMES package are appreciated! What is an SSW Package

Last Revision 10-april-2008,Sam Freeland

------------------------------------------------------------------

freeland@lmsal.com