IDL Command: vso prep
Purpose
vso_prep is an IDL routine that can be used to remotely pre-process solar data from within an SSW enabled IDL session. The user does not have to have all the instrument software packages or calibration data installed.
Requirements
- Up-to-date SSW gen tree, installation and download instructions
- IDL version 6.4 or higher
- Sun Java version 1.5 or higher
Description
[p]vso_prep[/p], file, outfile=outfile, instrument=instrument, oprep=oprep, image_no=image_no, status=status, err=err, _extra=extra
Either file or instrument must be specified, all other parameters are optional. See table below for keyword details.
Keyword | Description | Example |
---|---|---|
file | This is either an HTTP link or a local file path to a data file that needs pre-processing. It can be empty for some instruments (such as RHESSI). | file='http://stereo-ssc.nascom.nasa.gov/data/ins_data/secchi/L0/b/img/euvi/20070420/20070420_235900_n4euB.fts', file='/home/user1/20070420_235900_n4euB.fts' |
outfile | This is an optional file name for the pre-processed file. If left empty, vso_prep will assign it a default name (prepped_ + infile). | outfile='my_prepped_data.fits' |
instrument | This parameter specifies the instrument type. It can be left empty and the system will try to find out the type by analyzing the data's FITS header. | instrument='rhessi', or 'xrt', 'eit', 'euvi', 'trace', 'eis' |
oprep | After successful pre-processing, this variable will contain a reference to the pre-processed data in form of an IDL object. This object can be displayed directly with plotman. | oprep->[p]plot[/p], oprep->[p]plotman[/p] |
image_no | This parameter is only used for TRACE pre-processing requests where it is necessary to specify the index (or indices) within a TRACE data archive. | image_no=0, image_no=[1,2,5] |
status | Is set to 1 for success and 0 for failure. | N/A |
err | This parameter will contain error messages after an error occurred. | N/A |
_extra | This is an IDL variable that absorbs all parameters not specified in the keyword list of vso_prep and passes them on to future routine calls. | N/A |
Troubleshooting
If the pre-processing fails, it is advisable to use vso_debug to receive more information on the error.
java.lang.OutOfMemoryError: Java heap space
This error occurs when Java takes up too much memory in your IDL session. To resolve this check the following:
1. The current IDL session's heap contains unreferenced objects. Removing those objects by calling the IDL command heap_gc will free up space. 2. The allowed heap size for Java is too small. The maximum amount can be increased 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 then by adding the following two lines to the section labeled JVM start options:
JVM Option1 -Xms32m
JVM Option2 -Xmx128m
This will set the minimum heap space to 32MB, and the maximum to 128MB.
This error means that the IDL-Java Bridge could not determine what Java Virtual Machine should be used. Check the following:
- Sun (or since recently Oracle) Java is not installed or the wrong Java version has been selected. This can be checked by opening a console window and then by executing java -version. If this command is unknown then install Sun Java from here or follow the installation guidelines for your system (e.g. if you have Ubuntu Linux, see here). If the command returns text, check and make sure it says something like Sun Java version 1.5 (or 1.6) or Oracle Java version 1.5 (or 1.6). Should this not be the case, install the proper Sun Java version (see above). On Linux systems, Sun Java may be installed but not active. See here for more information.
- There is a variable that points to the Java Virtual Machine (JVM) library. Set this variable manually to make sure it points to an active and valid JVM: (on Linux, the command line tool locate may help finding the library libjvm.so), or use the SSW IDL routine locate_java to find an set this library.
setenv IDLJAVAB_LIB_LOCATION xyz
vso_prep fails repeatedly on Linux in IDL 7.0+ with or without the mention of libstdc++.so.5
It seems as if IDL was linked to an older standard C++ library on Linux. On more modern Linux versions, you may only find standard C++ library in version 6 (or higher). To install version 5, follow the instructions below for Ubuntu Linux (taken from here):
# Add the "old" source repository to the package manager's search path (careful: two commands)
# Remove underscore(s) from command(s) and file path
na_no /e_tc/apt/sources.list
# Add this to the end of the sources.list file (if it is not already in this file)
deb http://ubuntu.cs.utah.edu/ubuntu jaunty main universe
# Update your source list
# Remove underscore(s) from command(s)
su_do apt-get update
# Install libstdc++5
# Remove underscore(s) from command(s)
su_do apt-get install libstdc++5
vso_prep fails repeatedly on Linux in IDL 6.4
At the time when IDL 6.4 came out, the IDL-Java Bridge (and other components in IDL) were compiled with the library libtermcap. On newer Linux systems, this library is not available anymore and needs to be added manually. Please follow the instructions below for Ubuntu Linux (taken from here):
# CDir into a temporary folder
# Remove underscore(s) from command(s)
c_d /tmp
# Get the dependency files and data
# Remove underscore(s) from command(s)
w_get http://old-releases.ubuntu.com/ubuntu/pool/universe/l/ld.so/ldso_1.9.11-15_i386.deb
w_get http://old-releases.ubuntu.com/ubuntu/pool/universe/libc/libc/libc5_5.4.46-15_i386.deb
w_get http://old-releases.ubuntu.com/ubuntu/pool/universe/t/termcap-compat/termcap-compat_1.2.3_i386.deb
# Install the packages
# Remove underscore(s) from command(s)
su_do dpkg -i ldso_1.9.11-15_i386.deb
su_do dpkg -i libc5_5.4.46-15_i386.deb
su_do dpkg -i termcap-compat_1.2.3_i386.deb
Examples
The following example shows how to search with vso_files for the level-0 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 saves and named eit.fits and then displayed with plotman.
file=[f]vso_files[/f]('21-apr-2002 01:15', inst='eit')
[p]vso_prep[/p], file, oprep=o, out='eit.fits'
o->[p]plotman[/p]