;+
; PROJECT
;           SolarB EIS
;
; NAME
;           db_read_raster_entry
;
; PURPOSE
;           Function to read an EIS raster database entry, and return an 
;           eis_raster structure
;
; CATEGORY
;           EIS Technical Planning
;           Database
;
; INPUTS
;           raster ID
;
; WRITTEN
;           John A Rainnie RAL Dec-2005
;
; HISTORY
;           v0.1 JAR 21-March-2007
;               Use "eis_open_db" routine to open the raster database
;           v0.2 JAR 20-Jun-2007
;               Check entry exists before reading it.
;
;-
;************************************************************************
FUNCTION db_read_raster_entry , id

; Open database
status     = eis_open_db(/RASTER)

; Check entry exists. If not bail out
constraint = STRJOIN(['ID=',STRCOMPRESS(id,/REMOVE)],/SINGLE)
entry      = dbfind(constraint , /SILENT , count = count)
IF (count NE 1) THEN RETURN , 0


ra                  =          {eis_raster}
ra.id               =          dbval(id, 'ID'                  )
ra.write_locked     =          dbval(id, 'WRITE_LOCKED'        )
ra.acronym          = STRTRIM( dbval(id, 'ACRONYM'             ) , 2   )
ra.title            = STRTRIM( dbval(id, 'TITLE'               ) , 2   )
ra.author           = STRTRIM( dbval(id, 'AUTHOR'              ) , 2   )
ra.date             = STRTRIM( dbval(id, 'DATE'                ) , 2   )
ra.rasterType       =          dbval(id, 'RASTERTYPE'          )
ra.scan_FM_nSteps   =          dbval(id, 'SCAN_FM_NSTEPS  '    )
ra.scan_FM_stepSize =          dbval(id, 'SCAN_FM_STEPSIZE'    )
ra.sns_nExps        =          dbval(id, 'SNS_NEXPS       '    )
ra.sns_duration     =          dbval(id, 'SNS_DURATION    '    )
ra.ll_id            =          dbval(id, 'LL_ID'               )
ra.nWindows         =          dbval(id, 'N_WINDOWS'           )
ra.dataWindows      =          dbval(id, 'DATA_WINDOWS'        )
ra.windHeight       =          dbval(id, 'WIND_HEIGHT'         )
ra.windWidth        =          dbval(id, 'WIND_WIDTH'          )
ra.slitIndex        =          dbval(id, 'SLIT_INDEX'          )
ra.nExp             =          dbval(id, 'NEXP'                )
ra.exposures        =          dbval(id, 'EXPOSURES'           )
ra.delays           =          dbval(id, 'DELAYS'              )
ra.compression      =          dbval(id, 'COMPRESSION'         )
ra.split            =          dbval(id, 'SPLIT'               )
ra.duration         =          dbval(id, 'RA_DURATION'         )
ra.volume           =          dbval(id, 'RA_DATA_VOLUME'      )
dbclose

RETURN , ra

END
