VSO_PREP IDL Users Guide

D. M. Zarro (ADNET/GSFC), L. I. Etesi (CUA,FHNW/GSFC), Updated: 2009-06-11

Purpose

vso_prep is an IDL routine that can be used to remotely pre-process solar image data from within an SSW enabled IDL session. The user does not have to have all the instrument software packages or their calibration data installed.

Description

vso_prep, instrument, [file], [outfile=xyz], [list-of-args]

instrument   Mandatory. Set the instrument with this parameter. Valid values are:
  • rhessi
  • eit
  • euvi
  • trace
  • xrt
file   Optional. file can be one of the following:
  • A hyperlink to a data file on a remote repository.
  • A file path to a local data file
  • Omitted, if the instrument does not require a file. See the RHESSI example.
outfile   Optional. Specifies the output file path. If omitted, the output file name is a concatination of the original file name and the prefix "prepped_".
list-of-args   Optional. This comma-separated list can contain any combination of arguments. These arguments will be passed on to the instrument's pre-processing routine. Invalid arguments will be ignored.

Requirements

vso_prep requires the following to be installed on your system:

Troubleshooting

If the pre-processing fails, you can use vso_debug to receive more information on the error.

java.lang.OutOfMemoryError: Java heap space

This message tells you that Java ran out of memory. Since Java is not allowed to access all of your memory, this can happen whenever you pre-process large image files. This error usually occurs under the following circumstances (Please notice, that on some Mac systems, this is an unresolved issue we are working on.):

  1. Your IDL session's heap contains unreferenced objects. You can remove those objects by calling heap_gc.
  2. The heap size for Java is too small. You can increase that amount by opening the IDL-Java Bridge configuration file at <IDL_DIR>resource/bridges/import/java/.idljavabrc (on Windows systems there is no leading "." in the file name) and adding the following two lines to the section labelled JVM start options:

    JVM Option1 -Xms32m
    JVM Option2 -Xmx128m

    This will set the minimum heap space to 32MB, and the maximum to 128MB.

VSO_PREP: IDL-Java bridge failed to initialize : No valid JVM shared library

If you experience this error, it means that the IDL-Java Bridge could not determine what Java Virtual Machine it should use. To fix this problem, you have two choices:

  1. You add the library location to the IDL-Java Bridge configuration file, section Java virtual machine locations. Add a variable JVM LibLocation = xyz (see below for value of xyz).
  2. You add the library location to the user variable IDLJAVAB_LIB_LOCATION, by i.e. adding setenv IDLJAVAB_LIB_LOCATION xyz to your shell startup script (probably .login).

You can determine the library location by performing the following steps (on Unix/Linux, C-Shell):

  1. which java # => /usr/bin/java
  2. ls -la /usr/bin/java # => lrwxrwxrwx 1 root root 22 Sep 13 2008 /usr/bin/java -> /etc/alternatives/java
  3. la -la /etc/alternatives/java # => lrwxrwxrwx 1 root root 40 Jun 5 13:50 /etc/alternatives/java -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
  4. cd /usr/lib/jvm/java-1.5.0-sun/jre
  5. cd lib
  6. cd i386
  7. cd client
  8. pwd # => /usr/lib/jvm/java-1.5.0-sun/jre/i386/client

That last output from pwd is what you add to to the IDL-Java Bridge config file or to the user variable IDLJAVAB_LIB_LOCATION.

Examples

Wherever you see a question mark icon , you get more information when moving your mouse cursor over it.

All the following examples can be seen and executed sequentially by calling vso_prep_test.

The following example shows how to search for the unprocessed eit image which is closest to April, 21 2002 01:15 UT and then how to send the pre-processing request to the remote server with vso_prep. The pre-processed EIT image will be saved and named eit.fits and plotted with PLOTMAN.

file = vso_files('21-apr-2002 01:15', inst='eit')
vso_prep, 'eit', file, out='eit.fits'
eit = obj_new('eit')
eit->read, 'eit.fits'
p = plotman(input=eit, plot_type='image', desc='EIT image')

The next command will return a clean rhessi image covering the interval April, 21 2002 01:15 UT - April, 21 2002 01:16 UT, save it as rhessi.fits and plot it with PLOTMAN.

vso_prep, 'rhessi', out='rhessi.fits', im_time_interval=['21-apr-2002 01:15', '21-apr-2002 01:16'], image_alg='clean'
rhessi = obj_new('rhessi')
rhessi->read, 'rhessi.fits'
p->new_panel, input=rhessi, plot_type='image', desc='RHESSI image'