Как найти координаты из двух массивов, используя для цикла? - PullRequest
0 голосов
/ 16 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...