
;+ ***********************************************************************
; NAME:
;	NRH_DISPLAY_IM
;
; PURPOSE:
;	Cette procedure affiche une image correspondant a la lecture d'un 
;	fichier 2D du NRH
;
; CATEGORY:
;	Visualisation
;
; CALLING SEQUENCE:
;	NRH_DISPLAY_IM, Donnee, Str_im, str_lim, Norm
;
; INPUTS:
;	DONNEE	image
;
;	STR_IM	Structure d'image
;
;	Str_lim	Structure definissant les limites
;
;	NORM	Echelle de niveaux: 0 sur image, 1 sur fichier
;	
; KEYWORD PARAMETERS:
;	DIM	dimension de la fenetre en pixels (256 par defaut)
;
;	MAX	Niveau maximum si NORM = 1
;
;	MIN	Niveau minimum si NORM = 1
;
;	STK	Trace de STOCKES V
;

; OUTPUTS:
;
; PROCEDURE:
;	Cette procedure visualise une image 2D du NRH. L'indice, le 
;	parametre de STOKES i ou V sont definis dans STR_VISU
;	L'image est ramenee sur 256*256 pixels
;	L'heure est inscrite sur l'image
;
; EXAMPLE:
;	FOR IND=0, NP THEN BEGIN
;		DISPLAY_IMNRH, Donnee(ind), Header, str_visu
;	end
;	Visualise les NP premieres images contenues dans le tableau DONNEE
;	precedamment lu par MRDFITS
;
; MODIFICATION HISTORY:
;	Ecrit par: J Bonmartin le 08/08/98 (bonmartin@obspm.fr)
;		Le 07/12/00 entre !D.TABLE_SIZE dans BYTSCL (JB)
;-*******************************************************************

PRO NRH_DISPLAY_IM, Donnee, Str_im, str_lim, NORM, DIM = dim, $
		MAX=max, MIN=min, STK=Stk

COMMON NRH_DISPLAY_LEVEl, D_MAX, D_MIN

	XCEN = Str_im.crpixx
	YCEN = Str_im.crpixy
	RAY = Str_im.ray

	Npix = 256
If KEYWORD_SET(DIM) THEN Npix= dim

	sz= SIZE(Donnee)
	Interpx = FLOAT(Npix) / FLOAT( str_lim.xf-str_lim.xd)
	Interpy = FLOAT(Npix) / FLOAT( str_lim.yf-str_lim.yd)
		Interp= interpx
		IF Interpx gt interpy THEN Interp = interpy
	NBPX = FIX((str_lim.xf - str_lim.xd+1) * interp)
	NBPY = FIX((str_lim.yf - str_lim.yd+1) * interp)
	hr= Str_im.time

IF NORM EQ 1 THEN BEGIN
	IF NOT KEYWORD_SET(MAX) THEN BEGIN
		MAX= MAX(Donnee) & MIN= MIN(Donnee) & ENDIF
	D_Max=Max & D_Min = MIN(DONNEE)
	IF KEYWORD_SET(STK) THEN D_Min = Min
 	im=BYTSCL(donnee(str_lim.xd:str_lim.xf, str_lim.yd:str_lim.yf),$
		Max=D_max, Min=D_min, TOP=!D.TABLE_SIZE)

        tv,congrid(im, Nbpx, Nbpy, /cubic)
END

IF NORM EQ 0 THEN BEGIN
	IF NOT KEYWORD_SET(STK) THEN D_Max = Max(Donnee)
	Im= BYTSCL(Donnee,MAX= D_Max, TOP=!D.TABLE_SIZE)	
	tv,congrid(Im(str_lim.xd:str_lim.xf,$
			Str_lim.yd:str_lim.yf), Nbpx, Nbpy, /cubic)
END
        xyouts,0.5, 0.01, hr, ALIGNMENT=0.5, CHARSIZE=1.1,/NORMAL
	TVCIRCLE, Ray*interp, (XCEN-Str_lim.XD) *interp,$
				 (YCEN-Str_lim.Yd)*Interp

end
