Độ chính xác tính toán
TL;DR
Phần tiêu đề “TL;DR”API AstroWay sử dụng Swiss Ephemeris (mã C chính thức từ Astrodienst, nhà sáng tạo astro.com) – cùng một công cụ mà các nhà chiêm tinh chuyên nghiệp đã sử dụng trong hơn 30 năm với Solar Fire ($495), Kepler ($995), Astro Gold ($29.99/tháng) và Janus. Chúng tôi chạy nó trên các máy chủ riêng và cung cấp dưới dạng lớp REST API, không có phí trung gian. Mỗi endpoint tính toán cơ bản đều được bao phủ bởi các bài kiểm tra snapshot hồi quy; độ chính xác của công cụ được xác minh thông qua triangulation (tam giác hóa) với ba nguồn độc lập + so với NASA 5-Millennium Eclipse Catalog:
- Vị trí hành tinh: trung vị
0.0013", tối đa0.561"so với swetest CGI Astrodienst chính thức (đo vào 2026-07-29 trên 130 phép đo). Chi tiết theo thiên thể bên dưới - Chạy độc lập bằng benchmark của bên thứ ba (RoxyAPI, so với NASA JPL Horizons DE441): 210 trên 210 trong giới hạn dung sai, trung vị
0.11", tối đa0.60" - Cusp nhà Placidus:
0.000"khớp chính xác - Nhật thực/Nguyệt thực:
< 1 phútso với NASA Eclipse Catalog - Đường ACG:
< 1.5 kmtại xích đạo so với swetest - Mặt trời mọc/lặn:
< 10 giâyso với timeanddate.com - Moon VOC, ingresses, các kết hợp hành tinh: độ chính xác đến phần nhỏ của giây
Phương pháp luận: cách đo lường
Phần tiêu đề “Phương pháp luận: cách đo lường”Những con số này không phải là ước tính, mà là kết quả của quá trình chạy. Script lấy 10 biểu đồ trải dài từ năm 1900 đến 2050, yêu cầu cùng một thời điểm từ swetest CGI Astrodienst trực tiếp và so sánh tất cả 13 thiên thể mà chúng tôi trả về. Tổng cộng 130 phép đo.
| Thiên thể | Độ lệch tối đa |
|---|---|
| Mặt trời, Sao Kim, Sao Thổ | 0.001" |
| Sao Thủy | 0.002" |
| true Node | 0.004" |
| Sao Hỏa | 0.007" |
| Sao Mộc | 0.009" |
| Mặt trăng | 0.022" |
| Sao Thiên Vương | 0.083" |
| Sao Diêm Vương | 0.097" |
| Sao Hải Vương | 0.223" |
| Chiron | 0.561" |
| mean Apogee (Lilith) | 0.000" |
Trung vị trên tất cả 130 phép đo: 0.0013"
Trước đây, trang này có một cam kết chung là ”< 0.1 arcsec”. Các phép đo vào 2026-07-29 cho thấy Sao Hải Vương, Sao Diêm Vương và Chiron không giữ được cam kết này, vì vậy cam kết đã được thay thế bằng các con số thực tế. Chiron và các hành tinh bên ngoài có độ lệch lớn hơn do vị trí của chúng được lấy từ một tập hợp lịch thiên văn nén mà bản dựng của chúng tôi sử dụng.
Bạn có thể tự tái tạo: api-calc/scripts/accuracy-vs-swetest.mjs thực hiện chính xác các yêu cầu này và in ra cùng một bảng.
Tự kiểm tra. Script đã đo các con số trên nằm trong kho lưu trữ công khai theo giấy phép MIT: astroway/astrology-accuracy-benchmark. Nó không chỉ hoạt động với chúng tôi: một bộ chuyển đổi cho bất kỳ API nào khác chỉ cần ba mươi dòng, vì vậy bạn có thể chạy 130 phép đo tương tự để so sánh với đối thủ cạnh tranh. Khóa sandbox là đủ.
Công cụ
Phần tiêu đề “Công cụ”| Thành phần | Giá trị |
|---|---|
| Thư viện | Swiss Ephemeris C code (aloistr/swisseph) |
| Phiên bản | upstream Astrodienst C code |
| Lịch thiên văn | DE431 JPL ephemeris (qua các tệp .se1) |
| Dự phòng | Moshier analytical (cho các ngày ngoài 1800-2399) |
| Chia sẻ mã | Chia sẻ @/core với app.astroway.info - một công cụ, hai phương thức vận chuyển |
Phương pháp
Phần tiêu đề “Phương pháp”Độ chính xác được kiểm tra thông qua triangulation (tam giác hóa) - so sánh với ba nguồn độc lập:
1. swetest CGI (chuẩn)
Phần tiêu đề “1. swetest CGI (chuẩn)”Triển khai tham chiếu chính thức của Swiss Ephemeris từ chính Astrodienst – đội ngũ đã tạo ra Astro.com và phục vụ hàng triệu nhà chiêm tinh trên toàn thế giới. Nguồn công khai đáng tin cậy nhất. Công cụ của chúng tôi giống hệt (độ lệch 0.00–0.07 giây cung).
2. Kerykeion (Python)
Phần tiêu đề “2. Kerykeion (Python)”Thư viện Python độc lập sử dụng pyswisseph-bindings, độc lập với bản dựng của chúng tôi.
Xác nhận rằng lớp wrapper của chúng tôi không làm sai lệch dữ liệu.
3. Prokerala API
Phần tiêu đề “3. Prokerala API”API Swiss Ephemeris từ xa (sidereal Lahiri). Độ lệch hệ thống 8–17 giây cung liên quan đến các phiên bản khác nhau của công thức Lahiri ayanamsa, không phải do độ chính xác của công cụ.
Kết quả tam giác hóa
Phần tiêu đề “Kết quả tam giác hóa”| Biểu đồ | so với swetest (Astrodienst) | so với Kerykeion (Python) | so với Prokerala API |
|---|---|---|---|
| Monroe 1926 | 0.00” | 0.19” | 16.95” (hệ thống) |
| Diana 1961 | 0.00” | 0.69” | 8.18” (hệ thống) |
| Einstein 1879 | 0.07” | LMT-artifact Kerykeion | 14.96” (hệ thống) |
Kiểm tra độc lập bằng công cụ của bên thứ ba
Phần tiêu đề “Kiểm tra độc lập bằng công cụ của bên thứ ba”RoxyAPI công bố benchmark riêng của họ so với NASA JPL Horizons DE441: giấy phép MIT,
chỉ thư viện chuẩn, 21 biểu đồ và 210 vị trí, cùng cờ --base-url
để nhắm mục tiêu đến bất kỳ API nào khác. Trong README của họ, có ghi rõ rằng
các dung sai không cố ý điều chỉnh cho phù hợp với công cụ của riêng họ,
vì một benchmark được thiết kế để kiểm tra đối thủ cạnh tranh phải công bằng.
Chúng tôi đã nhắm mục tiêu nó vào chính mình mà không thay đổi bất kỳ con số nào trong mã của họ. Bộ chuyển đổi đổi tên một trường yêu cầu và loại bỏ một lớp bao bọc phản hồi.
| AstroWay | RoxyAPI, chạy của họ 2026-09-29 | |
|---|---|---|
| Trong giới hạn dung sai | 210 trên 210 | 210 trên 210 |
| Độ lệch trung vị | 0.11" | 0.05" |
| Tối đa | 0.60" | 0.78" |
Phép đo của chúng tôi vào 2026-09-09, với chi phí 21 yêu cầu API. RoxyAPI đã chuyển sang đọc trực tiếp DE440 vào tháng 9, và trung vị của họ hiện thấp hơn của chúng tôi; giá trị tối đa của chúng tôi thấp hơn của họ. Đầu ra tuần tự của tất cả 210 dòng: CSV.
Bộ hồi quy ở cấp độ endpoint
Phần tiêu đề “Bộ hồi quy ở cấp độ endpoint”Mỗi endpoint tính toán cơ bản đều được bao phủ bởi các bài kiểm tra snapshot đã đóng băng trên 3 biểu đồ tham chiếu (Monroe / Diana / Einstein) = 873 snapshot.
Bộ snapshot phát hiện:
- Lỗi ánh xạ dữ liệu đầu vào: sai id hành tinh, UT, hệ thống nhà
- Xử lý hậu kỳ: làm tròn, chuyển đổi đơn vị, mất dấu
- Sự khác biệt mặc định: mean vs true node, geocentric vs topocentric
- Schema drift: xác thực bỏ qua định dạng không chính xác
- Triển khai lỗi thời: prod dist không khớp với mã
Dung sai: 5e-5° (≈0.18 giây cung) theo mặc định cho tất cả các trường số.
Các benchmark chi tiết
Phần tiêu đề “Các benchmark chi tiết”Vị trí hành tinh (nhiệt đới, so với swetest)
Phần tiêu đề “Vị trí hành tinh (nhiệt đới, so với swetest)”| Biểu đồ | Ngày | Độ lệch tối đa |
|---|---|---|
| Marilyn Monroe | 1926-06-01 | 0.00” |
| Princess Diana | 1961-07-01 | 0.00” |
| Albert Einstein | 1879-03-14 | 0.07” |
Cusp nhà Placidus (so với swetest)
Phần tiêu đề “Cusp nhà Placidus (so với swetest)”| Biểu đồ | Độ lệch ASC | Độ lệch MC | Độ lệch cusp tối đa |
|---|---|---|---|
| Monroe | 0.000” | 0.000” | 0.000” |
| Diana | 0.000” | 0.000” | 0.000” |
Nhật thực/Nguyệt thực (so với NASA 5-Millennium Catalog)
Phần tiêu đề “Nhật thực/Nguyệt thực (so với NASA 5-Millennium Catalog)”| Sự kiện | Tối đa NASA | Tối đa của chúng tôi | Độ lệch |
|---|---|---|---|
| 2025-03-14 Lunar Total | 06:58 UT | 06:58 UT | 0.8 phút |
| 2025-03-29 Solar Partial | 10:47 UT | 10:47 UT | 0.5 phút |
| 2025-09-07 Lunar Total | 18:11 UT | 18:11 UT | 0.8 phút |
| 2025-09-21 Solar Partial | 19:41 UT | 19:42 UT | 1.0 phút |
Bản đồ chiêm tinh (so với công thức RA từ swetest)
Phần tiêu đề “Bản đồ chiêm tinh (so với công thức RA từ swetest)”Các đường MC và IC được xây dựng theo công thức longitude = RA − GMST (tiêu chuẩn Kenneth
Bowser). Độ lệch so với chuẩn: < 1.5 km tại xích đạo cho tất cả các hành tinh.
Các đường chân trời ASC và DSC được tính từ phương trình chân trời trong cùng tọa độ xích đạo: cos H = -tan φ · tan δ, trong đó H = (GMST + lng) − RA.
Hai nửa khác nhau bởi dấu của góc giờ: khi H < 0, thiên thể nằm ở phía đông kinh tuyến,
tức là đang mọc. Kiểm tra mà chúng tôi chạy trên mỗi lần thực hiện: mỗi điểm của mỗi đường cong chân trời được lấy và chiều cao của thiên thể trên chân trời tại điểm đó được tính.
Trên 8419 điểm, độ lệch tối đa là 0.0 km, tức là thiên thể thực sự nằm trên chân trời ở mọi nơi chúng tôi vẽ đường.
Mặt trời mọc / Mặt trời lặn (so với timeanddate.com)
Phần tiêu đề “Mặt trời mọc / Mặt trời lặn (so với timeanddate.com)”| Vị trí | Ngày | Tham số | Độ lệch |
|---|---|---|---|
| London | 2026-04-15 | Sunrise | 0.6 giây |
| London | 2026-04-15 | Sunset | 9 giây |
Các vị trí cực (|lat| > 66.5°) tự động trả về polarState +
cảnh báo rằng các giờ hành tinh thông thường không được xác định.
Orb của các góc hợp
Phần tiêu đề “Orb của các góc hợp”AstroWay sử dụng orb biến đổi theo từng hành tinh (quy tắc MIN của hai hành tinh), giống như trong ZET9 và astro.com. Các orb mặc định (cho biểu đồ natal):
| Góc hợp | Sun | Moon | Hành tinh nội | Jupiter | Hành tinh ngoại |
|---|---|---|---|---|---|
| Conjunction | 12° | 10° | 5° | 8° | 5° |
| Sextile | 6.5° | 6° | 5° | 5° | 5° |
| Square | 10° | 8° | 5° | 7° | 5° |
| Trine | 12° | 8° | 5° | 5° | 5° |
| Opposition | 12° | 10° | 5° | 8° | 5° |
Các góc hợp phụ (36°, 40°, 45°, 72°, 108°, 135°, 144°) mặc định bị tắt.
Chúng được bật rõ ràng thông qua ALL_ASPECTS.
Vĩ độ cực
Phần tiêu đề “Vĩ độ cực”Đối với |lat| > 66.5°, các hệ thống Placidus / Koch / Regiomontanus không được xác định về mặt toán học. Trong những trường hợp như vậy, Swiss Ephemeris tự động trả về Porphyry, và API của chúng tôi thêm cảnh báo:
{ "system": "P", "warning": "Placidus system is undefined for lat=68.96° (> 66.5°). Swiss Ephemeris fell back to Porphyry..."}Kiểm tra liên tục
Phần tiêu đề “Kiểm tra liên tục”Hồi quy được kiểm tra trên mỗi PR thông qua CI:
api-calc/tests/endpoints/: 873 snapshot so với các biểu đồ tham chiếu (Monroe / Diana / Einstein) + synastry / composite / davison.github/workflows/api-accuracy.yml: tự động chạy trên PR- Tam giác hóa so với swetest CGI + Kerykeion: hàng tuần
- Giám sát upstream Swiss Ephemeris thông qua Dependabot
Độ tin cậy của MCP: đầu ra được định kiểu
Phần tiêu đề “Độ tin cậy của MCP: đầu ra được định kiểu”Độ chính xác của công cụ là một nửa sự tin cậy. Nửa còn lại là hợp đồng đầu ra mà một tác nhân (Claude, ChatGPT, Cursor) có thể xác thực. Máy chủ MCP của chúng tôi không trả về “văn bản thô, hãy tự tìm hiểu”:
structuredContentđược định kiểu. Hơn 600 công cụ MCP, và phần lớn trong số đó công bốoutputSchemanghiêm ngặt - máy khách MCP nhận được một cấu trúc đã được xác thực, chứ không phải một chuỗi cần phải phân tích cú pháp một cách ngẫu nhiên.- Bảo vệ khỏi schema drift. Kiểm tra CI
openapi-example-driftxác thực mỗi regression-snapshot so với schema được suy ra từ ví dụ của chính nó: nếu đầu ra thực tế của endpoint khác với schema đã công bố, bản dựng sẽ thất bại. Chính loại khác biệt này gây ra lỗi MCP-32602 Output validation error. - Lỗi: đó là lỗi. Lỗi công cụ luôn được trả về với cờ
isErrorvà mã được định kiểu (UPPER_SNAKE). Chúng tôi không bao giờ trả về cho mô hình một stack trace thô hoặc các đường dẫn máy chủ nội bộ dưới dạng “dữ liệu”.
Tức là, việc tích hợp thông qua MCP cũng dễ đoán như một lệnh gọi REST trực tiếp: những gì được mô tả trong /openapi.json chính là những gì công cụ trả về.
Các giới hạn đã biết
Phần tiêu đề “Các giới hạn đã biết”- Ngày ngoài phạm vi (trước 1800 và sau 2399): sử dụng Moshier analytical, độ chính xác ~0.1” (so với < 0.01” cho SWIEPH với các tệp DE431)
- True Lilith (id=13) vs Mean Lilith (id=12): chênh lệch lên đến 12° - mặc định là Mean Lilith (hành vi ổn định), True Lilith có sẵn thông qua
planetIds: [13] - Topocentric vs geocentric: mặc định là geocentric
Tham khảo
Phần tiêu đề “Tham khảo”- Swiss Ephemeris: https://www.astro.com/swisseph/
- swetest CGI: https://www.astro.com/swisseph/swetest.htm
- Каталог затемнень NASA: https://eclipse.gsfc.nasa.gov/
- Kerykeion: https://github.com/g-battaglia/kerykeion
- Astrodienst: https://www.astro.com/
Liên hệ
Phần tiêu đề “Liên hệ”Về các vấn đề liên quan đến độ chính xác: hãy gửi email đến support@astroway.info với dữ liệu biểu đồ và nguồn tham chiếu mong đợi (astro.com hoặc nguồn đáng tin cậy khác).