pro losx, rot, deg, iLng on_error, 2 if n_elements(rot) eq 0 then rot = 0 ; beginning of the rotation - i.e., 1965.5 if n_elements(deg) eq 0 then deg = 0 ; # of deg past beginning - i.e., 20 or -20 if n_elements(iLng) eq 0 then iLng = 37 ; # of points in 360 deg stat = flt_read('d:\temp\los.txt',a) ;amin = long(min(a[3,*])) ;amin = 0 amin = 37 axis60 = fltarr(8) axisv = strarr(8) axisv(0) = '0' axisv(1) = '60' axisv(2) = '120' axisv(3) = '180' axisv(4) = '240' axisv(5) = '300' axisv(6) = '360' axisv(7) = '0' i = 0 xtick = 6 Bound1 = round((iLng-1)*(rot - fix(rot) + deg/360.)) ; Bound1 = round((iLng-1)*(rot - fix(rot))) Bound = Bound1 if Bound1 ge iLng then Bound = Bound1 - iLng + 1 ;p60 = 6.*(iLng-1)/36. ; number of longitude units per sixty degrees p60 = 60.*(iLng-1)/36. ; number of longitude units per sixty degrees while i lt 7 do begin aval = i*p60 + Bound*10 if aval ge iLng*10 then aval = aval - iLng*10 + 10 if Bound gt 0 and Bound lt (iLng -1) then begin axisv(0) = ' ' if aval eq 180 then begin axisv(7) = axisv(i) axis60(7) = 0.0 xtick = 7 print, 'New axis tick ',i,' ',axisv(i),axis60(i) endif endif if Bound lt 0 or Bound gt (iLng -2) then xtick = 7 axis60(i) = aval print, i,aval,Bound,' ',axisv(i),axis60(i) i = i+1 endwhile Bound = Bound*10 ;i = where(a[2,*] eq 20 or a[2,*] eq 21 or a[2,*] eq 22) i = where(a[2,*] eq 17) if i[0] ne -1 then begin los = a[0,i] seg = a[1,i] ; lng = a[3,i]-amin-1.3 lng = - (a[3,i]-amin)*360. + deg lng = rot+lng lat = a[4,i] whatis, los,seg,lng,lat ;plot, lng, lat, /nodata, xrange=rot+[2,1]-0.7d0, yrange=[-90,90], xstyle=1, ystyle=1, $ plot, lng, lat, /nodata, xrange=[0,360], yrange=[-90,90], xstyle=1, ystyle=1, $ xtickn = axisv, $ xtickv = axis60, xticks=xtick, $ ytickn = ['-90','-60','-30','0','30','60','90'], yticks=6, $ pos=[0.10,0.27,0.90,0.80], charsize=1.5, charthick=1.5 xcb = fltarr(2) ycb = fltarr(2) xcb(0) = Bound xcb(1) = Bound ycb(0) = -90 ycb(1) = 90 oplot,xcb, ycb, thick=1.5, linestyle=2 i = uniq(los) ; List of unique los numbers (array index into los) for u=0,n_elements(i)-1 do begin useg = where(los eq los[i[u]], nseg) if nseg ne 0 then begin ulng = lng[useg] ulat = lat[useg] useg = seg[useg] qlng = replicate(!values.f_nan, 40) qlat = replicate(!values.f_nan, 40) qlng[useg] = ulng qlat[useg] = ulat PlotCurve, qlng, qlat, thick=1.4, /oplot endif endfor endif return & end