如何使用for循环从两个数组中找到坐标?

2024-05-17 17:18:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个只有数字的坐标数组。它们的长度不同。我试图找到大致相同的坐标(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,无)

索引器错误:列表分配索引超出范围


Tags: importfornpabsresultalld2dcatalog