Bối cảnh:Làm cách nào để tôi đối sánh các tọa độ tương tự bằng cách sử dụng Python?
Tôi đã được cấp Bốn catalog của dữ liệu, là người đầu tiên trong số đó (chúng ta hãy gọi CAT1) cung cấp cho các tọa độ (ở xích kinh và từ chối, RA và Dec) cho các nguồn phát thanh trong các lĩnh vực 1 và 2 , catalô thứ hai (Cat2) cung cấp RA và Dec cho nguồn radio và các nguồn hồng ngoại (IR) trong trường 1, catalô thứ ba (Cat3) cung cấp RA và Dec cho radio và các nguồn IR trong trường 2 và catalog thứ tư (Cat4) cung cấp RA và tháng 12 cho các nguồn quang trong các trường 1 và 2.
Cat1 có khoảng 2000 nguồn cho trường 2, lưu ý rằng một số nguồn thực sự được đo nhiều lần trên các kích thước của chúng, ví dụ: ; nguồn 1, nguồn 2, nguồn 3a, nguồn 3b, nguồn 3c, nguồn 4 ... Cat1 có khoảng 3000 nguồn cho trường 1, một lần nữa với một số nguồn đang ở trong phần. Cat 1 là một tập tin .dat, mà tôi đang mở trong textedit, và chuyển thành .txt để sử dụng với np.genfromtxt.
Cat2 có khoảng 1700 nguồn cho trường 1. Cat3 có khoảng 1700 nguồn cho trường 2. Cat2 và Cat3 là tệp .csv, mà tôi đang mở bằng số.
Cat4 có khoảng 1200 nguồn cho trường 1 và khoảng 700 nguồn cho trường 2. Cat4 là tệp .dat, mà tôi đang mở trong soạn thảo văn bản và được chuyển đổi thành .txt để sử dụng với np.genfromtxt.
Cũng tìm ra cách chuyển đổi Cat1 và Cat4 thành tệp .csv.
Mục tiêu:
Mục đích là để kết hợp bốn catalog vào một cửa hàng duy nhất, cung cấp cho RA và Dec từ Cat2, CAT1 và Cat4 (lĩnh vực 1), sau đó RA và Dec từ CAT3, Cat1 và Cat4 (trường 2), sao cho RA và Dec từ Cat1 và Cat4 gần nhất với RA và Dec từ Cat1 hoặc Cat2, sao cho có thể nói rằng chúng có nhiều khả năng là cùng một nguồn. Mức độ chồng chéo sẽ thay đổi, nhưng tôi đã tạo ra các ô phân tán cho dữ liệu cho thấy có một nguồn Cat1 và Cat4 tương ứng cho mỗi nguồn Cat2 và Cat3, trong độ chính xác của kích thước của điểm đánh dấu. nguồn trong Cat1 và Cat4, chứa nhiều nguồn hơn Cat2 và Cat3.
Bí quyết là vì tọa độ không khớp chính xác, tôi cần có thể xem RA lần đầu và tìm giá trị phù hợp nhất, sau đó xem tháng 12 tương ứng và kiểm tra xem nó có phải là giá trị tương ứng hay nhất không .
ví dụ: Đối với một nguồn tin trong Cat2: RA = 53,13360595, Tháng = -28,0530758
cat1: RA = 53,133496, Tháng = -27,553401 hoặc RA = 53,133873, Tháng = -28,054600
Ở đây, 53.1336 là như nhau giữa 53.1334 và 53.1338, nhưng rõ ràng -28.053 là gần hơn -28.054 hơn -27.553, do đó, tùy chọn thứ hai trong Cat1 là người chiến thắng.
Progress:
Cho đến nay tôi đã xuất hiện trong 15 giá trị đầu tiên trong Cat2 để giá trị trong CAT1 hoàn toàn bằng mắt (command + f để càng nhiều chữ số thập phân càng tốt, sau đó sử dụng phán đoán tốt nhất), nhưng rõ ràng điều này cực kỳ không hiệu quả đối với tất cả 3400 nguồn trên Cat2 và Cat3.Tôi chỉ muốn xem bản thân mình có độ chính xác như mong đợi trong kết hợp, và không may, một số chỉ khớp với vị trí thập phân thứ hai hoặc thứ ba, trong khi một số khác khớp với thứ tư hoặc thứ năm.
Trong sản xuất tán xạ của tôi, tôi đã sử dụng mã:
cat1 = np.genfromtext('filepath/cat1.txt', delimiter = ' ')
RA_cat1 = cat1[:,][:,0]
Dec_cat1 = cat1[:,][:,1]
Sau đó chỉ cần vẽ RA_cat1 chống Dec_cat1, và lặp đi lặp lại cho tất cả các catalog của tôi. Vấn đề của tôi bây giờ là tìm kiếm câu trả lời về cách tạo mã có thể khớp với tọa độ của tôi, tôi đã thấy rất nhiều câu trả lời liên quan đến việc chuyển đổi mảng thành danh sách, nhưng khi cố gắng sử dụng
cat1list = np.array([RA_cat1, Dec_cat1])
cat1list.tolist()
Tôi kết thúc bằng danh sách biểu mẫu;
[RA1, RA2, RA3, ..., RA3000], [Dec1, Dec2, Dec3, ..., Dec3000]
thay vì những gì tôi giả định sẽ là hữu ích hơn;
[RA1, Dec1], [RA2, Dec2], ..., [RA3000, Dec3000].
Hơn nữa, đối với các câu hỏi tương tự, câu trả lời hữu ích nhất khi chuyển đổi danh sách thành công có vẻ là sử dụng từ điển, nhưng tôi không rõ cách sử dụng từ điển để tạo ra các loại so sánh mà tôi đã mô tả ở trên. Ngoài ra, tôi nên đề cập rằng một khi tôi đã thành công trong nhiệm vụ này, tôi đã được yêu cầu lặp lại quá trình cho một tập dữ liệu lớn hơn đáng kể, tôi không chắc chắn lớn hơn bao nhiêu, nhưng tôi cho rằng có lẽ hàng chục của hàng nghìn tập tọa độ.