def test_multi_tab(self): d = core.Data(label="hist", x=[[1, 2], [2, 3]]) dc = core.DataCollection([d]) app = GlueApplication(dc) w1 = app.new_data_viewer(HistogramWidget, data=d) app.new_tab() w2 = app.new_data_viewer(HistogramWidget, data=d) assert app.viewers == ((w1,), (w2,)) self.check_clone(app)
def test_single_draw_call_on_create(self): d = Data(x=np.random.random((2,) * self.ndim)) dc = DataCollection([d]) app = GlueApplication(dc) try: from ..mpl_widget import MplCanvas draw = MplCanvas.draw MplCanvas.draw = MagicMock() app.new_data_viewer(self.widget_cls, data=d) # each Canvas instance gives at most 1 draw call selfs = [c[0][0] for c in MplCanvas.draw.call_arg_list] assert len(set(selfs)) == len(selfs) finally: MplCanvas.draw = draw
def test_cube(self): d = core.Data(label='cube', x=np.zeros((2, 2, 2))) dc = core.DataCollection([d]) app = GlueApplication(dc) w = app.new_data_viewer(ImageWidget, d) w.slice = ('x', 'y', 1) assert w.slice == ('x', 'y', 1) c = self.check_clone(app) w2 = c.viewers[0][0] assert w2.ui.slice.slice == w.slice
def test_close_on_last_layer_remove(self): # regression test for 391 d1 = Data(x=np.random.random((2,) * self.ndim)) d2 = Data(y=np.random.random((2,) * self.ndim)) dc = DataCollection([d1, d2]) app = GlueApplication(dc) with patch.object(self.widget_cls, 'close') as close: w = app.new_data_viewer(self.widget_cls, data=d1) w.add_data(d2) dc.remove(d1) dc.remove(d2) assert close.call_count >= 1
def test_histogram(self): d = core.Data(label="hist", x=[[1, 2], [2, 3]]) dc = core.DataCollection([d]) app = GlueApplication(dc) w = app.new_data_viewer(HistogramWidget, data=d) self.check_clone(app) dc.new_subset_group() assert len(w.layers) == 2 self.check_clone(app) w.nbins = 7 self.check_clone(app)
def test_scatter_viewer(self): d = core.Data(label="x", x=[1, 2, 3, 4, 5], y=[2, 3, 4, 5, 6]) dc = core.DataCollection([d]) app = GlueApplication(dc) w = app.new_data_viewer(ScatterWidget, data=d) self.check_clone(app) s1 = dc.new_subset_group() s2 = dc.new_subset_group() assert len(w.layers) == 3 l1, l2, l3 = w.layers l1.zorder, l2.zorder = l2.zorder, l1.zorder l3.visible = False assert l3.visible is False copy = self.check_clone(app) assert copy.viewers[0][0].layers[-1].visible is False
def setup_method(self, method): LinkSame = core.link_helpers.LinkSame d = core.Data(label='im', x=[[1, 2], [2, 3]], y=[[2, 3], [4, 5]]) d2 = core.Data(label='cat', x=[0, 1, 0, 1], y=[0, 0, 1, 1], z=[1, 2, 3, 4]) dc = core.DataCollection([d, d2]) dc.add_link(LinkSame(d.get_pixel_component_id(0), d2.id['x'])) dc.add_link(LinkSame(d.get_pixel_component_id(1), d2.id['y'])) app = GlueApplication(dc) w = app.new_data_viewer(ImageWidget, data=d) self.d = d self.app = app self.w = w self.d2 = d2 self.dc = dc
def test_viewer_size(self, tmpdir): # regression test for #781 # viewers were not restored with the right size d1 = Data(x=np.random.random((2,) * self.ndim)) d2 = Data(x=np.random.random((2,) * self.ndim)) dc = DataCollection([d1, d2]) app = GlueApplication(dc) w = app.new_data_viewer(self.widget_cls, data=d1) w.viewer_size = (300, 400) filename = tmpdir.join('session.glu').strpath app.save_session(filename, include_data=True) app2 = GlueApplication.restore_session(filename) for viewer in app2.viewers: assert viewer[0].viewer_size == (300, 400) app.close() app2.close()
return x * 1e3 dc.add_link( LinkTwoWay(cube.id['Vrad'], catalog.id['center'], ms_to_kms, kms_to_ms)) subset_tem_lt_60 = (catalog.id['temperature_chi2'] < 60) & ( catalog.id['temperature_chi2'] > 10) & (catalog.id['area'] < 0.015) subset_tem_gt_60 = (catalog.id['temperature_chi2'] > 60) & (catalog.id['area'] < 0.015) app = GlueApplication(dc) # plot x vs y, flip the x axis, log-scale y axis scatter = app.new_data_viewer(ScatterWidget) scatter.add_data(catalog) scatter.yatt = catalog.id['temperature_chi2'] scatter.xatt = catalog.id['higaldusttem'] #scatter.xflip = True #scatter.ylog = True cube_viewer = app.new_data_viewer(ImageWidget) cube_viewer.add_data(cube) #cube_viewer.add_subset(subset_tem_lt_60) #cube_viewer.add_subset(subset_tem_gt_60) #cube_viewer.add_data(catalog) ax = cube_viewer.axes ax.set_axis_bgcolor('black')
dc.add_link(LinkSame(cube.id['Galactic Longitude'], catalog.id['GLON'])) dc.add_link(LinkSame(cube.id['Galactic Latitude'], catalog.id['GLAT'])) def ms_to_kms(x): return x/1e3 def kms_to_ms(x): return x*1e3 dc.add_link(LinkTwoWay(cube.id['Vrad'], catalog.id['center'], ms_to_kms, kms_to_ms)) subset_tem_lt_60 = (catalog.id['temperature_chi2'] < 60) & (catalog.id['temperature_chi2'] > 10) & (catalog.id['area'] < 0.015) subset_tem_gt_60 = (catalog.id['temperature_chi2'] > 60) & (catalog.id['area'] < 0.015) app = GlueApplication(dc) # plot x vs y, flip the x axis, log-scale y axis scatter = app.new_data_viewer(ScatterWidget) scatter.add_data(catalog) scatter.yatt = catalog.id['temperature_chi2'] scatter.xatt = catalog.id['higaldusttem'] #scatter.xflip = True #scatter.ylog = True cube_viewer = app.new_data_viewer(ImageWidget) cube_viewer.add_data(cube) #cube_viewer.add_subset(subset_tem_lt_60) #cube_viewer.add_subset(subset_tem_gt_60) #cube_viewer.add_data(catalog) ax = cube_viewer.axes ax.set_axis_bgcolor('black')
catalog.add_component(nc, column_name) # if column_name != 'parent' else '_flarent_' catalog.join_on_key(dendro, '_idx', dendro.pixel_component_ids[0]) dc = DataCollection(dendrogram) #dc = DataCollection([cube, dendrogram, catalog]) #dc.merge(cube,sncube) #sncube.join_on_key(dendro, 'structure', dendro.pixel_component_ids[0]) #dc.merge(catalog, dendro) # UNCOMMENT THIS LINE TO BREAK THE VIEWER dc.append(catalog) app = GlueApplication(dc) cube_viewer = app.new_data_viewer(ImageWidget) cube_viewer.add_data(sncube) # link positional information dc.add_link(LinkSame(sncube.id['structure'], catalog.id['_idx'])) #dc.add_link(LinkSame(image.id['World y: DEC--TAN'], catalog.id['DEJ2000'])) dc.add_link(LinkSame(cube.id['Galactic Longitude'], catalog.id['x_cen'])) dc.add_link(LinkSame(cube.id['Galactic Latitude'], catalog.id['y_cen'])) def ms_to_kms(x): return x / 1e3 def kms_to_ms(x):
catalog.label='Fitted Catalog' h2cocube.add_component(dendcube.get_component('structure'), 'structure') dc = DataCollection(dendrogram) dc.append(h2cocube) dc.append(catalog) dc.append(dendcube) dc.merge(h2cocube,dendcube) dc.merge(dendro, catalog) app = GlueApplication(dc) cube_viewer = app.new_data_viewer(ImageWidget) cube_viewer.add_data(h2cocube) h2cocube.join_on_key(dendro, 'structure', dendro.pixel_component_ids[0]) scatter = app.new_data_viewer(ScatterWidget) scatter.add_data(dendro) scatter.yatt = dendro.id['temperature_chi2'] scatter.xatt = catalog.id['r321303'] dendview = app.new_data_viewer(DendroWidget) dendview.add_data(dendro) subset_tem_bt_40_60 = ((catalog.id['temperature_chi2'] < 60) & (catalog.id['temperature_chi2'] > 40)) subset_tem_lt_40 = ((catalog.id['temperature_chi2'] < 40) &