FUNCTION eis_get_study_def_position , fileName , tlbID = tlbID


; Read file into a string array
lines = rd_ascii(fileName , lun = lun)
CLOSE , lun

;
; CHECK - 0th line should be "EIS_STUDY_START"
;
split = STRSPLIT(lines[0],/EXTRACT)
IF (split[0] NE 'EIS_STUDY_START') THEN RETURN , 0

;
; CHECK - 19th line should be "EIS_STUDY_END"
;
split = STRSPLIT(lines[19],/EXTRACT)
IF (split[0] NE 'EIS_STUDY_END') THEN RETURN , 0

;
; CHECK - 11th line should be "NRASTERS n"
;
split = STRSPLIT(lines[11],/EXTRACT)
IF (split[0]            NE 'NRASTERS') THEN RETURN , 0
IF (is_number(split[1]) NE 1         ) THEN RETURN , 0
nRasters = FIX(split[1])


ra_s = 0
ra_e = 0
sr_s = 0
sr_e = 0
ll_s = 0
ll_e = 0


; Extract positions of START and END tags
FOR i = 0, N_ELEMENTS(lines) - 1 DO BEGIN

    split = STRSPLIT(lines[i],/EXTRACT)

    CASE split[0] OF
        'EIS_RASTER_START'      : IF (ra_s[0] EQ 0) THEN ra_s = i ELSE ra_s = [ra_s,i]
        'EIS_RASTER_END'        : IF (ra_e[0] EQ 0) THEN ra_e = i ELSE ra_e = [ra_e,i]
        'EIS_STUDYRASTER_START' : IF (sr_s[0] EQ 0) THEN sr_s = i ELSE sr_s = [sr_s,i]
        'EIS_STUDYRASTER_END'   : IF (sr_e[0] EQ 0) THEN sr_e = i ELSE sr_e = [sr_e,i]
        'EIS_LINELIST_START'    : IF (ll_s[0] EQ 0) THEN ll_s = i ELSE ll_s = [ll_s,i]
        'EIS_LINELIST_END'      : IF (ll_e[0] EQ 0) THEN ll_e = i ELSE ll_e = [ll_e,i]
        ELSE                    :
    ENDCASE


ENDFOR

;
; CHECK - there should be a 1 tag for each raster!
;
IF (N_ELEMENTS(ra_s) NE nRasters) THEN RETURN , 0
IF (N_ELEMENTS(ra_e) NE nRasters) THEN RETURN , 0
IF (N_ELEMENTS(sr_s) NE nRasters) THEN RETURN , 0
IF (N_ELEMENTS(sr_e) NE nRasters) THEN RETURN , 0
IF (N_ELEMENTS(ll_s) NE nRasters) THEN RETURN , 0
IF (N_ELEMENTS(ll_e) NE nRasters) THEN RETURN , 0

;
; Create and populate stucture
;
pos_start  = {ra:0,sr:0,ll:0}
pos_end    = {ra:0,sr:0,ll:0}
pos_struct = {pos_start:pos_start , pos_end:pos_end}
pos        = REPLICATE(pos_struct , nRasters)


FOR i = 0, nRasters -1 DO BEGIN

    pos[i].pos_start.ra = ra_s[i]
    pos[i].pos_start.sr = sr_s[i]
    pos[i].pos_start.ll = ll_s[i]

    pos[i].pos_end.ra   = ra_e[i]
    pos[i].pos_end.sr   = sr_e[i]
    pos[i].pos_end.ll   = ll_e[i]


ENDFOR



RETURN , {lines:lines , nRasters:nRasters , pos:pos}

END
