Coyote IDL Program Libraries
Table of Contents
- Overview of Libraries
- Download Coyote Library
- Download Catalyst Library
- Subversion Repository for Libraries
- Mark Hadfield's Motley Library
- Programs by Function
- Programs by Name
Overview of Libraries
My original goal for writing the programs in the Coyote Library was to have a library of well-written and well-documented example programs for the students attending my IDL programming courses. But, of course, over time the library evolved into programs that became indispensible in my own IDL programming work. There are still a number of example programs in the library, but for the most part these programs are the bread and butter of my own daily IDL programming practice. Indispensible to me, if not to you.
In addition to the Coyote Library, as of October 2008, I have also made the Catalyst Library available. This is an IDL object library that David Burridge and I originally wrote in 2003 for a large satellite image application. It has evolved over time into something that I use in nearly all of my IDL consulting projects. The name “Catalyst ”comes from the notion that we have been able to build fairly sophisiticated applications with the library in a fraction of the time it used to take us. The Catalyst Library is a framework for building IDL applications. This is similar to the iTools framework, with the very important difference that the Catalyst Library can be programmed by mere mortals. In other words, if you can write an IDL widget program, you know everything you need to write a Catalyst Library application. For the most part, Catalyst Library applications use direct graphics methods, even though everything in the library is an object. You do not need to know any object graphics, or any iTools functionality to use and build programs with the library.
I hope you find these programs useful to you and instructive as well. If you ever have a problem with one of the programs, please contact me. Your satisfaction, while not strictly guaranteed, is always carefully considered. And if one of these programs is just what you have been looking for, consider making a contribution to the work. Any amount is appreciated. If you donate enough for me to buy the beer at the weekly IDL discussion group, you will gain (at the very least) a gaggle of admirers!
Downloading and Installing the Libraries
Coyote Library
Many of the Coyote Library programs require others in the library to work properly. It is best to download all the Coyote Library programs at once as a 900K zip file. Make a directory named coyote somewhere on your machine, and extract the Coyote files into it. Add the coyote directory to your IDL path. There are many ways to add the coyote directory to your path, but something like this, typed at the IDL command line, or executed in an IDL start-up file, always works:
Windows -- Assuming the files were extracted to the "C:\idlfiles\coyote\" directory:
IDL> !PATH = Expand_Path('+C:\idlfiles\coyote\') + ';' + !PATHUNIX -- Assuming the files were extracted to the "~/idlfiles/coyote/" directory:
IDL> !PATH = Expand_Path('+~/idlfiles/coyote/') + ':' + !PATH
Catalyst Library
The Catalyst Library is available as a zip file, and is also about 900K. The Catalyst Library requires the Coyote Library, so it is necessary to install both libraries to use the Catalyst Library. (Please use the most recent version of the Coyote Library. If you haven't updated your Coyote Library in a while, this is an extremely propitious time to do so!) Create a catalyst directory somewhere on your machine (inside the coyote directory you created above is a good choice) and extract the files to this directory. Be sure both the coyote and catalyst directories are on your IDL path. There are many ways to add these directories to your path, but something like this, typed at the IDL command line, or executed in an IDL start-up file, always works:
Windows -- Assuming the files were extracted to the "C:\idlfiles\coyote\" and "C:\idlfiles\catalyst\" directories:
IDL> !PATH = Expand_Path('+C:\idlfiles\coyote\;+C:\idlfiles\catalyst\') + ';' + !PATHUNIX -- Assuming the files were extracted to the "~/idlfiles/coyote/" and "~/idlfiles/catalyst/" directories:
IDL> !PATH = Expand_Path('+~/idlfiles/coyote/:+~/idlfiles/catalyst/) + ':' + !PATH
Subversion Repositories for the Coyote and Catalyst Libraries
The Coyote and Catalyst Libraries can also be obtained in the Open Source project idl-coyote. This is a Subversion repository where you can obtain officially released copies of the Libraries as well as up-to-date versions of the programs contained in the Libraries.
Motley Library
Note that I am also proud to host Mark Hadfield's Motley Library of IDL programs, too. Mark is an excellent IDL programmer and you will find excellent object graphics programs, elegant object classes, and means for acessing netCDF files, among lots of other programs in this excellent collection. (If you are after the earlier, IDL 5.6 version, of the Motley Library, click here.)
Programs by Function
- Coyote Graphics
- Map Projections
- Working with Colors
- PostScript Output
- Reading and Writing Data
- Utilities
- Image Processing
- Direct Graphics
- Widgets
- Object Graphics
- Catalyst Programs
Download ALL Programs
Programs by Name
- ACTIVECONTOUR Active contour (or snake) example program. Uses GVF Active Contouring algorithm.
- ADJUSTPOSITION Allows interactive adjustment of the plot position in a graphics windows.
- ADDTOPATH Allows the user to add a directory to the IDL !PATH system variable.
- ANNOTATEWINDOW A Catalyst Library application for annotating IDL graphics windows.
- ARCSAMPLE Resamples a closed curve on approximately equally-spaced arc distances.
- ASINHSCL Similar to BYTSCL, except that an inverse hyperbolic sine function is used for scaling.
- ASPECT Calculates plot position coordinates for plot of specified aspect ratio.
- BELL Windows-only set of programs for ringing the bell (or playing a sound).
- BINARY Used to print a binary representation of an integer.
- BITGET Returns the value of a specified bit in a number.
- CANCONNECT Determines if IDL can connect to the Window system or not.
- CAPFIRSTLETTER A utility program that capitalizes the first letter of each word in a string.
- CATALYST A sample application demonstating Catalyst Library features.
- CENTERTLB Centers a widget program on the display.
- CHECKERBOARD Creates a 2D checkerboard image.
- cgARROW Draws an arrow in a graphics window.
- cgAXIS A device/color independent wrapper for the AXIS command.
- cgBARPLOT Draws data as a bar plot.
- cgBLENDIMAGE Uses alpha-blending to blend or fuse two 24-bit color images.
- cgBOXPLOT Draws data as a box and whisker plot.
- cgCOLOR A device-independent color-selection tool.
- cgCOLORBAR Creates direct graphics color bar.
- cgCOLORFILL A device-independent and color-independent wrapper for the POLYFILL command.
- cgCONLEVELS A function for creating contour levels for the cgContour command.
- cgCONTAINER A modified IDL_Container object with properties important for Coyote Graphics.
- cgCONTOUR A device-independent and color-independent wrapper for the CONTOUR command.
- cgCOORD A coordinate object for Coyote Graphics routines.
- cgDCBAR A discrete color bar with a handful of colors and centered labels.
- cgDEFAULTCOLOR This function defines a default color for Coyote Graphics routines.
- cgDEFCHARSIZE A routine define the default character size for Coyote Graphics routines.
- cgDELETE A routine to delete an cgWINDOW from the display.
- cgDEMODATA Opens data files found in the IDL distribution.
- cgDISPLAY A device-independent and color-independent wrapper for the WINDOW command.
- cgDRAWSHAPES A program to draw shapefile polygons on map projections.
- cgERASE A wrapper for ERASE that erases window in white color.
- cgGEOMAP Automatically georegisters a GeoTiff image.
- cgHISTOPLOT Draws a histogram plot (direct graphics).
- cgIMAGE Device independent replacement for TV. Works with !P.Multi and Position keyword.
- cgIMAGEINFO Works with cgIMAGE to display interactive image locations and values.
- cgLOADCT A drop-in replacement for LOADCT with additional functionality.
- cgMAP_CONTINENTS A Coyote Graphics wrapper for Map_Continents.
- cgMAP_GRID A Coyote Graphics wrapper for Map_Grid.
- cgMAP_GSHHS Draws outlines from the GSHHS shoreline data on maps.
- cgMAP_SET A Coyote Graphics wrapper for Map_Set.
- cgMAP A more powerful means of creating and using GCTP map projections.
- cgMAPCONTINENTS An object wrapper for cg_Map_Continents and cg_Map_GSHHS.
- cgMAPGRID An object wrapper for cg_Map_Grid.
- cgMAPPLOTS Draws lines and symbols on map projections set up with cgMap.
- cgMAPVECTOR Draws vectors (arrows) on map projections set up with cgMap.
- cgNCDFMAP Creates a map coordinate object for netCDF files with map projections.
- cgPLOT A device-independent and color-independent wrapper for the PLOT command.
- cgPLOTS A device-independent and color-independent wrapper for the PLOTS command.
- cgPS2PDF A device-independent program for creating PDF files from PostScript intermediates.
- cgPS2RASTER Create BMP, GIF, JPEG, PNG, and TIFF files from PostScript intermediary files.
- cgQUERY A utility routine to gather information about cgWINDOW applications on the display.
- cgRANDOMINDICES Create random indices without replacement (unique indices).
- cgSCATTER2D Creates a scatter plot between two variables.
- cgSET A routine to make an cgWINDOW the current display window.
- cgSURF A device-independent and color-independent wrapper to the SURFACE and SHADE_SURF commands.
- cgSURFACE A full-rotating, object graphics surface command with texture mapping.
- cgSYMBOL Draws device independent Greek (φ, ξ, λ, etc.) and other symbols (Å, ≠, ≡, etc.) in programs.
- cgTEXT A wrapper for XYOUTS that writes (and places) text in a color independent manner.
- cgWINDOW_GETDEFS Gets default values for cgWINDOW.
- cgWINDOW_SETDEFS Sets default values for cgWINDOW.
- cgWINDOW A "smart" graphics window. Resizeable with automatic file output.
- CINDEX Allows you to see the color index number associated with each color.
- CLIPBOARD Copies contents of an IDL graphics window to clipboard for pasting to other applications.
- CLIPSCL Performs a linear byte scaling of data, with clipping on each end of the histogram.
- COLOR24 Converts RGB color value to 24-bit integer.
- COLORBUTTONBITMAP Creates a true-color bit map for created colored widget buttons.
- COLORSAREIDENTICAL Determines if two colors, specified in different ways, are identical.
- CONTRASTZOOM Allows "in place" zoomimg and interactive contrast/brightness adjustment using object graphics.
- CONVERT_TO_TYPE A function that converts its input argument to a run-time data type.
- COUNT_ROWS Count the number of rows in an ASCII file.
- CW_DRAWCOLOR A compound widget used to select an individual color from a color rectangle or patch.
- DATAVIEWER Catalyst application for display of NSIDC satellite images.
- DECOMPOSEDCOLOR A device-independent function to tell the current decomposition state of a graphics device.
- DRAWCOUNTIES Demonstrates how to read a county boundary shapefile for display on a map.
- DRAWSHAPES A general program for drawing shapefile polygons in lat/lon on map projections.
- DRAWSTATES Demonstates how to read a state boundary shapefile for display on a map.
- ERRORLOGGER An object for logging program errors and other comments.
- ERROR_MESSAGE A device-independent error handler with traceback capability.
- FIND_BOUNDARY Finds the boundary pixels around a region of interest.
- FIND_RESOURCE_FILE Returns a fully-qualified path to a resource file.
- FINDMAPBOUNDARY Finds the the boundary of the map projected grid for files that allow it.
- FIT_ELLIPSE Fits an ellipse to a region of interest (known as a "blob").
- FIXPS Fixes IDL PostScript landscape output files so they display with proper orientation.
- FLOATS_EQUAL Compares two floating-point values or arrays for equality.
- FPUFIX Fixes problems in data that can cause floating point underflow errors.
- FSC_BASE_FILENAME Return the base filename, the directory name, and the file extension as strings.
- FSC_COLORSELECT A compound widget for selecting a color name or color table.
- FSC_DROPLIST A replacement for WIDGET_DROPLIST with easy Get/Set Value capability.
- FSC_FIELD A replacement compound widget for CW_FIELD. Similar to FSC_INPUTFIELD.
- FSC_FILESELECT A file selection compound widget.
- FSC_INPUTFIELD A replacement compound widget for CW_FIELD. Written as an object.
- FSC_NORMALIZE Positions object graphic elements in object graphic views.
- FSC_PICKFILE A wrapper for Dialog_Pickfile that remembers your last selection.
- FSC_PLOTWINDOW A "good-for-nothing-yet" object compound widget program, written with object graphics.
- FSC_PSCONFIG A full-featured program for configuring the PostScript device.
- FSC_RESIZE_IMAGE A Congrid command without Congrid's weaknesses for resizing images.
- FSC_ZIMAGE Zooms into image with rubberband selection technique. (Uses direct graphics.)
- FSC_ZPLOT Zooms into line plot with rubberband selection technique.
- GAUSSSCL Performs a Gaussian scaling on image arrays.
- GEOCOORD Converts a GEOTIFF structure to a MAPCOORD map coordinate object.
- GET_OBJECT_ID Obtain a unique object identifier for an object.
- GETDECOMPOSEDSTATE Returns a device/version independent current decomposition state.
- GETIMAGE Reads unformatted 2D and 3D arrays.
- GMASCL BYTSCL on steroids! Gamma as well as linear scaling.
- GPD_VIEWER Catalyst application creates GPD files, used for NSIDC satellite data gridding operations.
- GREEK Returns a letter from the Greek alphabet as a string for plot annotation.
- GRIDPOSITIONS Calculate column and row grid positions anywhere in the window.
- HCOLORBAR Create object graphics horizontal color bar.
- HELP_VAR Performs a "HELP" on variables only.
- HDFREAD Reads an HDF data file created with HDFWRITE.
- HDFWRITE Writes an HDF data file.
- HIST_ND Calculates an N-dimensional histogram.
- HISTOMATCH Performs histogram matching on an image.
- IDLWAVE_CATALOG Catalog file of this library for the IDLWAVE Emacs mode.
- IMAGE_BLEND Image with transparent image overlay.
- IMAGE_DIMENSIONS Utility for determining the size and dimensions of images.
- IMAGESELECT An image selection program for images with known formats.
- IMGWIN An image window for interactively exploring image values and positions.
- INSIDE Tests if point is inside a specified polygon.
- IXYOUTS A program, analogous to XYOUTS, for adding text to iTools.
- JD2TIME Converts a Julian Day Number into a well-formatted time string.
- JN2TIME Converts a Julian Number into a well-formatted time string.
- LEFTJUSTIFY Creates a string that is left justified with respect to a string width.
- LINKEDLIST Implements a doubly linked list.
- LIST_SELECTOR A pop-up dialog widget for selecting items from a string array.
- LOGSCL Like BYTSCL, only with a logrithmic scaling instead of linear scaling.
- MAKE_TRANSPARENT_IMAGE Creates a transparent image with a specified color “knocked-out”.
- MAP_GSHHS_SHORELINE Draws shorelines using the GSHHS data base in manner of MAP_CONTINENTS.
- MAXWINDOWSIZE Returns the maximum size of an unobstructed graphics window.
- MAXMIN Print the maximum and minimum of a variable.
- MPI_PLOT A wrapper for PLOT and OPLOT commands that allows interactive configuration of keywords.
- NAME_SELECTOR A pop-up dialog widget for selecting items from a string array.
- NCDF_BROWSER A simplified front end for the NCDF_DATA object and browsing netCDF and HDF files.
- NCDF_COORD Reads a netCDF file to obtain map projection and grid information to produce a MapCoord object.
- NCDF_TOOLS A zip file of IDL programs for creating, browsing, and reading netCDF files.
- NUMBER_FORMATTER A utility routine to format numbers used in text widgets.
- OBJECT_SHADE_SURF Elevation-shaded surface in object graphics.
- PICKCOLOR Utility for picking or specifying a drawing color.
- PICKCOLORNAME Utility for picking or specifying a color by name.
- PRECIPMAP Demonstrates how to fit a map coordinate system to a map-projected image.
- PRINTWINDOW Utility for sending the contents of a graphics window to the printer.
- PROGRAMROOTDIR Utility for specifying relative filepaths in IDL program distributions.
- PROGRESSBAR Implements a "show progress" bar.
- PS_START/PS_END Wrapper programs for opening and closing PostScript files.
- PSWINDOW Creates PostScript window with same aspect ratio as display window.
- PSCONFIG A function wrapper for graphically configuring the PostScript device.
- RANDOMNUMBERGENERATOR An object for creating random numbers.
- RANGEOF A utility program for finding the range of a vector or array.
- READ_TOMS_AEROSOL Demonstrates how to overlay satellite imagery on a map projection.
- REPMAT Replicates or tiles a matrix in a manner similar to MatLab RepMat command.
- RESOLVE_OBJECT Restores an object's methods when a saved object is restored.
- REVERSE_AXES Demonstrates how to reverse object graphics axes.
- REVERSEINDICES A routine read the histogram reverse indices vector in a simple way.
- SAVETOMAIN Saves a variable to the main IDL level from within a procedure.
- SCALE_VECTOR Scales vector or array between given MIN and MAX values.
- SCALEMODIS Provides differential scaling to brighten MODIS reflectance images.
- SCROLLWINDOW A scrollable window when display size is smaller than window size.
- SELECT_OBJECTS Select and move objects interactively.
- SETDECOMPOSEDSTATE Sets a device/version independent current decomposition state.
- SETDEFAULTVALUE Sets default values for positional and keyword arguments.
- SETDIFFERENCE Finds the difference between two sets of integer values.
- SETINTERSECTION Finds the intersection between two sets of integer values.
- SETUNION Finds the union between two sets of integer values.
- SHAPEINFO Allows the user to browse shapefiles containing geographical information.
- SHARPEN Sharpens an image with a Laplacian kernel.
- SIMPLE_SURFACE A much simplified cgSURFACE object program.
- SORT_ND Efficiently perform an N-dimensional sort along any dimension of an array.
- STATIONPLOT Plots meteorological "station" data. Used with WINDBARB
- STR_SIZE Calculates character size for direct graphics resizeable graphics windows.
- SYMCAT A symbol catalog with 44 possible symbols to use in IDL graphics plots.
- TERMINATOR_MAP Creates a day/night map terminator on a map projection.
- TEXTBOX A simple pop-up (or modal) dialog widget that returns a text string.
- TEXTLINEFORMAT Formats a long line of text into a string array of specified maximum length.
- TEXTURE_SURFACE A program that demonstrates the proper way to overlay an image on a surface object.
- THEMONTHS A utility program to return the months of the year in various formats.
- TIMESTAMP A utility program to create a time stamp in 11 different formats.
- TRANSFORM_VOLUME Allows efficient rotation, scaling, and transformation of 3D array or volume data.
- UNDEFINE Deletes program variables at any program level, including at the IDL command line.
- VCOLORBAR Creates object graphics vertical color bar.
- WINDBARB Plots meteorological wind barbs.
- WINDOWAVAILABLE Indicates whether a graphics window is currently open and available.
- WINDOWIMAGE Interactively change the contrast and brightness of an image using direct graphics.
- XCD Fancy change directory utility. Couldn't live without it. :-)
- XCOLORS Changes color tables interactively. Absolutely required for 24-bit displays.
- XMOVIE Correct implementation of a widget annimation loop.
- XSTRETCH Interactively increase image contrast with various image pixel transformations.
- ZOOMBOX Zooms into image with rubberband selection technique. (Uses object graphics.)
Download ALL Programs
![]()
