;$author: baldwin $ ;$Date: 2006-10-11 13:32:51 -0700 (Wed, 11 Oct 2006) $ ;$Header: /home/rumba/cdaweb/dev/control/RCS/map_keywords.pro,v 1.30 2000/08/15 19:05:24 johnson Exp johnson $ ;$Locker: johnson $ ;$Revision: 8 $ ;+------------------------------------------------------------------------ ; NAME: MAP_KEYWORDS.PRO ; ; PURPOSE: Read in a file of keyword values pairs and assign these to ; IDL keywords ; ; KEYWORD PARAMETERS: ; ORB_VW Orbit plot keyword for orbit view up to an array (xy, xz, yz, xr) ; XMIN Orbit plot keyword for minimum x axis value ; YMIN Orbit plot keyword for minimum y axis value ; YMAX Orbit plot keyword for maximum y axis value ; XMAX Orbit plot keyword for maximum x axis value ; DOYMARK Orbit plot keyword for interval along the orbit on which the ; day of year is plotted ; HRMARK Orbit plot keyword for interval along the orbit on which the ; hour of day is plotted ; HRTICK Orbit plot keyword for tick interval along the orbit ; MNTICK Minute tick interval ; MNMARK Minute mark interval ; BZ Orbit plot keyword for BZ component ; PRESS Orbit plot keyword for solar wind pressure ; STATION Mapped plot keyword for an array of stations ; IPROJ Mapped plot keyword for map projection ; aitoff (15), az. equid. (6), cyl (8), gnom (5), lamb eq area (4) ; merc (9), molle (10), ortho (2), sinsusoidal (14), stero. (1) ; LIM Mapped plot keyword for map_set limits ; LATDEL Mapped plot keyword for latitude interval ; LONDEL Mapped plot keyword for longitude interval ; Ttitle Mapped plot keyword for title ; SYMSIZ Mapped plot keyword for symbol size ; LNTHICK Plot keyword for line thickness. ; SYMCOL Mapped plot keyword for symbol color ; LNLABEL Mapped plot keyword for line labels ; CHTSIZE Character size of text ; REPORT Flag to write to the REPORT file opened in plotmaster ; PID Process id ; OUTDIR This keyword indiates the output directory where a gif file ; will be placed. If GIF is set but OUTDIR is not, then the gif ; file will be put in the user's current working directory. ; US Position of the Sun convention; left U.S.(1); right EUR.-JAP.(0) ; (Default; US=1) ; ; OUTPUTS: ; out = status flag, 0=0k, -1 = problem occurred. ; AUTHOR: ; Richard Baldwin, HSTX NASA/GSFC Code 632.0, Feb 2, 1997 ; baldwin@nssdca.gsfc.nasa.gov (301)286-7220 ; MODIFICATION HISTORY: ; 8/30/96 : R. Baldwin : Add error handling STATUS,DATASET,IMAGE,GIF ;------------------------------------------------------------------------- FUNCTION map_keywords, ORB_VW=ORB_VW, XUMN=XUMN, XUMX=XUMX, YUMN=YUMN, $ YUMX=YUMX,ZUMN=ZUMN,ZUMX=ZUMX,RUMN=RUMN,RUMX=RUMX, DOYMARK=DOYMARK, $ HRMARK=HRMARK, HRTICK=HRTICK, MNTICK=MNTICK,MNMARK=MNMARK,LNTHICK=LNTHICK,$ CHTSIZE=CHTSIZE, BZ=BZ, PRESS=PRESS, STATION=station, $ IPROJ=IPROJ,LIM=LIM,LATDEL=LATDEL, LONDEL=LONDEL, $ Ttitle=TITLE,SYMSIZ=SYMSIZ,SYMCOL=SYMCOL,POLAT=POLAT,POLON=POLON,$ ROT=ROT, LNLABEL=LNLABEL, BSMP=BSMP, ATLB=ATLB, DTLB=DTLB,$ XSIZE=XSIZE,YSIZE=YSIZE,NOCONT=NOCONT,EQLSCL=EQLSCL,PANEL=PANEL,$ REPORT=reportflag, PID=PID,OUTDIR=OUTDIR, US=US,_extra=extras status=0 ; Establish error handler catch, error_status if(error_status ne 0) then begin if (reportflag eq 1) then begin printf, 1, 'STATUS=Error reading keyword file; Use defaults' ; printf, 1, 'ERROR=Error number: ',error_status,' in map_keywords.' ; printf, 1, 'ERROR=Error Message: ', !ERR_STRING ; close, 1 endif else begin print, 'STATUS=Error reading keyword file; Use defaults' ; print, 'ERROR=Error number: ',error_status,' in map_keywords.' ; print, 'ERROR=Error Message: ', !ERR_STRING endelse return, -1 endif ; Open keyword file get_lun, lun filename=OUTDIR+'idl_'+strtrim(string(PID),2)+'.key' print, "filename=",filename OPENR,lun, filename str_val='' stations=strarr(150) lats=fltarr(150) lons=fltarr(150) iscn=0 while(NOT EOF(lun)) do begin readf, lun, str_val parts = str_sep(str_val,'=') key=strupcase(parts(0)) value=parts(1) if(key eq 'LATMIN') then LIM=fltarr(4) ; if(key eq 'STATION ') then begin case key of 'STATION' : begin stations(iscn)=value readf, lun, str_val parts = str_sep(str_val,'=') key1=strupcase(parts(0)) val1=parts(1) if(key1 eq 'LAT') then lats(iscn)=float(val1) else begin printf, 1, 'STATUS=keyword file error' printf, 1, 'ERROR=Missing keyword in file error LAT' endelse readf, lun, str_val parts = str_sep(str_val,'=') key2=strupcase(parts(0)) val2=parts(1) if(key2 eq 'LON') then lons(iscn)=float(val2) else begin printf, 1, 'STATUS=keyword file error' printf, 1, 'ERROR=Missing keyword in file error LON' endelse iscn=iscn+1 end 'ORB_VW' : begin orbs=str_sep(value,' ') orbs=strlowcase(orbs) ORB_VW=strarr(n_elements(orbs)+1) ORB_VW=[orbs] end 'CHARSIZE' : CHTSIZE=value 'TITLE' : TITLE=value 'LATMIN' : LIM(0)=value 'LONMIN' : LIM(1)=value 'LATMAX' : LIM(2)=value 'LONMAX' : LIM(3)=value ; endif else begin else: x1=execute(key+'='+value) endcase endwhile if(iscn ne 0) then begin station.num=iscn ws=where(stations ne '',wsn) fstat=stations(ws) flat=lats(ws) flon=lons(ws) temp=create_struct('STATION',fstat,'LAT',flat,'LON',flon) station=create_struct(station,temp) endif free_lun, lun ; Check map parameters ; if(LIM(0) eq LIM(2)) then LIM(0)=-90. & LIM(2)=90. ; if(LIM(1) eq LIM(3)) then LIM(1)=-180. & LIM(3)=180. if((n_elements(POLAT) ne 0) and (n_elements(ROT) eq 0)) then ROT=0 if((n_elements(POLAT) ne 0) and (n_elements(POLON) eq 0)) then POLON=0 if((n_elements(POLON) ne 0) and (n_elements(ROT) eq 0)) then ROT=0 if((n_elements(POLON) ne 0) and (n_elements(POLAT) eq 0)) then POLAT=0 if((n_elements(ROT) ne 0) and (n_elements(POLON) eq 0)) then POLON=0 if((n_elements(ROT) ne 0) and (n_elements(POLAT) eq 0)) then POLAT=0 ; Print out set variables if(n_elements(ORB_VW) ne 0) then print,'ORB_VW=',ORB_VW if(n_elements(XUMN) ne 0) then print,'XUMN=',XUMN if(n_elements(YUMN) ne 0) then print,'YUMN=',YUMN if(n_elements(ZUMN) ne 0) then print,'ZUMN=',ZUMN if(n_elements(RUMN) ne 0) then print,'RUMN=',RUMN if(n_elements(XUMX) ne 0) then print,'XUMX=',XUMX if(n_elements(YUMX) ne 0) then print,'YUMX=',YUMX if(n_elements(ZUMX) ne 0) then print,'ZUMX=',ZUMX if(n_elements(RUMX) ne 0) then print,'RUMX=',RUMX if(n_elements(DOYMARK) ne 0) then print,'DOYMARK=',DOYMARK if(n_elements(HRMARK) ne 0) then print,'HRMARK=',HRMARK if(n_elements(HRTICK) ne 0) then print,'HRTICK=',HRTICK if(n_elements(MNMARK) ne 0) then print,'MNMARK=',MNMARK if(n_elements(MNTICK) ne 0) then print,'MNTICK=',MNTICK if(n_elements(CHTSIZE) ne 0) then print,'CHTSIZE=',CHTSIZE if(n_elements(BZ) ne 0) then print,'BZ=', BZ if(n_elements(PRESS) ne 0) then print,'PRESS=',PRESS if(n_elements(station) ne 0) then print,'station=',station if(n_elements(IPROJ) ne 0) then print,'IPROJ=',IPROJ if(n_elements(LIM) ne 0) then print,'LIM=',LIM if(n_elements(LATDEL) ne 0) then print,'LATDEL=',LATDEL if(n_elements(LONDEL) ne 0) then print,'LONDEL=',LONDEL if(n_elements(TITLE) ne 0) then print,'TITLE=',TITLE if(n_elements(SYMSIZ) ne 0) then print,'SYMSIZ=',SYMSIZ if(n_elements(SYMCOL) ne 0) then print,'SYMCOL=',SYMCOL if(n_elements(LNLABEL) ne 0) then print,'LNLABEL=',LNLABEL if(n_elements(LNTHICK) ne 0) then print,'LNTHICK=',LNTHICK if(n_elements(reportflag) ne 0) then print,'reportflag=',reportflag if(n_elements(PID) ne 0) then print,'PID=',PID if(n_elements(OUTDIR) ne 0) then print,'OUTDIR=',OUTDIR if(n_elements(US) ne 0) then print,'US=',US if(n_elements(BSMP) ne 0) then print,'BSMP=',BSMP if(n_elements(ATLB) ne 0) then print,'ATLB=',ATLB if(n_elements(DTLB) ne 0) then print,'DTLB=',DTLB if(n_elements(POLAT) ne 0) then print, 'POLAT=',POLAT if(n_elements(POLON) ne 0) then print, 'POLON=',POLON if(n_elements(ROT) ne 0) then print, 'ROT=',ROT if(n_elements(NOCONT) ne 0) then print, 'NOCONT=',NOCONT if(n_elements(EQLSCL) ne 0) then print, 'EQLSCL=',EQLSCL if(n_elements(PANEL) ne 0) then print, 'PANEL=',PANEL if(n_elements(XSIZE) ne 0) then print, 'XSIZE=',XSIZE if(n_elements(YSIZE) ne 0) then print, 'YSIZE=',YSIZE if(n_elements(extras) ne 0) then print,'extras=',extras return, status end