python - 如何使用for循环从两个数组中查找坐标?
问题描述
我有两个只有数字的坐标数组。它们的长度不同。我试图找到大致相同的坐标(减 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)
slice1[轴] = slice(1, 无)
IndexError:列表分配索引超出范围
解决方案
推荐阅读
- java - 如何在 querydsl 生成中跳过 @Transient 字段?
- angular - 监听模板变量的变化并显示到控制台
- php - 在没有 Laravel 的情况下使用 Eloquent - 无法使用 DB::
- c# - 如何结合 Service Fabric Remoting 进行分区
- python - 为什么 Keras pad_sequences 在同一代码中不能工作两次?
- docusignapi - 签名协议信息是如何处理/配置的?
- c++ - 字符串初始化和打印
- python-3.x - Keras 输出形状有一个额外的维度
- python-3.x - 有没有办法找到组中前 n 个元素的位置
- r - 如何抓住句子中的最后一个数字?