У меня есть два координатных массива только чисел. Они разной длины. Я пытаюсь найти координаты, которые примерно одинаковы (отключено на 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 [axis] = slice (1, None)
IndexError: индекс назначения списка вне диапазона