For links to What's New information for other IDL 8.x releases, go to See Also.

New Features


IDL Breakpoint Properties

In the IDL Workbench, when you set a breakpoint in your IDL code you can now control the breakpoint's behavior. For example, you can set the breakpoint to only break once, to only break after a certain number of hits, or only when a certain condition is met (for example when a variable is a specific value). These breakpoint properties can be set by right-clicking on a breakpoint and bringing up the "Breakpoint Properties" dialog, or from the "Breakpoints" View.

Hexadecimal Constants

In addition to the standard way of specifying hex constants, you can now use a simpler 0x notation. For example:

IDL> a = 'FF3A'x  ; existing notation
IDL> a = 0xFF3A   ; new notation

See Defining and Using Constants for details.

GOES-R Map Projection Support

IDL now has support for the GOES-R map projection. This map projection lets you convert from longitude and latitude into GOES-R scan-angle radians, and vice versa. For details see MAP_PROJ_INIT and the MAP function.

Tip: For an example of reading and displaying GOES-16 data, see GOES-16 on a Map in the images gallery.

HDF5 Set Character Encoding

The IDL HDF5 module has a new H5T_SET_CSET routine that lets you set the encoding type to either ASCII or UTF-8 for strings within datasets and attributes.

XML Parse Routine

The XML_PARSE function allows you to automatically parse an entire XML file or string into an IDL ordered hash variable. You can then use simple array indexing to access all of the attributes and values within the XML.

Updates


CDF Library Updates

The CDF_ATTPUT procedure has new keywords to let you specify the CDF data type for the attribute. The CDF_COMPRESSION procedure now has new keywords to let you get or set a variable's blocking factor for compression.

Convol Function Constant-Edge Keyword

The CONVOL function has a new EDGE_CONSTANT keyword. Set this keyword to a specific value to make CONVOL compute the values of elements at the edge of the array as if the array were padded by a constant value.

Octal Constants and Strings

Previously, if you tried to create a string that started with a double quote followed by a digit 0–7, then IDL would always attempt to interpret the string as an octal number. Now, IDL only creates an octal constant if there is no trailing double quote. Otherwise, IDL will create a string. For example:

IDL> a = "123   ; creates an octal number = 83
IDL> a = "123"  ; used to throw an error, now returns a string

See Defining and Using Constants for details.

Near Side Perspective Map Projection: Ellipsoid Support

The Near Side Perspective map projection now supports both spherical and ellipsoid. Ellipsoid support is critical for certain satellite images - for example, the GOES-R mission uses "GRS 1980" as its ellipsoid. For details see the MAP_PROJ_INIT function and the MAP graphics function.

Task Engine License Timeout

The Task Engine now lets you specify a timeout in seconds to wait for an available license. If you have a limited number of licenses, this will allow your task to wait for a license instead of failing.

TrueType Font Updates

IDL has new TrueType fonts for Helvetica, Times, Courier, Symbol, and Monospace Symbol. For direct, object, and function graphics, these fonts should look more modern and should be more consistent between font families.

For object graphics and function graphics, the new TrueType fonts are now embedded within PDF and EPS files, which should give better compatibility between text on the screen and in the file. In addition, for the TEXT function the Greek alphabet has been modified to be more consistent with the default DejaVuSans font.

For samples of all of the new characters see Using TrueType Fonts.

Note: For direct, object, and function graphics, when using TrueType fonts you may notice slight differences in the appearance and position of characters compared to earlier IDL versions.

Widget Accelerators

You can now use function keys F13–F24 as keyboard accelerators in your widget applications. For a complete list of available keyboard accelerators see Accelerators in Widget Applications.

Library Updates