Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compute_scale when fiducial coordinates are outside bounding box #2887

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ Other Changes and Additions
New Features
------------

- Prevent image wrapping in Imviz with Roman L2 images with GWCS. [#2887]

Cubeviz
^^^^^^^

Expand Down
2 changes: 1 addition & 1 deletion jdaviz/configs/imviz/plugins/parsers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Comment on lines 216 to 218
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bmorris3 - is this still needed/used anywhere? Can we remove the entire if-statement?

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")

Expand Down
9 changes: 8 additions & 1 deletion jdaviz/configs/imviz/wcs_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import base64
import math
from io import BytesIO
import warnings

import matplotlib.pyplot as plt
import numpy as np
Expand Down Expand Up @@ -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):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bmorris3 should review this one. And also since he mentioned that he lifted this code from jwst, I wonder if a similar patch has to go to jwst also.

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]
Expand Down
Loading