pro mem_map,hsi,vis_out,u_out,v_out,image_struct,circles,pixel_size,svis,$ imsize=imsize,show=show,help=help if keyword_set(help) then begin print,'PURPOSE:' print,' Create a map using RHESSI Visibilities and MEM NJIT' print,'HELP:' print,' pro mem_map,hsi,vis,u,v,image,circles,pixel_size,svis,imsize=imsize,' print,' /show' print,' inputs: hsi (RHESSI Structure)' print,' circles (array, zero offset, starting and ending uv circles)' print,' pixel_size (pixel size in arcsec, double float) print,' imsize (default: 128, dimension of the square map)' print,' show (default: no, /show to show map progress and uv dist.)' print,' outputs:vis (visibilities, float array)' print,' u,v (coordinates in Fourier plane, float arrays)' print,' image (MEM NJIT results, structure)' print,' structure includes:' print,' map (128 x 128 map array generated from visibilities)' print,' misc (structure with frequency, iterations, ' print,' normalized flux, normalized chi^2, and ' print,' Lagrange Multipliers)' print,' svis (uncertainties in visibilities, float array)' print,'AUTHOR:' print,' Rick Pernak, Goddard Space Flight Center' return endif ;isc: index of subcollimator isc_start = circles[0] isc_end = circles[1] ;make u,v, and vis arrays for isc_ctr = isc_start,isc_end do begin good = where((hsi.isc) eq isc_ctr,n) if (isc_ctr eq isc_start) then begin u_out = hsi(good).u * 206265. ;convert to inverse radians v_out = hsi(good).v * 206265. ;for use with MEM_NJIT vis_out = hsi(good).obsvis svis = hsi(good).sigamp tflux = hsi(good).totflux endif else begin u_out = [u_out,hsi(good).u * 206265.] v_out = [v_out,hsi(good).v * 206265.] vis_out = [vis_out,hsi(good).obsvis] svis = [svis,hsi(good).sigamp] tflux = [tflux,hsi(good).totflux] endelse endfor help,u_out,v_out,vis_out flux = mean(tflux);max(abs(vis_out)) print,'Flux = ',flux default,imsize,128 ;call MEM NJIT to make visibility map if keyword_set(show) then begin image_struct=mem_njit(vis_out,u_out,v_out,flux=flux,svis=svis,imsiz=imsize,xyint=pixel_size,/show) endif else begin image_struct=mem_njit(vis_out,u_out,v_out,flux=flux,svis=svis,imsiz=imsize,xyint=pixel_size) endelse return end