Skip to content

Commit

Permalink
fix and add test
Browse files Browse the repository at this point in the history
  • Loading branch information
nden committed Mar 24, 2020
1 parent 02d3d67 commit 2ced523
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 8 deletions.
12 changes: 11 additions & 1 deletion gwcs/tests/test_wcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,17 @@ def test_to_fits_sip():
fitsvalx, fitsvaly = fitssip.all_pix2world(xflat+1, yflat+1, 1)
gwcsvalx, gwcsvaly = miriwcs(xflat, yflat)
assert_allclose(gwcsvalx, fitsvalx, atol=1e-10, rtol=0)
assert_allclose(gwcsvaly, fitsvaly, atol=1e-10, rtol=0)
assert_allclose(gwcsvaly, fitsvaly, atol=1e-10, rtol=0)
fits_inverse_valx, fits_inverse_valy = fitssip.all_world2pix(fitsvalx, fitsvaly, 1)
assert_allclose(xflat, fits_inverse_valx - 1, atol=0.1, rtol=0)
assert_allclose(yflat, fits_inverse_valy - 1, atol=0.1, rtol=0)

mirisip = miriwcs.to_fits_sip(bounding_box=None, max_inv_pix_error=0.1)
fitssip = astwcs.WCS(mirisip)
fitsvalx, fitsvaly = fitssip.all_pix2world(xflat+1, yflat+1, 1)
assert_allclose(gwcsvalx, fitsvalx, atol=1e-10, rtol=0)
assert_allclose(gwcsvaly, fitsvaly, atol=1e-10, rtol=0)

with pytest.raises(ValueError):
miriwcs.bounding_box = None
mirisip = miriwcs.to_fits_sip(bounding_box=None, max_inv_pix_error=0.1)
13 changes: 6 additions & 7 deletions gwcs/wcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -703,13 +703,12 @@ def to_fits_sip(self, bounding_box=None, max_pix_error=0.25, degree=None,

transform = self.forward_transform
# Determine reference points.
if bounding_box is not None:
(xmin, xmax), (ymin, ymax) = bounding_box
else:
try:
(xmin, xmax), (ymin, ymax) = self.bounding_box
except KeyError:
raise TypeError("A bounding_box is needed to proceed.")
if bounding_box is None and self.bounding_box is None:
raise ValueError("A bounding_box is needed to proceed.")
if bounding_box is None:
bounding_box = self.bounding_box

(xmin, xmax), (ymin, ymax) = bounding_box
crpix1 = (xmax - xmin) // 2
crpix2 = (ymax - ymin) // 2
crval1, crval2 = transform(crpix1, crpix2)
Expand Down

0 comments on commit 2ced523

Please sign in to comment.