Transcript Document
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.