Viewing contents of file '../idllib/ssw/allpro/adjust.pro'
	FUNCTION ADJUST,ARRAY,MINIMUM=MINIMUM,MAXIMUM=MAXIMUM,MISSING=MISSING
;+
; Project     : SOHO - CDS
;
; Name        : 
;	ADJUST()
; Purpose     : 
;	Adjust the range of an image.
; Explanation : 
;	Adjusts the range of an image.  Basically equivalent to using the
;	">" and "<" operators, except that pixels equal to MISSING are ignored
;	and not changed by this procedure.
; Use         : 
;	Result = ADJUST( ARRAY, <keywords> )
; Inputs      : 
;	ARRAY	= Array to be scaled.
; Opt. Inputs : 
;	None.
; Outputs     : 
;	Result of function is scaled image.
; Opt. Outputs: 
;	None.
; Keywords    : 
;	MINIMUM	= Lower limit to scale image into.  If not passed, then
;		  MIN(ARRAY) is assumed.
;	MAXIMUM	= Upper limit to scale image into.  If not passed, then
;		  MAX(ARRAY) is assumed.
;	MISSING	= Value flagging missing pixels.
; Calls       : 
;	GET_IM_KEYWORD
; Common      : 
;	None.
; Restrictions: 
;	In general, the SERTS image display routines use several non-standard
;	system variables.  These system variables are defined in the procedure
;	IMAGELIB.  It is suggested that the command IMAGELIB be placed in the
;	user's IDL_STARTUP file.
;
;	Some routines also require the SERTS graphics devices software,
;	generally found in a parallel directory at the site where this software
;	was obtained.  Those routines have their own special system variables.
;
; Side effects: 
;	None.
; Category    : 
;	Utilities, Image_display.
; Prev. Hist. : 
;	William Thompson, March 1991.
;	William Thompson, August 1992, renamed BADPIXEL to MISSING.
; Written     : 
;	William Thompson, GSFC, March 1991.
; Modified    : 
;	Version 1, William Thompson, GSFC, 14 May 1993.
;		Incorporated into CDS library.
; Version     : 
;	Version 1, 14 May 1993.
;-
;
	GET_IM_KEYWORD, MISSING, !IMAGE.MISSING
;
	IF N_ELEMENTS(MINIMUM) EQ 0 THEN BEGIN
		BANG_C = !C
		IF N_ELEMENTS(MISSING) EQ 1 THEN BEGIN
			MINIMUM = 1.*MIN(ARRAY(WHERE(ARRAY NE MISSING)))
		END ELSE BEGIN
			MINIMUM = 1.*MIN(ARRAY)
		ENDELSE
		!C = BANG_C
	ENDIF
;
	IF N_ELEMENTS(MAXIMUM) EQ 0 THEN BEGIN
		BANG_C = !C
		IF N_ELEMENTS(MISSING) EQ 1 THEN BEGIN
			MAXIMUM = 1.*MAX(ARRAY(WHERE(ARRAY NE MISSING)))
		END ELSE BEGIN
			MAXIMUM = 1.*MAX(ARRAY)
		ENDELSE
		!C = BANG_C
	ENDIF
;
	RESULT = MINIMUM > ARRAY < MAXIMUM
	IF N_ELEMENTS(MISSING) EQ 1 THEN BEGIN
		W = WHERE(ARRAY EQ MISSING, N_FOUND)
		IF N_FOUND GT 0 THEN RESULT(W) = MISSING
	ENDIF
;
	RETURN, RESULT
	END