
;+ ***********************************************************************
; NAME:
;	NRH_HSI_FITS
;
; PURPOSE:
;	This procedure creates a FITS file with a serie of HESSI images
;	It reads images from a list of HESSI files created by FITSWRITE 
;
; CATEGORY:
;	NRH HESSI
;
; CALLING SEQUENCE:
;	NRH_HSI_FITS, List
;
; INPUTS:
;	LIST	String array, list of HESSI one image files
;
;	
; KEYWORD PARAMETERS:
;	REPERT	Directory for writing the FITS multi-images file
;
; OUTPUTS:
;	Multi_images file
;	The name of the file is 
;		hessi_image_hP0_YYYYMMSS_HHMMSS.CC_i.fts
;			P indicates the number of pixels = 2^P
;			0 not used
;			YYYYYMMSS, HHMMSS.CC, date and time of the first file 
;				on the list
;
; COMMON BLOCKS:
;	No
;
; SIDE EFFECTS:
;	Describe "side effects" here.  There aren't any?  Well, just delete
;	this entry.
;
; RESTRICTIONS:
;	Describe any "restrictions" here.  Delete this section if there are
;	no important restrictions.
;
; PROCEDURE:
;	You can describe the foobar superfloatation method being used here.
;	You might not need this section for your routine.
;
; EXAMPLE:
;	NRH_HSI_IMAGE			; create fits 1image files
;	List = FINDFILE('hsi*is.fts')	;get the list of the files created
;	NRH_HSI_FITS			; convert in a multi_images file
;
; MODIFICATION HISTORY:
;	Ecrit par:Jean Bonmartin(@obspm.fr) 12/03/01
;-*******************************************************************

PRO NRH_HSI_FITS, Liste, REPERT=Repert

	IF NOT KEYWORD_SET(REPERT) THEN Repert=''

		HEAD=HEADFITS(Liste[0])
		HEAF=HEADFITS(Liste[N_ELEMENTS(Liste)-1])
LMOIS=['Jan','Feb','Mar','Apr','Mai','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
	FXHMAKE, HD0
	FXADDPAR, Hd0, 'EXTEND','T'
	FXADDPAR, Hd0, 'BITPIX', FXPAR(Head,'BITPIX')
	FXADDPAR, Hd0, 'DATE_OBS', FXPAR(Head, 'DATE_OBS')
	FXADDPAR, Hd0, 'DATE_END', FXPAR(Heaf, 'DATE_OBS')
	FXADDPAR, Hd0, 'INSTRUME','HSSI'
	FXADDPAR, Hd0, 'NRH_DATA', '2DI'
	FXADDPAR, HD0, 'DATE', FXPAR(Head, 'DATE')
		DTOBS = FXPAR(Head, 'DATE_OBS')
		MOIS = LMOIS[FIX(STRMID(Dtobs,5,2)-1)]
		DATEOBS=STRMID(Dtobs,0,5)+Mois+STRMID(Dtobs,7,3)
	FXADDPAR, HD0, 'DATE_OBS', DateObs

	SEP = '/'
		IF !VERSION.OS_FAMILY EQ 'Windows' THEN Sep='\'
	SEP= STR_SEP(Liste[0],Sep)
	FILE= Sep[N_ELEMENTS(Sep)-1]
NOM = STRMID(File,0,10)+'h70_'+STRMID(File,10,18) + '_i.fts'
		STRPUT,Nom, '.',29
print,'OUTPUT file: ', Nom
	WRITEFITS, Repert+Nom,0,Hd0

NIM = N_ELEMENTS(Liste)	
		NPX = FXPAR(Head,'NAXIS1')
		NPY = FXPAR(Head,'NAXIS2')
		NVAL = Npx*Npy
		Snval=STRCOMPRESS(STRING(Nval),/REMOVE_ALL)
		Snaxe=STRCOMPRESS(STRING(Npx),/REMOVE_ALL)
	SXDELPAR, Head, 'EXTEND'
	SXDELPAR, Head, 'SIMPLE
	FXADDPAR, Head, 'XTENSION', 'BINTABLE',BEFORE='BITPIX'
	FXADDPAR, Head, 'BITPIX',8
	FXADDPAR, Head, 'NAXIS', 2
	FXADDPAR, Head, 'NAXIS1', Nval*4 + 8
	FXADDPAR, Head, 'NAXIS2', Nim
	FXADDPAR, Head, 'DATE-END', FXPAR(Heaf, 'DATE_OBS')
		RAY = 16.* 60 / FXPAR(Head,'CDELT1')
	FXADDPAR, Head, 'SOLAR_R', Ray
	FXADDPAR, Head, 'PCOUNT',0
	FXADDPAR, Head, 'GCOUNT',1
	FXADDPAR, Head, 'TFIELDS', 3
	FXADDPAR, Head, 'TFORM1', '1J'
	FXADDPAR, Head, 'TTYPE1', 'TIME'
	FXADDPAR, Head, 'TFORM2', '1J'
	FXADDPAR, Head, 'TTYPE2', 'NUMIM'
	FXADDPAR, Head, 'TFORM3', Snval+'E'
;FXADDPAR, Head, 'TFORM3', '4096E'
	FXADDPAR, Head, 'TTYPE3', 'DATA'
	FXADDPAR, Head, 'TDIM3', '('+Snaxe+','+snaxe+')'
;FXADDPAR, Head, 'TDIM3', '(64,64)'

	HDEB = STRMID(FXPAR( Head, 'DATE_OBS'),11,12)
		STRPUT, HDEB, ':', 8
	HFIN = STRMID(FXPAR( Heaf, 'DATE_OBS'),11,12)
		STRPUT, HFIN, ':', 8
	FXADDPAR, Head, 'TIM_STR', Hdeb, BEFORE='PCOUNT'
	FXADDPAR, Head, 'TIM_END', Hfin, BEFORE='PCOUNT'

	FXBCREATE, Unit, Repert+Nom, Head

FOR I=0, Nim-1 DO BEGIN
	IMAGE = MRDFITS(Liste[i], 0, Him, /SILENT)
	IM = FLOAT(Image)
	TEMPS = HMS(STRMID(FXPAR( Him, 'DATE_OBS'),11,12))
	FXBWRITE, Unit, Temps, 1, I+1
	FXBWRITE, Unit, LONG(I), 2, I+1
	FXBWRITE, Unit, Im, 3, I+1

ENDFOR

	FXBFINISH, Unit 


END
