Just to follow up, I found the location in the code where it is most
likely crashing and I've included the snippet below. I'm always doing
the same thing when it crashes: releasing the mouse button after
clicking and dragging to define a box around points on a plot which
need to be flagged. I release the mouse button, nothing happens for a
few seconds, then the Mac spinning frisbee appears for a few more
seconds, and then everything crashes, as described above.
good = (m_f gt 0)
print, 'Draw box containing outliers to reject'
done = 0
repeat begin
igd = where(good eq 1)
plot, m_p(igd), resid(igd), /ps, xsty=3, ysty=3, chars=1.5 $
, xtit='Pixel Number', ytit='Residual (pixels)'
cursor, cx1, cy1, wait=3
if cx1 lt min(!x.crange) or cx1 gt max(!x.crange) then done
= 1
if cy1 lt min(!y.crange) or cy1 gt max(!y.crange) then done
= 1
if done eq 0 then begin
cx2 = cx1
cy2 = cy1
repeat begin
cx2o = cx2
cy2o = cy2
cursor, cx2, cy2, wait=2
oplot, [cx1, cx1, cx2o, cx2o, cx1] $
, [cy1, cy2o, cy2o, cy1, cy1], co=!p.background
oplot, m_p(igd), resid(igd), /ps
oplot, [cx1, cx1, cx2, cx2, cx1] $
, [cy1, cy2, cy2, cy1, cy1], co=!p.color
cursor, junk, junk, /nowait
endrep until !err eq 0
ibad = where(m_p gt (cx1<cx2) and m_p lt (cx1>cx2) $
and resid gt (cy1<cy2) and resid lt (cy1>cy2),
nbad)
if nbad gt 0 then good(ibad) = 0
endif
endrep until done eq 1
|