SOT SolarSoftWare (SSW) Overview Tom Berger, Sam Freeland, Greg Slater LMSAL SOT 17 Meeting NOAJ April 17-20, 2006 What is SSW? http://www.lmsal.com/solarsoft/ssw_whatitis.html • The SolarSoft system is a set of integrated software libraries, data bases, and system utilities which provide a common programming and data analysis environment for Solar Physics. – The SolarSoftWare (SSW) system is built from Yohkoh, SOHO, TRACE, RHESSI, and Astronomy libraries and draws upon contributions from many members of those projects. Thousands of routines now exist for all aspects of solar data analysis. • It is primarily an IDL based system – Some instrument teams integrate executables written in other languages. – The SSW environment provides a consistent look and feel at widely distributed coinvestigator institutions to facilitate data exchange and to stimulate coordinated analysis. • SSW includes extensive heliographic mapping capabilities for inter-mission alignment. SOT - RHESSI - TRACE comparisons are greatly simplified. – http://orpheus.nascom.nasa.gov/~zarro/idl/maps.html Proposed SSW Tree solarb eis kokuten.lmsal.com:/archive/software/ssw/solarb xrt sot ana bin data ANA codes C, C++, FORTRAN execs Sample data display util Image and movie viewers Utility codes idl IDL codes setup doc Setup routines Documentation ct dd Correlation Tracker Diagnostic data sp fg Spectrograph Filtergraph TBD fgram Filtergram codes mgram Magnetogram codes stokes Stokes vector codes dgram Dopplergram codes seis Helioseismology codes Utility codes Routines in development • read_sot.pro • write_sot.pro Basic FITS file read and write capabilities. • • sot_cat.pro sot_cat2data.pro Database (catalog) access and data return. • sot_data_tool.pro Database access GUI from IDL command line • sot_prep.pro Image and spectra Level 0 Level 1 calibration (bad pixel correct, dark subtract, flat-field, etc…). Routines TBD • sot_wave2point.pro • sot_transmission.pro • Many others… Inter-instrument corrections to pointing for each wavelength. Filter transmission profiles Filtergraph routines • Magnetogram codes – Filtergraph polarization sensitivity calibration: sot_nfi_getx.pro – NFI magnetogram code: sot_fgmag.pro • • Dopplergram codes Stokes vector codes • Image analysis codes – Image segmentation and object definition (bright points, pores, penumbral filaments, etc.): sot_image_segment.pro – Wavelet denoise and spatial filter: sot_wavelet_denoise.pro – Brightness temperature from (R,G,B) continuum images: sot_bright_temp.pro • Times series analysis codes – Inter-wavelength and inter-instrument (XRT, EIS) align and scale: sot_align.pro* • Can also use D. Zarro’s mapping routines for this (http://orpheus.nascom.nasa.gov/~zarro/idl/maps.html) – – – – – Image distortion removal (destretching): sot_destretch.pro* (x, y, t) Fourier filter (p-mode filter): sot_3dfft.pro* Correlation tracking: sot_correlation_track.pro* Object tracking: sot_track_object.pro* Corkflow mapping: sot_corkflow.pro* *These routines exist in prototype form (La Palma data analysis tasks) Display codes • Image viewer – Basic requirements • • • • • Load up to 6 images into a single display GUI: multi-layer model (gimp, Illustrator…). Images may be different sizes, formats, etc. (e.g. FG, SP map overlay). Real-time adjustment of color and transparency for mult-image overlay views. Automatic adjustment for image pointing differences. Standard image browsing functions – – – – – – – Pan Zoom Scale Rotate Crop Plot line profile Annotate • Overlay heliographic grids. • Export processed images back to IDL session. • Export to Postscript printer, EPS, TIFF, JPEG, PNG, etc. – Protocol: • Can use existing ANA TRACE browser for some of this functionality. • Can develop IDL graphics object code based on iImage tool. Image Viewer Example Display codes (cont.) • Movie viewer – Basic requirements • • • Movie creation: assemble “clips” from URLs from database tool or passed from IDL session. Playback: real-time streaming from disk. Simultaneous multiple movie playback. – – Individual clips from different sot wavelengths: e.g. G-band clip, Magnetogram clip, Dopplergram clip, H-alpha clip, etc. Timeline view for temporal alignment of clips from overlapping time spans. G-band Ca II H-line Stokes-V Magnetogram H-alpha wing – • • • • • – Na ID Dopplergram Adjust color and transparency for multiple clip overlays. Standard video transport controls: play, pause, FF, RW, frame-step, jog/shuttle, loop. Real-time pan, zoom, ROI crop, scale, color adjust. UTC display for time annotations. Export to MPEG4, QuickTime, etc. Export any frame to Postscript printer, EPS, TIFF, JPEG, PNG, etc. Protocol: • ANA TRACE browser – – • IDL graphics objects code – – • Advantage: already written, easily adapted to sot database. Disadvantage: does not integrate with existing SSW IDL routines or live IDL sessions, no timeline or movie overlays. Advantage: Integrates directly with SSW IDL session. Disadvantage: requires custom development project (2-3 months development time w/RSI involvement.) Apple FinalCut Pro – – Advantage: fully developed commercial product, has timeline, multiple movie overlay, full export capabilities. Disadvantage: expensive and does not integrate with database or IDL (requires saving clips in JPEG images and offline import) - not a “scientific” product. Sample Movie Viewer: FinalCut Pro Object-oriented model vs. traditional model • Object oriented coding http://orpheus.nascom.nasa.gov/~zarro/idl/objects/objects.html – What is it? • Observables become “objects”. E.g. image and spectra are different objects in code space. • Pre-defined “methods” operate on objects. A method is just a subroutine that is specifically assigned to an object. IDL> image = OBJ_NEW(‘sot_fg_data’,filename = ‘URL of some-gband-image-file’) IDL> spectra = OBJ_NEW(‘sot_sp_data’,filename = ‘URL of some-SP-spectral-file’) IDL> calibrated_image = image -> prep, /despike IDL> calibrated_spectra = spectra -> prep, /slit_straighten In this case, “prep” is a different subroutine for each object, but user doesn’t have to know this. Compare to traditional syntax: IDL> sot_prep, index, image, index_out, image_out, /BFI,darkdir=‘/data3/solarb/sot/fg/fgdarks’, flatdir=‘/data3/…” Similarly, IDL> calibrated_image -> display IDL> spectra -> prep -> display Calls up pre-defined image display routines that act differently for images or spectra. Or IDL> calibrated_image -> print, /EPS, filename =‘ready_for_latex.eps’ IDL> calibrated_image -> print, /JPEG, filename = ‘my_calibrated_image.jpeg’ Calls predefined printing/image output routine. – Advantages • • • Follows EIS and RHESSI data analysis models. Easily integrates with IDL’s graphics object protocol, greatly extends display capabilities. User does not have to know which routines to use for each type of data object. – Disadvantages • • Requires learning new IDL syntax. Requires writing method “wrappers” around legacy SSW codes.