FUNCTION HRNMAG,source_in$,date$,ts,INFO$=info$,GEOGRAPHIC=geographic ;Latitude and longitude of magnetic North Pole as given to us by Dag Lorentzen. magNPlat = 82.26 magNPlon = 277.23 source$ = source_in$ source$ = STRSPLIT(source$,':',/EXTRACT) CASE source$[0] OF 'query': retData = '^hrnmag' ELSE : BEGIN startdate = TIME_DOUBLE(date$) enddate = startdate + (ts * 60.) fileName$ = source$[1] PRINT,fileName$ savFName$ = fileName$ + '.sav' files = FINDFILE(savFName$, count=numFiles) ;numFiles=0 IF numFiles EQ 0 THEN BEGIN ; PRINT,'No previous saveset file found; creating saveset file from ASCII file.' ;Load data in from file. OPENR, unit, fileName$, /GET_LUN dStartDate$ = '' header$ = '' latLon$ = '' ; READF,unit,header$ ; READF,unit,year,month,day,hour,min,second ; IF year LE 90 THEN year = year + 2000 ELSE year = year + 1900 ; READF,unit,dStartDate$ READF,unit,header$ READF,unit,latLon$ READF,unit,header$ READF,unit,header$ dStartDate$ = STRSPLIT(dStartDate$,' ',/EXTRACT) dStartDate$ = dStartDate$[1] dStartDate = TIME_DOUBLE(dStartDate$) latLon$ = STRSPLIT(latLon$,' ',/EXTRACT) lat = FLOAT(latLon$[1]) lon = FLOAT(latLon$[3]) sub_sphazm,lon,lat,magNPlon,magNPlat,azm,rn c = 0LL sec = 0D bx = 0D by = 0D bz = 0D REPEAT BEGIN line$='' READF,unit,line$ dataVec = STRSPLIT(line$,'/: ',/EXTRACT) ;No X[nT] Y[nT] Z[nT] IF (c NE 0 ) THEN retData = [[retData], [dataVec]] ELSE retData = dataVec ++c ; print,c,' ',line$ ENDREP UNTIL EOF(unit) FREE_LUN,unit retData = DOUBLE(retData) retData[0,*] = retData[0,*] + dStartDate ; IF ~KEYWORD_SET(geographic) THEN BEGIN ; baseDec = baseDec + azm ; retData[6,*] = retData[6,*] + azm ; ENDIF ; retData[1,*] = retData[1,*] * COS(azm *!dtor) retData[2,*] = retData[2,*] * COS(azm *!dtor) retData = TRANSPOSE(retData) ;retData = TRANSPOSE([[timeVec], [Bx], [By], [Bz]]) ; ;Create a 4 column array containing: ; ; [TimeVector Bx By Bz] ; retData[*,0] = retData[*,0] + time0 ;Create Information Vector type$ = 'mag' name$ = STRUPCASE(source$[1]) + 'Hornsund Mag (' + source$[2] + ')' unit$ = 'nT' shortID$ = STRUPCASE(source$[1]) + ':' + source$[2] info$ = [source_in$, type$, name$, unit$, shortID$ ] SAVE,file=savFName$,retData,info$ ENDIF ELSE BEGIN RESTORE,file=savFName$ ENDELSE ;Ensure that the array only contains data within the specified time range. upper = WHERE(retData[*,0] GE startdate) IF upper[0] NE -1 THEN retData = retData[upper,*] lower = WHERE(retData[*,0] LE enddate) IF lower[0] NE -1 THEN retData = retData[lower,*] ;Select Magnetometer Component comp$ = STRMID(source$[2],0,1,/REVERSE_OFFSET) retData = comp(retData,comp$) END ENDCASE RETURN, retData END