Skip to content

Commit

Permalink
Fix WCS v array indexing errors
Browse files Browse the repository at this point in the history
  • Loading branch information
samaloney committed May 15, 2024
1 parent 32b0213 commit 9ccaa36
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 18 deletions.
20 changes: 10 additions & 10 deletions xrayvision/imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,15 +236,15 @@ def generate_header(vis: Visibility, *,
-------
:
"""
header = {'crval1': (vis.offset[0]).to_value(apu.arcsec),
'crval2': (vis.offset[1]).to_value(apu.arcsec),
'cdelt1': (pixel_size[0]*apu.pix).to_value(apu.arcsec),
'cdelt2': (pixel_size[1]*apu.pix).to_value(apu.arcsec),
header = {'crval1': (vis.offset[1]).to_value(apu.arcsec),
'crval2': (vis.offset[0]).to_value(apu.arcsec),
'cdelt1': (pixel_size[1]*apu.pix).to_value(apu.arcsec),
'cdelt2': (pixel_size[0]*apu.pix).to_value(apu.arcsec),
'ctype1': 'HPLN-TAN',
'ctype2': 'HPLT-TAN',
'naxis': 2,
'naxis1': shape[0].value,
'naxis2': shape[1].value,
'naxis1': shape[1].value,
'naxis2': shape[0].value,
'cunit1': 'arcsec',
'cunit2': 'arcsec'}
return header
Expand Down Expand Up @@ -310,15 +310,15 @@ def map_to_vis(amap: GenericMap, *, u: Quantity[1/apu.arcsec], v: Quantity[1/apu
meta = amap.meta
new_pos = np.array([0., 0.])
if "crval1" in meta:
new_pos[0] = float(meta["crval1"])
new_pos[1] = float(meta["crval1"])
if "crval2" in meta:
new_pos[1] = float(meta["crval2"])
new_pos[0] = float(meta["crval2"])

new_psize = np.array([1., 1.])
if "cdelt1" in meta:
new_psize[0] = float(meta["cdelt1"])
new_psize[1] = float(meta["cdelt1"])
if "cdelt2" in meta:
new_psize[1] = float(meta["cdelt2"])
new_psize[0] = float(meta["cdelt2"])

vis = image_to_vis(amap.data, u=u, v=v, pixel_size=new_psize * apu.arcsec/apu.pix)
vis.offset = new_pos*apu.arcsec
Expand Down
16 changes: 8 additions & 8 deletions xrayvision/tests/test_imaging.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ def test_map_to_vis(pos, pixel):
u, v = np.meshgrid(u, v, indexing='ij')
u, v = np.array([u, v]).reshape(2, size) / apu.arcsec

header = {'crval1': pos[0].value, 'crval2': pos[1].value,
'cdelt1': pixel[0].value, 'cdelt2': pixel[1].value,
header = {'crval1': pos[1].value, 'crval2': pos[0].value,
'cdelt1': pixel[1].value, 'cdelt2': pixel[0].value,
'cunit1': 'arcsec', 'cunit2': 'arcsec'}

# Astropy index order is opposite to that of numpy, is 1st dim is across second down
Expand Down Expand Up @@ -195,8 +195,8 @@ def test_vis_to_map(m, n, pos, pixel):
uv = np.array([u, v]).reshape(2, m * n) / apu.arcsec
u, v = uv

header = {'crval1': pos[0].value, 'crval2': pos[1].value,
'cdelt1': pixel[0].value, 'cdelt2': pixel[1].value,
header = {'crval1': pos[1].value, 'crval2': pos[0].value,
'cdelt1': pixel[1].value, 'cdelt2': pixel[0].value,
'cunit1': 'arcsec', 'cunit2': 'arcsec'}
data = Gaussian2DKernel(2, x_size=n, y_size=m).array
mp = Map((data, header))
Expand All @@ -209,10 +209,10 @@ def test_vis_to_map(m, n, pos, pixel):
# TODO: figure out why atol is needed here
assert_allclose(data, res.data, atol=1e-15)

assert res.reference_coordinate.Tx == pos[0]
assert res.reference_coordinate.Ty == pos[1]
assert res.scale.axis1 == pixel[0]
assert res.scale.axis2 == pixel[1]
assert res.reference_coordinate.Tx == pos[1]
assert res.reference_coordinate.Ty == pos[0]
assert res.scale.axis1 == pixel[1]
assert res.scale.axis2 == pixel[0]
assert res.dimensions.x == m * apu.pix
assert res.dimensions.y == n * apu.pix

Expand Down

0 comments on commit 9ccaa36

Please sign in to comment.