glue-viz / glue

Linked Data Visualizations Across Multiple Files
http://glueviz.org
Other
739 stars 153 forks source link

Cube viewer can crash due to OOB WCSAxes coordinates #723

Closed ChrisBeaumont closed 7 years ago

ChrisBeaumont commented 9 years ago

From @jegpeek:

OK, so what happens here is I have a X, Y, V cube, and I turn it on its side. Then I am scrolling in X (looking at Y,V slices) and when I get to X=360 the viewer freezes. And then I can no longer make functional windows in glue.

--------------------------------------------------------------------------------
WARNING: FITSFixedWarning: 'spcfix' made the change 'Changed CTYPE3 from 'VELO-LSR' to 'VOPT', and SPECSYS to 'LSRK''. [astropy.wcs.wcs]
/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/text.py:52: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  if rotation in ('horizontal', None):
/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/text.py:54: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  elif rotation == 'vertical':
Traceback (most recent call last):
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/qt/widgets/image_widget.py", line 210, in <lambda>
    ui.slice.slice_changed.connect(lambda: setattr(self, 'slice', self.ui.slice.slice))
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/qt/widgets/image_widget.py", line 196, in slice
    self.client.slice = value
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/echo.py", line 55, in __set__
    self._setter(instance, value)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/utils/matplotlib.py", line 136, in wrapper
    FigureCanvasAgg.draw.execute_deferred_calls()
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/utils/misc.py", line 37, in execute_deferred_calls
    self.method(instance, *args, **kwargs)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 469, in draw
    self.figure.draw(self.renderer)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/artist.py", line 59, in draw_wrapper
    draw(artist, renderer, *args, **kwargs)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/figure.py", line 1085, in draw
    func(*args)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/core.py", line 156, in draw
    ticklabels_bbox=self._ticklabels_bbox)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/coordinate_helpers.py", line 362, in _draw
    self._update_ticks(renderer)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/coordinate_helpers.py", line 414, in _update_ticks
    tick_world_coordinates, self._fl_spacing = self.locator(*coord_range[self.coord_index])
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/formatter_locator.py", line 264, in locator
    values = self._locate_values(value_min, value_max, spacing_deg)
  File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/formatter_locator.py", line 94, in _locate_values
    imin = np.ceil(value_min / spacing)
ZeroDivisionError: float division by zero

Platform: darwin
Version: 2.7.10 |Anaconda 2.1.0 (x86_64)| (default, May 28 2015, 17:04:42)
[GCC 4.2.1 (Apple Inc. build 5577)]
Qt Binding: PyQt4
Matplotlib version: 1.4.3
Numpy version: 1.9.2
AstroPy version: 1.0.3

Josh is X=360 on an edge of the cube by any chance?

jegpeek commented 9 years ago

it is.

-Josh On Aug 17, 2015, at 1:13 PM, Chris Beaumont notifications@github.com wrote:

From @jegpeek:

OK, so what happens here is I have a X, Y, V cube, and I turn it on its side. Then I am scrolling in X (looking at Y,V slices) and when I get to X=360 the viewer freezes. And then I can no longer make functional windows in glue.


WARNING: FITSFixedWarning: 'spcfix' made the change 'Changed CTYPE3 from 'VELO-LSR' to 'VOPT', and SPECSYS to 'LSRK''. [astropy.wcs.wcs] /Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/text.py:52: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal if rotation in ('horizontal', None): /Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/text.py:54: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal elif rotation == 'vertical': Traceback (most recent call last): File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/qt/widgets/image_widget.py", line 210, in ui.slice.slice_changed.connect(lambda: setattr(self, 'slice', self.ui.slice.slice)) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/qt/widgets/image_widget.py", line 196, in slice self.client.slice = value File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/echo.py", line 55, in set self._setter(instance, value) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/utils/matplotlib.py", line 136, in wrapper FigureCanvasAgg.draw.execute_deferred_calls() File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/utils/misc.py", line 37, in execute_deferred_calls self.method(instance, _args, _kwargs) File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_agg.py", line 469, in draw self.figure.draw(self.renderer) File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/artist.py", line 59, in draw_wrapper draw(artist, renderer, _args, _kwargs) File "/Users/goldston/anaconda/lib/python2.7/site-packages/matplotlib/figure.py", line 1085, in draw func(_args) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/core.py", line 156, in draw ticklabels_bbox=self._ticklabels_bbox) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/coordinate_helpers.py", line 362, in _draw self._update_ticks(renderer) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/coordinate_helpers.py", line 414, in _update_ticks tick_world_coordinates, self._fl_spacing = self.locator(_coord_range[self.coord_index]) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/formatter_locator.py", line 264, in locator values = self._locate_values(value_min, value_max, spacing_deg) File "/Users/goldston/anaconda/lib/python2.7/site-packages/glueviz-0.5.0.dev-py2.7.egg/glue/external/wcsaxes/formatter_locator.py", line 94, in _locate_values imin = np.ceil(value_min / spacing) ZeroDivisionError: float division by zero

Platform: darwin Version: 2.7.10 |Anaconda 2.1.0 (x86_64)| (default, May 28 2015, 17:04:42) [GCC 4.2.1 (Apple Inc. build 5577)] Qt Binding: PyQt4 Matplotlib version: 1.4.3 Numpy version: 1.9.2 AstroPy version: 1.0.3 Josh is X=360 on an edge of the cube by any chance?

— Reply to this email directly or view it on GitHub.

Dr. Joshua E G Peek Assistant Astronomer, Space Telescope Science Institute Adjunct Research Scientist, Columbia University

STScI: 1 410 338 4561 Mobile: 1 510 299 4427

astrofrog commented 9 years ago

@jegpeek - can you send me the data by email? I can look into the WCSAxes bug.

astrofrog commented 9 years ago

@jegpeek - just a ping, can you send me the problematic dataset?

astrofrog commented 7 years ago

I think this should be fixed in recent versions of Astropy