Skip to content
Automatically exported from
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


University of Michigan/Chicago/NYU SDSS IDL libraries  v2.* 2007-03-26


This is a set of IDL and C/C++ programs used by a group of SDSS participants,
primarily at Chicago, Michigan, and NYU but also elsewhere.  This library has a
lot of general tools that are not sdss specific as well as routines for reading
and manipulating sdss flat files and characterization of survey geometry.  The
compiled C/C++ extensions are in the form of IDL DLM interfaces, and include an
interface to the postgres database, flexible and efficient reading and writing
to binary and ascii files, an interface to Robert Lupton's atlas image reader,
an interface to Peter Kunzst' HTM code, an interface to Ryan Scranton's sdsspix


Untarring the file will create the directory in the current working directory.
If all you want is the IDL code and not the C/C++ extensions, just set
the environment variable


to point to the sdssidl directory, and add the $SDSSIDL_DIR/pro to your IDL

If you want the C/C++ extensions: You must have IDL_DIR defined, which points
to your idl distribution, e.g. /usr/local/rsi/idl_6.2.  Enter the directory and


Alternatively, if you have scons installed:


See the section below "Notes on C/C++ code" for more details

Environment variables for SDSS data

You need to have various environment variables set up to read SDSS data.
These point to directories on your file system. e.g.


The most important of these are probably PHOTO_REDUX and PHOTO_SWEEP.  redux
points to the location of base data directory, under which is the imaging
and catalogs.  sweep points the the "photo sweep" directory, summary files
for the imaging that are quite handy.

For reading files, see the sdss_read function.

Notes on C/C++ code

The configure script will check the operating system and set some
system-dependent CFLAGS and such.  Note, only the htmIndex and atlas
distributions currently support platforms other than linux, although some of
the others are simple enough to probably succeed.  If one fails, you can
always comment it out of the src/Makefile.  If you figure out the flags for
your system let us know.

If code in the htm directory does not compile because of error near "template"
in export.h, it is because you have an old version of export.h which has a
variable named template in one of the macros.  Search for "template" and change
the var name to something else (it's just a placeholder after all).

The sdsspixIDL C code depends on the Gnu Scientific library.  If this is not in
one of the usual places, it will not be compiled.

You need postgres version 8.0 or later for the compile of pgsql stuff to

Move the directory to its final destination and set the variable SDSSIDL_DIR
equal to this directory in your .cshrc or .bashrc file.  All users should do


You can "setup" sdssidl in the usual way.

	setup sdssidl

Or if you have a local install:
	setup sdssidl -r /path/to/install


There are example setup scripts in the /setup sub-directory.  The appropriate
script (either .sh or .csh) will be sourced by the user. These files should be
copied to another location and modified to match your local settings.

Add this to your resource file:
    .cshrc:  source some_path/sdssidl_setup.csh
    .bashrc: source some_path/

This will set environment variables:
    SDSSIDL_DIR  (put your local installation directory here)
    SDSSIDL_PRO_DIR (default ${SDSSIDL_DIR}/pro)
    SDSSIDL_DLM_DIR (default ${SDSSIDL_DIR}/src/DLM)
    SDSSIDL_CONFIG (default ${SDSSIDL_DIR}/config/sdssidl_setup_default.config
		   You should replace this with the location of your config
		   file. See "CONFIGURATION FILE" below.

The script will also place the SDSSIDL_PRO_DIR in the IDL_PATH, and augment the
IDL_DLM_PATH with SDSSIDL_DLM_DIR (DLM's are dynamically loadable modules. For
example, the atlas reader is a DLM written in C).  

DEPRECATED Documentation


NOTE: The SDSSIDL package no longer makes use of the config files, instead
relying on environment variable.s

The file SDSSIDL_CONFIG (see above) will contain the default paths and
variables for sdss data on your machine. These config variables are read at run
time by the script, which should be called from your
IDL_STARTUP file and is called at runtime by many routines such as  

You should copy the default
file to something that will not be over-written if you rebuild perhaps 
something including the machine name:

Any pair of keywords-value will be added to the SDSSIDL configuration. Certain
parameters such as DATA_DIR are required for many programs, such as Similarly, SPEC_DIR and SPEC_VERS are required for The run_status_file contains info for each run/rerun on disk.
It can be created using the script.  It is used by many
programs but not the essential ones, such as

Here is an example config file:

# SDSSIDL Configuration file.  
# Format:  keyword value pairs. E.g.:   
#           keyword1 value1
#           keyword2 value2
# Everything to the right of # comments is ignored. Also, lines that are not 
# simply two columns are ignored.

# SDSS data directory.  Required by many programs such as read_tsobj
data_dir       /net/cheops1/data0/imaging/

# SDSS spectro directory. If spec_dir is not specified, then
#   data_dir/spectro will be assumed. 
spec_dir	    /net/cheops1/data5/spectra/

# The version of spectro.
spec_vers      1d_23

# the run_status file holds statistics for various runs.
run_status_file     /net/cheops1/data0/run_status/

# Directory holding small files for efficient ra/dec searching
radec_search_dir    /net/cheops1/data0/Radec/
You can’t perform that action at this time.