function sleazy_rot, item1, img, time_in, time_out, roll=roll, rot_func=rot_func, $ quintic=quintic, display=display, off_limb=off_limb if n_elements(roll) eq 0 then roll = 0 if n_elements(quintic) eq 0 then quintic = 0 disk_coords = get_disk_coords(item1,img,display=display) siz_item1 = size(item1) if siz_item1(n_elements(siz_item1)-2) eq 8 then begin ; for SXT rb0p = get_rb0p(item1) img_res = gt_res(item1) img_cen = sxt_cen(item1)/2.^img_res xcen = img_cen(0) & ycen = img_cen(1) radius = rb0p(0)/(gt_pix_size()*2.^img_res) roll = get_roll(item1) time = fmt_tim(item1); in this case time_in is ignored endif else begin xcen = item1(0) ycen = item1(1) radius = item1(2) ; time = item1(3) time = time_in endelse ; Convert to heliographic coordinates, rotate, convert back helio = conv_p2h([disk_coords(0,*), disk_coords(1,*)], time, $ suncenter=[xcen,ycen], radius=radius, roll=roll, $ off_limb=off_limb) delt = (int2secarr([fmt_tim(time),fmt_tim(time_out)]))(1)/86400d0 helio_rot = diff_rot(delt, helio(1,*), /howard) helio(0,*) = helio(0,*) + helio_rot helio_rot = 0 ;reduce memory xy_rot = conv_h2p(helio, time_out, suncenter=[xcen,ycen], $ radius=radius, roll=roll, behind=behind) ss_behind = where(behind eq 1, n_behind) ss_front = where(behind ne 1, n_front) if n_front eq 0 then $ print,' SOL_ROT: All pixels are behind the limb.' if n_behind ge 1 and n_front ge 1 then $ print,' SOL_ROT: There are some pixels behind the limb' x0 = disk_coords(0,ss_front) y0 = disk_coords(1,ss_front) x1 = xy_rot(0,ss_front) y1 = xy_rot(1,ss_front) img_rot = warp_tri(x1,y1,x0,y0,img,quintic=quintic) return, img_rot end