From ce15aebc3d865bf6aab0fa4ece4a0403297eb40a Mon Sep 17 00:00:00 2001 From: Thomas Robitaille Date: Wed, 22 May 2024 11:09:18 +0100 Subject: [PATCH 1/2] Make compute_scale robust to case where fiducial coordinates are ouside of bounding box --- jdaviz/configs/imviz/wcs_utils.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jdaviz/configs/imviz/wcs_utils.py b/jdaviz/configs/imviz/wcs_utils.py index bae667b156..8425a8f6a6 100644 --- a/jdaviz/configs/imviz/wcs_utils.py +++ b/jdaviz/configs/imviz/wcs_utils.py @@ -6,6 +6,7 @@ import base64 import math from io import BytesIO +import warnings import matplotlib.pyplot as plt import numpy as np @@ -575,7 +576,13 @@ def compute_scale(wcs, fiducial, disp_axis, pscale_ratio=1): if spectral and disp_axis is None: # pragma: no cover raise ValueError('If input WCS is spectral, a disp_axis must be given') - crpix = np.array(wcs.invert(*fiducial)) + if wcs.in_image(*fiducial): + crpix = np.array(wcs.invert(*fiducial)) + else: + # At this point we know the bounding box is probably defined, so we can + # use the central coordinate inside the bounding box + warnings.warn("WCS fiducial coordinates not inside bounding box") + crpix = np.mean(wcs.pixel_bounds, axis=1) delta = np.zeros_like(crpix) spatial_idx = np.where(np.array(wcs.output_frame.axes_type) == 'SPATIAL')[0] From 6ac1336a1ad79b9546359b2612d8e8cc47ad7d3d Mon Sep 17 00:00:00 2001 From: "Brett M. Morris" Date: Wed, 11 Dec 2024 11:56:00 -0500 Subject: [PATCH 2/2] stop GWCS bounding box override in imviz parser --- CHANGES.rst | 2 ++ jdaviz/configs/imviz/plugins/parsers.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 8cf290d4f8..dace76e2d8 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -81,6 +81,8 @@ Other Changes and Additions New Features ------------ +- Prevent image wrapping in Imviz with Roman L2 images with GWCS. [#2887] + Cubeviz ^^^^^^^ diff --git a/jdaviz/configs/imviz/plugins/parsers.py b/jdaviz/configs/imviz/plugins/parsers.py index d0a17a321a..be12b31f76 100644 --- a/jdaviz/configs/imviz/plugins/parsers.py +++ b/jdaviz/configs/imviz/plugins/parsers.py @@ -216,7 +216,7 @@ def _parse_image(app, file_obj, data_label, ext=None, parent=None): # NOTE: if extending this beyond GWCS, the mouseover logic # for outside_*_bounding_box should also be updated. data.coords._orig_bounding_box = data.coords.bounding_box - data.coords.bounding_box = None + if not data.meta.get(_wcs_only_label, False): data_label = app.return_data_label(data_label, alt_name="image_data")