pro moment_params common dev_block,spec1,spec0,vpeak1,vdisp0,q,vpeak0,tau,stau,$ fitparams,outdata,vdisppt,vpeakpt,mask,res,err,tol,s2n,smw,$ flag2,flag3,flag4,flag5,mapparams common data_block, data0,nx0,ny0,nv0, $ x0,y0,v0,dx0,dy0,dv0,i0,j0,k0 common thin_vel, x_thin,y_thin,v_thin common header_block, naxis1,crpix1,cdelt1,crval1,ctype1, $ naxis2,crpix2,cdelt2,crval2,ctype2, $ naxis3,crpix3,cdelt3,crval3,ctype3 @parameters plhold=init(file0,flag) sz=size(data0) sx=sz(1) sy=sz(2) sv=sz(3) nx0=sx ny0=sy nv0=sv fitparams=fltarr(sx,sy,9) ;v0=0. ;dv0=1. v=findgen(sv)*dv0+v0 sub=where(data0 ne data0) if sub(0) ne -1 then begin data0(sub)=0. endif T_int=total(data0,3) weight=fltarr(sx,sy,sv) for i=0,sx-1 do begin for j=0,sy-1 do begin weight(i,j,*)=v endfor endfor centroid=total(weight*data0,3)/T_int centroid_mat=fltarr(sx,sy,sv) for i=0,sv-1 do begin centroid_mat(*,*,i)=centroid endfor nspectra=n_elements(where(data0 ne 0.))/sv sigma=total(data0*(weight-centroid_mat)^2,3)/T_int avg_sp=total(total(data0,1),1)/(nspectra) avg_centroid=total(avg_sp*v)/total(avg_sp) avg_sigma=sqrt(total(avg_sp*(v-avg_centroid)^2)/total(avg_sp)) avg_sigma_pixels=abs(fix(avg_sigma/dv0)) centroid_mat_pixels=fix((centroid-v0)/dv0) fitparams(*,*,0)=sqrt(total(data0^2,3)/sv) fitparams(*,*,1)=centroid fitparams(*,*,2)=float(replicate(avg_sigma,sx,sy)) fitparams(*,*,3)=0. fitparams(*,*,4)=sqrt(total((data0*(data0 lt 0))^2,3)/total((data0 lt 0),3)) fitparams(*,*,5)=0. fitparams(*,*,6)=centroid_mat_pixels fitparams(*,*,7)=avg_sigma_pixels fitparams(*,*,8)=fitparams(*,*,0)/fitparams(*,*,4) fitparams(where(fitparams ne fitparams))=99999.0 ;realnoise=fltarr(sx,sy) ;for i=0,sx-1 do begin ; for j=0,sy-1 do begin ; vpeakpt=fix((centroid(i,j)-v0)/dv0) ; vdisppt=avg_sigma/dv0 ; realnoise(i,j)=noise(transpose(data0(i,j,*)),vpeakpt,$ ; vdisppt,3,0.) ; endfor ;endfor end