From 774c749caad42b0541280d44b1e14c747babaf75 Mon Sep 17 00:00:00 2001 From: Nabil Freij Date: Tue, 9 Nov 2021 11:27:38 -0800 Subject: [PATCH] minor changes --- glue/core/data.py | 4 +--- glue/utils/wcs.py | 13 ++++++++++++- glue/viewers/common/qt/data_slice_widget.py | 1 - glue/viewers/image/qt/data_viewer.py | 3 +-- glue/viewers/image/qt/slice_widget.py | 4 ---- glue/viewers/image/viewer.py | 14 +------------- glue/viewers/profile/layer_artist.py | 3 +-- glue/viewers/profile/qt/options_widget.py | 2 -- glue/viewers/profile/state.py | 18 +++++++++++++----- 9 files changed, 29 insertions(+), 33 deletions(-) diff --git a/glue/core/data.py b/glue/core/data.py index 94fe4f48e..397066730 100644 --- a/glue/core/data.py +++ b/glue/core/data.py @@ -27,8 +27,7 @@ from glue.core.contracts import contract from glue.core.joins import get_mask_with_key_joins from glue.config import settings, data_translator, subset_state_translator -from glue.utils import (compute_statistic, - unbroadcast, iterate_chunks, +from glue.utils import (compute_statistic, unbroadcast, iterate_chunks, datetime64_to_mpl, broadcast_to, categorical_ndarray, format_choices, random_views_for_dask_array) from glue.core.coordinate_helpers import axis_label @@ -1687,7 +1686,6 @@ def compute_statistic(self, statistic, cid, subset_state=None, axis=None, values = self.compute_statistic(statistic, cid, subset_state=subset_state, axis=axis, finite=finite, positive=positive, percentile=percentile, view=chunk_view) - result[chunk_view[axis_index]] = values return result diff --git a/glue/utils/wcs.py b/glue/utils/wcs.py index 06345d1ea..3c2c6d368 100644 --- a/glue/utils/wcs.py +++ b/glue/utils/wcs.py @@ -2,11 +2,22 @@ def get_identity_wcs(naxis): + """ + Create a WCS object with an identity transform. + Parameters + ---------- + naxis : float + The number of axes. + + Returns + ------- + `astropy.wcs.WCS` + A WCS object with an identity transform. + """ wcs = WCS(naxis=naxis) wcs.wcs.ctype = ['X'] * naxis wcs.wcs.crval = [0.] * naxis wcs.wcs.crpix = [1.] * naxis wcs.wcs.cdelt = [1.] * naxis - return wcs diff --git a/glue/viewers/common/qt/data_slice_widget.py b/glue/viewers/common/qt/data_slice_widget.py index 9fffd1a08..c0c2a23c7 100644 --- a/glue/viewers/common/qt/data_slice_widget.py +++ b/glue/viewers/common/qt/data_slice_widget.py @@ -109,7 +109,6 @@ def __init__(self, label='', world=None, lo=0, hi=10, def set_label_from_slider(self): value = self.state.slice_center - if self.state.use_world: value = self._world[value] if self._world_warning: diff --git a/glue/viewers/image/qt/data_viewer.py b/glue/viewers/image/qt/data_viewer.py index af8f798bc..c78a443f0 100644 --- a/glue/viewers/image/qt/data_viewer.py +++ b/glue/viewers/image/qt/data_viewer.py @@ -38,8 +38,7 @@ class ImageViewer(MatplotlibImageMixin, MatplotlibDataViewer): tools = ['select:rectangle', 'select:xrange', 'select:yrange', 'select:circle', - 'select:polygon', 'image:point_selection', - 'image:contrast_bias', + 'select:polygon', 'image:point_selection', 'image:contrast_bias', 'profile-viewer'] def __init__(self, session, parent=None, state=None): diff --git a/glue/viewers/image/qt/slice_widget.py b/glue/viewers/image/qt/slice_widget.py index 1e41c8ed1..0184b313b 100644 --- a/glue/viewers/image/qt/slice_widget.py +++ b/glue/viewers/image/qt/slice_widget.py @@ -6,7 +6,6 @@ from glue.viewers.image.state import AggregateSlice from glue.utils.decorators import avoid_circular - __all__ = ['MultiSliceWidgetHelper'] @@ -57,7 +56,6 @@ def sync_state_from_sliders(self, *args): else: slices.append(self.viewer_state.slices[i]) self.viewer_state.slices = tuple(slices) - self._reference_data = self.viewer_state.reference_data @avoid_circular @@ -96,7 +94,6 @@ def sync_sliders_from_state(self, *args): pixel_axis=world_axis_index, world_axis=world_axis_index) world_unit = self.data.coords.world_axis_units[world_axis_index] - world_warning = len(dependent_axes(self.data.coords, i)) > 1 world_label = self.data.world_component_ids[i].label else: @@ -110,7 +107,6 @@ def sync_sliders_from_state(self, *args): world_unit=world_unit, world_warning=world_warning) self.slider_state = slider.state - self.slider_state.add_callback('slice_center', self.sync_state_from_sliders) self._sliders.append(slider) self.layout.addWidget(slider) diff --git a/glue/viewers/image/viewer.py b/glue/viewers/image/viewer.py index 70e01ce97..1aa58e086 100644 --- a/glue/viewers/image/viewer.py +++ b/glue/viewers/image/viewer.py @@ -1,7 +1,5 @@ import os -from astropy.wcs import WCS - from glue.core.subset import roi_to_subset_state from glue.core.coordinates import Coordinates, LegacyCoordinates from glue.core.coordinate_helpers import dependent_axes @@ -12,21 +10,11 @@ from glue.viewers.image.frb_artist import imshow from glue.viewers.image.composite_array import CompositeArray +from glue.utils.wcs import get_identity_wcs __all__ = ['MatplotlibImageMixin'] -def get_identity_wcs(naxis): - - wcs = WCS(naxis=naxis) - wcs.wcs.ctype = ['X'] * naxis - wcs.wcs.crval = [0.] * naxis - wcs.wcs.crpix = [1.] * naxis - wcs.wcs.cdelt = [1.] * naxis - - return wcs - - EXTRA_FOOTER = """ # Set tick label size - for now tick_params (called lower down) doesn't work # properly, but these lines won't be needed in future. diff --git a/glue/viewers/profile/layer_artist.py b/glue/viewers/profile/layer_artist.py index d5b75c826..97dd105aa 100644 --- a/glue/viewers/profile/layer_artist.py +++ b/glue/viewers/profile/layer_artist.py @@ -26,7 +26,7 @@ def __init__(self, axes, viewer_state, layer_state=None, layer=None): self._viewer_state.add_global_callback(self._update_profile) self.state.add_global_callback(self._update_profile) - self.plot_artist = self.axes.plot([1, 2, 3], [3, 4, 5], 'k-', drawstyle='steps-mid', + self.plot_artist = self.axes.plot([1, 2, 3], [3, 4, 5], drawstyle='steps-mid', color=self.state.layer.style.color)[0] self.mpl_artists = [self.plot_artist] @@ -45,7 +45,6 @@ def _calculate_profile_thread(self, reset=False): # otherwise the thread tries to send these to the glue logger (which # uses Qt), which then results in this kind of error: # QObject::connect: Cannot queue arguments of type 'QTextCursor' - with warnings.catch_warnings(): warnings.simplefilter("ignore") if reset: diff --git a/glue/viewers/profile/qt/options_widget.py b/glue/viewers/profile/qt/options_widget.py index 8bee8955c..0c750b2c6 100644 --- a/glue/viewers/profile/qt/options_widget.py +++ b/glue/viewers/profile/qt/options_widget.py @@ -41,7 +41,6 @@ def __init__(self, viewer_state, session, parent=None): self.viewer_state.add_callback('x_att', self._on_attribute_change) self.ui.text_warning.hide() - self.ui.axes_editor.button_apply_all.clicked.connect(self._apply_all_viewers) def _on_function_change(self, *args): @@ -52,7 +51,6 @@ def _on_function_change(self, *args): layout=self.ui.layout_slices) self.ui.text_warning.hide() self.ui.text_warning.setText('') - else: if self.profile_slice_helper: self.profile_slice_helper.remove() diff --git a/glue/viewers/profile/state.py b/glue/viewers/profile/state.py index a330fe65c..4a293c3a9 100644 --- a/glue/viewers/profile/state.py +++ b/glue/viewers/profile/state.py @@ -62,7 +62,7 @@ def __init__(self, **kwargs): self.add_callback('layers', self._layers_changed) self.add_callback('reference_data', self._reference_data_changed, echo_old=True) - self.add_callback('x_att', self._update_att) + self.add_callback('x_att', self._update_x_att) self.add_callback('normalize', self._reset_y_limits) self.add_callback('function', self._reset_y_limits) @@ -88,9 +88,9 @@ def _display_world(self): return getattr(self.reference_data, 'coords', None) is not None @defer_draw - def _update_att(self, *args): + def _update_x_att(self, *args): """ - Define self.x_att_pixel in viewer state. + Defines ``self.x_att_pixel`` in the viewer state. """ if self.x_att is not None: if self._display_world: @@ -183,7 +183,7 @@ def _reference_data_changed(self, before=None, after=None): self.x_att_helper.world_coord = False self.x_att = self.reference_data.pixel_component_ids[0] - self._update_att() + self._update_x_att() self.reset_limits() @@ -207,9 +207,17 @@ def wcsaxes_slice(self): """ if self.reference_data is None: return None + elif self.x_att_pixel is None: + # TODO: This should not be here. + # I can not work out how to get this to be set at initialisation. + self.x_att_helper.set_multiple_data([self.reference_data]) + self.x_att_helper.world_coord = False + self.x_att = self.reference_data.pixel_component_ids[0] + self._update_x_att() + slices = [] for i in range(self.reference_data.ndim): - if i == self.x_att_pixel.axis: + if self.x_att_pixel and i == self.x_att_pixel.axis: slices.append('x') else: slices.append(0)