내 임무는 은하계의 큰 목록에서 가장 가까운 은하계를 쌍으로 만드는 것입니다. 나는 각각의 RA, DEC, Z와 주어진 데이터로부터 각각의 거리를 계산하는 수식을 가지고있다. 그러나 각 은하계와 가장 가까운 이웃과의 매칭을 목적으로리스트에서 각 은하계와 다른 모든 은하계 사이의 거리를 찾기 위해 전체리스트를 반복하는 효과적인 방법을 찾을 수는 없습니다.데이터에서 모든 은하 간의 가장 가까운 거리를 찾고 그들 사이의 가장 가까운 거리를 기준으로 쌍을 만듭니다.
이 데이터는 다음과 같은 방법으로 가져온:
hdulist = fits.open("documents/RADECMASSmatch.fits")
CATAID = data['CATAID_1']
Xpos_DEIMOS_1 = data['Xpos_DEIMOS_1']
z = data['Z_1']
RA = data['RA']
DEC = data['DEC']
내가 좋아하는 뭔가를 시도 :
radiff = []
for i in range(0,n):
for j in range(i+1,n):
radiff.append(abs(RA[i]-RA[j]))
는 처음에 실제로 않는 모든 은하 사이 RA와 12 월의 차이를 해결하기 위해 작동하지만 더 좋은 방법이 있어야하는 것처럼 느껴집니다.
친구
이의 라인을 따라 뭔가 제안 :galaxy_coords = (data['RA'],data['DEC'],data['Z])
separation_matrix = np.zeros((len(galaxy_coords),len(galaxy_coords))
done = []
for i, coords1 in enumerate(galaxy_coords):
for j, coords2 in enumerate(galaxy_coords):
if (j,i) in done:
separation_matrix[i,j] += separation matrix[j,i]
continue
separation = your_formula(coords1, coords2)
separation_matrix[i,j] += separation
done.append((i,j))
을하지만 난 정말 쉽게 적용 할 수 있도록이 이해가 안 돼요. 나는 시도했지만 유용성이 전혀 없다.
이에 어떤 도움이 더 이해 될 것이다 덕분
['astropy.coordinates'] (http://docs.astropy.org/en/stable/coordinates/matchsep.html#astropy-coordinates-matching)가 어떤 용도로 사용되었는지 보셨습니까? 카탈로그와 일치 할 수 있지만 (자동으로 쌍을 생성하지는 않습니다). 그것은 scipy의 kd-tree를 사용합니다. – Evert
이 첫 번째 단계에서 도움이되는지 확신 할 수 없지만 다음은 각 은하계 쌍의 분리 선을 기반으로 새로운 좌표계로 변경해야하는 경우에 매우 유용 할 것 같습니다. – enceledus