;+
;PROJECT:
;           SolarB EIS
;
;NAME:      
;           eis_raster_compare
;
;PURPOSE:
;           Function to determine whether 2 rasters are the same
;
;KEYWORDS:    
;
;INPUTS:    
;           ra_1 - a raster
;           ra_2 - another raster
;OUTPUTS:   
;           a flag indicating whether the rasters are the same (1) or not (0)
;CATEGORY:
;           EIS Technical Planning
;           Database
;
;MODIFICATION HISTORY:
;           V0 Written by: John Rainnie, RAL j.rainnie@rl.ac.uk (Dec 2005)
;           April 2006 - changed to 
;-
;************************************************************************
FUNCTION eis_raster_compare , ra_1 , ra_2 , acronym  = acronym  ,           $
                                            ll_id    = ll_id    ,           $
                                            ra_title = ra_title
;
; Acronym
;
IF (KEYWORD_SET(acronym) EQ 1) THEN BEGIN
    IF (ra_1.acronym      NE ra_2.acronym         ) THEN RETURN , 0
ENDIF
;
; Title
;
IF (KEYWORD_SET(ra_title) EQ 1) THEN BEGIN
    IF (ra_1.ra_title     NE ra_2.ra_title        ) THEN RETURN , 0
ENDIF

; Check over rasterType
IF (ra_1.rasterType       NE ra_2.rasterType      ) THEN RETURN , 0

IF (ra_1.rasterType EQ 0) THEN BEGIN

    IF (ra_1.scan_fm_nSteps   NE ra_2.scan_fm_nSteps  ) THEN RETURN , 0
    IF (ra_1.scan_fm_stepSize NE ra_2.scan_fm_stepSize) THEN RETURN , 0

ENDIF ELSE BEGIN

    IF (ra_1.sns_nExps        NE ra_2.sns_nExps       ) THEN RETURN , 0
    IF (ra_1.sns_duration     NE ra_2.sns_duration    ) THEN RETURN , 0

ENDELSE

IF (ra_1.nWindows         NE ra_2.nWindows        ) THEN RETURN , 0

FOR i = 0, N_ELEMENTS(ra_1.nWindows) -1 DO BEGIN
    IF (ra_1.dataWindows[i] NE ra_2.dataWindows[i]) THEN RETURN , 0
ENDFOR

IF (ra_1.windHeight       NE ra_2.windHeight      ) THEN RETURN , 0
IF (ra_1.windWidth        NE ra_2.windWidth       ) THEN RETURN , 0
IF (ra_1.slitIndex        NE ra_2.slitIndex       ) THEN RETURN , 0
IF (ra_1.nExp             NE ra_2.nExp            ) THEN RETURN , 0
IF (ra_1.compression      NE ra_2.compression     ) THEN RETURN , 0

FOR i = 0, N_ELEMENTS(ra_1.exposures) -1 DO BEGIN
    IF (ra_1.exposures[i] NE ra_2.exposures[i]) THEN RETURN , 0
ENDFOR

FOR i = 0, N_ELEMENTS(ra_1.delays) -1 DO BEGIN
    IF (ra_1.delays[i]    NE ra_2.delays[i]   ) THEN RETURN , 0
ENDFOR

;
; LL_ID
;
IF (KEYWORD_SET(ll_id) EQ 1) THEN BEGIN
    IF (ra_1.ll_id        NE ra_2.ll_Id       ) THEN RETURN , 0
ENDIF


RETURN , 1

END
