; ; grid the data and display an image of the fit residuals ; this uses the data that was left after the last iteration of the fit ; then you can save as .png from iimage ;------------------------------------------------------- ; the fits are throwing away parts of the dish that are bad.. ; keeping only points within 3 sigma give ; 4parmfit 3parmfit ; 3sigma was .0057*3=1.7cm .0072*3= 2.2 cm ; we should probably keep points within say 5cm.. ; recompute points to exclude using the 2 fits ; ; for images use4param=0 goto,pltimg ; start with all data Radf3=fitiar[9,1].fitcoef[3] cen3=reform(fitiar[9,1].fitcoef[0:2]) ; Radf4=fitiar[9,0].fitcoef[3] cen4=reform(fitiar[9,0].fitcoef[0:2]) rad3=blmcmpradius(xyz,center=cen3) rad4=blmcmpradius(xyz,center=cen4) rdif3=rad3 - radF3 rdif4=rad4 - radF4 ; ; ;---------------------------------------------------- ; ; ----------------------------------------------- ; grid the data then make image ; mkimg: ; triangulate triangulate,reform(xyz[0,iikeepf4]),reform(xyz[1,iikeepf4]),tr4 triangulate,reform(xyz[0,iikeepf3]),reform(xyz[1,iikeepf3]),tr3 ; ; grid ; only use 40 points around a position ; 2kx2k 20 = 1 min ; 2kx2k 40 = about 1 min minpnts=40l dim=[2000l,2000] xout=(findgen(2000)/2000. - .5)*300. yout=(findgen(2000)/2000. - .5)*300. missing=-999. searchEllipse=.5 ; stay within .5 meters when interpolating ; img4=griddata(reform(xyz[0,iikeepf4]),reform(xyz[1,iikeepf4]),reform(rdif4[iikeepf4]),$ min_points=minpnts,/inverse_distance,triangles=tr4,xout=xout,yout=yout,/grid,missing=missing,$ search_ellipse=searchEllipse) rmin4=min(rdif4[iikeepf4]) ; swith -999 to rmin img4c=img4 y0=140 ii=where(img4 eq -999.) img4c[ii]=rmin4 ; img3=griddata(reform(xyz[0,iikeepf3]),reform(xyz[1,iikeepf3]),reform(rdif3[iikeepf3]),$ min_points=minpnts,/inverse_distance,triangles=tr3,xout=xout,yout=yout,/grid,missing=missing,$ search_ellipse=searchEllipse) rmin3=min(rdif3[iikeepf3]) ; ; switch nodata to rmin ; ; img3c=img3 ii=where(img3 eq -999.) img3c[ii]=rmin3 stop ; pltimg: ; current_zoom=.5 ; for title font_size=24 font_style=1 ; bold insert_colorbar=1 ; if [2] then bottom left corner of color bar (normalize coord). rgb_table=33; blue-red .. could be a 3,256 vector xrange=[-150.,150] yrange=[-150.,150] xtickunits='' ytickunits='' xtickvalues=0 ytickvalues=0 xticklayout=0 yticklayout=0 xtitle='NW [meters]' ytitle='NE [meters]' zoom_on_resize=1 ; radialerrs4.isv and radialerrs4.png ; if (use4param) then begin img=img4c title='11mar20: radial errors (measured - fit) for 4 param fit to sphere' endif else begin ; radialerrs3.isv and radialerrs3.png img=img3c title='11mar20: radial errors (measured - fit) for 3 param fit to sphere' endelse ; notes.. axis is not showing up.. ; in the itools visualization properties, you need to enable style -> box show iimage,img,xout,yout,$ ; current_zoom=current_zoom,$ /zoom_on_resize,$ font_size=font_size,$ font_style=font_style,$ insert_colorbar=insert_colorbar,$ rgb_table=rgb_table,$ identifier=img4id,$ title=title,$ xrange=xrange,yrange=yrange,$ xtickvalues=xtickvalues,ytickvalues=ytickvalues,$ xtickunits=xtickunits,ytickunits=ytickunits,$ xticklayout=xticklayout,yticklayout=yticklayout,$ xtitle=xtitle,ytitle=ytitle imgid=igetid('image') igetproperty,imgid,_registered=imgpropall ; ; place some text ; text='SW' x=155 y=0 itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size igetproperty,txtid,_registered=txtpropall text='NE' x=-165 y=0 itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size x=0 y=155 text='SE' itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size x=0 y=-160 text='NW' itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size ; ; text on right side y0=140 yeps=10 x=155 y=y0 text="Radius used: " + string(format='(f7.3," m")', use4param?radf4:radf3) itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size ; y=y0-yeps text='Center:[' + string(format='(f5.3,",",f5.3,",",f7.3,"]")',use4param?cen4:cen3) itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size ; y=y0-2*yeps lfitE=string(format='(f3.1," cm")',(use4param)?3*fitiar[9,0].fiterr*100.:3*fitiar[9,1].fiterr*100.) text='Keep points with error < ' + lfite itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size ; y=y0-3*yeps text='Dark blue is no data' itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size ; x=20 y=-220 text='gridding:2000x2000,inverse distance using 40 points' itext,text,x,y,target_identifier=imgid,/data,/visualization,identifier=txtid,font_style=font_style,font_size=font_size colBarId=igetid('colorbar') font_size=24 border=1 tickdir=1 ticklen=.2 subticklen=.4 cbtitle='radial errors [meters]' isetproperty,colbarid,font_size=font_size isetproperty,colbarid,border_on=1 isetproperty,colbarid,tickdir=tickdir isetproperty,colbarid,ticklen=ticklen isetproperty,colbarid,subticklen=subticklen isetproperty,colbarid,axis_title=cbtitle ; ; end