IDL FAQ [message #3184] |
Thu, 17 November 1994 14:16  |
sterner
Messages: 106 Registered: February 1991
|
Senior Member |
|
|
IDL (Interactive Data Language) FAQ
Frequently Asked Questions about the
Interactive Data Language (IDL).
Archive-name: idl-faq
Last-modified: 1994 Oct 27
Version: 2.9
FAQ maintainer: Ray Sterner
Email: sterner@tesla.jhuapl.edu
Changes in version 2.9:
. New FAQ maintainer.
. First HTML version.
. Added an Appendix for some previous material.
Previous changes may be found in Appendix A03.
Introduction
This is a list of Frequently Asked Questions about the
Interactive Data Language or IDL. These questions pop up
fairly regularly in the newsgroup comp.lang.idl-pvwave. This
list is an attempt to cut down on net traffic regarding
commonly asked questions. Users are encouraged to read through
this list before posting a query to the newsgroup.
As of 1994 Oct 27 Ray Sterner has been maintaining the IDL
FAQ. Mike Schienle was handling this previously, and Patrick
Ryan before him; much of the material and many of the comments
here were compiled by them.
A Note from the editor about PV~WAVE:
I do not have any direct experience with PV~WAVE. As such,
I will try to minimize comments which appear to favor one
package or the other. I will, however, welcome concise
descriptions of technical and functional differences
between the two packages.
Contents
This list is roughly divided into two categories: general
questions and technical questions. General question numbers are
prefixed with a G and technical ones with a T
General questions
G01. What is IDL?
G02. Where can I contact them?
G03. How do I get IDL?
G04. What is the current version of IDL?
G05. On what systems does IDL run?
G06. What is PV~WAVE and how is it related to IDL?
G07. Are there anonymous FTP sites for IDL?
G08. How can I get help?
G09. Why are there two newsgroups for IDL?
G10. Does anyone at RSI read this group? Is anyone there
listening?
G11. When is the next version of IDL due out?
G12. Are there training courses available for IDL?
G13. Is there a World Wide Web server for IDL or IDL based
projects?
Technical questions
T01. Why doesn't polycontour fill open contours?
T02. How do I increase the number of commands stored in the
T03. How do I get IDL to call routines in language X,
running
T04. Why does XPALETTE edit my color table incorrectly?
T05. Is there on-line help for IDL?
T06. I run IDL under X in SunOS 4.x, and after I logout,
the screen
T07. Sometimes my variables seem to disappear. Why is this?
T08. Is there a major mode for editing IDL code in Emacs?
T09. How do I get 3-D widgets under OpenLook 3.0?
T10. Why does one of the widgets appear red under
OpenWindows?
T11. Where are all the IDL routines and userlib procedures?
T12. Does anybody know how to put multiple image plots on
one page in
T13. Does case matter in IDL?
T14. How do I set up IDL to get precise control over plot
window and text positioning with either portrait or
landscape page orientation on a PostScript or HP-GL
printer?
T15. I get the error message "Code Area Full". What do I
do?
T16. Sometimes I get the following error message: % Unable
to allocate memory: to make array. not enough core
T17. How can I set the cursor to a crosshair on my display?
T18. How can I vectorize an equation of two different
arrays?
T19. How can I get IDL to work with MacX?
Appendix
A01. Disclaimer
A02. Obtaining the latest IDL FAQ
A03. Acknowledgements
A04. Previous version history
GENERAL QUESTIONS:
G01. What is IDL?
IDL is the Interactive Data Language. It is a product of
Research Systems, Inc. (RSI).
The following is quoted from the README file at
rsinc.com:/pub/idl/README. As such, it describes IDL's
capabilities in an understandably subjective manner. ;-)
IDL, Interactive Data analysis Language, is a complete
package for the interactive reduction, analysis, and
visualization of scientific data and images. Optimized
for the workstation environment, IDL integrates a
responsive array oriented language with numerous data
analysis methods and an extensive variety of two and
three dimensional displays into a powerful tool for
researchers.
IDL supports an extensive data import capability,
publication quality hard copy output, and user-defined
Motif graphical user interfaces.
Users can create complex visualizations in hours instead
of weeks with the aid of IDL's high level capabilities
and interactive environment.
IDL is useful in physics, astronomy, image and signal
processing, mapping, medical imaging, statistics, and
other technical disciplines requiring visualization of
large amounts of data.
Here is a short history of RSI:
[attributed to ali@rsinc.com (Ali Bahrami)]
IDL is a product of Research Systems, Inc., founded in
1977 by David Stern. The origins of IDL were developed at
the Laboratory for Atmospheric and Space Physics (LASP)
at the University of Colorado. David was one of the
people involved in efforts to make computers easier to
use for the physicists at the Lab. The first program in
the evolutionary chain to IDL was named Rufus (named
after Dave's dog). Rufus was a very simple vector
oriented calculator that ran on the PDP-12. It accepted 2
letter codes that specified (1) An arithmetic operation
(2) The input registers to serve as operands, and (3) the
destination register. The next version was the Mars
Mariner Spectrum Editor (MMED) which was a version of
Rufus that ran on the PDP-8.
The next program in this line was named SOL, and it also
ran on the PDP-8. Unlike its predecessors, SOL was a real
computer language with a real syntax (no more 2 letter
codes). It was an APL influenced array oriented language
with some primitive graphics capabilities. The
resemblance to IDL was there, but very faintly.
In 1977, Dave left LASP to start Research Systems Inc.
(RSI) with the intention of building on the ideas
contained in SOL. The initial result of this endeavor was
PDP-11 IDL, which was much more capable than SOL.
Graphics was usually done on Tektronix terminals and
outboard raster graphics displays. I used this version at
LASP in 1981 on a PDP11/34 under RSX-11M in 1981 (I
worked as a student at LASP from 1981 to 1987). I didn't
use it for very long though, because 1981 was the year
that Dave released the VAX/VMS version of IDL. This
version, which was written in VAX-11 MACRO and FORTRAN,
took advantage of the VAX virtual memory and 32-bit
address space, and was a huge step beyond the PDP-11
version. It used essentially the same sort of graphics
hardware as the PDP-11.
In 1987, Dave decided that Unix workstations were the
direction in which IDL should progress, but porting the
current VAX IDL to Unix didn't make much sense because of
its MACRO and FORTRAN implementation. I had just finished
my Masters degree and was looking for work. Dave hired me
and together we wrote the current version of IDL for Unix
on the Sun 3 taking advantage of the re-write to extend
and improve the language. Since then, we've ported it to
many Unix machines and moved it back to VMS. RSI has many
other employees now, but our focus is still the continued
development of IDL. Recently, IDL was ported to PC class
systems running Microsoft Windows.
G02. Where can I contact them?
Their address is:
Research Systems, Inc.
2995 Wilderness Place
Boulder, CO 80301
(303) 786-9900 (Voice)
(303) 786-9909 (Fax)
Email:
info@rsinc.com or support@rsinc.com # Internet
ORION::IDL # SPAN
G03. How do I get IDL?
RSI's distribution scheme is unique in that all of the
binaries and IDL code needed are available via anonymous ftp.
IDL binaries and code are available at these sites:
gateway.rsinc.com (192.5.156.17)
pub/idl
boulder.colorado.edu (128.138.240.1)
pub/idl
ftp.Germany.EU.net (192.76.144.75)
shop/CreaSo/IDL
The README file describes which files are needed, how to
unpack them, and how to install them.
If you install IDL without a valid license, you will get IDL's
7 minute demo mode. This mode is designed for users who are
considering buying the package.
To actually get IDL running for good, you must pay for a
license from RSI and follow their instructions. You will be
asked to fill out a form with information unique to your
machine. RSI will create a license key which the license
manager program (lmgrd) reads to validate your license.
As of release 3.1, upgrades to IDL are no longer free. For
details about upgrades and support contracts, contact RSI.
G04. What is the current version of IDL?
IDL 3.6.1 is the current version. It was released in August,
1994.
G05. On what systems does IDL run?
The information below is from the file RELEASE_LEVEL located
at rsinc.com:/pub/idl/RELEASE_LEVEL. This information applies
to release 3.6.1. It is also in the distribution set in
$IDL_DIR/notes/currel.doc.
This release supports the following systems:
- Data General Aviion: DG/UX 5.4.1.
- DEC ALPHA: OSF1 2.0.
- DOS based personal computers running Microsoft Windows 3.1.
- Windows NT (Intel x86).
- HP 9000 Series 700: HP-UX 9.01.
- IBM 6000: AIX 3.2.5
- Apple Mac and Power Mac (native) computers running System 7
- Risc Ultrix: Ultrix 4.2.
- SGI: IRIX 5.2
- Sun 4 (sparc): SunOS 4.1.3.
- Sun 4 (sparc): Solaris 2.3 (SunOS 5.3).
- VMS:
[ALPHA] OpenVMS AXP 1.5.
[VAX] VMS 5.1 and up. Standard X windows graphics are
supported at all VMS versions. IDLwidgets are supported
at VMS 5.4-3 at up *if* the host system has version 1.1
of the DECWINDOWS-MOTIF package installed.
The following hardware/operating system combinations are
no longer supported. The last release of these versions
have been archived, and no future development for them
will be done:
- Sun 386i (last release: 2.0.4).
- HP 9000 series 300 and 400 (last release: 3.1.0)
- VAX Ultrix (last release: 2.2.2)
- Sun 3 (last release: 3.1.0)
- MIPS running Risc/OS 4.52B (last release: 3.1.0)
G06. What is PV~WAVE and how is it related to IDL?
Around the time that the Unix version of IDL first became
available (1988), Precision Visuals Inc. (PVI) entered into an
agreement with RSI under which they enhanced and resold IDL
under the name PV~WAVE. In September of 1990, they exercised
an option in that agreement that resulted in the following:
- They received a copy of the IDL source code as it existed in
September 1990 in return for a one-time payment to RSI.
- The connection between RSI and PVI was severed.
IDL and PV~WAVE are now on separate development tracks. Each
company enhances, supports, and maintains its own product.
PVI has since merged with IMSL and is now Visual Numerics,
Inc. (VNI).
G07. Are there anonymous FTP sites for IDL?
The sites below contain public domain IDL code.
JHU/APL/S1R IDL library
fermi.jhuapl.edu [128.244.147.18]
/pub/idl
NASA IDL Astronomy User's Library
(VAX) uit.gsfc.nasa.gov [128.183.57.27]
Username: idluser
Password: (Contact landsman@stars.gsfc.nasa.gov for password)
(Unix) idlastro.gsfc.nasa.gov [128.183.57.82]
/
IUE RDAF library
iuesn1.gsfc.nasa.gov [128.183.57.16]
cetus.colorado.edu [128.138.238.151]
/pub
ICUR Spectral Analysis Software
ftp.astro.psu.edu [128.118.147.28]
/pub/nefftp/icur
IDL ROSAT software
legacy.gsfc.nasa.gov [128.183.8.233]
rosat/software/idl
IDLmeteo library
ftp.sma.ch (141.249.3.33)
/pub/idlmeteo
ESRG library
eos.crseo.ucsb.edu [128.111.228.1]
/pub/idl
G08. How can I get help?
RSI has excellent telephone and email support. You can contact
them at:
Voice: (303) 786-9900
Fax: (303) 786-9909
Email:
(Internet)
info@rsinc.com # general questions
support@rsinc.com # technical support
(SPAN)
ORION::IDL
Keep in mind, however, that RSI's technical support is for
their paying customers, i.e. those with current support
contracts.
G09. Why are there two newsgroups for IDL?
Unfortunately, there are two very different packages with the
abbreviation "IDL". The newsgroup comp.lang.idl is for the
Interface Definition Language. The newsgroup for discussing
issues related to RSI's IDL and VNI's PV~WAVE and IMSL/IDL is
comp.lang.idl-pvwave.
G10. Does anyone at RSI read this group? Is anyone there listening?
[ This question was included at the request of RSI. The answer
was provided by Ali Bahrami. -pat ]
Yes, many of us do. We're naturally curious what people
think of our product. We make notes about what people
like and dislike and this influences our decisions.
However, you usually won't get a direct response from us
from a posting to this group. There are many reasons for
this. Here are a couple of the more important ones:
[] We believe that this group should belong solely to the
user community, and should be free of vendor bias and
marketing. It should be noted that both RSI and Visual
Numerics (formerly PVI) have shown great restraint in
this matter, and that this group is largely left to the
actual users. (Long term readers will recall some notable
exceptions to this, but in general it is true.)
It could be argued that as long as the topic stays
technical, vendor postings are OK. The problem with this
is that one persons technical posting is another's
blatant product plug, and the line between them is not
always obvious.
[] We provide support for our customers via the phone and
email. If you would like an answer from us, you should
call us directly. We have no objection to you sharing the
information you get in this manner with the newsgroup as
long as you quote us accurately and separate fact from
conjecture.
In other words, you should view this newsgroup as a way
to share questions and information with other users, not
as a way to contact the vendor.
G11. When is the next version of IDL due out?
IDL 3.6.1 was released in August, 1994.
IDL 3.7 is scheduled for release in the first half of 1995.
IDL 4.0 is scheduled for release in the second half of
1995.
G12. Are there training courses available for IDL?
[ This question included at the request of RSI. ]
RSI offers a number of IDL training courses for
beginning, intermediate, and advanced IDL users. IDL
courses are scheduled monthly at RSI's training facility
in Boulder. On-site IDL courses are also available.
Contact RSI at 303-786-9900 and ask for "training" or
send e-mail to training@rsinc.com for complete scheduling
and price information.
G13. Is there a World Wide Web server for IDL or IDL based projects?
RSI has WWW pages on IDL in general:
http://sslab.colorado.edu:2222/projects/IDL/idl_ssl_home.htm l
Hal Mueller has put together a Digital U.S. Map browser based on images
created by Ray Sterner at Johns Hopkins University using IDL:
http://www.zilker.net/~hal/apl-us//
E. Loren Buhle, Jr. Ph.D. made a page on AVS IN MEDICAL TREATMENT
PLANNING which also discusses IDL:
http://archive.xrt.upenn.edu/0h/buhle/manuscripts/avs94_pape r.html
TECHNICAL QUESTIONS:
Note for Sun users:
There is a mini FAQ for Sun IDL in $IDL_DIR/notes, and the
following questions are answered in the file sun.doc:
1. IDL complains about missing fonts when creating widgets.
2. IDL complains about missing bitmap files when creating
widgets.
3. How to make IDL work with OpenWindows version 3.0.
4. 3-D appearance for OpenLook IDLwidgets.
5. Why does one of the widgets appear red?
6. Why does pressing the left button while pointing at a
pulldown menu button cause the menu to pop up with the
pushpin in? Older versions of IDL didn't to that.
7. The font used by the list widget is much larger than it
used to be, and I don't like the result on my program.
8. Why do I get "Cannot allocate colormap entry" errors, and
why do they kill IDL?
9. I've changed my .Xdefaults file, but nothing different
happened. Why?
T01. Why doesn't polycontour fill open contours??
This problem is described in the POLYCONTOUR manual page.
RESTRICTIONS:
This routine will NOT draw open contours. To eliminate
open contours in your dataset, surround the original
array with a 1-element border on all sides. The border
should be set to a value less than or equal to the
minimum data array value.
For example, if A is an (N,M) array enter:
B = REPLICATE(MIN(A), N+2, M+2) ;Make background
B(1,1) = A ;Insert original data
CONTOUR, B, PATH=Filename ... ;Create the contour file.
[ This problem was fixed in IDL 3.1. ]
The following is from Ray Sterner at Johns Hopkins University:
Here is a very simple algorithm that might be a useful
addition to the section of the FAQ on filled contours. It is
for evenly spaced contours only.
Z is an array to be contoured,
CI is the desired contour interval,
C0 is the desired starting color index,
D is the desired step between colors.
T = fix(Z/CI)
M = T - smooth(T,3)
F = (C0 + T*D)*(1-M)
is an array with filled contours with the contours
plotted with color 0. For contours of a different color
simply add M*CC where CC is the desired contour color index.
T02. How do I increase the number of commands stored in the history
buffer?
The system variable !EDIT_INPUT controls command recall. By
default, it is set to 1, causing the last 20 commands to be
saved. If it is 0, no commands are saved. To save more than 20
commands, just put !EDIT_INPUT=50 (or other large number) in
your startup file.
It is important to realize that IDL looks at the value of
!EDIT_INPUT the first time it reads anything from the
keyboard, and the size of the history buffer is fixed after
that. Hence, the command must be in a startup file because
entering it at the keyboard is too late.
T03. How do I get IDL to call routines in language X, running under
system Y?
Jeff Valenti has written a sizable document about calling
external FORTRAN routines from IDL. You can find it at
eos.crseo.ucsb.edu:/pub/idl/idl-fortran.
T04. Why does XPALETTE edit my color table incorrectly?
Here is the answer from RSI support:
The color applications such as xpalette and xloadct use a
common block called "colors" to keep track of the color
vectors. When you call tvlct, your vectors are loaded
into the colormap, but they are not put into the colors
common block.
When xpalette starts, it checks to see if the colors have
been defined in the common block and uses them if they
have. Otherwise it sets them to the standard black and
white colormap, in which r,g,b are each linear ramps.
(The colors are as you expect because there is only one
colormap.)
Admittedly, this is not the most desirable situation. You
would like your colors which you loaded with TVLCT to be
recognized by xpalette. We modified xpalette (and
xloadct) to use the current colormap when they start up
by getting the current vectors with TVLCT.
Another alternative would be to use the following lines
to define the common block prior to calling your current
version of xpalette.
[ assume here that you have a routine called "restore"
which reads colors from a file somewhere and creates
vectors r, g, and b. -pat ]
IDL> restore, file='ryan.sav', r, g, b ;get the vectors from somewhere
IDL> tvlct, r, g, b
IDL> common colors,r_orig,g_orig,b_orig,r_curr,g_curr,b_curr
IDL> r_orig = r & r_curr = r
IDL> g_orig = g & g_curr = g
IDL> b_orig = b & b_curr = b
IDL> xpalette
T05. Is there on-line help for IDL?
Try ?.
T06. I run IDL under X in SunOS 4.x, and after I logout, the screen
becomes completely blank. Typing in login names and passwords blindly
logs you in again with the correct colors. How to prevent this?
[Note: This is only a problem under OpenWindows2. -pat ]
Add the following to your .Xdefaults:
Idl*colors: -5
which reserves some colors for the colormap so that IDL does
not exhaust all the available colors. (For a nice summary of
Sun IDL interactions with OpenWindows, see
$IDL_DIR/notes/sun.doc)
Another solution is to put a call to clear_colormap in your
.login file to be executed after OpenWindows start up.
T07. Sometimes my variables seem to disappear. Why is this?
Quoting the IDL User's Guide, page 10-8:
IDL users may find that all their variables have
seemingly disappeared after an error occurs inside a
procedure or function. The misunderstood subtlety is that
after the error occurs, IDL's context is inside the
called procedure, not in the main level. Typing RETALL or
RETURN will make the lost variables reappear.
RETALL is best suited for use when an error is detected
in a procedure and it is desired to return immediately to
the main program level despite nested procedure calls.
RETALL issues RETURN commands until the main program
level is reached.
The HELP command can be used to see the current call
stack (i.e., which program unit IDL is in and which
program unit called it).
T08. Is there a major mode for editing IDL code in Emacs?
Yes.
Chris Chase (chase@jackson.jhuapl.edu) has written idl.el for
editing IDL code. He has also written idl-shell.el for running
IDL as an inferior process under emacs. URLs for these files
are:
ftp://eos.crseo.ucsb.edu/pub/idl/
ftp://fermi.jhuapl.edu/pub/idl_emacs/
Get the files: idl.el and idl-shell.el
Lubos Pochman (lubosp@pvi.com) of VNI has developed a PV~WAVE
major mode. Given the (remaining) strong similarity between
PV~WAVE and IDL, it has many of the features that one would
like in such a mode. URLs for this file are:
ftp://ftp.pvi.com/PVI/emacs/
ftp://eos.crseo.ucsb.edu/pub/idl/
Get the file wave-mode.shar
See Appendix A02 for details on using URLs.
T09. How do I get 3-D widgets under OpenLook 3.0?
This subject is discussed on page 53 of the OpenWindows
Version 3 User's Guide Release Manual.
OpenWindows 3.0 added 3-D appearance for widgets. In order for
the 3-D look to work, it must be enabled and the background
color must be a medium tone color such as "grey" or "wheat".
Add the following resources to your ~/.Xdefaults file:
For plain IDL:
Idl*threeD: TRUE
Idl*background: PeachPuff2
For IMSL/IDL:
Imslidl*threeD: TRUE
Imslidl*background: PeachPuff2
T10. Why does one of the widgets appear red under OpenWindows?
This subject is discussed on page 53 of the OpenWindows
Version 3 User's Guide Release Manual.
The OLIT widget toolkit, which is used by IDL, added the
concept of "mouseless focus" under version 3.0. The red widget
indicates where the current mouseless focus is. Use the arrow
keys to traverse the widgets, and the spacebar to make a
selection.
T11. Where are all the IDL routines and userlib procedures?
The basic routines are not accessible, for obvious reasons.
The userlib, statlib and widget procedures are in
$IDL_DIR/lib/. The procedure XDL also displays the full
pathname. The system variable !path also contains the
directory names for all accessible IDL procedures.
T12. Does anybody know how to put multiple image plots on one page
in PostScript?
Because PostScript has scalable pixels, you must specify the
xsize and ysize parameters, as well as the position parameter,
in TV or TVSCL. I don't know about PV-Wave, but the following
works in IDL:
; Display four images in a 2x2 grid
; Assume data(x,y,4) = array containing the 4 images
set_plot, 'ps' ;request PostScript output
device, ... ;modify page size, orientation, etc. as desired
ximsize = 0.5*!d.x_size ;define output image size
yimsize = 0.5*!d.y_size ;note: 0.5 assumes 2x2 grid
for i=0,3 do begin ;display the 4 images, using i as position index
tv, data(*,*,i), i, xsize=ximsize, ysize=yimsize
endfor
T13. Does case matter in IDL?
No.
Compiled routines are case insensitive. The only catch is
that, on Unix systems, when executing a script via the .RUN
command, the file name argument must exactly match the file
name as it appears on the disk. Once the routines in the
script are compiled, their names can be written in any case.
This is not a problem in operating systems such as VMS that do
not distinguish case for file names. This is usually not a
problem under Unix either since, by convention, most people
use lower case file names.
T14. How do I set up IDL to get precise control over plot window and
text positioning with either portrait or landscape page orientation on a
PostScript or HP-GL printer?
(This answer only applies to PostScript and HP-GL printers --
other printers may differ in having the X and Y offsets
measured from the upper left corner of the portrait page
instead of the lower left corner.)
IDL uses portrait page orientation as a default. (The x axis
is along the shorter dimension of the paper.) In portrait
orientation the lower left corner of the page is the origin
for the XOFFSET and YOFFSET page offsetting keywords of the
DEVICE command that determine the origin (lower left corner)
of the output window. (Normally one uses XOFFSET=0 and
YOFFSET=0 for portrait orientation.) Size of the output window
is determined by the XSIZE and YSIZE keywords of the DEVICE
command. The origin for graph positioning variables
!P.POSITION and !P.REGION is the output window origin. X and Y
coordinates for portrait page orientation are shown on the
sketch below as upper case X and Y.
----------
| | ORIGINAL PORTRAIT PAGE (Printer only prints on
Y | | OUTPUT WINDOW this area.)
| |
| X |
o-----------
| y + | OUTPUT WINDOW ROTATED ABOUT LOWER LEFT CORNER
x | + |
| + |
------------
++++++++++ OUTPUT WINDOW RESIZED FOR LANDSCAPE ORIENTATION
^
| DIRECTION OF NEEDED OFFSET
If device,/landscape is specified, then the output window is
rotated 90 deg. clockwise about the lower left corner of the
page. In this condition nothing will be plotted on the page,
since the rotation has carried the output window entirely off
the paper as shown in the sketch above. To correct this
mismatch, the rotated output window must be offset. XOFFSET
AND YOFFSET are still measured in the X and Y coordinates of
the portrait page, but now represent the position of the lower
left corner of the rotated (and resized) output window (marked
by an o above) with respect to the lower left corner of the
portrait (actual) page. Hence, one generally uses XOFFSET=0
and YOFFSET=long_dimension_of_page for landscape orientation.
In landscape orientation, the coordinates for graph
positioning variables !P.POSITION and !P.REGION are the lower
case x and y coordinates shown in the sketch above and having
origin marked by the letter o. Position of output window
origin o on the page is, of course, affected by the setting of
XOFFSET and YOFFSET, as explained before. The XSIZE and YSIZE
(output window size) keywords of the DEVICE command are also
measured in the x and y directions when in landscape
orientation. The resizing of the landscape page generally
means interchanging the values of XSIZE and YSIZE appropriate
for the portrait page.
Example of settings for a portrait page:
XPAGE=8.5 & YPAGE=11. & XOFFS=0. & YOFFS=0. ;Inches
DEVICE,/INCHES,XSIZE=XPAGE,YSIZE=YPAGE,XOFFSET=XOFFS,YOFFSET =YOFFS
Example of settings for a landscape page:
XPAGE=11. & YPAGE=8.5 & XOFFS=0. & YOFFS=XPAGE ;Inches
DEVICE,/LANDSCAPE,/INCHES,XSIZE=XPAGE,YSIZE=YPAGE,XOFFSET=XO FFS, $
YOFFSET=YOFFS
Example of setting position and size of a plot window:
X0=1.374 & Y0=1.283 & XLEN=3.622 & YLEN=6.157 ;Inches
!P.POSITION=[X0/XPAGE,Y0/YPAGE,(X0+XLEN)/XPAGE,(Y0+YLEN)/YPA GE]
Example of setting position and orientation of a text string:
x0=.35 & y0=.37 ;Inches
xyouts,x0/xpage,y0/ypage,!stime,orient=90,/normal ;Date, time
T15. I get the error message "Code Area Full". What do I do?
IDL sets aside a certain amount of memory area for compiling
programs. The current code and area sizes can be seen with the
HELP command, e.g.
IDL> help
% At $MAIN$ .
Code area used: 0% (0/16384), Symbol area used: 0% (2/4096)
These sizes can be increased with the .SIZE command. Quoting
the IDL User's Manual, page 2-11:
These sizes represent a compromise between an unlimited
program space and conservation of memory. User procedures
and functions are compiled in this large program area.
After successful compilation, a new memory are of the
required size is allocated to contain the newly compiled
program unit.
Resizing the code and data areas erases the currently
compiled main program and all mail program variables. For
example, to extend the code and data areas to 30000 and
5000 bytes respectively:
.SIZE 30000 5000
Getting "Code Area Full" is often an indication that the
routine is large, and would benefit by decomposition into
sub-procedures/functions. It's better to avoid use of .SIZE
because your code will always work on other systems where the
users don't use a large .SIZE setting.
T16. Sometimes I get the following error message:
% Unable to allocate memory: to make array.
not enough core
RSI support replies:
The circumstances described happen when memory becomes
fragmented. Unfortunately, there is nothing you can do
except use less memory in your application, or get more
for the system to work with.
T17. How can I set the cursor to a crosshair on my display?
Ray Sterner of Johns Hopkins University has written a
procedure for managing this called crossi. It is in the usr.tar
file of the JHU/APL IDL library mentioned in question G07.
Joel Parker has written a procedure called rdplot which manages
this using an XOR graphics function and provides additional
functionality. It is located in the NASA IDL Astronomy User's
Library mentioned in question G07.
T18. How can I vectorize an equation of two different arrays?
From the user community:
I have two different arrays, (8) of float and (300,8) of
float. I want to vectorize the equation and therefore I
need to use both arrays in the same equation. For example :
newarray=cos(small_array)*sin(large_array)
where I want the data in small_array to be used over and
over 300 times in this calculation.
From Dan Carr (dan@rsinc.com):
IDL> arr1 = Findgen(8)
IDL> arr2 = Findgen(300, 8)
IDL> newarr = (Replicate(1.0, 300) # Cos(arr1)) * Sin(arr2)
From Dave Landers (landers@tsunami.dseg.ti.com)
to convert an array1(M) to array2(n,M) :
array2 = array1( Lindgen(n,M) / n )
or array2 = replicate(1,n) # array1
to convert an array1(M) to array2(M,n) :
array2 = array1( Lindgen(M,n) MOD M )
or array2 = array1 # replicate(1,n)
T19. How can I get IDL and MacX to work without crashing?
Using MacX v1.2 and IDL cause the Mac to crash quite often.
This happens especially during allocation of color resources
or display windows. You can get around the problem by
downgrading to MacX v1.1.7 (apparently Apple will supply this
if you can prove to them that you rightfully own v1.2).
Another solution is to purchase White Pine's eXodus software.
Rumors are that eXodus is an overall better product than MacX.
White Pine can be contacted at:
White Pine Software
40 Simon St. Suite 201 Nashua, NH 03060-3043
phone: 603-886-9050 Fax: 603-886-9051
APPENDIX
A01. Disclaimer:
I do not work for RSI and I am in no way answerable to them.
Questions and answers in this document are culled from the
user community. No warranty, express or implied exists
regarding this document. Permission to copy all or part of
this work is granted, provided that the copies are not made or
distributed for resale.
A02. Obtaining the latest IDL FAQ
The current IDL FAQ may be accessed at fermi.jhuapl.edu
[128.244.147.18] in directory www/s1r/idl/idl_faq
HTML version: idl_faq.html (compressed: idl_faq.html.Z)
Plain Text: idl_faq.txt (compressed: idl_faq.txt.Z)
The URL (Uniform Resource Locator) for this file is:
ftp://fermi.jhuapl.edu/www/s1r/idl/idl_faq/idl_faq.html
How to interpret the URL
Using a WWW (World Wide Web) Browser, for example mosaic:
mosaic
ftp://fermi.jhuapl.edu/www/s1r/idl/idl_faq/idl_faq.html
Save the file using the Save as ... option.
Using anonymous ftp:
ftp fermi.jhuapl.edu
Login: anonymous
Password: enter your email address
cd www/s1r/idl/idl_faq
get file
bye
Additions and Corrections
Send additions and corrections to:
Ray Sterner
sterner@tesla.jhuapl.edu
A03. Many thanks to the following for their contributions
black@breeze.rsre.mod.uk (John Black)
claflin@claes.space.lockheed.com (Scott Claflin)
edelsohn@npac.syr.edu (David Edelsohn)
fireman@iuegtc.DNET.NASA.GOV (Gwyn Fireman)
gurman@umbra.gsfc.nasa.gov (Joseph B. Gurman)
jdlb@kukui.IFA.Hawaii.Edu (JF Pitot de La Beaujardiere)
kashyap@oddjob.uchicago.edu (Vinay Kashyap)
mayor@vaxine.larc.nasa.gov (Shane Mayor)
oet@maz.sma.ch (Thomas Oettli)
rmmoss@Texaco.COM (Robert M. Moss)
sterne@dublin.llnl.gov (Philip Sterne)
thompson@serts.gsfc.nasa.gov (William Thompson)
valenti@soleil.Berkeley.EDU (Jeff Valenti)
sterner@tesla.jhuapl.edu (Ray Sterner)
joel@stars.gsfc.nasa.gov (Joel Parker)
landers@tsunami.dseg.ti.com (David Landers)
dan@rsinc.com (Dan Carr)
Previous IDL FAQ maintainers:
Patrick Ryan: founded the IDL FAQ
Mike Schienle: from 12/01/93 to 10/27/94
A04. IDL FAQ Versions History
Changes since version 2.9:
. New FAQ maintainer.
. First HTML version.
. Added an Appendix for some previous material.
Changes since version 2.8:
. Added Power Macintosh to systems which IDL runs on.
. Updated "Training" contact information.
Changes since version 2.7:
. Updated information regarding next release dates.
. Changed reference to openwin3.doc to sun.doc.
Changes since version 2.6:
. New question T19 added regarding MacX and IDL.
. Updated information regarding current IDL versions.
. Reference to current IDL version changed from 3.5.1 to 3.6.1.
Changes since version 2.5:
. T18 responses corrected.
Changes since version 2.4:
. New question T18 added regarding vectorizing an equation.
. Address change for FAQ maintainer.
. Address change for FAQ location.
Changes since version 2.3:
. New question T17 added regarding cross-hair cursor.
. Additional info for NASA ftp site.
. Additional information provided for question T01 regarding contours.
. Question G09 referred to the "other" IDL as Interface Description
Language, rather than the correct Interface Definition Language.
Changes since version 2.2:
. Question G13 regarding IDL World Wide Web info added.
. JHU/APL IDL library name changed from nansen to fermi. Nansen will
still work for some time.
. Release dates for upcoming versions of IDL revised.
Changes since version 2.1:
. Due to resource problems, the lumpi.informatik.uni-dortmund.de site
is no longer carrying IDL binaries. However, the distribution is now
available from ftp.Germany.EU.net (192.76.144.75).
. Reference to current IDL version changed from 3.5 to 3.5.1.
. Mention of compressed version of FAQ included.
. Added ESRG to list of FTP sites.
The End
|
|
|