我有两个只有数字的坐标数组。它们的长度不同。我试图找到大致相同的坐标(off by 1),但我的for循环中不断出现错误。当我尝试搜索代码时,它说它无法计算,因为数组的长度不同。你知道吗
from astropy import units as u
from astropy.coordinates import match_coordinates_sky
distance1 = np.array(table1['Radius'].astype(float))
distance2 = np.array(table2.astype(float))
c = SkyCoord(ra, dec, distance = distance1*u.kpc)
catalog = SkyCoord(ra=ra1, dec=dec1,distance = distance2*u.kpc)
import numpy as np
idxc, idxcatalog, d2d, d3d = catalog.search_around_sky(c, 1*u.deg)
np.all(d2d < 1*u.deg)
idxc, idxcatalog, d2d, d3d = catalog.search_around_3d(c, 1*u.kpc)
np.all(d3d < 1*u.kpc)
np.all(c[idxc].separation(catalog[idxcatalog]) == d2d)
np.all(c[idxc].separation_3d(catalog[idxcatalog]) == d3d)
scalarc = SkyCoord(1*u.deg, 2*u.deg, distance=distance1*u.kpc)
d2d = scalarc.separation(catalog)
catalogmsk = d2d < 1*u.deg
d3d = scalarc.separation_3d(catalog)
catalog3dmsk = d3d < 1*u.kpc
ValueError:操作数无法与形状(5266,)(8407,)一起广播
for (a,b,c) in zip(ra,dec,distance1):
for (x,y,z) in zip(ra1, dec1, distance2):
if np.diff(abs(x),abs(a)) <= 1:
result = result.append()
if np.diff(abs(y),abs(b)) <= 1:
result= result.append()
return(result)
切片1[轴]=切片(1,无)
索引器错误:列表分配索引超出范围
目前没有回答
相关问题 更多 >
编程相关推荐