def test_3d_world_link(): """Should be able to grab pixel coords after linking world""" x, y, z = r(10), r(10), r(10) cat = Data(label='cat', x=x, y=y, z=z) im = Data(label='im', inten=r((3, 3, 3))) dc = DataCollection([cat, im]) dc.add_link(LinkSame(im.get_world_component_id(2), cat.id['x'])) dc.add_link(LinkSame(im.get_world_component_id(1), cat.id['y'])) dc.add_link(LinkSame(im.get_world_component_id(0), cat.id['z'])) np.testing.assert_array_equal(cat[im.get_pixel_component_id(2)], x) np.testing.assert_array_equal(cat[im.get_pixel_component_id(1)], y) np.testing.assert_array_equal(cat[im.get_pixel_component_id(0)], z)
def test_1d_world_link(): x, y = r(10), r(10) d1 = Data(label='d1', x=x) d2 = Data(label='d2', y=y) dc = DataCollection([d1, d2]) dc.add_link(LinkSame(d2.get_world_component_id(0), d1.id['x'])) assert d2.get_world_component_id(0) in d1.components np.testing.assert_array_equal(d1[d2.get_world_component_id(0)], x) np.testing.assert_array_equal(d1[d2.get_pixel_component_id(0)], x)
if __name__ == "__main__": from glue.core import Data from glue.utils.qt import get_qapp from glue.external.echo import CallbackProperty from glue.core.state_objects import State app = get_qapp() class FakeViewerState(State): x_att = CallbackProperty() y_att = CallbackProperty() reference_data = CallbackProperty() slices = CallbackProperty() viewer_state = FakeViewerState() data = Data(x=np.random.random((3, 50, 20, 5, 3))) viewer_state.reference_data = data viewer_state.x_att = data.get_pixel_component_id(0) viewer_state.y_att = data.get_pixel_component_id(3) viewer_state.slices = [0] * 5 widget = MultiSliceWidgetHelper(viewer_state) widget.show() app.exec_()
if __name__ == "__main__": from glue.core import Data from glue.utils.qt import get_qapp from glue.external.echo import CallbackProperty from glue.core.state_objects import State app = get_qapp() class FakeViewerState(State): x_att = CallbackProperty() y_att = CallbackProperty() reference_data = CallbackProperty() slices = CallbackProperty() viewer_state = FakeViewerState() data = Data(x=np.random.random((3, 50, 20, 5, 3))) viewer_state.reference_data = data viewer_state.x_att = data.get_pixel_component_id(0) viewer_state.y_att = data.get_pixel_component_id(3) viewer_state.slices = [0] * 5 widget = MultiSliceWidgetHelper(viewer_state) widget.show() app.exec_()