diff --git a/cxx/mcc_astrom_iers_default.h b/cxx/mcc_astrom_iers_default.h index b3b766a..b87e5dc 100644 --- a/cxx/mcc_astrom_iers_default.h +++ b/cxx/mcc_astrom_iers_default.h @@ -67,7 +67,7 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( * * * Rapid Service/Prediction of Earth Orientation * ********************************************************************** - 7 August 2025 Vol. XXXVIII No. 032 + 14 August 2025 Vol. XXXVIII No. 033 ______________________________________________________________________ GENERAL INFORMATION: MJD = Julian Date - 2 400 000.5 days @@ -116,47 +116,13 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( IERS Rapid Service MJD x error y error UT1-UTC error " " " " s s - 25 8 1 60888 0.21017 .00009 0.42717 .00009 0.062125 0.000021 - 25 8 2 60889 0.21181 .00009 0.42627 .00009 0.062752 0.000019 - 25 8 3 60890 0.21302 .00009 0.42504 .00009 0.063645 0.000016 - 25 8 4 60891 0.21368 .00009 0.42383 .00009 0.064781 0.000010 - 25 8 5 60892 0.21398 .00009 0.42271 .00009 0.066047 0.000009 - 25 8 6 60893 0.21437 .00009 0.42152 .00009 0.067348 0.000008 - 25 8 7 60894 0.21485 .00009 0.42038 .00009 0.068615 0.000055 - - IERS Final Values - MJD x y UT1-UTC - " " s - 25 6 2 60828 0.1141 0.4380 0.02903 - 25 6 3 60829 0.1154 0.4384 0.02896 - 25 6 4 60830 0.1172 0.4390 0.02885 - 25 6 5 60831 0.1187 0.4399 0.02874 - 25 6 6 60832 0.1202 0.4403 0.02868 - 25 6 7 60833 0.1217 0.4408 0.02871 - 25 6 8 60834 0.1232 0.4410 0.02891 - 25 6 9 60835 0.1248 0.4415 0.02936 - 25 6 10 60836 0.1262 0.4420 0.03004 - 25 6 11 60837 0.1276 0.4425 0.03086 - 25 6 12 60838 0.1291 0.4428 0.03178 - 25 6 13 60839 0.1307 0.4428 0.03273 - 25 6 14 60840 0.1325 0.4426 0.03360 - 25 6 15 60841 0.1347 0.4424 0.03430 - 25 6 16 60842 0.1370 0.4426 0.03479 - 25 6 17 60843 0.1389 0.4427 0.03506 - 25 6 18 60844 0.1406 0.4429 0.03512 - 25 6 19 60845 0.1420 0.4431 0.03504 - 25 6 20 60846 0.1436 0.4427 0.03492 - 25 6 21 60847 0.1452 0.4426 0.03489 - 25 6 22 60848 0.1468 0.4423 0.03515 - 25 6 23 60849 0.1486 0.4420 0.03583 - 25 6 24 60850 0.1502 0.4416 0.03682 - 25 6 25 60851 0.1518 0.4411 0.03797 - 25 6 26 60852 0.1533 0.4407 0.03919 - 25 6 27 60853 0.1548 0.4404 0.04037 - 25 6 28 60854 0.1564 0.4401 0.04139 - 25 6 29 60855 0.1585 0.4400 0.04222 - 25 6 30 60856 0.1603 0.4401 0.04287 - 25 7 1 60857 0.1621 0.4398 0.04342 + 25 8 8 60895 0.21521 .00009 0.41904 .00009 0.069826 0.000016 + 25 8 9 60896 0.21558 .00009 0.41771 .00009 0.070764 0.000016 + 25 8 10 60897 0.21616 .00009 0.41640 .00009 0.071442 0.000017 + 25 8 11 60898 0.21726 .00009 0.41513 .00009 0.071836 0.000016 + 25 8 12 60899 0.21832 .00009 0.41407 .00009 0.071996 0.000017 + 25 8 13 60900 0.21871 .00009 0.41314 .00009 0.072040 0.000013 + 25 8 14 60901 0.21892 .00009 0.41223 .00009 0.072161 0.000011 _______________________________________________________________________ @@ -164,493 +130,387 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( The following formulas will not reproduce the predictions given below, but may be used to extend the predictions beyond the end of this table. - x = 0.1420 + 0.1046 cos A + 0.1043 sin A - 0.0336 cos C - 0.0648 sin C - y = 0.3838 + 0.1044 cos A - 0.0915 sin A - 0.0648 cos C + 0.0336 sin C - UT1-UTC = 0.0474 + 0.00010 (MJD - 60902) - (UT2-UT1) + x = 0.1410 + 0.1141 cos A + 0.0905 sin A - 0.0377 cos C - 0.0594 sin C + y = 0.3821 + 0.0927 cos A - 0.1005 sin A - 0.0594 cos C + 0.0377 sin C + UT1-UTC = 0.0478 + 0.00010 (MJD - 60909) - (UT2-UT1) - where A = 2*pi*(MJD-60894)/365.25 and C = 2*pi*(MJD-60894)/435. + where A = 2*pi*(MJD-60901)/365.25 and C = 2*pi*(MJD-60901)/435. - TAI-UTC(MJD 60895) = 37.0 + TAI-UTC(MJD 60902) = 37.0 The accuracy may be estimated from the expressions: - S x,y = 0.00068 (MJD-60894)**0.80 S t = 0.00025 (MJD-60894)**0.75 + S x,y = 0.00068 (MJD-60901)**0.80 S t = 0.00025 (MJD-60901)**0.75 Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d Polar coord's 0.004 0.007 0.010 0.013 UT1-UTC 0.0014 0.0024 0.0032 0.0040 MJD x(arcsec) y(arcsec) UT1-UTC(sec) - 2025 8 8 60895 0.2155 0.4191 0.06979 - 2025 8 9 60896 0.2161 0.4179 0.07073 - 2025 8 10 60897 0.2169 0.4167 0.07137 - 2025 8 11 60898 0.2176 0.4154 0.07173 - 2025 8 12 60899 0.2184 0.4142 0.07190 - 2025 8 13 60900 0.2191 0.4130 0.07200 - 2025 8 14 60901 0.2198 0.4117 0.07218 - 2025 8 15 60902 0.2204 0.4105 0.07254 - 2025 8 16 60903 0.2210 0.4094 0.07316 - 2025 8 17 60904 0.2216 0.4082 0.07403 - 2025 8 18 60905 0.2222 0.4070 0.07507 - 2025 8 19 60906 0.2227 0.4058 0.07619 - 2025 8 20 60907 0.2232 0.4046 0.07725 - 2025 8 21 60908 0.2237 0.4033 0.07814 - 2025 8 22 60909 0.2242 0.4021 0.07878 - 2025 8 23 60910 0.2247 0.4008 0.07912 - 2025 8 24 60911 0.2251 0.3995 0.07921 - 2025 8 25 60912 0.2255 0.3983 0.07914 - 2025 8 26 60913 0.2259 0.3970 0.07899 - 2025 8 27 60914 0.2263 0.3957 0.07887 - 2025 8 28 60915 0.2266 0.3944 0.07884 - 2025 8 29 60916 0.2269 0.3931 0.07898 - 2025 8 30 60917 0.2272 0.3918 0.07930 - 2025 8 31 60918 0.2275 0.3905 0.07979 - 2025 9 1 60919 0.2278 0.3892 0.08042 - 2025 9 2 60920 0.2280 0.3879 0.08112 - 2025 9 3 60921 0.2282 0.3865 0.08182 - 2025 9 4 60922 0.2283 0.3852 0.08242 - 2025 9 5 60923 0.2285 0.3839 0.08283 - 2025 9 6 60924 0.2286 0.3825 0.08295 - 2025 9 7 60925 0.2287 0.3812 0.08277 - 2025 9 8 60926 0.2287 0.3799 0.08232 - 2025 9 9 60927 0.2287 0.3785 0.08173 - 2025 9 10 60928 0.2288 0.3772 0.08114 - 2025 9 11 60929 0.2287 0.3758 0.08072 - 2025 9 12 60930 0.2287 0.3745 0.08056 - 2025 9 13 60931 0.2286 0.3731 0.08070 - 2025 9 14 60932 0.2285 0.3718 0.08108 - 2025 9 15 60933 0.2284 0.3705 0.08159 - 2025 9 16 60934 0.2282 0.3691 0.08209 - 2025 9 17 60935 0.2281 0.3678 0.08247 - 2025 9 18 60936 0.2279 0.3664 0.08265 - 2025 9 19 60937 0.2276 0.3651 0.08260 - 2025 9 20 60938 0.2274 0.3638 0.08234 - 2025 9 21 60939 0.2271 0.3624 0.08194 - 2025 9 22 60940 0.2268 0.3611 0.08146 - 2025 9 23 60941 0.2264 0.3598 0.08101 - 2025 9 24 60942 0.2261 0.3585 0.08064 - 2025 9 25 60943 0.2257 0.3571 0.08042 - 2025 9 26 60944 0.2253 0.3558 0.08037 - 2025 9 27 60945 0.2248 0.3545 0.08049 - 2025 9 28 60946 0.2244 0.3532 0.08076 - 2025 9 29 60947 0.2239 0.3520 0.08112 - 2025 9 30 60948 0.2234 0.3507 0.08148 - 2025 10 1 60949 0.2228 0.3494 0.08177 - 2025 10 2 60950 0.2223 0.3481 0.08189 - 2025 10 3 60951 0.2217 0.3469 0.08176 - 2025 10 4 60952 0.2211 0.3456 0.08133 - 2025 10 5 60953 0.2204 0.3444 0.08059 - 2025 10 6 60954 0.2198 0.3431 0.07962 - 2025 10 7 60955 0.2191 0.3419 0.07856 - 2025 10 8 60956 0.2184 0.3407 0.07759 - 2025 10 9 60957 0.2177 0.3395 0.07687 - 2025 10 10 60958 0.2169 0.3383 0.07647 - 2025 10 11 60959 0.2161 0.3371 0.07637 - 2025 10 12 60960 0.2153 0.3360 0.07648 - 2025 10 13 60961 0.2145 0.3348 0.07665 - 2025 10 14 60962 0.2137 0.3337 0.07674 - 2025 10 15 60963 0.2128 0.3325 0.07667 - 2025 10 16 60964 0.2119 0.3314 0.07640 - 2025 10 17 60965 0.2110 0.3303 0.07594 - 2025 10 18 60966 0.2101 0.3292 0.07535 - 2025 10 19 60967 0.2092 0.3281 0.07470 - 2025 10 20 60968 0.2082 0.3271 0.07405 - 2025 10 21 60969 0.2072 0.3260 0.07350 - 2025 10 22 60970 0.2062 0.3250 0.07310 - 2025 10 23 60971 0.2052 0.3240 0.07289 - 2025 10 24 60972 0.2041 0.3230 0.07287 - 2025 10 25 60973 0.2031 0.3220 0.07302 - 2025 10 26 60974 0.2020 0.3210 0.07329 - 2025 10 27 60975 0.2009 0.3200 0.07360 - 2025 10 28 60976 0.1998 0.3191 0.07388 - 2025 10 29 60977 0.1986 0.3182 0.07405 - 2025 10 30 60978 0.1975 0.3173 0.07402 - 2025 10 31 60979 0.1963 0.3164 0.07372 - 2025 11 1 60980 0.1951 0.3155 0.07315 - 2025 11 2 60981 0.1939 0.3147 0.07232 - 2025 11 3 60982 0.1927 0.3139 0.07133 - 2025 11 4 60983 0.1915 0.3130 0.07034 - 2025 11 5 60984 0.1902 0.3122 0.06953 - 2025 11 6 60985 0.1890 0.3115 0.06901 - 2025 11 7 60986 0.1877 0.3107 0.06882 - 2025 11 8 60987 0.1864 0.3100 0.06889 - 2025 11 9 60988 0.1851 0.3093 0.06908 - 2025 11 10 60989 0.1838 0.3086 0.06924 - 2025 11 11 60990 0.1825 0.3079 0.06927 - 2025 11 12 60991 0.1812 0.3072 0.06910 - 2025 11 13 60992 0.1798 0.3066 0.06876 - 2025 11 14 60993 0.1784 0.3060 0.06828 - 2025 11 15 60994 0.1771 0.3054 0.06774 - 2025 11 16 60995 0.1757 0.3048 0.06722 - 2025 11 17 60996 0.1743 0.3043 0.06677 - 2025 11 18 60997 0.1729 0.3038 0.06647 - 2025 11 19 60998 0.1715 0.3033 0.06635 - 2025 11 20 60999 0.1701 0.3028 0.06642 - 2025 11 21 61000 0.1687 0.3023 0.06667 - 2025 11 22 61001 0.1672 0.3019 0.06705 - 2025 11 23 61002 0.1658 0.3015 0.06751 - 2025 11 24 61003 0.1643 0.3011 0.06788 - 2025 11 25 61004 0.1629 0.3007 0.06817 - 2025 11 26 61005 0.1614 0.3003 0.06829 - 2025 11 27 61006 0.1600 0.3000 0.06820 - 2025 11 28 61007 0.1585 0.2997 0.06785 - 2025 11 29 61008 0.1570 0.2994 0.06727 - 2025 11 30 61009 0.1556 0.2992 0.06650 - 2025 12 1 61010 0.1541 0.2989 0.06567 - 2025 12 2 61011 0.1526 0.2987 0.06494 - 2025 12 3 61012 0.1511 0.2985 0.06442 - 2025 12 4 61013 0.1496 0.2984 0.06421 - 2025 12 5 61014 0.1481 0.2982 0.06429 - 2025 12 6 61015 0.1466 0.2981 0.06454 - 2025 12 7 61016 0.1451 0.2980 0.06483 - 2025 12 8 61017 0.1437 0.2980 0.06500 - 2025 12 9 61018 0.1422 0.2979 0.06498 - 2025 12 10 61019 0.1407 0.2979 0.06476 - 2025 12 11 61020 0.1392 0.2979 0.06439 - 2025 12 12 61021 0.1377 0.2979 0.06395 - 2025 12 13 61022 0.1362 0.2980 0.06353 - 2025 12 14 61023 0.1347 0.2980 0.06319 - 2025 12 15 61024 0.1332 0.2981 0.06299 - 2025 12 16 61025 0.1318 0.2982 0.06297 - 2025 12 17 61026 0.1303 0.2984 0.06315 - 2025 12 18 61027 0.1288 0.2985 0.06351 - 2025 12 19 61028 0.1274 0.2987 0.06401 - 2025 12 20 61029 0.1259 0.2989 0.06461 - 2025 12 21 61030 0.1245 0.2992 0.06522 - 2025 12 22 61031 0.1230 0.2994 0.06575 - 2025 12 23 61032 0.1216 0.2997 0.06614 - 2025 12 24 61033 0.1201 0.3000 0.06632 - 2025 12 25 61034 0.1187 0.3003 0.06627 - 2025 12 26 61035 0.1173 0.3007 0.06599 - 2025 12 27 61036 0.1159 0.3011 0.06554 - 2025 12 28 61037 0.1145 0.3015 0.06500 - 2025 12 29 61038 0.1131 0.3019 0.06451 - 2025 12 30 61039 0.1117 0.3023 0.06418 - 2025 12 31 61040 0.1103 0.3028 0.06410 - 2026 1 1 61041 0.1090 0.3033 0.06429 - 2026 1 2 61042 0.1076 0.3038 0.06468 - 2026 1 3 61043 0.1063 0.3043 0.06514 - 2026 1 4 61044 0.1050 0.3048 0.06553 - 2026 1 5 61045 0.1036 0.3054 0.06573 - 2026 1 6 61046 0.1023 0.3060 0.06569 - 2026 1 7 61047 0.1010 0.3066 0.06545 - 2026 1 8 61048 0.0998 0.3072 0.06509 - 2026 1 9 61049 0.0985 0.3079 0.06472 - 2026 1 10 61050 0.0973 0.3086 0.06441 - 2026 1 11 61051 0.0960 0.3093 0.06423 - 2026 1 12 61052 0.0948 0.3100 0.06423 - 2026 1 13 61053 0.0936 0.3107 0.06442 - 2026 1 14 61054 0.0924 0.3115 0.06480 - 2026 1 15 61055 0.0912 0.3122 0.06532 - 2026 1 16 61056 0.0901 0.3130 0.06595 - 2026 1 17 61057 0.0889 0.3138 0.06660 - 2026 1 18 61058 0.0878 0.3146 0.06719 - 2026 1 19 61059 0.0867 0.3155 0.06763 - 2026 1 20 61060 0.0856 0.3164 0.06787 - 2026 1 21 61061 0.0846 0.3172 0.06785 - 2026 1 22 61062 0.0835 0.3181 0.06761 - 2026 1 23 61063 0.0825 0.3191 0.06717 - 2026 1 24 61064 0.0815 0.3200 0.06664 - 2026 1 25 61065 0.0805 0.3209 0.06615 - 2026 1 26 61066 0.0795 0.3219 0.06579 - 2026 1 27 61067 0.0786 0.3229 0.06566 - 2026 1 28 61068 0.0776 0.3239 0.06578 - 2026 1 29 61069 0.0767 0.3249 0.06612 - 2026 1 30 61070 0.0758 0.3259 0.06656 - 2026 1 31 61071 0.0749 0.3270 0.06697 - 2026 2 1 61072 0.0741 0.3280 0.06723 - 2026 2 2 61073 0.0733 0.3291 0.06725 - 2026 2 3 61074 0.0725 0.3302 0.06704 - 2026 2 4 61075 0.0717 0.3313 0.06666 - 2026 2 5 61076 0.0709 0.3324 0.06622 - 2026 2 6 61077 0.0702 0.3335 0.06583 - 2026 2 7 61078 0.0695 0.3346 0.06557 - 2026 2 8 61079 0.0688 0.3358 0.06552 - 2026 2 9 61080 0.0681 0.3369 0.06570 - 2026 2 10 61081 0.0675 0.3381 0.06610 - 2026 2 11 61082 0.0668 0.3393 0.06671 - 2026 2 12 61083 0.0662 0.3405 0.06747 - 2026 2 13 61084 0.0657 0.3417 0.06829 - 2026 2 14 61085 0.0651 0.3429 0.06910 - 2026 2 15 61086 0.0646 0.3441 0.06977 - 2026 2 16 61087 0.0641 0.3453 0.07023 - 2026 2 17 61088 0.0636 0.3466 0.07040 - 2026 2 18 61089 0.0632 0.3478 0.07026 - 2026 2 19 61090 0.0627 0.3491 0.06986 - 2026 2 20 61091 0.0623 0.3503 0.06930 - 2026 2 21 61092 0.0620 0.3516 0.06869 - 2026 2 22 61093 0.0616 0.3529 0.06818 - 2026 2 23 61094 0.0613 0.3541 0.06787 - 2026 2 24 61095 0.0610 0.3554 0.06779 - 2026 2 25 61096 0.0607 0.3567 0.06793 - 2026 2 26 61097 0.0605 0.3580 0.06818 - 2026 2 27 61098 0.0602 0.3593 0.06844 - 2026 2 28 61099 0.0600 0.3606 0.06858 - 2026 3 1 61100 0.0599 0.3619 0.06850 - 2026 3 2 61101 0.0597 0.3632 0.06818 - 2026 3 3 61102 0.0596 0.3646 0.06765 - 2026 3 4 61103 0.0595 0.3659 0.06699 - 2026 3 5 61104 0.0595 0.3672 0.06631 - 2026 3 6 61105 0.0594 0.3685 0.06572 - 2026 3 7 61106 0.0594 0.3698 0.06529 - 2026 3 8 61107 0.0594 0.3712 0.06505 - 2026 3 9 61108 0.0595 0.3725 0.06500 - 2026 3 10 61109 0.0595 0.3738 0.06511 - 2026 3 11 61110 0.0596 0.3751 0.06533 - 2026 3 12 61111 0.0597 0.3765 0.06562 - 2026 3 13 61112 0.0599 0.3778 0.06589 - 2026 3 14 61113 0.0600 0.3791 0.06606 - 2026 3 15 61114 0.0602 0.3804 0.06604 - 2026 3 16 61115 0.0604 0.3818 0.06576 - 2026 3 17 61116 0.0607 0.3831 0.06516 - 2026 3 18 61117 0.0610 0.3844 0.06423 - 2026 3 19 61118 0.0613 0.3857 0.06304 - 2026 3 20 61119 0.0616 0.3870 0.06180 - 2026 3 21 61120 0.0619 0.3883 0.06065 - 2026 3 22 61121 0.0623 0.3896 0.05966 - 2026 3 23 61122 0.0627 0.3909 0.05895 - 2026 3 24 61123 0.0631 0.3922 0.05844 - 2026 3 25 61124 0.0636 0.3934 0.05812 - 2026 3 26 61125 0.0640 0.3947 0.05791 - 2026 3 27 61126 0.0645 0.3960 0.05759 - 2026 3 28 61127 0.0651 0.3972 0.05717 - 2026 3 29 61128 0.0656 0.3985 0.05646 - 2026 3 30 61129 0.0662 0.3997 0.05548 - 2026 3 31 61130 0.0668 0.4010 0.05432 - 2026 4 1 61131 0.0674 0.4022 0.05306 - 2026 4 2 61132 0.0680 0.4034 0.05187 - 2026 4 3 61133 0.0687 0.4046 0.05076 - 2026 4 4 61134 0.0694 0.4058 0.04986 - 2026 4 5 61135 0.0701 0.4070 0.04920 - 2026 4 6 61136 0.0708 0.4082 0.04872 - 2026 4 7 61137 0.0716 0.4093 0.04838 - 2026 4 8 61138 0.0724 0.4105 0.04815 - 2026 4 9 61139 0.0732 0.4116 0.04795 - 2026 4 10 61140 0.0740 0.4128 0.04768 - 2026 4 11 61141 0.0748 0.4139 0.04735 - 2026 4 12 61142 0.0757 0.4150 0.04689 - 2026 4 13 61143 0.0766 0.4161 0.04620 - 2026 4 14 61144 0.0775 0.4172 0.04531 - 2026 4 15 61145 0.0784 0.4182 0.04419 - 2026 4 16 61146 0.0794 0.4193 0.04299 - 2026 4 17 61147 0.0803 0.4203 0.04183 - 2026 4 18 61148 0.0813 0.4213 0.04095 - 2026 4 19 61149 0.0823 0.4223 0.04036 - 2026 4 20 61150 0.0833 0.4233 0.04007 - 2026 4 21 61151 0.0844 0.4243 0.04013 - 2026 4 22 61152 0.0854 0.4253 0.04026 - 2026 4 23 61153 0.0865 0.4262 0.04040 - 2026 4 24 61154 0.0876 0.4271 0.04039 - 2026 4 25 61155 0.0887 0.4280 0.04013 - 2026 4 26 61156 0.0899 0.4289 0.03962 - 2026 4 27 61157 0.0910 0.4298 0.03894 - 2026 4 28 61158 0.0922 0.4307 0.03819 - 2026 4 29 61159 0.0933 0.4315 0.03743 - 2026 4 30 61160 0.0945 0.4323 0.03681 - 2026 5 1 61161 0.0957 0.4331 0.03639 - 2026 5 2 61162 0.0970 0.4339 0.03619 - 2026 5 3 61163 0.0982 0.4347 0.03616 - 2026 5 4 61164 0.0994 0.4354 0.03629 - 2026 5 5 61165 0.1007 0.4362 0.03660 - 2026 5 6 61166 0.1020 0.4369 0.03691 - 2026 5 7 61167 0.1033 0.4376 0.03721 - 2026 5 8 61168 0.1046 0.4382 0.03749 - 2026 5 9 61169 0.1059 0.4389 0.03763 - 2026 5 10 61170 0.1072 0.4395 0.03762 - 2026 5 11 61171 0.1086 0.4401 0.03744 - 2026 5 12 61172 0.1099 0.4407 0.03706 - 2026 5 13 61173 0.1113 0.4413 0.03652 - 2026 5 14 61174 0.1126 0.4418 0.03595 - 2026 5 15 61175 0.1140 0.4423 0.03555 - 2026 5 16 61176 0.1154 0.4428 0.03545 - 2026 5 17 61177 0.1168 0.4433 0.03561 - 2026 5 18 61178 0.1182 0.4438 0.03605 - 2026 5 19 61179 0.1196 0.4442 0.03672 - 2026 5 20 61180 0.1210 0.4446 0.03732 - 2026 5 21 61181 0.1224 0.4450 0.03779 - 2026 5 22 61182 0.1239 0.4454 0.03807 - 2026 5 23 61183 0.1253 0.4457 0.03818 - 2026 5 24 61184 0.1267 0.4461 0.03811 - 2026 5 25 61185 0.1282 0.4464 0.03802 - 2026 5 26 61186 0.1296 0.4466 0.03795 - 2026 5 27 61187 0.1311 0.4469 0.03798 - 2026 5 28 61188 0.1326 0.4471 0.03820 - 2026 5 29 61189 0.1340 0.4473 0.03862 - 2026 5 30 61190 0.1355 0.4475 0.03926 - 2026 5 31 61191 0.1369 0.4477 0.04005 - 2026 6 1 61192 0.1384 0.4478 0.04090 - 2026 6 2 61193 0.1399 0.4480 0.04191 - 2026 6 3 61194 0.1414 0.4481 0.04298 - 2026 6 4 61195 0.1428 0.4481 0.04399 - 2026 6 5 61196 0.1443 0.4482 0.04491 - 2026 6 6 61197 0.1458 0.4482 0.04568 - 2026 6 7 61198 0.1472 0.4482 0.04614 - 2026 6 8 61199 0.1487 0.4482 0.04638 - 2026 6 9 61200 0.1502 0.4481 0.04649 - 2026 6 10 61201 0.1516 0.4481 0.04648 - 2026 6 11 61202 0.1531 0.4480 0.04649 - 2026 6 12 61203 0.1545 0.4479 0.04661 - 2026 6 13 61204 0.1560 0.4477 0.04699 - 2026 6 14 61205 0.1574 0.4476 0.04756 - 2026 6 15 61206 0.1589 0.4474 0.04835 - 2026 6 16 61207 0.1603 0.4472 0.04924 - 2026 6 17 61208 0.1618 0.4470 0.05017 - 2026 6 18 61209 0.1632 0.4467 0.05089 - 2026 6 19 61210 0.1646 0.4464 0.05142 - 2026 6 20 61211 0.1660 0.4461 0.05178 - 2026 6 21 61212 0.1674 0.4458 0.05200 - 2026 6 22 61213 0.1688 0.4455 0.05221 - 2026 6 23 61214 0.1702 0.4451 0.05260 - 2026 6 24 61215 0.1716 0.4447 0.05320 - 2026 6 25 61216 0.1730 0.4443 0.05401 - 2026 6 26 61217 0.1743 0.4439 0.05511 - 2026 6 27 61218 0.1757 0.4434 0.05647 - 2026 6 28 61219 0.1770 0.4430 0.05798 - 2026 6 29 61220 0.1783 0.4425 0.05967 - 2026 6 30 61221 0.1797 0.4420 0.06128 - 2026 7 1 61222 0.1810 0.4414 0.06275 - 2026 7 2 61223 0.1823 0.4409 0.06403 - 2026 7 3 61224 0.1836 0.4403 0.06505 - 2026 7 4 61225 0.1848 0.4397 0.06585 - 2026 7 5 61226 0.1861 0.4391 0.06645 - 2026 7 6 61227 0.1873 0.4384 0.06686 - 2026 7 7 61228 0.1886 0.4378 0.06722 - 2026 7 8 61229 0.1898 0.4371 0.06760 - 2026 7 9 61230 0.1910 0.4364 0.06810 - 2026 7 10 61231 0.1921 0.4357 0.06889 - 2026 7 11 61232 0.1933 0.4349 0.06992 - 2026 7 12 61233 0.1945 0.4342 0.07122 - 2026 7 13 61234 0.1956 0.4334 0.07254 - 2026 7 14 61235 0.1967 0.4326 0.07391 - 2026 7 15 61236 0.1978 0.4318 0.07504 - 2026 7 16 61237 0.1989 0.4310 0.07591 - 2026 7 17 61238 0.2000 0.4301 0.07652 - 2026 7 18 61239 0.2010 0.4293 0.07702 - 2026 7 19 61240 0.2021 0.4284 0.07743 - 2026 7 20 61241 0.2031 0.4275 0.07799 - 2026 7 21 61242 0.2041 0.4266 0.07873 - 2026 7 22 61243 0.2050 0.4256 0.07969 - 2026 7 23 61244 0.2060 0.4247 0.08084 - 2026 7 24 61245 0.2069 0.4237 0.08212 - 2026 7 25 61246 0.2078 0.4227 0.08367 - 2026 7 26 61247 0.2087 0.4218 0.08531 - 2026 7 27 61248 0.2096 0.4207 0.08702 - 2026 7 28 61249 0.2105 0.4197 0.08862 - 2026 7 29 61250 0.2113 0.4187 0.09004 - 2026 7 30 61251 0.2121 0.4176 0.09130 - 2026 7 31 61252 0.2129 0.4166 0.09234 - 2026 8 1 61253 0.2136 0.4155 0.09321 - 2026 8 2 61254 0.2144 0.4144 0.09386 - 2026 8 3 61255 0.2151 0.4133 0.09435 - 2026 8 4 61256 0.2158 0.4122 0.09493 - 2026 8 5 61257 0.2165 0.4111 0.09554 - 2026 8 6 61258 0.2171 0.4099 0.09635 - 2026 8 7 61259 0.2177 0.4088 0.09737 + 2025 8 15 60902 0.2191 0.4112 0.07241 + 2025 8 16 60903 0.2193 0.4101 0.07289 + 2025 8 17 60904 0.2196 0.4090 0.07364 + 2025 8 18 60905 0.2200 0.4078 0.07462 + 2025 8 19 60906 0.2205 0.4066 0.07573 + 2025 8 20 60907 0.2210 0.4054 0.07685 + 2025 8 21 60908 0.2215 0.4042 0.07788 + 2025 8 22 60909 0.2220 0.4029 0.07870 + 2025 8 23 60910 0.2225 0.4018 0.07929 + 2025 8 24 60911 0.2229 0.4006 0.07964 + 2025 8 25 60912 0.2233 0.3994 0.07982 + 2025 8 26 60913 0.2237 0.3982 0.07994 + 2025 8 27 60914 0.2241 0.3970 0.08012 + 2025 8 28 60915 0.2244 0.3957 0.08043 + 2025 8 29 60916 0.2247 0.3945 0.08090 + 2025 8 30 60917 0.2250 0.3932 0.08154 + 2025 8 31 60918 0.2253 0.3919 0.08233 + 2025 9 1 60919 0.2256 0.3907 0.08321 + 2025 9 2 60920 0.2258 0.3894 0.08411 + 2025 9 3 60921 0.2260 0.3881 0.08494 + 2025 9 4 60922 0.2262 0.3868 0.08561 + 2025 9 5 60923 0.2263 0.3855 0.08601 + 2025 9 6 60924 0.2265 0.3842 0.08608 + 2025 9 7 60925 0.2266 0.3829 0.08580 + 2025 9 8 60926 0.2267 0.3816 0.08522 + 2025 9 9 60927 0.2267 0.3803 0.08448 + 2025 9 10 60928 0.2267 0.3790 0.08373 + 2025 9 11 60929 0.2267 0.3777 0.08314 + 2025 9 12 60930 0.2267 0.3764 0.08283 + 2025 9 13 60931 0.2267 0.3751 0.08283 + 2025 9 14 60932 0.2266 0.3738 0.08308 + 2025 9 15 60933 0.2265 0.3724 0.08349 + 2025 9 16 60934 0.2263 0.3711 0.08390 + 2025 9 17 60935 0.2262 0.3698 0.08421 + 2025 9 18 60936 0.2260 0.3685 0.08434 + 2025 9 19 60937 0.2258 0.3672 0.08426 + 2025 9 20 60938 0.2256 0.3659 0.08400 + 2025 9 21 60939 0.2253 0.3646 0.08360 + 2025 9 22 60940 0.2250 0.3633 0.08315 + 2025 9 23 60941 0.2247 0.3620 0.08272 + 2025 9 24 60942 0.2244 0.3607 0.08239 + 2025 9 25 60943 0.2240 0.3595 0.08220 + 2025 9 26 60944 0.2236 0.3582 0.08219 + 2025 9 27 60945 0.2232 0.3569 0.08235 + 2025 9 28 60946 0.2228 0.3556 0.08264 + 2025 9 29 60947 0.2223 0.3544 0.08302 + 2025 9 30 60948 0.2218 0.3531 0.08339 + 2025 10 1 60949 0.2213 0.3519 0.08369 + 2025 10 2 60950 0.2208 0.3506 0.08381 + 2025 10 3 60951 0.2202 0.3494 0.08367 + 2025 10 4 60952 0.2196 0.3482 0.08322 + 2025 10 5 60953 0.2190 0.3470 0.08244 + 2025 10 6 60954 0.2184 0.3458 0.08143 + 2025 10 7 60955 0.2177 0.3446 0.08031 + 2025 10 8 60956 0.2171 0.3434 0.07929 + 2025 10 9 60957 0.2164 0.3422 0.07851 + 2025 10 10 60958 0.2156 0.3410 0.07804 + 2025 10 11 60959 0.2149 0.3399 0.07788 + 2025 10 12 60960 0.2141 0.3387 0.07790 + 2025 10 13 60961 0.2133 0.3376 0.07799 + 2025 10 14 60962 0.2125 0.3365 0.07800 + 2025 10 15 60963 0.2117 0.3354 0.07785 + 2025 10 16 60964 0.2108 0.3343 0.07750 + 2025 10 17 60965 0.2100 0.3332 0.07696 + 2025 10 18 60966 0.2091 0.3321 0.07629 + 2025 10 19 60967 0.2082 0.3311 0.07556 + 2025 10 20 60968 0.2072 0.3300 0.07484 + 2025 10 21 60969 0.2063 0.3290 0.07422 + 2025 10 22 60970 0.2053 0.3280 0.07375 + 2025 10 23 60971 0.2043 0.3270 0.07347 + 2025 10 24 60972 0.2033 0.3260 0.07337 + 2025 10 25 60973 0.2022 0.3250 0.07345 + 2025 10 26 60974 0.2012 0.3241 0.07364 + 2025 10 27 60975 0.2001 0.3231 0.07388 + 2025 10 28 60976 0.1990 0.3222 0.07410 + 2025 10 29 60977 0.1979 0.3213 0.07419 + 2025 10 30 60978 0.1968 0.3204 0.07409 + 2025 10 31 60979 0.1957 0.3196 0.07374 + 2025 11 1 60980 0.1945 0.3187 0.07309 + 2025 11 2 60981 0.1933 0.3179 0.07220 + 2025 11 3 60982 0.1922 0.3171 0.07115 + 2025 11 4 60983 0.1910 0.3163 0.07011 + 2025 11 5 60984 0.1898 0.3155 0.06924 + 2025 11 6 60985 0.1885 0.3147 0.06866 + 2025 11 7 60986 0.1873 0.3140 0.06841 + 2025 11 8 60987 0.1860 0.3133 0.06842 + 2025 11 9 60988 0.1848 0.3126 0.06856 + 2025 11 10 60989 0.1835 0.3119 0.06868 + 2025 11 11 60990 0.1822 0.3112 0.06866 + 2025 11 12 60991 0.1809 0.3106 0.06845 + 2025 11 13 60992 0.1796 0.3100 0.06806 + 2025 11 14 60993 0.1782 0.3094 0.06755 + 2025 11 15 60994 0.1769 0.3088 0.06698 + 2025 11 16 60995 0.1755 0.3082 0.06643 + 2025 11 17 60996 0.1742 0.3077 0.06596 + 2025 11 18 60997 0.1728 0.3072 0.06564 + 2025 11 19 60998 0.1714 0.3067 0.06550 + 2025 11 20 60999 0.1701 0.3062 0.06555 + 2025 11 21 61000 0.1687 0.3058 0.06578 + 2025 11 22 61001 0.1673 0.3053 0.06615 + 2025 11 23 61002 0.1659 0.3049 0.06660 + 2025 11 24 61003 0.1644 0.3045 0.06704 + 2025 11 25 61004 0.1630 0.3042 0.06739 + 2025 11 26 61005 0.1616 0.3038 0.06759 + 2025 11 27 61006 0.1602 0.3035 0.06756 + 2025 11 28 61007 0.1587 0.3032 0.06728 + 2025 11 29 61008 0.1573 0.3029 0.06677 + 2025 11 30 61009 0.1558 0.3027 0.06607 + 2025 12 1 61010 0.1544 0.3024 0.06523 + 2025 12 2 61011 0.1529 0.3022 0.06448 + 2025 12 3 61012 0.1515 0.3020 0.06395 + 2025 12 4 61013 0.1500 0.3019 0.06373 + 2025 12 5 61014 0.1486 0.3017 0.06379 + 2025 12 6 61015 0.1471 0.3016 0.06403 + 2025 12 7 61016 0.1456 0.3015 0.06430 + 2025 12 8 61017 0.1442 0.3015 0.06446 + 2025 12 9 61018 0.1427 0.3014 0.06442 + 2025 12 10 61019 0.1413 0.3014 0.06419 + 2025 12 11 61020 0.1398 0.3014 0.06380 + 2025 12 12 61021 0.1383 0.3014 0.06335 + 2025 12 13 61022 0.1369 0.3015 0.06291 + 2025 12 14 61023 0.1354 0.3015 0.06256 + 2025 12 15 61024 0.1340 0.3016 0.06234 + 2025 12 16 61025 0.1325 0.3017 0.06230 + 2025 12 17 61026 0.1311 0.3019 0.06246 + 2025 12 18 61027 0.1297 0.3020 0.06279 + 2025 12 19 61028 0.1282 0.3022 0.06328 + 2025 12 20 61029 0.1268 0.3024 0.06386 + 2025 12 21 61030 0.1254 0.3027 0.06444 + 2025 12 22 61031 0.1239 0.3029 0.06496 + 2025 12 23 61032 0.1225 0.3032 0.06533 + 2025 12 24 61033 0.1211 0.3035 0.06550 + 2025 12 25 61034 0.1197 0.3038 0.06544 + 2025 12 26 61035 0.1183 0.3041 0.06515 + 2025 12 27 61036 0.1170 0.3045 0.06469 + 2025 12 28 61037 0.1156 0.3049 0.06414 + 2025 12 29 61038 0.1142 0.3053 0.06364 + 2025 12 30 61039 0.1129 0.3057 0.06331 + 2025 12 31 61040 0.1115 0.3062 0.06323 + 2026 1 1 61041 0.1102 0.3066 0.06342 + 2026 1 2 61042 0.1089 0.3071 0.06382 + 2026 1 3 61043 0.1076 0.3077 0.06429 + 2026 1 4 61044 0.1063 0.3082 0.06469 + 2026 1 5 61045 0.1050 0.3087 0.06489 + 2026 1 6 61046 0.1037 0.3093 0.06486 + 2026 1 7 61047 0.1024 0.3099 0.06463 + 2026 1 8 61048 0.1012 0.3105 0.06428 + 2026 1 9 61049 0.0999 0.3112 0.06391 + 2026 1 10 61050 0.0987 0.3118 0.06361 + 2026 1 11 61051 0.0975 0.3125 0.06344 + 2026 1 12 61052 0.0963 0.3132 0.06344 + 2026 1 13 61053 0.0951 0.3139 0.06364 + 2026 1 14 61054 0.0940 0.3147 0.06401 + 2026 1 15 61055 0.0928 0.3154 0.06454 + 2026 1 16 61056 0.0917 0.3162 0.06517 + 2026 1 17 61057 0.0906 0.3170 0.06582 + 2026 1 18 61058 0.0895 0.3178 0.06640 + 2026 1 19 61059 0.0884 0.3186 0.06684 + 2026 1 20 61060 0.0874 0.3195 0.06707 + 2026 1 21 61061 0.0863 0.3203 0.06706 + 2026 1 22 61062 0.0853 0.3212 0.06680 + 2026 1 23 61063 0.0843 0.3221 0.06636 + 2026 1 24 61064 0.0833 0.3230 0.06582 + 2026 1 25 61065 0.0823 0.3239 0.06531 + 2026 1 26 61066 0.0814 0.3249 0.06494 + 2026 1 27 61067 0.0804 0.3259 0.06479 + 2026 1 28 61068 0.0795 0.3268 0.06489 + 2026 1 29 61069 0.0786 0.3278 0.06520 + 2026 1 30 61070 0.0778 0.3288 0.06562 + 2026 1 31 61071 0.0769 0.3298 0.06599 + 2026 2 1 61072 0.0761 0.3309 0.06620 + 2026 2 2 61073 0.0753 0.3319 0.06617 + 2026 2 3 61074 0.0745 0.3330 0.06589 + 2026 2 4 61075 0.0737 0.3341 0.06543 + 2026 2 5 61076 0.0730 0.3351 0.06490 + 2026 2 6 61077 0.0723 0.3362 0.06439 + 2026 2 7 61078 0.0716 0.3373 0.06401 + 2026 2 8 61079 0.0709 0.3385 0.06379 + 2026 2 9 61080 0.0703 0.3396 0.06378 + 2026 2 10 61081 0.0696 0.3407 0.06396 + 2026 2 11 61082 0.0690 0.3419 0.06432 + 2026 2 12 61083 0.0685 0.3431 0.06481 + 2026 2 13 61084 0.0679 0.3442 0.06537 + 2026 2 14 61085 0.0674 0.3454 0.06590 + 2026 2 15 61086 0.0669 0.3466 0.06634 + 2026 2 16 61087 0.0664 0.3478 0.06660 + 2026 2 17 61088 0.0659 0.3490 0.06664 + 2026 2 18 61089 0.0655 0.3503 0.06646 + 2026 2 19 61090 0.0651 0.3515 0.06608 + 2026 2 20 61091 0.0647 0.3527 0.06560 + 2026 2 21 61092 0.0643 0.3540 0.06514 + 2026 2 22 61093 0.0640 0.3552 0.06482 + 2026 2 23 61094 0.0637 0.3564 0.06470 + 2026 2 24 61095 0.0634 0.3577 0.06483 + 2026 2 25 61096 0.0632 0.3590 0.06515 + 2026 2 26 61097 0.0629 0.3602 0.06557 + 2026 2 27 61098 0.0627 0.3615 0.06596 + 2026 2 28 61099 0.0625 0.3628 0.06620 + 2026 3 1 61100 0.0624 0.3641 0.06619 + 2026 3 2 61101 0.0623 0.3654 0.06591 + 2026 3 3 61102 0.0622 0.3666 0.06538 + 2026 3 4 61103 0.0621 0.3679 0.06470 + 2026 3 5 61104 0.0620 0.3692 0.06398 + 2026 3 6 61105 0.0620 0.3705 0.06332 + 2026 3 7 61106 0.0620 0.3718 0.06280 + 2026 3 8 61107 0.0620 0.3731 0.06247 + 2026 3 9 61108 0.0621 0.3744 0.06235 + 2026 3 10 61109 0.0621 0.3757 0.06241 + 2026 3 11 61110 0.0622 0.3770 0.06263 + 2026 3 12 61111 0.0624 0.3783 0.06293 + 2026 3 13 61112 0.0625 0.3796 0.06322 + 2026 3 14 61113 0.0627 0.3809 0.06341 + 2026 3 15 61114 0.0629 0.3821 0.06342 + 2026 3 16 61115 0.0631 0.3834 0.06320 + 2026 3 17 61116 0.0634 0.3847 0.06271 + 2026 3 18 61117 0.0637 0.3860 0.06199 + 2026 3 19 61118 0.0640 0.3873 0.06113 + 2026 3 20 61119 0.0643 0.3885 0.06024 + 2026 3 21 61120 0.0647 0.3898 0.05943 + 2026 3 22 61121 0.0651 0.3911 0.05880 + 2026 3 23 61122 0.0655 0.3923 0.05842 + 2026 3 24 61123 0.0659 0.3936 0.05830 + 2026 3 25 61124 0.0664 0.3948 0.05832 + 2026 3 26 61125 0.0668 0.3961 0.05841 + 2026 3 27 61126 0.0673 0.3973 0.05840 + 2026 3 28 61127 0.0679 0.3985 0.05821 + 2026 3 29 61128 0.0684 0.3997 0.05777 + 2026 3 30 61129 0.0690 0.4010 0.05709 + 2026 3 31 61130 0.0696 0.4022 0.05624 + 2026 4 1 61131 0.0702 0.4034 0.05523 + 2026 4 2 61132 0.0709 0.4045 0.05420 + 2026 4 3 61133 0.0715 0.4057 0.05330 + 2026 4 4 61134 0.0722 0.4069 0.05257 + 2026 4 5 61135 0.0729 0.4080 0.05202 + 2026 4 6 61136 0.0737 0.4092 0.05164 + 2026 4 7 61137 0.0744 0.4103 0.05137 + 2026 4 8 61138 0.0752 0.4114 0.05123 + 2026 4 9 61139 0.0760 0.4125 0.05118 + 2026 4 10 61140 0.0768 0.4136 0.05105 + 2026 4 11 61141 0.0777 0.4147 0.05087 + 2026 4 12 61142 0.0786 0.4158 0.05044 + 2026 4 13 61143 0.0794 0.4169 0.04970 + 2026 4 14 61144 0.0803 0.4179 0.04867 + 2026 4 15 61145 0.0813 0.4189 0.04739 + 2026 4 16 61146 0.0822 0.4200 0.04601 + 2026 4 17 61147 0.0832 0.4210 0.04462 + 2026 4 18 61148 0.0842 0.4219 0.04343 + 2026 4 19 61149 0.0852 0.4229 0.04254 + 2026 4 20 61150 0.0862 0.4239 0.04195 + 2026 4 21 61151 0.0872 0.4248 0.04156 + 2026 4 22 61152 0.0883 0.4258 0.04129 + 2026 4 23 61153 0.0894 0.4267 0.04098 + 2026 4 24 61154 0.0905 0.4276 0.04050 + 2026 4 25 61155 0.0916 0.4284 0.03988 + 2026 4 26 61156 0.0927 0.4293 0.03914 + 2026 4 27 61157 0.0939 0.4302 0.03829 + 2026 4 28 61158 0.0950 0.4310 0.03744 + 2026 4 29 61159 0.0962 0.4318 0.03659 + 2026 4 30 61160 0.0974 0.4326 0.03591 + 2026 5 1 61161 0.0986 0.4334 0.03540 + 2026 5 2 61162 0.0998 0.4341 0.03522 + 2026 5 3 61163 0.1010 0.4348 0.03525 + 2026 5 4 61164 0.1023 0.4356 0.03547 + 2026 5 5 61165 0.1035 0.4363 0.03594 + 2026 5 6 61166 0.1048 0.4369 0.03644 + 2026 5 7 61167 0.1061 0.4376 0.03697 + 2026 5 8 61168 0.1074 0.4382 0.03741 + 2026 5 9 61169 0.1087 0.4389 0.03765 + 2026 5 10 61170 0.1100 0.4395 0.03762 + 2026 5 11 61171 0.1114 0.4400 0.03733 + 2026 5 12 61172 0.1127 0.4406 0.03682 + 2026 5 13 61173 0.1140 0.4411 0.03611 + 2026 5 14 61174 0.1154 0.4416 0.03540 + 2026 5 15 61175 0.1168 0.4421 0.03481 + 2026 5 16 61176 0.1182 0.4426 0.03447 + 2026 5 17 61177 0.1195 0.4431 0.03440 + 2026 5 18 61178 0.1209 0.4435 0.03458 + 2026 5 19 61179 0.1223 0.4439 0.03496 + 2026 5 20 61180 0.1237 0.4443 0.03531 + 2026 5 21 61181 0.1252 0.4447 0.03553 + 2026 5 22 61182 0.1266 0.4450 0.03563 + 2026 5 23 61183 0.1280 0.4453 0.03555 + 2026 5 24 61184 0.1294 0.4456 0.03538 + 2026 5 25 61185 0.1309 0.4459 0.03522 + 2026 5 26 61186 0.1323 0.4462 0.03510 + 2026 5 27 61187 0.1337 0.4464 0.03509 + 2026 5 28 61188 0.1352 0.4466 0.03526 + 2026 5 29 61189 0.1366 0.4468 0.03571 + 2026 5 30 61190 0.1381 0.4469 0.03643 + 2026 5 31 61191 0.1395 0.4471 0.03730 + 2026 6 1 61192 0.1410 0.4472 0.03832 + 2026 6 2 61193 0.1425 0.4473 0.03948 + 2026 6 3 61194 0.1439 0.4474 0.04058 + 2026 6 4 61195 0.1454 0.4474 0.04160 + 2026 6 5 61196 0.1468 0.4474 0.04249 + 2026 6 6 61197 0.1483 0.4475 0.04322 + 2026 6 7 61198 0.1497 0.4474 0.04372 + 2026 6 8 61199 0.1512 0.4474 0.04404 + 2026 6 9 61200 0.1526 0.4473 0.04420 + 2026 6 10 61201 0.1541 0.4472 0.04427 + 2026 6 11 61202 0.1555 0.4471 0.04441 + 2026 6 12 61203 0.1570 0.4470 0.04471 + 2026 6 13 61204 0.1584 0.4468 0.04527 + 2026 6 14 61205 0.1598 0.4467 0.04607 + 2026 6 15 61206 0.1613 0.4465 0.04699 + 2026 6 16 61207 0.1627 0.4462 0.04805 + 2026 6 17 61208 0.1641 0.4460 0.04907 + 2026 6 18 61209 0.1655 0.4457 0.04991 + 2026 6 19 61210 0.1669 0.4454 0.05056 + 2026 6 20 61211 0.1683 0.4451 0.05105 + 2026 6 21 61212 0.1697 0.4448 0.05136 + 2026 6 22 61213 0.1711 0.4444 0.05165 + 2026 6 23 61214 0.1725 0.4440 0.05210 + 2026 6 24 61215 0.1738 0.4436 0.05266 + 2026 6 25 61216 0.1752 0.4432 0.05340 + 2026 6 26 61217 0.1765 0.4428 0.05430 + 2026 6 27 61218 0.1779 0.4423 0.05539 + 2026 6 28 61219 0.1792 0.4418 0.05654 + 2026 6 29 61220 0.1805 0.4413 0.05779 + 2026 6 30 61221 0.1818 0.4408 0.05910 + 2026 7 1 61222 0.1831 0.4402 0.06048 + 2026 7 2 61223 0.1844 0.4397 0.06171 + 2026 7 3 61224 0.1856 0.4391 0.06280 + 2026 7 4 61225 0.1869 0.4385 0.06369 + 2026 7 5 61226 0.1881 0.4378 0.06434 + 2026 7 6 61227 0.1893 0.4372 0.06480 + 2026 7 7 61228 0.1905 0.4365 0.06523 + 2026 7 8 61229 0.1917 0.4358 0.06572 + 2026 7 9 61230 0.1929 0.4351 0.06633 + 2026 7 10 61231 0.1941 0.4344 0.06723 + 2026 7 11 61232 0.1952 0.4336 0.06843 + 2026 7 12 61233 0.1964 0.4329 0.06985 + 2026 7 13 61234 0.1975 0.4321 0.07146 + 2026 7 14 61235 0.1986 0.4313 0.07292 + 2026 7 15 61236 0.1996 0.4304 0.07413 + 2026 7 16 61237 0.2007 0.4296 0.07502 + 2026 7 17 61238 0.2018 0.4288 0.07557 + 2026 7 18 61239 0.2028 0.4279 0.07596 + 2026 7 19 61240 0.2038 0.4270 0.07629 + 2026 7 20 61241 0.2048 0.4261 0.07668 + 2026 7 21 61242 0.2058 0.4252 0.07728 + 2026 7 22 61243 0.2067 0.4242 0.07807 + 2026 7 23 61244 0.2076 0.4233 0.07908 + 2026 7 24 61245 0.2085 0.4223 0.08036 + 2026 7 25 61246 0.2094 0.4213 0.08180 + 2026 7 26 61247 0.2103 0.4203 0.08338 + 2026 7 27 61248 0.2112 0.4193 0.08491 + 2026 7 28 61249 0.2120 0.4183 0.08647 + 2026 7 29 61250 0.2128 0.4173 0.08786 + 2026 7 30 61251 0.2136 0.4162 0.08904 + 2026 7 31 61252 0.2143 0.4151 0.08998 + 2026 8 1 61253 0.2151 0.4141 0.09076 + 2026 8 2 61254 0.2158 0.4130 0.09130 + 2026 8 3 61255 0.2165 0.4119 0.09180 + 2026 8 4 61256 0.2172 0.4108 0.09232 + 2026 8 5 61257 0.2178 0.4096 0.09294 + 2026 8 6 61258 0.2184 0.4085 0.09372 + 2026 8 7 61259 0.2190 0.4074 0.09466 + 2026 8 8 61260 0.2196 0.4062 0.09591 + 2026 8 9 61261 0.2202 0.4050 0.09728 + 2026 8 10 61262 0.2207 0.4039 0.09868 + 2026 8 11 61263 0.2212 0.4027 0.09988 + 2026 8 12 61264 0.2217 0.4015 0.10077 + 2026 8 13 61265 0.2221 0.4003 0.10141 + 2026 8 14 61266 0.2226 0.3991 0.10182 These predictions are based on all announced leap seconds. - CELESTIAL POLE OFFSET SERIES: - NEOS Celestial Pole Offset Series - MJD dpsi error deps error - (msec. of arc) - 60868 -116.99 0.86 -10.78 0.21 - 60869 -117.02 0.86 -10.71 0.30 - 60870 -117.16 0.86 -10.75 0.30 - 60871 -117.35 0.86 -10.82 0.34 - 60872 -117.56 0.83 -10.83 0.29 - 60873 -117.79 0.83 -10.77 0.29 - 60874 -118.05 0.83 -10.70 0.29 - 60875 -118.31 0.78 -10.66 0.17 - 60876 -118.49 0.83 -10.70 0.16 - 60877 -118.55 0.83 -10.81 0.16 - 60878 -118.54 1.09 -10.92 0.16 - 60879 -118.54 0.94 -10.97 0.15 - 60880 -118.53 0.94 -10.93 0.15 - 60881 -118.44 0.94 -10.81 0.15 - - IERS Celestial Pole Offset Final Series - MJD dpsi deps - (msec. of arc) - 60828 -111.0 -11.3 - 60829 -111.7 -10.9 - 60830 -112.1 -10.8 - 60831 -112.0 -10.8 - 60832 -111.7 -10.8 - 60833 -111.7 -10.8 - 60834 -111.9 -10.9 - 60835 -112.2 -11.2 - 60836 -112.5 -11.5 - 60837 -112.7 -11.7 - 60838 -112.8 -11.7 - 60839 -112.7 -11.5 - 60840 -112.6 -11.3 - 60841 -112.5 -11.3 - 60842 -112.4 -11.3 - 60843 -112.3 -11.3 - 60844 -112.4 -11.2 - 60845 -112.6 -11.1 - 60846 -113.0 -10.9 - 60847 -113.6 -10.7 - 60848 -114.2 -10.7 - 60849 -114.6 -10.9 - 60850 -114.7 -11.2 - 60851 -114.6 -11.3 - 60852 -114.5 -11.4 - 60853 -114.3 -11.3 - 60854 -114.0 -11.2 - 60855 -114.1 -11.0 - 60856 -114.6 -10.6 - 60857 -115.3 -10.4 - - IAU2000A Celestial Pole Offset Series - MJD dX error dY error - (msec. of arc) - 60868 0.366 0.342 -0.270 0.206 - 60869 0.360 0.343 -0.284 0.298 - 60870 0.356 0.343 -0.292 0.298 - 60871 0.352 0.343 -0.292 0.342 - 60872 0.347 0.330 -0.282 0.288 - 60873 0.343 0.330 -0.265 0.288 - 60874 0.341 0.330 -0.243 0.288 - 60875 0.342 0.308 -0.222 0.166 - 60876 0.347 0.331 -0.202 0.164 - 60877 0.352 0.331 -0.183 0.164 - 60878 0.357 0.433 -0.166 0.157 - 60879 0.359 0.375 -0.150 0.149 - 60880 0.359 0.375 -0.135 0.149 - 60881 0.358 0.375 -0.120 0.149 - - - IAU2000A Celestial Pole Offset Final Series - MJD dX dY - (msec. of arc) - 60828 0.30 -0.23 - 60829 0.28 -0.26 - 60830 0.28 -0.28 - 60831 0.35 -0.27 - 60832 0.43 -0.24 - 60833 0.45 -0.20 - 60834 0.43 -0.18 - 60835 0.39 -0.16 - 60836 0.34 -0.15 - 60837 0.34 -0.19 - 60838 0.35 -0.25 - 60839 0.37 -0.30 - 60840 0.41 -0.34 - 60841 0.45 -0.35 - 60842 0.50 -0.35 - 60843 0.53 -0.34 - 60844 0.52 -0.32 - 60845 0.49 -0.29 - 60846 0.45 -0.27 - 60847 0.42 -0.25 - 60848 0.41 -0.25 - 60849 0.40 -0.26 - 60850 0.39 -0.27 - 60851 0.39 -0.29 - 60852 0.39 -0.32 - 60853 0.39 -0.33 - 60854 0.38 -0.28 - 60855 0.36 -0.19 - 60856 0.35 -0.10 - 60857 0.34 -0.03 - )--"; diff --git a/cxx/mcc_mount_pz.h b/cxx/mcc_mount_pz.h index 3908241..19b269b 100644 --- a/cxx/mcc_mount_pz.h +++ b/cxx/mcc_mount_pz.h @@ -165,7 +165,7 @@ public: _coord2coord(target.coordPairKind, target.x, target.y, target.time_point, MccCoordPairKind::COORDS_KIND_HADEC_APP, ha, dec); - if (!doesObjectReachZone(ha)) { + if (!doesObjectReachZone(dec)) { return infiniteDuration; } @@ -189,11 +189,11 @@ public: _coord2coord(target.coordPairKind, target.x, target.y, target.time_point, MccCoordPairKind::COORDS_KIND_HADEC_APP, ha, dec); - if (!doesObjectExitFromZone(ha)) { + if (!doesObjectExitFromZone(dec)) { return infiniteDuration; } - if (!doesObjectReachZone(ha)) { + if (!doesObjectReachZone(dec)) { return zeroDuration; } diff --git a/mcc/CMakeLists.txt b/mcc/CMakeLists.txt index 9ef4230..7590203 100644 --- a/mcc/CMakeLists.txt +++ b/mcc/CMakeLists.txt @@ -39,30 +39,29 @@ find_package(spdlog CONFIG) # ******* ERFA LIBRARY ******* -ExternalProject_Add(erfalib1 - PREFIX ${CMAKE_BINARY_DIR}/erfa_lib1 - GIT_REPOSITORY "https://github.com/liberfa/erfa.git" - GIT_TAG "v2.0.1" - UPDATE_COMMAND "" - PATCH_COMMAND "" - # BINARY_DIR erfa_build - # SOURCE_DIR erfa - # INSTALL_DIR - LOG_CONFIGURE 1 - CONFIGURE_COMMAND meson setup --reconfigure -Ddefault_library=static -Dbuildtype=release - -Dprefix=${CMAKE_BINARY_DIR}/erfa_lib -Dlibdir= -Dincludedir= -Ddatadir= - # CONFIGURE_COMMAND meson setup --reconfigure -Ddefault_library=static -Dbuildtype=release -Dc_args='-march=native' -Doptimization=3 - # -Dprefix=${CMAKE_BINARY_DIR}/erfa_lib -Dlibdir= -Dincludedir= -Ddatadir= - BUILD_COMMAND ninja -C - INSTALL_COMMAND meson install -C - BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/erfa_lib1/liberfa.a -) +# ExternalProject_Add(erfalib +# PREFIX ${CMAKE_BINARY_DIR}/erfa_lib +# GIT_REPOSITORY "https://github.com/liberfa/erfa.git" +# GIT_TAG "v2.0.1" +# UPDATE_COMMAND "" +# PATCH_COMMAND "" +# # BINARY_DIR erfa_build +# # SOURCE_DIR erfa +# # INSTALL_DIR +# LOG_CONFIGURE 1 +# CONFIGURE_COMMAND meson setup --reconfigure -Ddefault_library=static -Dbuildtype=release +# -Dprefix=${CMAKE_BINARY_DIR}/erfa_lib -Dlibdir= -Dincludedir= -Ddatadir= +# BUILD_COMMAND ninja -C +# INSTALL_COMMAND meson install -C +# BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a +# ) add_library(ERFA_LIB STATIC IMPORTED) -set_target_properties(ERFA_LIB PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/erfa_lib1/liberfa.a) +set_target_properties(ERFA_LIB PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/erfa_lib/liberfa.a) add_dependencies(ERFA_LIB erfalib) -set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib1) -include_directories(${ERFA_INCLUDE_DIR}) +set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib) +# include_directories(${ERFA_INCLUDE_DIR}) +message(STATUS ${ERFA_INCLUDE_DIR}) set(MCC_LIBRARY_SRC1 mcc_generics.h mcc_defaults.h mcc_traits.h mcc_utils.h mcc_ccte_iers.h mcc_ccte_iers_default.h mcc_ccte_erfa.h) @@ -71,3 +70,14 @@ add_library(${MCC_LIBRARY1} INTERFACE ${MCC_LIBRARY_SRC1}) target_compile_features(${MCC_LIBRARY1} INTERFACE cxx_std_23) target_include_directories(${MCC_LIBRARY1} INTERFACE ${ERFA_INCLUDE_DIR}) + +option(WITH_TESTS "Build tests" ON) + +if (WITH_TESTS) + set(CTTE_TEST_APP ccte_test) + add_executable(${CTTE_TEST_APP} tests/ccte_test.cpp) + target_include_directories(${CTTE_TEST_APP} PRIVATE ${ERFA_INCLUDE_DIR}) + target_link_libraries(${CTTE_TEST_APP} ERFA_LIB) + + enable_testing() + endif() diff --git a/mcc/mcc_angle.h b/mcc/mcc_angle.h index ec253d0..2bc3764 100644 --- a/mcc/mcc_angle.h +++ b/mcc/mcc_angle.h @@ -403,9 +403,9 @@ template T1, std::convertible_to T2> static auto operator*(const T1& v1, const T2& v2) { if constexpr (std::is_arithmetic_v) { - return v2 *= v1; + return T2{(double)v2 * v1}; } else if constexpr (std::is_arithmetic_v) { - return v1 *= v2; + return T1{(double)v1 * v2}; } else { using res_t = std::conditional_t && std::derived_from, T1, T2>; return res_t{(double)v1 * (double)v2}; @@ -414,13 +414,14 @@ static auto operator*(const T1& v1, const T2& v2) } template T1, typename T2> -static auto operator/(const T1& v1, const T2& v2) +static T1 operator/(const T1& v1, const T2& v2) requires std::is_arithmetic_v { - return v1 /= v2; + return (double)v1 / v2; } + /* */ class MccAngleRA_ICRS : public MccAngle diff --git a/mcc/mcc_ccte_erfa.h b/mcc/mcc_ccte_erfa.h index abbcdd8..517de99 100644 --- a/mcc/mcc_ccte_erfa.h +++ b/mcc/mcc_ccte_erfa.h @@ -5,6 +5,15 @@ /* CELESTIAL COORDINATES TRANSFORMATION ENGINE IMPLEMENTATION BASED ON ERFA LIBRARY */ + +// NOTE: according to definition of astronomical azimuth it is counted from the South through the West, but +// in the ERFA the azimuth is counted from the North through the East!!! +// +// The implementation expects input azimuth as the "South"-defined one and transforms ERFA-outputs +// to the "South"-defined one respectively + + + #include #include #include @@ -115,7 +124,7 @@ inline std::error_code make_error_code(MccCCTE_ERFAErrorCode ec) -class MccCCTE_ERFA +class MccCCTE_ERFA : public mcc_CCTE_interface_t { static constexpr double PI_2 = std::numbers::pi / 2.0; @@ -173,6 +182,12 @@ public: virtual ~MccCCTE_ERFA() = default; + + std::string_view name() const + { + return "ERFA-CCTE-ENGINE"; + } + // engine state related methods void setState(engine_state_t state) @@ -248,7 +263,7 @@ public: error_t timepointToJulday(mcc_time_point_c auto tp, mcc_julday_c auto* julday) { - auto ret = MccCCTE_ERFAErrorCode::ERROR_OK; + error_t ret = MccCCTE_ERFAErrorCode::ERROR_OK; if (julday == nullptr) { return ret; @@ -259,7 +274,7 @@ public: double mjd0; - int err = eraCal2jd(ymd.year(), (unsigned)ymd.month(), (unsigned)ymd.day(), &mjd0, &julday->mjd); + int err = eraCal2jd((int)ymd.year(), (unsigned)ymd.month(), (unsigned)ymd.day(), &mjd0, &julday->mjd); if (err != 0) { ret = err == -1 ? MccCCTE_ERFAErrorCode::ERROR_julday_INVALID_YEAR @@ -277,7 +292,7 @@ public: error_t timepointToAppSideral(mcc_time_point_c auto tp, mcc_angle_c auto* st, bool islocal = false) { - auto ret = MccCCTE_ERFAErrorCode::ERROR_OK; + error_t ret = MccCCTE_ERFAErrorCode::ERROR_OK; if (st == nullptr) { return ret; @@ -401,8 +416,9 @@ public: // from apparent to apparent if (from_pt.time_point != to_pt->time_point) { // first, convert 'from' coordinates to ICRS - MccCelestialPoint pt{.time_point = to_pt->time_point, - .pair_kind = MccCoordPairKind::COORDS_KIND_RADEC_ICRS}; + MccCelestialPoint pt{.pair_kind = MccCoordPairKind::COORDS_KIND_RADEC_ICRS}; + pt.time_point = to_pt->time_point; + ret = obs2icrs(from_pt, &pt); if (!ret) { // from ICRS to required @@ -428,13 +444,12 @@ public: } if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_AZZD) { - eraHd2ae(ha, from_pt.Y, _currentState.lat, &az, &alt); - to_pt->X = az; - to_pt->Y = PI_2 - alt; + from_pt.X = ha; + hadec2azalt(from_pt, to_pt); + to_pt->Y = PI_2 - to_pt->Y; } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_AZALT) { - eraHd2ae(ha, from_pt.Y, _currentState.lat, &az, &alt); - to_pt->X = az; - to_pt->Y = alt; + from_pt.X = ha; + hadec2azalt(from_pt, to_pt); } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP) { to_pt->X = ha; to_pt->Y = from_pt.Y; @@ -443,13 +458,10 @@ public: } } else if (from_pt.pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP) { if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_AZZD) { - eraHd2ae(ha, from_pt.Y, _currentState.lat, &az, &alt); - to_pt->X = az; - to_pt->Y = PI_2 - alt; + hadec2azalt(from_pt, to_pt); + to_pt->Y = PI_2 - to_pt->Y; } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_AZALT) { - eraHd2ae(ha, from_pt.Y, _currentState.lat, &az, &alt); - to_pt->X = az; - to_pt->Y = alt; + hadec2azalt(from_pt, to_pt); } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_APP) { lst_eo(); if (!ret) { @@ -469,18 +481,15 @@ public: ret = transformCoordinates(std::move(from_pt), to_pt); } else if (from_pt.pair_kind == MccCoordPairKind::COORDS_KIND_AZALT) { if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_HADEC_APP) { - eraAe2hd(from_pt.X, from_pt.Y, _currentState.lat, &ha, &dec); - to_pt->X = ha; - to_pt->Y = dec; + azalt2hadec(from_pt, to_pt); } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_AZZD) { to_pt->X = from_pt.X; to_pt->Y = PI_2 - from_pt.Y; } else if (to_pt->pair_kind == MccCoordPairKind::COORDS_KIND_RADEC_APP) { - eraAe2hd(from_pt.X, from_pt.Y, _currentState.lat, &ha, &dec); + azalt2hadec(from_pt, to_pt); lst_eo(); if (!ret) { - to_pt->X = lst - ha + eo; - to_pt->Y = dec; + to_pt->X = lst - to_pt->X + eo; } } else { ret = MccCCTE_ERFAErrorCode::ERROR_UNSUPPORTED_COORD_PAIR; @@ -711,18 +720,22 @@ protected: ret = MccCCTE_ERFAErrorCode::ERROR_UNACCEPTABLE_DATE; } - result->AZ = az; + + // NOTE: according to definition of astronomical azimuth it is counted from the South through the West, but + // in the ERFA the azimuth is counted from the North through the East!!! + // + result->AZ = MccAngle(az + std::numbers::pi).normalize(); result->ZD = zd; result->HA = ha; result->RA_APP = ra; result->DEC_APP = dec; - result->ALT = std::numbers::pi / 2.0 - zd; + result->ALT = MccCCTE_ERFA::PI_2 - zd; return ret; } - error_t obs2icrs(mcc_celestial_point_c auto const& from_pt, mcc_celestial_point_c auto* to_pt) + error_t obs2icrs(mcc_celestial_point_c auto from_pt, mcc_celestial_point_c auto* to_pt) { if (to_pt == nullptr) { return MccCCTE_ERFAErrorCode::ERROR_OK; @@ -756,10 +769,18 @@ protected: std::string type; switch (from_pt.pair_kind) { case mcc::MccCoordPairKind::COORDS_KIND_AZZD: + // NOTE: according to definition of astronomical azimuth it is counted from the South through the West, + // but in the ERFA the azimuth is counted from the North through the East!!! + // + from_pt.X += std::numbers::pi; type = "A"; break; case mcc::MccCoordPairKind::COORDS_KIND_AZALT: - from_pt.Y = std::numbers::pi / 2.0 - from_pt.Y; // altitude to zenithal distance + // NOTE: according to definition of astronomical azimuth it is counted from the South through the West, + // but in the ERFA the azimuth is counted from the North through the East!!! + // + from_pt.X += std::numbers::pi; + from_pt.Y = MccCCTE_ERFA::PI_2 - from_pt.Y; // altitude to zenithal distance type = "A"; break; case mcc::MccCoordPairKind::COORDS_KIND_HADEC_APP: @@ -778,10 +799,41 @@ protected: &to_pt->X, &to_pt->Y); if (err == 1) { - return MccCCTE_ERFAErrorCode::ERROR_DUBIOUS_YEAR; + ret = MccCCTE_ERFAErrorCode::ERROR_DUBIOUS_YEAR; } else if (err == -1) { - return MccCCTE_ERFAErrorCode::ERROR_UNACCEPTABLE_DATE; + ret = MccCCTE_ERFAErrorCode::ERROR_UNACCEPTABLE_DATE; } + + return ret; + } + + + void azalt2hadec(mcc_celestial_point_c auto const& from_pt, mcc_celestial_point_c auto* to_pt) + { + double ha, dec; + + // NOTE: according to definition of astronomical azimuth it is counted from the South through the West, but + // in the ERFA the azimuth is counted from the North through the East!!! + // + eraAe2hd(from_pt.X + std::numbers::pi, from_pt.Y, _currentState.lat, &ha, &dec); + + to_pt->X = ha; + to_pt->Y = dec; + } + + + void hadec2azalt(mcc_celestial_point_c auto const& from_pt, mcc_celestial_point_c auto* to_pt) + { + double az, alt; + + eraHd2ae(from_pt.X, from_pt.Y, _currentState.lat, &az, &alt); + + // NOTE: according to definition of astronomical azimuth it is counted from the South through the West, but + // in the ERFA the azimuth is counted from the North through the East!!! + // + // convert it to "from the South through the West" + to_pt->X = MccAngle(az - std::numbers::pi).normalize(); + to_pt->Y = alt; } error_t eqOrigins(mcc_time_point_c auto const& tp, double* eo) @@ -816,4 +868,6 @@ protected: } }; +static_assert(mcc_ccte_c, ""); + } // namespace mcc::ccte::erfa diff --git a/mcc/mcc_ccte_iers_default.h b/mcc/mcc_ccte_iers_default.h index 0ce2f3f..f3cf540 100644 --- a/mcc/mcc_ccte_iers_default.h +++ b/mcc/mcc_ccte_iers_default.h @@ -67,7 +67,7 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( * * * Rapid Service/Prediction of Earth Orientation * ********************************************************************** - 7 August 2025 Vol. XXXVIII No. 032 + 14 August 2025 Vol. XXXVIII No. 033 ______________________________________________________________________ GENERAL INFORMATION: MJD = Julian Date - 2 400 000.5 days @@ -116,47 +116,13 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( IERS Rapid Service MJD x error y error UT1-UTC error " " " " s s - 25 8 1 60888 0.21017 .00009 0.42717 .00009 0.062125 0.000021 - 25 8 2 60889 0.21181 .00009 0.42627 .00009 0.062752 0.000019 - 25 8 3 60890 0.21302 .00009 0.42504 .00009 0.063645 0.000016 - 25 8 4 60891 0.21368 .00009 0.42383 .00009 0.064781 0.000010 - 25 8 5 60892 0.21398 .00009 0.42271 .00009 0.066047 0.000009 - 25 8 6 60893 0.21437 .00009 0.42152 .00009 0.067348 0.000008 - 25 8 7 60894 0.21485 .00009 0.42038 .00009 0.068615 0.000055 - - IERS Final Values - MJD x y UT1-UTC - " " s - 25 6 2 60828 0.1141 0.4380 0.02903 - 25 6 3 60829 0.1154 0.4384 0.02896 - 25 6 4 60830 0.1172 0.4390 0.02885 - 25 6 5 60831 0.1187 0.4399 0.02874 - 25 6 6 60832 0.1202 0.4403 0.02868 - 25 6 7 60833 0.1217 0.4408 0.02871 - 25 6 8 60834 0.1232 0.4410 0.02891 - 25 6 9 60835 0.1248 0.4415 0.02936 - 25 6 10 60836 0.1262 0.4420 0.03004 - 25 6 11 60837 0.1276 0.4425 0.03086 - 25 6 12 60838 0.1291 0.4428 0.03178 - 25 6 13 60839 0.1307 0.4428 0.03273 - 25 6 14 60840 0.1325 0.4426 0.03360 - 25 6 15 60841 0.1347 0.4424 0.03430 - 25 6 16 60842 0.1370 0.4426 0.03479 - 25 6 17 60843 0.1389 0.4427 0.03506 - 25 6 18 60844 0.1406 0.4429 0.03512 - 25 6 19 60845 0.1420 0.4431 0.03504 - 25 6 20 60846 0.1436 0.4427 0.03492 - 25 6 21 60847 0.1452 0.4426 0.03489 - 25 6 22 60848 0.1468 0.4423 0.03515 - 25 6 23 60849 0.1486 0.4420 0.03583 - 25 6 24 60850 0.1502 0.4416 0.03682 - 25 6 25 60851 0.1518 0.4411 0.03797 - 25 6 26 60852 0.1533 0.4407 0.03919 - 25 6 27 60853 0.1548 0.4404 0.04037 - 25 6 28 60854 0.1564 0.4401 0.04139 - 25 6 29 60855 0.1585 0.4400 0.04222 - 25 6 30 60856 0.1603 0.4401 0.04287 - 25 7 1 60857 0.1621 0.4398 0.04342 + 25 8 8 60895 0.21521 .00009 0.41904 .00009 0.069826 0.000016 + 25 8 9 60896 0.21558 .00009 0.41771 .00009 0.070764 0.000016 + 25 8 10 60897 0.21616 .00009 0.41640 .00009 0.071442 0.000017 + 25 8 11 60898 0.21726 .00009 0.41513 .00009 0.071836 0.000016 + 25 8 12 60899 0.21832 .00009 0.41407 .00009 0.071996 0.000017 + 25 8 13 60900 0.21871 .00009 0.41314 .00009 0.072040 0.000013 + 25 8 14 60901 0.21892 .00009 0.41223 .00009 0.072161 0.000011 _______________________________________________________________________ @@ -164,495 +130,390 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--( The following formulas will not reproduce the predictions given below, but may be used to extend the predictions beyond the end of this table. - x = 0.1420 + 0.1046 cos A + 0.1043 sin A - 0.0336 cos C - 0.0648 sin C - y = 0.3838 + 0.1044 cos A - 0.0915 sin A - 0.0648 cos C + 0.0336 sin C - UT1-UTC = 0.0474 + 0.00010 (MJD - 60902) - (UT2-UT1) + x = 0.1410 + 0.1141 cos A + 0.0905 sin A - 0.0377 cos C - 0.0594 sin C + y = 0.3821 + 0.0927 cos A - 0.1005 sin A - 0.0594 cos C + 0.0377 sin C + UT1-UTC = 0.0478 + 0.00010 (MJD - 60909) - (UT2-UT1) - where A = 2*pi*(MJD-60894)/365.25 and C = 2*pi*(MJD-60894)/435. + where A = 2*pi*(MJD-60901)/365.25 and C = 2*pi*(MJD-60901)/435. - TAI-UTC(MJD 60895) = 37.0 + TAI-UTC(MJD 60902) = 37.0 The accuracy may be estimated from the expressions: - S x,y = 0.00068 (MJD-60894)**0.80 S t = 0.00025 (MJD-60894)**0.75 + S x,y = 0.00068 (MJD-60901)**0.80 S t = 0.00025 (MJD-60901)**0.75 Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d Polar coord's 0.004 0.007 0.010 0.013 UT1-UTC 0.0014 0.0024 0.0032 0.0040 MJD x(arcsec) y(arcsec) UT1-UTC(sec) - 2025 8 8 60895 0.2155 0.4191 0.06979 - 2025 8 9 60896 0.2161 0.4179 0.07073 - 2025 8 10 60897 0.2169 0.4167 0.07137 - 2025 8 11 60898 0.2176 0.4154 0.07173 - 2025 8 12 60899 0.2184 0.4142 0.07190 - 2025 8 13 60900 0.2191 0.4130 0.07200 - 2025 8 14 60901 0.2198 0.4117 0.07218 - 2025 8 15 60902 0.2204 0.4105 0.07254 - 2025 8 16 60903 0.2210 0.4094 0.07316 - 2025 8 17 60904 0.2216 0.4082 0.07403 - 2025 8 18 60905 0.2222 0.4070 0.07507 - 2025 8 19 60906 0.2227 0.4058 0.07619 - 2025 8 20 60907 0.2232 0.4046 0.07725 - 2025 8 21 60908 0.2237 0.4033 0.07814 - 2025 8 22 60909 0.2242 0.4021 0.07878 - 2025 8 23 60910 0.2247 0.4008 0.07912 - 2025 8 24 60911 0.2251 0.3995 0.07921 - 2025 8 25 60912 0.2255 0.3983 0.07914 - 2025 8 26 60913 0.2259 0.3970 0.07899 - 2025 8 27 60914 0.2263 0.3957 0.07887 - 2025 8 28 60915 0.2266 0.3944 0.07884 - 2025 8 29 60916 0.2269 0.3931 0.07898 - 2025 8 30 60917 0.2272 0.3918 0.07930 - 2025 8 31 60918 0.2275 0.3905 0.07979 - 2025 9 1 60919 0.2278 0.3892 0.08042 - 2025 9 2 60920 0.2280 0.3879 0.08112 - 2025 9 3 60921 0.2282 0.3865 0.08182 - 2025 9 4 60922 0.2283 0.3852 0.08242 - 2025 9 5 60923 0.2285 0.3839 0.08283 - 2025 9 6 60924 0.2286 0.3825 0.08295 - 2025 9 7 60925 0.2287 0.3812 0.08277 - 2025 9 8 60926 0.2287 0.3799 0.08232 - 2025 9 9 60927 0.2287 0.3785 0.08173 - 2025 9 10 60928 0.2288 0.3772 0.08114 - 2025 9 11 60929 0.2287 0.3758 0.08072 - 2025 9 12 60930 0.2287 0.3745 0.08056 - 2025 9 13 60931 0.2286 0.3731 0.08070 - 2025 9 14 60932 0.2285 0.3718 0.08108 - 2025 9 15 60933 0.2284 0.3705 0.08159 - 2025 9 16 60934 0.2282 0.3691 0.08209 - 2025 9 17 60935 0.2281 0.3678 0.08247 - 2025 9 18 60936 0.2279 0.3664 0.08265 - 2025 9 19 60937 0.2276 0.3651 0.08260 - 2025 9 20 60938 0.2274 0.3638 0.08234 - 2025 9 21 60939 0.2271 0.3624 0.08194 - 2025 9 22 60940 0.2268 0.3611 0.08146 - 2025 9 23 60941 0.2264 0.3598 0.08101 - 2025 9 24 60942 0.2261 0.3585 0.08064 - 2025 9 25 60943 0.2257 0.3571 0.08042 - 2025 9 26 60944 0.2253 0.3558 0.08037 - 2025 9 27 60945 0.2248 0.3545 0.08049 - 2025 9 28 60946 0.2244 0.3532 0.08076 - 2025 9 29 60947 0.2239 0.3520 0.08112 - 2025 9 30 60948 0.2234 0.3507 0.08148 - 2025 10 1 60949 0.2228 0.3494 0.08177 - 2025 10 2 60950 0.2223 0.3481 0.08189 - 2025 10 3 60951 0.2217 0.3469 0.08176 - 2025 10 4 60952 0.2211 0.3456 0.08133 - 2025 10 5 60953 0.2204 0.3444 0.08059 - 2025 10 6 60954 0.2198 0.3431 0.07962 - 2025 10 7 60955 0.2191 0.3419 0.07856 - 2025 10 8 60956 0.2184 0.3407 0.07759 - 2025 10 9 60957 0.2177 0.3395 0.07687 - 2025 10 10 60958 0.2169 0.3383 0.07647 - 2025 10 11 60959 0.2161 0.3371 0.07637 - 2025 10 12 60960 0.2153 0.3360 0.07648 - 2025 10 13 60961 0.2145 0.3348 0.07665 - 2025 10 14 60962 0.2137 0.3337 0.07674 - 2025 10 15 60963 0.2128 0.3325 0.07667 - 2025 10 16 60964 0.2119 0.3314 0.07640 - 2025 10 17 60965 0.2110 0.3303 0.07594 - 2025 10 18 60966 0.2101 0.3292 0.07535 - 2025 10 19 60967 0.2092 0.3281 0.07470 - 2025 10 20 60968 0.2082 0.3271 0.07405 - 2025 10 21 60969 0.2072 0.3260 0.07350 - 2025 10 22 60970 0.2062 0.3250 0.07310 - 2025 10 23 60971 0.2052 0.3240 0.07289 - 2025 10 24 60972 0.2041 0.3230 0.07287 - 2025 10 25 60973 0.2031 0.3220 0.07302 - 2025 10 26 60974 0.2020 0.3210 0.07329 - 2025 10 27 60975 0.2009 0.3200 0.07360 - 2025 10 28 60976 0.1998 0.3191 0.07388 - 2025 10 29 60977 0.1986 0.3182 0.07405 - 2025 10 30 60978 0.1975 0.3173 0.07402 - 2025 10 31 60979 0.1963 0.3164 0.07372 - 2025 11 1 60980 0.1951 0.3155 0.07315 - 2025 11 2 60981 0.1939 0.3147 0.07232 - 2025 11 3 60982 0.1927 0.3139 0.07133 - 2025 11 4 60983 0.1915 0.3130 0.07034 - 2025 11 5 60984 0.1902 0.3122 0.06953 - 2025 11 6 60985 0.1890 0.3115 0.06901 - 2025 11 7 60986 0.1877 0.3107 0.06882 - 2025 11 8 60987 0.1864 0.3100 0.06889 - 2025 11 9 60988 0.1851 0.3093 0.06908 - 2025 11 10 60989 0.1838 0.3086 0.06924 - 2025 11 11 60990 0.1825 0.3079 0.06927 - 2025 11 12 60991 0.1812 0.3072 0.06910 - 2025 11 13 60992 0.1798 0.3066 0.06876 - 2025 11 14 60993 0.1784 0.3060 0.06828 - 2025 11 15 60994 0.1771 0.3054 0.06774 - 2025 11 16 60995 0.1757 0.3048 0.06722 - 2025 11 17 60996 0.1743 0.3043 0.06677 - 2025 11 18 60997 0.1729 0.3038 0.06647 - 2025 11 19 60998 0.1715 0.3033 0.06635 - 2025 11 20 60999 0.1701 0.3028 0.06642 - 2025 11 21 61000 0.1687 0.3023 0.06667 - 2025 11 22 61001 0.1672 0.3019 0.06705 - 2025 11 23 61002 0.1658 0.3015 0.06751 - 2025 11 24 61003 0.1643 0.3011 0.06788 - 2025 11 25 61004 0.1629 0.3007 0.06817 - 2025 11 26 61005 0.1614 0.3003 0.06829 - 2025 11 27 61006 0.1600 0.3000 0.06820 - 2025 11 28 61007 0.1585 0.2997 0.06785 - 2025 11 29 61008 0.1570 0.2994 0.06727 - 2025 11 30 61009 0.1556 0.2992 0.06650 - 2025 12 1 61010 0.1541 0.2989 0.06567 - 2025 12 2 61011 0.1526 0.2987 0.06494 - 2025 12 3 61012 0.1511 0.2985 0.06442 - 2025 12 4 61013 0.1496 0.2984 0.06421 - 2025 12 5 61014 0.1481 0.2982 0.06429 - 2025 12 6 61015 0.1466 0.2981 0.06454 - 2025 12 7 61016 0.1451 0.2980 0.06483 - 2025 12 8 61017 0.1437 0.2980 0.06500 - 2025 12 9 61018 0.1422 0.2979 0.06498 - 2025 12 10 61019 0.1407 0.2979 0.06476 - 2025 12 11 61020 0.1392 0.2979 0.06439 - 2025 12 12 61021 0.1377 0.2979 0.06395 - 2025 12 13 61022 0.1362 0.2980 0.06353 - 2025 12 14 61023 0.1347 0.2980 0.06319 - 2025 12 15 61024 0.1332 0.2981 0.06299 - 2025 12 16 61025 0.1318 0.2982 0.06297 - 2025 12 17 61026 0.1303 0.2984 0.06315 - 2025 12 18 61027 0.1288 0.2985 0.06351 - 2025 12 19 61028 0.1274 0.2987 0.06401 - 2025 12 20 61029 0.1259 0.2989 0.06461 - 2025 12 21 61030 0.1245 0.2992 0.06522 - 2025 12 22 61031 0.1230 0.2994 0.06575 - 2025 12 23 61032 0.1216 0.2997 0.06614 - 2025 12 24 61033 0.1201 0.3000 0.06632 - 2025 12 25 61034 0.1187 0.3003 0.06627 - 2025 12 26 61035 0.1173 0.3007 0.06599 - 2025 12 27 61036 0.1159 0.3011 0.06554 - 2025 12 28 61037 0.1145 0.3015 0.06500 - 2025 12 29 61038 0.1131 0.3019 0.06451 - 2025 12 30 61039 0.1117 0.3023 0.06418 - 2025 12 31 61040 0.1103 0.3028 0.06410 - 2026 1 1 61041 0.1090 0.3033 0.06429 - 2026 1 2 61042 0.1076 0.3038 0.06468 - 2026 1 3 61043 0.1063 0.3043 0.06514 - 2026 1 4 61044 0.1050 0.3048 0.06553 - 2026 1 5 61045 0.1036 0.3054 0.06573 - 2026 1 6 61046 0.1023 0.3060 0.06569 - 2026 1 7 61047 0.1010 0.3066 0.06545 - 2026 1 8 61048 0.0998 0.3072 0.06509 - 2026 1 9 61049 0.0985 0.3079 0.06472 - 2026 1 10 61050 0.0973 0.3086 0.06441 - 2026 1 11 61051 0.0960 0.3093 0.06423 - 2026 1 12 61052 0.0948 0.3100 0.06423 - 2026 1 13 61053 0.0936 0.3107 0.06442 - 2026 1 14 61054 0.0924 0.3115 0.06480 - 2026 1 15 61055 0.0912 0.3122 0.06532 - 2026 1 16 61056 0.0901 0.3130 0.06595 - 2026 1 17 61057 0.0889 0.3138 0.06660 - 2026 1 18 61058 0.0878 0.3146 0.06719 - 2026 1 19 61059 0.0867 0.3155 0.06763 - 2026 1 20 61060 0.0856 0.3164 0.06787 - 2026 1 21 61061 0.0846 0.3172 0.06785 - 2026 1 22 61062 0.0835 0.3181 0.06761 - 2026 1 23 61063 0.0825 0.3191 0.06717 - 2026 1 24 61064 0.0815 0.3200 0.06664 - 2026 1 25 61065 0.0805 0.3209 0.06615 - 2026 1 26 61066 0.0795 0.3219 0.06579 - 2026 1 27 61067 0.0786 0.3229 0.06566 - 2026 1 28 61068 0.0776 0.3239 0.06578 - 2026 1 29 61069 0.0767 0.3249 0.06612 - 2026 1 30 61070 0.0758 0.3259 0.06656 - 2026 1 31 61071 0.0749 0.3270 0.06697 - 2026 2 1 61072 0.0741 0.3280 0.06723 - 2026 2 2 61073 0.0733 0.3291 0.06725 - 2026 2 3 61074 0.0725 0.3302 0.06704 - 2026 2 4 61075 0.0717 0.3313 0.06666 - 2026 2 5 61076 0.0709 0.3324 0.06622 - 2026 2 6 61077 0.0702 0.3335 0.06583 - 2026 2 7 61078 0.0695 0.3346 0.06557 - 2026 2 8 61079 0.0688 0.3358 0.06552 - 2026 2 9 61080 0.0681 0.3369 0.06570 - 2026 2 10 61081 0.0675 0.3381 0.06610 - 2026 2 11 61082 0.0668 0.3393 0.06671 - 2026 2 12 61083 0.0662 0.3405 0.06747 - 2026 2 13 61084 0.0657 0.3417 0.06829 - 2026 2 14 61085 0.0651 0.3429 0.06910 - 2026 2 15 61086 0.0646 0.3441 0.06977 - 2026 2 16 61087 0.0641 0.3453 0.07023 - 2026 2 17 61088 0.0636 0.3466 0.07040 - 2026 2 18 61089 0.0632 0.3478 0.07026 - 2026 2 19 61090 0.0627 0.3491 0.06986 - 2026 2 20 61091 0.0623 0.3503 0.06930 - 2026 2 21 61092 0.0620 0.3516 0.06869 - 2026 2 22 61093 0.0616 0.3529 0.06818 - 2026 2 23 61094 0.0613 0.3541 0.06787 - 2026 2 24 61095 0.0610 0.3554 0.06779 - 2026 2 25 61096 0.0607 0.3567 0.06793 - 2026 2 26 61097 0.0605 0.3580 0.06818 - 2026 2 27 61098 0.0602 0.3593 0.06844 - 2026 2 28 61099 0.0600 0.3606 0.06858 - 2026 3 1 61100 0.0599 0.3619 0.06850 - 2026 3 2 61101 0.0597 0.3632 0.06818 - 2026 3 3 61102 0.0596 0.3646 0.06765 - 2026 3 4 61103 0.0595 0.3659 0.06699 - 2026 3 5 61104 0.0595 0.3672 0.06631 - 2026 3 6 61105 0.0594 0.3685 0.06572 - 2026 3 7 61106 0.0594 0.3698 0.06529 - 2026 3 8 61107 0.0594 0.3712 0.06505 - 2026 3 9 61108 0.0595 0.3725 0.06500 - 2026 3 10 61109 0.0595 0.3738 0.06511 - 2026 3 11 61110 0.0596 0.3751 0.06533 - 2026 3 12 61111 0.0597 0.3765 0.06562 - 2026 3 13 61112 0.0599 0.3778 0.06589 - 2026 3 14 61113 0.0600 0.3791 0.06606 - 2026 3 15 61114 0.0602 0.3804 0.06604 - 2026 3 16 61115 0.0604 0.3818 0.06576 - 2026 3 17 61116 0.0607 0.3831 0.06516 - 2026 3 18 61117 0.0610 0.3844 0.06423 - 2026 3 19 61118 0.0613 0.3857 0.06304 - 2026 3 20 61119 0.0616 0.3870 0.06180 - 2026 3 21 61120 0.0619 0.3883 0.06065 - 2026 3 22 61121 0.0623 0.3896 0.05966 - 2026 3 23 61122 0.0627 0.3909 0.05895 - 2026 3 24 61123 0.0631 0.3922 0.05844 - 2026 3 25 61124 0.0636 0.3934 0.05812 - 2026 3 26 61125 0.0640 0.3947 0.05791 - 2026 3 27 61126 0.0645 0.3960 0.05759 - 2026 3 28 61127 0.0651 0.3972 0.05717 - 2026 3 29 61128 0.0656 0.3985 0.05646 - 2026 3 30 61129 0.0662 0.3997 0.05548 - 2026 3 31 61130 0.0668 0.4010 0.05432 - 2026 4 1 61131 0.0674 0.4022 0.05306 - 2026 4 2 61132 0.0680 0.4034 0.05187 - 2026 4 3 61133 0.0687 0.4046 0.05076 - 2026 4 4 61134 0.0694 0.4058 0.04986 - 2026 4 5 61135 0.0701 0.4070 0.04920 - 2026 4 6 61136 0.0708 0.4082 0.04872 - 2026 4 7 61137 0.0716 0.4093 0.04838 - 2026 4 8 61138 0.0724 0.4105 0.04815 - 2026 4 9 61139 0.0732 0.4116 0.04795 - 2026 4 10 61140 0.0740 0.4128 0.04768 - 2026 4 11 61141 0.0748 0.4139 0.04735 - 2026 4 12 61142 0.0757 0.4150 0.04689 - 2026 4 13 61143 0.0766 0.4161 0.04620 - 2026 4 14 61144 0.0775 0.4172 0.04531 - 2026 4 15 61145 0.0784 0.4182 0.04419 - 2026 4 16 61146 0.0794 0.4193 0.04299 - 2026 4 17 61147 0.0803 0.4203 0.04183 - 2026 4 18 61148 0.0813 0.4213 0.04095 - 2026 4 19 61149 0.0823 0.4223 0.04036 - 2026 4 20 61150 0.0833 0.4233 0.04007 - 2026 4 21 61151 0.0844 0.4243 0.04013 - 2026 4 22 61152 0.0854 0.4253 0.04026 - 2026 4 23 61153 0.0865 0.4262 0.04040 - 2026 4 24 61154 0.0876 0.4271 0.04039 - 2026 4 25 61155 0.0887 0.4280 0.04013 - 2026 4 26 61156 0.0899 0.4289 0.03962 - 2026 4 27 61157 0.0910 0.4298 0.03894 - 2026 4 28 61158 0.0922 0.4307 0.03819 - 2026 4 29 61159 0.0933 0.4315 0.03743 - 2026 4 30 61160 0.0945 0.4323 0.03681 - 2026 5 1 61161 0.0957 0.4331 0.03639 - 2026 5 2 61162 0.0970 0.4339 0.03619 - 2026 5 3 61163 0.0982 0.4347 0.03616 - 2026 5 4 61164 0.0994 0.4354 0.03629 - 2026 5 5 61165 0.1007 0.4362 0.03660 - 2026 5 6 61166 0.1020 0.4369 0.03691 - 2026 5 7 61167 0.1033 0.4376 0.03721 - 2026 5 8 61168 0.1046 0.4382 0.03749 - 2026 5 9 61169 0.1059 0.4389 0.03763 - 2026 5 10 61170 0.1072 0.4395 0.03762 - 2026 5 11 61171 0.1086 0.4401 0.03744 - 2026 5 12 61172 0.1099 0.4407 0.03706 - 2026 5 13 61173 0.1113 0.4413 0.03652 - 2026 5 14 61174 0.1126 0.4418 0.03595 - 2026 5 15 61175 0.1140 0.4423 0.03555 - 2026 5 16 61176 0.1154 0.4428 0.03545 - 2026 5 17 61177 0.1168 0.4433 0.03561 - 2026 5 18 61178 0.1182 0.4438 0.03605 - 2026 5 19 61179 0.1196 0.4442 0.03672 - 2026 5 20 61180 0.1210 0.4446 0.03732 - 2026 5 21 61181 0.1224 0.4450 0.03779 - 2026 5 22 61182 0.1239 0.4454 0.03807 - 2026 5 23 61183 0.1253 0.4457 0.03818 - 2026 5 24 61184 0.1267 0.4461 0.03811 - 2026 5 25 61185 0.1282 0.4464 0.03802 - 2026 5 26 61186 0.1296 0.4466 0.03795 - 2026 5 27 61187 0.1311 0.4469 0.03798 - 2026 5 28 61188 0.1326 0.4471 0.03820 - 2026 5 29 61189 0.1340 0.4473 0.03862 - 2026 5 30 61190 0.1355 0.4475 0.03926 - 2026 5 31 61191 0.1369 0.4477 0.04005 - 2026 6 1 61192 0.1384 0.4478 0.04090 - 2026 6 2 61193 0.1399 0.4480 0.04191 - 2026 6 3 61194 0.1414 0.4481 0.04298 - 2026 6 4 61195 0.1428 0.4481 0.04399 - 2026 6 5 61196 0.1443 0.4482 0.04491 - 2026 6 6 61197 0.1458 0.4482 0.04568 - 2026 6 7 61198 0.1472 0.4482 0.04614 - 2026 6 8 61199 0.1487 0.4482 0.04638 - 2026 6 9 61200 0.1502 0.4481 0.04649 - 2026 6 10 61201 0.1516 0.4481 0.04648 - 2026 6 11 61202 0.1531 0.4480 0.04649 - 2026 6 12 61203 0.1545 0.4479 0.04661 - 2026 6 13 61204 0.1560 0.4477 0.04699 - 2026 6 14 61205 0.1574 0.4476 0.04756 - 2026 6 15 61206 0.1589 0.4474 0.04835 - 2026 6 16 61207 0.1603 0.4472 0.04924 - 2026 6 17 61208 0.1618 0.4470 0.05017 - 2026 6 18 61209 0.1632 0.4467 0.05089 - 2026 6 19 61210 0.1646 0.4464 0.05142 - 2026 6 20 61211 0.1660 0.4461 0.05178 - 2026 6 21 61212 0.1674 0.4458 0.05200 - 2026 6 22 61213 0.1688 0.4455 0.05221 - 2026 6 23 61214 0.1702 0.4451 0.05260 - 2026 6 24 61215 0.1716 0.4447 0.05320 - 2026 6 25 61216 0.1730 0.4443 0.05401 - 2026 6 26 61217 0.1743 0.4439 0.05511 - 2026 6 27 61218 0.1757 0.4434 0.05647 - 2026 6 28 61219 0.1770 0.4430 0.05798 - 2026 6 29 61220 0.1783 0.4425 0.05967 - 2026 6 30 61221 0.1797 0.4420 0.06128 - 2026 7 1 61222 0.1810 0.4414 0.06275 - 2026 7 2 61223 0.1823 0.4409 0.06403 - 2026 7 3 61224 0.1836 0.4403 0.06505 - 2026 7 4 61225 0.1848 0.4397 0.06585 - 2026 7 5 61226 0.1861 0.4391 0.06645 - 2026 7 6 61227 0.1873 0.4384 0.06686 - 2026 7 7 61228 0.1886 0.4378 0.06722 - 2026 7 8 61229 0.1898 0.4371 0.06760 - 2026 7 9 61230 0.1910 0.4364 0.06810 - 2026 7 10 61231 0.1921 0.4357 0.06889 - 2026 7 11 61232 0.1933 0.4349 0.06992 - 2026 7 12 61233 0.1945 0.4342 0.07122 - 2026 7 13 61234 0.1956 0.4334 0.07254 - 2026 7 14 61235 0.1967 0.4326 0.07391 - 2026 7 15 61236 0.1978 0.4318 0.07504 - 2026 7 16 61237 0.1989 0.4310 0.07591 - 2026 7 17 61238 0.2000 0.4301 0.07652 - 2026 7 18 61239 0.2010 0.4293 0.07702 - 2026 7 19 61240 0.2021 0.4284 0.07743 - 2026 7 20 61241 0.2031 0.4275 0.07799 - 2026 7 21 61242 0.2041 0.4266 0.07873 - 2026 7 22 61243 0.2050 0.4256 0.07969 - 2026 7 23 61244 0.2060 0.4247 0.08084 - 2026 7 24 61245 0.2069 0.4237 0.08212 - 2026 7 25 61246 0.2078 0.4227 0.08367 - 2026 7 26 61247 0.2087 0.4218 0.08531 - 2026 7 27 61248 0.2096 0.4207 0.08702 - 2026 7 28 61249 0.2105 0.4197 0.08862 - 2026 7 29 61250 0.2113 0.4187 0.09004 - 2026 7 30 61251 0.2121 0.4176 0.09130 - 2026 7 31 61252 0.2129 0.4166 0.09234 - 2026 8 1 61253 0.2136 0.4155 0.09321 - 2026 8 2 61254 0.2144 0.4144 0.09386 - 2026 8 3 61255 0.2151 0.4133 0.09435 - 2026 8 4 61256 0.2158 0.4122 0.09493 - 2026 8 5 61257 0.2165 0.4111 0.09554 - 2026 8 6 61258 0.2171 0.4099 0.09635 - 2026 8 7 61259 0.2177 0.4088 0.09737 + 2025 8 15 60902 0.2191 0.4112 0.07241 + 2025 8 16 60903 0.2193 0.4101 0.07289 + 2025 8 17 60904 0.2196 0.4090 0.07364 + 2025 8 18 60905 0.2200 0.4078 0.07462 + 2025 8 19 60906 0.2205 0.4066 0.07573 + 2025 8 20 60907 0.2210 0.4054 0.07685 + 2025 8 21 60908 0.2215 0.4042 0.07788 + 2025 8 22 60909 0.2220 0.4029 0.07870 + 2025 8 23 60910 0.2225 0.4018 0.07929 + 2025 8 24 60911 0.2229 0.4006 0.07964 + 2025 8 25 60912 0.2233 0.3994 0.07982 + 2025 8 26 60913 0.2237 0.3982 0.07994 + 2025 8 27 60914 0.2241 0.3970 0.08012 + 2025 8 28 60915 0.2244 0.3957 0.08043 + 2025 8 29 60916 0.2247 0.3945 0.08090 + 2025 8 30 60917 0.2250 0.3932 0.08154 + 2025 8 31 60918 0.2253 0.3919 0.08233 + 2025 9 1 60919 0.2256 0.3907 0.08321 + 2025 9 2 60920 0.2258 0.3894 0.08411 + 2025 9 3 60921 0.2260 0.3881 0.08494 + 2025 9 4 60922 0.2262 0.3868 0.08561 + 2025 9 5 60923 0.2263 0.3855 0.08601 + 2025 9 6 60924 0.2265 0.3842 0.08608 + 2025 9 7 60925 0.2266 0.3829 0.08580 + 2025 9 8 60926 0.2267 0.3816 0.08522 + 2025 9 9 60927 0.2267 0.3803 0.08448 + 2025 9 10 60928 0.2267 0.3790 0.08373 + 2025 9 11 60929 0.2267 0.3777 0.08314 + 2025 9 12 60930 0.2267 0.3764 0.08283 + 2025 9 13 60931 0.2267 0.3751 0.08283 + 2025 9 14 60932 0.2266 0.3738 0.08308 + 2025 9 15 60933 0.2265 0.3724 0.08349 + 2025 9 16 60934 0.2263 0.3711 0.08390 + 2025 9 17 60935 0.2262 0.3698 0.08421 + 2025 9 18 60936 0.2260 0.3685 0.08434 + 2025 9 19 60937 0.2258 0.3672 0.08426 + 2025 9 20 60938 0.2256 0.3659 0.08400 + 2025 9 21 60939 0.2253 0.3646 0.08360 + 2025 9 22 60940 0.2250 0.3633 0.08315 + 2025 9 23 60941 0.2247 0.3620 0.08272 + 2025 9 24 60942 0.2244 0.3607 0.08239 + 2025 9 25 60943 0.2240 0.3595 0.08220 + 2025 9 26 60944 0.2236 0.3582 0.08219 + 2025 9 27 60945 0.2232 0.3569 0.08235 + 2025 9 28 60946 0.2228 0.3556 0.08264 + 2025 9 29 60947 0.2223 0.3544 0.08302 + 2025 9 30 60948 0.2218 0.3531 0.08339 + 2025 10 1 60949 0.2213 0.3519 0.08369 + 2025 10 2 60950 0.2208 0.3506 0.08381 + 2025 10 3 60951 0.2202 0.3494 0.08367 + 2025 10 4 60952 0.2196 0.3482 0.08322 + 2025 10 5 60953 0.2190 0.3470 0.08244 + 2025 10 6 60954 0.2184 0.3458 0.08143 + 2025 10 7 60955 0.2177 0.3446 0.08031 + 2025 10 8 60956 0.2171 0.3434 0.07929 + 2025 10 9 60957 0.2164 0.3422 0.07851 + 2025 10 10 60958 0.2156 0.3410 0.07804 + 2025 10 11 60959 0.2149 0.3399 0.07788 + 2025 10 12 60960 0.2141 0.3387 0.07790 + 2025 10 13 60961 0.2133 0.3376 0.07799 + 2025 10 14 60962 0.2125 0.3365 0.07800 + 2025 10 15 60963 0.2117 0.3354 0.07785 + 2025 10 16 60964 0.2108 0.3343 0.07750 + 2025 10 17 60965 0.2100 0.3332 0.07696 + 2025 10 18 60966 0.2091 0.3321 0.07629 + 2025 10 19 60967 0.2082 0.3311 0.07556 + 2025 10 20 60968 0.2072 0.3300 0.07484 + 2025 10 21 60969 0.2063 0.3290 0.07422 + 2025 10 22 60970 0.2053 0.3280 0.07375 + 2025 10 23 60971 0.2043 0.3270 0.07347 + 2025 10 24 60972 0.2033 0.3260 0.07337 + 2025 10 25 60973 0.2022 0.3250 0.07345 + 2025 10 26 60974 0.2012 0.3241 0.07364 + 2025 10 27 60975 0.2001 0.3231 0.07388 + 2025 10 28 60976 0.1990 0.3222 0.07410 + 2025 10 29 60977 0.1979 0.3213 0.07419 + 2025 10 30 60978 0.1968 0.3204 0.07409 + 2025 10 31 60979 0.1957 0.3196 0.07374 + 2025 11 1 60980 0.1945 0.3187 0.07309 + 2025 11 2 60981 0.1933 0.3179 0.07220 + 2025 11 3 60982 0.1922 0.3171 0.07115 + 2025 11 4 60983 0.1910 0.3163 0.07011 + 2025 11 5 60984 0.1898 0.3155 0.06924 + 2025 11 6 60985 0.1885 0.3147 0.06866 + 2025 11 7 60986 0.1873 0.3140 0.06841 + 2025 11 8 60987 0.1860 0.3133 0.06842 + 2025 11 9 60988 0.1848 0.3126 0.06856 + 2025 11 10 60989 0.1835 0.3119 0.06868 + 2025 11 11 60990 0.1822 0.3112 0.06866 + 2025 11 12 60991 0.1809 0.3106 0.06845 + 2025 11 13 60992 0.1796 0.3100 0.06806 + 2025 11 14 60993 0.1782 0.3094 0.06755 + 2025 11 15 60994 0.1769 0.3088 0.06698 + 2025 11 16 60995 0.1755 0.3082 0.06643 + 2025 11 17 60996 0.1742 0.3077 0.06596 + 2025 11 18 60997 0.1728 0.3072 0.06564 + 2025 11 19 60998 0.1714 0.3067 0.06550 + 2025 11 20 60999 0.1701 0.3062 0.06555 + 2025 11 21 61000 0.1687 0.3058 0.06578 + 2025 11 22 61001 0.1673 0.3053 0.06615 + 2025 11 23 61002 0.1659 0.3049 0.06660 + 2025 11 24 61003 0.1644 0.3045 0.06704 + 2025 11 25 61004 0.1630 0.3042 0.06739 + 2025 11 26 61005 0.1616 0.3038 0.06759 + 2025 11 27 61006 0.1602 0.3035 0.06756 + 2025 11 28 61007 0.1587 0.3032 0.06728 + 2025 11 29 61008 0.1573 0.3029 0.06677 + 2025 11 30 61009 0.1558 0.3027 0.06607 + 2025 12 1 61010 0.1544 0.3024 0.06523 + 2025 12 2 61011 0.1529 0.3022 0.06448 + 2025 12 3 61012 0.1515 0.3020 0.06395 + 2025 12 4 61013 0.1500 0.3019 0.06373 + 2025 12 5 61014 0.1486 0.3017 0.06379 + 2025 12 6 61015 0.1471 0.3016 0.06403 + 2025 12 7 61016 0.1456 0.3015 0.06430 + 2025 12 8 61017 0.1442 0.3015 0.06446 + 2025 12 9 61018 0.1427 0.3014 0.06442 + 2025 12 10 61019 0.1413 0.3014 0.06419 + 2025 12 11 61020 0.1398 0.3014 0.06380 + 2025 12 12 61021 0.1383 0.3014 0.06335 + 2025 12 13 61022 0.1369 0.3015 0.06291 + 2025 12 14 61023 0.1354 0.3015 0.06256 + 2025 12 15 61024 0.1340 0.3016 0.06234 + 2025 12 16 61025 0.1325 0.3017 0.06230 + 2025 12 17 61026 0.1311 0.3019 0.06246 + 2025 12 18 61027 0.1297 0.3020 0.06279 + 2025 12 19 61028 0.1282 0.3022 0.06328 + 2025 12 20 61029 0.1268 0.3024 0.06386 + 2025 12 21 61030 0.1254 0.3027 0.06444 + 2025 12 22 61031 0.1239 0.3029 0.06496 + 2025 12 23 61032 0.1225 0.3032 0.06533 + 2025 12 24 61033 0.1211 0.3035 0.06550 + 2025 12 25 61034 0.1197 0.3038 0.06544 + 2025 12 26 61035 0.1183 0.3041 0.06515 + 2025 12 27 61036 0.1170 0.3045 0.06469 + 2025 12 28 61037 0.1156 0.3049 0.06414 + 2025 12 29 61038 0.1142 0.3053 0.06364 + 2025 12 30 61039 0.1129 0.3057 0.06331 + 2025 12 31 61040 0.1115 0.3062 0.06323 + 2026 1 1 61041 0.1102 0.3066 0.06342 + 2026 1 2 61042 0.1089 0.3071 0.06382 + 2026 1 3 61043 0.1076 0.3077 0.06429 + 2026 1 4 61044 0.1063 0.3082 0.06469 + 2026 1 5 61045 0.1050 0.3087 0.06489 + 2026 1 6 61046 0.1037 0.3093 0.06486 + 2026 1 7 61047 0.1024 0.3099 0.06463 + 2026 1 8 61048 0.1012 0.3105 0.06428 + 2026 1 9 61049 0.0999 0.3112 0.06391 + 2026 1 10 61050 0.0987 0.3118 0.06361 + 2026 1 11 61051 0.0975 0.3125 0.06344 + 2026 1 12 61052 0.0963 0.3132 0.06344 + 2026 1 13 61053 0.0951 0.3139 0.06364 + 2026 1 14 61054 0.0940 0.3147 0.06401 + 2026 1 15 61055 0.0928 0.3154 0.06454 + 2026 1 16 61056 0.0917 0.3162 0.06517 + 2026 1 17 61057 0.0906 0.3170 0.06582 + 2026 1 18 61058 0.0895 0.3178 0.06640 + 2026 1 19 61059 0.0884 0.3186 0.06684 + 2026 1 20 61060 0.0874 0.3195 0.06707 + 2026 1 21 61061 0.0863 0.3203 0.06706 + 2026 1 22 61062 0.0853 0.3212 0.06680 + 2026 1 23 61063 0.0843 0.3221 0.06636 + 2026 1 24 61064 0.0833 0.3230 0.06582 + 2026 1 25 61065 0.0823 0.3239 0.06531 + 2026 1 26 61066 0.0814 0.3249 0.06494 + 2026 1 27 61067 0.0804 0.3259 0.06479 + 2026 1 28 61068 0.0795 0.3268 0.06489 + 2026 1 29 61069 0.0786 0.3278 0.06520 + 2026 1 30 61070 0.0778 0.3288 0.06562 + 2026 1 31 61071 0.0769 0.3298 0.06599 + 2026 2 1 61072 0.0761 0.3309 0.06620 + 2026 2 2 61073 0.0753 0.3319 0.06617 + 2026 2 3 61074 0.0745 0.3330 0.06589 + 2026 2 4 61075 0.0737 0.3341 0.06543 + 2026 2 5 61076 0.0730 0.3351 0.06490 + 2026 2 6 61077 0.0723 0.3362 0.06439 + 2026 2 7 61078 0.0716 0.3373 0.06401 + 2026 2 8 61079 0.0709 0.3385 0.06379 + 2026 2 9 61080 0.0703 0.3396 0.06378 + 2026 2 10 61081 0.0696 0.3407 0.06396 + 2026 2 11 61082 0.0690 0.3419 0.06432 + 2026 2 12 61083 0.0685 0.3431 0.06481 + 2026 2 13 61084 0.0679 0.3442 0.06537 + 2026 2 14 61085 0.0674 0.3454 0.06590 + 2026 2 15 61086 0.0669 0.3466 0.06634 + 2026 2 16 61087 0.0664 0.3478 0.06660 + 2026 2 17 61088 0.0659 0.3490 0.06664 + 2026 2 18 61089 0.0655 0.3503 0.06646 + 2026 2 19 61090 0.0651 0.3515 0.06608 + 2026 2 20 61091 0.0647 0.3527 0.06560 + 2026 2 21 61092 0.0643 0.3540 0.06514 + 2026 2 22 61093 0.0640 0.3552 0.06482 + 2026 2 23 61094 0.0637 0.3564 0.06470 + 2026 2 24 61095 0.0634 0.3577 0.06483 + 2026 2 25 61096 0.0632 0.3590 0.06515 + 2026 2 26 61097 0.0629 0.3602 0.06557 + 2026 2 27 61098 0.0627 0.3615 0.06596 + 2026 2 28 61099 0.0625 0.3628 0.06620 + 2026 3 1 61100 0.0624 0.3641 0.06619 + 2026 3 2 61101 0.0623 0.3654 0.06591 + 2026 3 3 61102 0.0622 0.3666 0.06538 + 2026 3 4 61103 0.0621 0.3679 0.06470 + 2026 3 5 61104 0.0620 0.3692 0.06398 + 2026 3 6 61105 0.0620 0.3705 0.06332 + 2026 3 7 61106 0.0620 0.3718 0.06280 + 2026 3 8 61107 0.0620 0.3731 0.06247 + 2026 3 9 61108 0.0621 0.3744 0.06235 + 2026 3 10 61109 0.0621 0.3757 0.06241 + 2026 3 11 61110 0.0622 0.3770 0.06263 + 2026 3 12 61111 0.0624 0.3783 0.06293 + 2026 3 13 61112 0.0625 0.3796 0.06322 + 2026 3 14 61113 0.0627 0.3809 0.06341 + 2026 3 15 61114 0.0629 0.3821 0.06342 + 2026 3 16 61115 0.0631 0.3834 0.06320 + 2026 3 17 61116 0.0634 0.3847 0.06271 + 2026 3 18 61117 0.0637 0.3860 0.06199 + 2026 3 19 61118 0.0640 0.3873 0.06113 + 2026 3 20 61119 0.0643 0.3885 0.06024 + 2026 3 21 61120 0.0647 0.3898 0.05943 + 2026 3 22 61121 0.0651 0.3911 0.05880 + 2026 3 23 61122 0.0655 0.3923 0.05842 + 2026 3 24 61123 0.0659 0.3936 0.05830 + 2026 3 25 61124 0.0664 0.3948 0.05832 + 2026 3 26 61125 0.0668 0.3961 0.05841 + 2026 3 27 61126 0.0673 0.3973 0.05840 + 2026 3 28 61127 0.0679 0.3985 0.05821 + 2026 3 29 61128 0.0684 0.3997 0.05777 + 2026 3 30 61129 0.0690 0.4010 0.05709 + 2026 3 31 61130 0.0696 0.4022 0.05624 + 2026 4 1 61131 0.0702 0.4034 0.05523 + 2026 4 2 61132 0.0709 0.4045 0.05420 + 2026 4 3 61133 0.0715 0.4057 0.05330 + 2026 4 4 61134 0.0722 0.4069 0.05257 + 2026 4 5 61135 0.0729 0.4080 0.05202 + 2026 4 6 61136 0.0737 0.4092 0.05164 + 2026 4 7 61137 0.0744 0.4103 0.05137 + 2026 4 8 61138 0.0752 0.4114 0.05123 + 2026 4 9 61139 0.0760 0.4125 0.05118 + 2026 4 10 61140 0.0768 0.4136 0.05105 + 2026 4 11 61141 0.0777 0.4147 0.05087 + 2026 4 12 61142 0.0786 0.4158 0.05044 + 2026 4 13 61143 0.0794 0.4169 0.04970 + 2026 4 14 61144 0.0803 0.4179 0.04867 + 2026 4 15 61145 0.0813 0.4189 0.04739 + 2026 4 16 61146 0.0822 0.4200 0.04601 + 2026 4 17 61147 0.0832 0.4210 0.04462 + 2026 4 18 61148 0.0842 0.4219 0.04343 + 2026 4 19 61149 0.0852 0.4229 0.04254 + 2026 4 20 61150 0.0862 0.4239 0.04195 + 2026 4 21 61151 0.0872 0.4248 0.04156 + 2026 4 22 61152 0.0883 0.4258 0.04129 + 2026 4 23 61153 0.0894 0.4267 0.04098 + 2026 4 24 61154 0.0905 0.4276 0.04050 + 2026 4 25 61155 0.0916 0.4284 0.03988 + 2026 4 26 61156 0.0927 0.4293 0.03914 + 2026 4 27 61157 0.0939 0.4302 0.03829 + 2026 4 28 61158 0.0950 0.4310 0.03744 + 2026 4 29 61159 0.0962 0.4318 0.03659 + 2026 4 30 61160 0.0974 0.4326 0.03591 + 2026 5 1 61161 0.0986 0.4334 0.03540 + 2026 5 2 61162 0.0998 0.4341 0.03522 + 2026 5 3 61163 0.1010 0.4348 0.03525 + 2026 5 4 61164 0.1023 0.4356 0.03547 + 2026 5 5 61165 0.1035 0.4363 0.03594 + 2026 5 6 61166 0.1048 0.4369 0.03644 + 2026 5 7 61167 0.1061 0.4376 0.03697 + 2026 5 8 61168 0.1074 0.4382 0.03741 + 2026 5 9 61169 0.1087 0.4389 0.03765 + 2026 5 10 61170 0.1100 0.4395 0.03762 + 2026 5 11 61171 0.1114 0.4400 0.03733 + 2026 5 12 61172 0.1127 0.4406 0.03682 + 2026 5 13 61173 0.1140 0.4411 0.03611 + 2026 5 14 61174 0.1154 0.4416 0.03540 + 2026 5 15 61175 0.1168 0.4421 0.03481 + 2026 5 16 61176 0.1182 0.4426 0.03447 + 2026 5 17 61177 0.1195 0.4431 0.03440 + 2026 5 18 61178 0.1209 0.4435 0.03458 + 2026 5 19 61179 0.1223 0.4439 0.03496 + 2026 5 20 61180 0.1237 0.4443 0.03531 + 2026 5 21 61181 0.1252 0.4447 0.03553 + 2026 5 22 61182 0.1266 0.4450 0.03563 + 2026 5 23 61183 0.1280 0.4453 0.03555 + 2026 5 24 61184 0.1294 0.4456 0.03538 + 2026 5 25 61185 0.1309 0.4459 0.03522 + 2026 5 26 61186 0.1323 0.4462 0.03510 + 2026 5 27 61187 0.1337 0.4464 0.03509 + 2026 5 28 61188 0.1352 0.4466 0.03526 + 2026 5 29 61189 0.1366 0.4468 0.03571 + 2026 5 30 61190 0.1381 0.4469 0.03643 + 2026 5 31 61191 0.1395 0.4471 0.03730 + 2026 6 1 61192 0.1410 0.4472 0.03832 + 2026 6 2 61193 0.1425 0.4473 0.03948 + 2026 6 3 61194 0.1439 0.4474 0.04058 + 2026 6 4 61195 0.1454 0.4474 0.04160 + 2026 6 5 61196 0.1468 0.4474 0.04249 + 2026 6 6 61197 0.1483 0.4475 0.04322 + 2026 6 7 61198 0.1497 0.4474 0.04372 + 2026 6 8 61199 0.1512 0.4474 0.04404 + 2026 6 9 61200 0.1526 0.4473 0.04420 + 2026 6 10 61201 0.1541 0.4472 0.04427 + 2026 6 11 61202 0.1555 0.4471 0.04441 + 2026 6 12 61203 0.1570 0.4470 0.04471 + 2026 6 13 61204 0.1584 0.4468 0.04527 + 2026 6 14 61205 0.1598 0.4467 0.04607 + 2026 6 15 61206 0.1613 0.4465 0.04699 + 2026 6 16 61207 0.1627 0.4462 0.04805 + 2026 6 17 61208 0.1641 0.4460 0.04907 + 2026 6 18 61209 0.1655 0.4457 0.04991 + 2026 6 19 61210 0.1669 0.4454 0.05056 + 2026 6 20 61211 0.1683 0.4451 0.05105 + 2026 6 21 61212 0.1697 0.4448 0.05136 + 2026 6 22 61213 0.1711 0.4444 0.05165 + 2026 6 23 61214 0.1725 0.4440 0.05210 + 2026 6 24 61215 0.1738 0.4436 0.05266 + 2026 6 25 61216 0.1752 0.4432 0.05340 + 2026 6 26 61217 0.1765 0.4428 0.05430 + 2026 6 27 61218 0.1779 0.4423 0.05539 + 2026 6 28 61219 0.1792 0.4418 0.05654 + 2026 6 29 61220 0.1805 0.4413 0.05779 + 2026 6 30 61221 0.1818 0.4408 0.05910 + 2026 7 1 61222 0.1831 0.4402 0.06048 + 2026 7 2 61223 0.1844 0.4397 0.06171 + 2026 7 3 61224 0.1856 0.4391 0.06280 + 2026 7 4 61225 0.1869 0.4385 0.06369 + 2026 7 5 61226 0.1881 0.4378 0.06434 + 2026 7 6 61227 0.1893 0.4372 0.06480 + 2026 7 7 61228 0.1905 0.4365 0.06523 + 2026 7 8 61229 0.1917 0.4358 0.06572 + 2026 7 9 61230 0.1929 0.4351 0.06633 + 2026 7 10 61231 0.1941 0.4344 0.06723 + 2026 7 11 61232 0.1952 0.4336 0.06843 + 2026 7 12 61233 0.1964 0.4329 0.06985 + 2026 7 13 61234 0.1975 0.4321 0.07146 + 2026 7 14 61235 0.1986 0.4313 0.07292 + 2026 7 15 61236 0.1996 0.4304 0.07413 + 2026 7 16 61237 0.2007 0.4296 0.07502 + 2026 7 17 61238 0.2018 0.4288 0.07557 + 2026 7 18 61239 0.2028 0.4279 0.07596 + 2026 7 19 61240 0.2038 0.4270 0.07629 + 2026 7 20 61241 0.2048 0.4261 0.07668 + 2026 7 21 61242 0.2058 0.4252 0.07728 + 2026 7 22 61243 0.2067 0.4242 0.07807 + 2026 7 23 61244 0.2076 0.4233 0.07908 + 2026 7 24 61245 0.2085 0.4223 0.08036 + 2026 7 25 61246 0.2094 0.4213 0.08180 + 2026 7 26 61247 0.2103 0.4203 0.08338 + 2026 7 27 61248 0.2112 0.4193 0.08491 + 2026 7 28 61249 0.2120 0.4183 0.08647 + 2026 7 29 61250 0.2128 0.4173 0.08786 + 2026 7 30 61251 0.2136 0.4162 0.08904 + 2026 7 31 61252 0.2143 0.4151 0.08998 + 2026 8 1 61253 0.2151 0.4141 0.09076 + 2026 8 2 61254 0.2158 0.4130 0.09130 + 2026 8 3 61255 0.2165 0.4119 0.09180 + 2026 8 4 61256 0.2172 0.4108 0.09232 + 2026 8 5 61257 0.2178 0.4096 0.09294 + 2026 8 6 61258 0.2184 0.4085 0.09372 + 2026 8 7 61259 0.2190 0.4074 0.09466 + 2026 8 8 61260 0.2196 0.4062 0.09591 + 2026 8 9 61261 0.2202 0.4050 0.09728 + 2026 8 10 61262 0.2207 0.4039 0.09868 + 2026 8 11 61263 0.2212 0.4027 0.09988 + 2026 8 12 61264 0.2217 0.4015 0.10077 + 2026 8 13 61265 0.2221 0.4003 0.10141 + 2026 8 14 61266 0.2226 0.3991 0.10182 These predictions are based on all announced leap seconds. - CELESTIAL POLE OFFSET SERIES: - NEOS Celestial Pole Offset Series - MJD dpsi error deps error - (msec. of arc) - 60868 -116.99 0.86 -10.78 0.21 - 60869 -117.02 0.86 -10.71 0.30 - 60870 -117.16 0.86 -10.75 0.30 - 60871 -117.35 0.86 -10.82 0.34 - 60872 -117.56 0.83 -10.83 0.29 - 60873 -117.79 0.83 -10.77 0.29 - 60874 -118.05 0.83 -10.70 0.29 - 60875 -118.31 0.78 -10.66 0.17 - 60876 -118.49 0.83 -10.70 0.16 - 60877 -118.55 0.83 -10.81 0.16 - 60878 -118.54 1.09 -10.92 0.16 - 60879 -118.54 0.94 -10.97 0.15 - 60880 -118.53 0.94 -10.93 0.15 - 60881 -118.44 0.94 -10.81 0.15 - - IERS Celestial Pole Offset Final Series - MJD dpsi deps - (msec. of arc) - 60828 -111.0 -11.3 - 60829 -111.7 -10.9 - 60830 -112.1 -10.8 - 60831 -112.0 -10.8 - 60832 -111.7 -10.8 - 60833 -111.7 -10.8 - 60834 -111.9 -10.9 - 60835 -112.2 -11.2 - 60836 -112.5 -11.5 - 60837 -112.7 -11.7 - 60838 -112.8 -11.7 - 60839 -112.7 -11.5 - 60840 -112.6 -11.3 - 60841 -112.5 -11.3 - 60842 -112.4 -11.3 - 60843 -112.3 -11.3 - 60844 -112.4 -11.2 - 60845 -112.6 -11.1 - 60846 -113.0 -10.9 - 60847 -113.6 -10.7 - 60848 -114.2 -10.7 - 60849 -114.6 -10.9 - 60850 -114.7 -11.2 - 60851 -114.6 -11.3 - 60852 -114.5 -11.4 - 60853 -114.3 -11.3 - 60854 -114.0 -11.2 - 60855 -114.1 -11.0 - 60856 -114.6 -10.6 - 60857 -115.3 -10.4 - - IAU2000A Celestial Pole Offset Series - MJD dX error dY error - (msec. of arc) - 60868 0.366 0.342 -0.270 0.206 - 60869 0.360 0.343 -0.284 0.298 - 60870 0.356 0.343 -0.292 0.298 - 60871 0.352 0.343 -0.292 0.342 - 60872 0.347 0.330 -0.282 0.288 - 60873 0.343 0.330 -0.265 0.288 - 60874 0.341 0.330 -0.243 0.288 - 60875 0.342 0.308 -0.222 0.166 - 60876 0.347 0.331 -0.202 0.164 - 60877 0.352 0.331 -0.183 0.164 - 60878 0.357 0.433 -0.166 0.157 - 60879 0.359 0.375 -0.150 0.149 - 60880 0.359 0.375 -0.135 0.149 - 60881 0.358 0.375 -0.120 0.149 - - - IAU2000A Celestial Pole Offset Final Series - MJD dX dY - (msec. of arc) - 60828 0.30 -0.23 - 60829 0.28 -0.26 - 60830 0.28 -0.28 - 60831 0.35 -0.27 - 60832 0.43 -0.24 - 60833 0.45 -0.20 - 60834 0.43 -0.18 - 60835 0.39 -0.16 - 60836 0.34 -0.15 - 60837 0.34 -0.19 - 60838 0.35 -0.25 - 60839 0.37 -0.30 - 60840 0.41 -0.34 - 60841 0.45 -0.35 - 60842 0.50 -0.35 - 60843 0.53 -0.34 - 60844 0.52 -0.32 - 60845 0.49 -0.29 - 60846 0.45 -0.27 - 60847 0.42 -0.25 - 60848 0.41 -0.25 - 60849 0.40 -0.26 - 60850 0.39 -0.27 - 60851 0.39 -0.29 - 60852 0.39 -0.32 - 60853 0.39 -0.33 - 60854 0.38 -0.28 - 60855 0.36 -0.19 - 60856 0.35 -0.10 - 60857 0.34 -0.03 - )--"; } // namespace mcc::ccte::iers::defaults + diff --git a/mcc/mcc_defaults.h b/mcc/mcc_defaults.h index 6ce68e1..9160d09 100644 --- a/mcc/mcc_defaults.h +++ b/mcc/mcc_defaults.h @@ -61,6 +61,8 @@ template struct MccGenericEqtHrzCoords : MccGenericCelestialPoint { using typename MccGenericCelestialPoint::coord_t; + using MccGenericCelestialPoint::time_point; + coord_t RA_APP{}, DEC_APP{}, HA{}, AZ{}, ZD{}, ALT{}; }; diff --git a/mcc/mcc_generics.h b/mcc/mcc_generics.h index 3c8fc39..7920373 100644 --- a/mcc/mcc_generics.h +++ b/mcc/mcc_generics.h @@ -102,6 +102,7 @@ concept mcc_celestial_point_c = requires(T t) { }; + /* CELESTIAL POINT WITH APPARENT EQUATORIAL AND HORIZONTAL CLASS CONCEPT */ template @@ -109,9 +110,10 @@ concept mcc_eqt_hrz_coord_c = mcc_celestial_point_c && requires(T t) { requires mcc_angle_c; // right ascension requires mcc_angle_c; // declination requires mcc_angle_c; // hour angle - requires mcc_angle_c; // azimuth - requires mcc_angle_c; // zenithal distance - requires mcc_angle_c; // altitude + requires mcc_angle_c; // azimuth (NOTE: ASSUMING THE AZINUTH IS COUNTED FROM THE SOUTH THROUGH THE + // WEST!!!) + requires mcc_angle_c; // zenithal distance + requires mcc_angle_c; // altitude }; @@ -136,12 +138,14 @@ struct mcc_CCTE_interface_t { return std::forward(self).timepointToAppSideral(std::move(tp), st, islocal); } + // NOTE: ASSUMING THE AZINUTH IS COUNTED FROM THE SOUTH THROUGH THE WEST!!! template SelfT> RetT transformCoordinates(this SelfT&& self, mcc_celestial_point_c auto from_pt, mcc_celestial_point_c auto* to_pt) { return std::forward(self).transformCoordinates(std::move(from_pt), to_pt); } + // NOTE: ASSUMING THE AZINUTH IS COUNTED FROM THE SOUTH THROUGH THE WEST!!! template SelfT> RetT transformCoordinates(this SelfT&& self, mcc_celestial_point_c auto from_pt, mcc_eqt_hrz_coord_c auto* to_pt) { diff --git a/mcc/mcc_pzone.h b/mcc/mcc_pzone.h index dd9af90..25ab488 100644 --- a/mcc/mcc_pzone.h +++ b/mcc/mcc_pzone.h @@ -5,6 +5,7 @@ /* IMPLEMENTATION OF SOME SIMPLE PROHIBITED ZONES */ +#include "mcc_defaults.h" #include "mcc_generics.h" namespace mcc @@ -13,31 +14,105 @@ namespace mcc static constexpr double mcc_sideral_to_UT1_ratio = 1.002737909350795; // sideral/UT1 +enum MccAltLimitPZErrorCode : int { ERROR_OK, ERROR_COORD_TRANSFROM }; + +} // namespace mcc + +namespace std +{ + +template <> +class is_error_code_enum : public true_type +{ +}; + +} // namespace std + + + +namespace mcc +{ + /* MINIMAL OR MAXIMAL ALTITUDE PROHIBITED ZONES */ + +/* error category definition */ + +// error category +struct MccAltLimitPZCategory : public std::error_category { + MccAltLimitPZCategory() : std::error_category() {} + + const char* name() const noexcept + { + return "ALTITUDE-LIMIT-PZ"; + } + + std::string message(int ec) const + { + MccAltLimitPZErrorCode err = static_cast(ec); + + switch (err) { + case MccAltLimitPZErrorCode::ERROR_OK: + return "OK"; + case MccAltLimitPZErrorCode::ERROR_COORD_TRANSFROM: + return "coordinate transformation error"; + default: + return "UNKNOWN"; + } + } + + static const MccAltLimitPZCategory& get() + { + static const MccAltLimitPZCategory constInst; + return constInst; + } +}; + + +inline std::error_code make_error_code(MccAltLimitPZErrorCode ec) +{ + return std::error_code(static_cast(ec), MccAltLimitPZCategory::get()); +} + + + enum class MccAltLimitKind { MIN_ALT_LIMIT, MAX_ALT_LIMIT }; -template +template class MccAltLimitPZ : public mcc_pzone_interface_t { protected: - double _altLimit, _cosALim, _sinAlim; - double _cosLat, _sinLat, _absLat; + static constexpr auto pi2 = std::numbers::pi * 2.0; - CCTE_T* _ccteEngine; + template + static constexpr T infiniteDuration = + std::integral ? T{std::numeric_limits::max()} + : T{std::numeric_limits::infinity()}; public: typedef std::error_code error_t; - MccAltLimitPZ(mcc_angle_c auto const& alt_limit, mcc_angle_c auto const& latitude, CCTE_T* ccte_engine) - : _altLimit(alt_limit), + MccAltLimitPZ(mcc_angle_c auto const& alt_limit, mcc_angle_c auto const& latitude, mcc_ccte_c auto* ccte_engine) + : _altLimit(MccAngle(alt_limit).normalize()), _cosALim(cos(_altLimit)), _sinAlim(sin(_altLimit)), _cosLat(cos(latitude)), _sinLat(sin(latitude)), _absLat(abs(latitude)), - _ccteEngine(ccte_engine) + _latLim(MccAltLimitPZ::pi2 - _altLimit) { + _transformCoordinates = [ccte_engine](MccCelestialPoint from_pt, MccCelestialPoint* to_pt) -> error_t { + auto err = ccte_engine->transformCoordinates(from_pt, to_pt); + if (!err) { + return MccAltLimitPZErrorCode::ERROR_OK; + } + + if (std::same_as) { + return err; + } else { + return MccAltLimitPZErrorCode::ERROR_COORD_TRANSFROM; + } + }; } consteval std::string_view name() const @@ -52,26 +127,291 @@ public: error_t inPZone(InputT coords, bool* result) requires(mcc_eqt_hrz_coord_c || mcc_celestial_point_c) { - // auto ret = - // return ret; + double alt; + + error_t ret = MccAltLimitPZErrorCode::ERROR_OK; + + if constexpr (mcc_eqt_hrz_coord_c) { + alt = coords.ALT; + } else { + MccCelestialPoint to_pt{.pair_kind = MccCoordPairKind::COORDS_KIND_AZALT, .time_point = coords.time_point}; + ret = getCoord(coords, &to_pt); + if (ret) { + return ret; + } + + alt = to_pt.Y; + } + + if constexpr (KIND == MccAltLimitKind::MIN_ALT_LIMIT) { + *result = alt <= _altLimit; + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { + *result = alt >= _altLimit; + } + + return ret; } template error_t timeToPZone(InputT coords, traits::mcc_time_duration_c auto* res_time) requires(mcc_eqt_hrz_coord_c || mcc_celestial_point_c) { + using res_t = std::remove_cvref_t; + + double ha, dec; + + error_t ret = MccAltLimitPZErrorCode::ERROR_OK; + + bool inzone; + ret = inPZone(coords, &inzone); + if (ret) { + return ret; + } + + if (inzone) { + *res_time = res_t{0}; + return ret; + } + + if constexpr (mcc_eqt_hrz_coord_c) { + ha = coords.HA; + dec = coords.DEC_APP; + } else { + MccCelestialPoint to_pt{.pair_kind = MccCoordPairKind::COORDS_KIND_HADEC_APP, + .time_point = coords.time_point}; + ret = getCoord(coords, &to_pt); + if (ret) { + return ret; + } + + ha = to_pt.X; + dec = to_pt.Y; + } + + if (!doesObjectReachZone(dec)) { + *res_time = infiniteDuration; + return ret; + } + + if constexpr (KIND == + MccAltLimitKind::MIN_ALT_LIMIT) { // the closest time point is one after upper culmination + compute(ha, dec, false, res_time); + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { // the closest time point is one before upper + // culmination + compute(ha, dec, true, res_time); + } + + return ret; } template error_t timeFromPZone(InputT coords, traits::mcc_time_duration_c auto* res_time) requires(mcc_eqt_hrz_coord_c || mcc_celestial_point_c) { + using res_t = std::remove_cvref_t; + + double ha, dec; + + error_t ret = MccAltLimitPZErrorCode::ERROR_OK; + + bool inzone; + ret = inPZone(coords, &inzone); + if (ret) { + return ret; + } + + if (!inzone) { + *res_time = res_t{0}; + return ret; + } + + if constexpr (mcc_eqt_hrz_coord_c) { + ha = coords.HA; + dec = coords.DEC_APP; + } else { + MccCelestialPoint to_pt{.pair_kind = MccCoordPairKind::COORDS_KIND_HADEC_APP, + .time_point = coords.time_point}; + ret = getCoord(coords, &to_pt); + if (ret) { + return ret; + } + + ha = to_pt.X; + dec = to_pt.Y; + } + + if (!doesObjectExitFromZone(dec)) { + *res_time = infiniteDuration; + return ret; + } + + if (!doesObjectReachZone(dec)) { + *res_time = res_t{0}; + return ret; + } + + if constexpr (KIND == + MccAltLimitKind::MIN_ALT_LIMIT) { // the closest time point is one before upper culmination + compute(ha, dec, true, res_time); + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { // the closest time point is one after upper + // culmination + compute(ha, dec, false, res_time); + } + + return ret; } template error_t intersectPZone(InputT coords, mcc_celestial_point_c auto* point) requires(mcc_eqt_hrz_coord_c || mcc_celestial_point_c) { + double ha, dec, az; + + error_t ret = MccAltLimitPZErrorCode::ERROR_OK; + + if constexpr (mcc_eqt_hrz_coord_c) { + ha = coords.HA; + dec = coords.DEC_APP; + } else { + MccCelestialPoint to_pt{.pair_kind = MccCoordPairKind::COORDS_KIND_HADEC_APP, + .time_point = coords.time_point}; + ret = getCoord(coords, &to_pt); + if (ret) { + return ret; + } + + ha = to_pt.X; + dec = to_pt.Y; + } + + double sinDec = sin(dec), cosDec = cos(dec); + + auto cos_ha = (_sinAlim - sinDec * _sinLat) / cosDec / _cosLat; + + if (cos_ha > 1.0) { // no intersection + // compute culmination points? + return ret; + } + + // WARNNIG: THE EXPRESSION ASSUMES THAT AZIMUTH IS COUNTED FROM THE SOUTH THROUGH THE WEST!!! + double cosA = (-sinDec * _cosLat + cosDec * _sinLat * cos_ha) / _cosALim; + + if constexpr (KIND == + MccAltLimitKind::MIN_ALT_LIMIT) { // the closest time point is one after upper culmination + az = std::acos(cosA); + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { // the closest time point is one before upper + // culmination + az = -std::acos(cosA); + } + + MccCelestialPoint pt{ + .pair_kind = MccCoordPairKind::COORDS_KIND_AZALT, .time_point = coords.time_point, .X = az, .Y = _altLimit}, + to_pt{.pair_kind = point->pair_kind, .time_point = point->time_point}; + + ret = _transformCoordinates(pt, &to_pt); + if (!ret) { + point->X = to_pt.X; + point->Y = to_pt.Y; + } + + return ret; + } + +protected: + double _altLimit, _cosALim, _sinAlim; + double _cosLat, _sinLat, _absLat, _latLim; + + std::function _transformCoordinates{}; + + error_t getCoord(mcc_celestial_point_c auto const& from_pt, MccCelestialPoint* to_pt) + { + MccCelestialPoint pt{ + .pair_kind = from_pt.pair_kind, .time_point = from_pt.time_point, .X = from_pt.X, .Y = from_pt.Y}; + + return _transformCoordinates(pt, to_pt); + } + + bool doesObjectReachZone(const double& dec_app) + { + // check for limit conditions + auto dd = std::abs(dec_app); + + if constexpr (KIND == MccAltLimitKind::MIN_ALT_LIMIT) { + dd += _altLimit; + + if (dd > _latLim) { // never fall below altitude limit + return false; + } + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { + if ((dd < (_absLat - _altLimit)) || (dd > (_absLat + _altLimit))) { // never rise above altitude limit + return false; + } + } else { + static_assert(false, "UNKNOWN ALTITUDE LIMIT TYPE!"); + } + + return true; + } + + + bool doesObjectExitFromZone(const double& dec_app) + { + // check for limit conditions + auto dd = std::abs(dec_app); + + if constexpr (KIND == MccAltLimitKind::MIN_ALT_LIMIT) { + dd -= _altLimit; + + if (-dd <= -_latLim) { // always below altitude limit + return false; + } + } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { + if ((dd >= (_absLat - _altLimit)) || (dd <= (_absLat + _altLimit))) { // always above altitude limit + return false; + } + } else { + static_assert(false, "UNKNOWN ALTITUDE LIMIT TYPE!"); + } + + return true; + } + + + void compute(const double& ha_app, + const double& dec_app, + bool before_upper_culm, + traits::mcc_time_duration_c auto* result) + { + using res_t = std::remove_cvref_t; + using period_t = typename res_t::period; + + double cos_ha = (_sinAlim - std::sin(dec_app) * _sinLat) / std::cos(dec_app) / _cosLat; + + if (cos_ha > 1.0) { // should not be! + *result = infiniteDuration; + } + + double ha; + // WARNING: what about south hemisphere?!!! + if (before_upper_culm) { + ha = -std::acos(cos_ha); // HA before upper culmination + } else { + ha = std::acos(cos_ha); // HA after upper culmination!! + } + + auto time_ang = ha - ha_app; // in sideral time scale + + if (time_ang < 0.0) { // next day + time_ang += MccAltLimitPZ::pi2; + } + + time_ang /= mcc_sideral_to_UT1_ratio; // to UT1 time scale + + std::chrono::nanoseconds ns{ + static_cast(time_ang * 43200.0 / std::numbers::pi * 1.0E9)}; + + period_t rat; + *result = res_t{static_cast(time_ang * 43200.0 / std::numbers::pi * rat.den / rat.num)}; } }; diff --git a/mcc/tests/ccte_test.cpp b/mcc/tests/ccte_test.cpp new file mode 100644 index 0000000..9808773 --- /dev/null +++ b/mcc/tests/ccte_test.cpp @@ -0,0 +1,79 @@ +#include + +#include "../mcc_ccte_erfa.h" +#include "../mcc_pzone.h" + +using namespace mcc::ccte::erfa; + +int main() +{ + MccCCTE_ERFA::engine_state_t state{.lat = 43.646711_degs, .lon = 41.440732_degs, .elev = 2100.0}; + state.meteo = {10.0, 0.5, 1010.0}; + + MccCCTE_ERFA erfa(state); + + std::cout << "LAT = " << mcc::MccAngle(state.lat).sexagesimal() << "\n"; + std::cout << "LON = " << mcc::MccAngle(state.lon).sexagesimal() << "\n"; + + auto now = std::chrono::system_clock::now(); + + mcc::MccCelestialPoint cp{ + .pair_kind = mcc::MccCoordPairKind::COORDS_KIND_RADEC_ICRS, .X = "10:20:30.44"_hms, .Y = "20:30:40.55"_dms}; + + mcc::MccEqtHrzCoords eqhrz; + eqhrz.time_point = now; + + + auto ret = erfa.transformCoordinates(cp, &eqhrz); + + std::cout << "ret = " << ret.message() << "\n"; + + std::cout << "RA_ICRS = " << mcc::MccAngle(cp.X).sexagesimal(true) << "\n"; + std::cout << "DEC_ICRS = " << mcc::MccAngle(cp.Y).sexagesimal() << "\n\n"; + + std::cout << "time point = " << eqhrz.time_point << "\n"; + std::cout << "RA_APP = " << mcc::MccAngle(eqhrz.RA_APP).sexagesimal(true) << "\n"; + std::cout << "DEC_APP = " << mcc::MccAngle(eqhrz.DEC_APP).sexagesimal() << "\n"; + std::cout << "HA = " << mcc::MccAngle(eqhrz.HA).sexagesimal(true) << "\n"; + std::cout << "AZ = " << mcc::MccAngle(eqhrz.AZ).sexagesimal() << "\n"; + std::cout << "ZD = " << mcc::MccAngle(eqhrz.ZD).sexagesimal() << "\n"; + std::cout << "ALT = " << mcc::MccAngle(eqhrz.ALT).sexagesimal() << "\n"; + + std::cout << "\n\n"; + + mcc::MccJulianDay jd; + ret = erfa.timepointToJulday(now, &jd); + std::cout << "ret = " << ret.message() << "\n"; + + std::cout << "JD = " << std::setprecision(12) << (double)jd << "\n"; + + mcc::MccAngle lst; + ret = erfa.timepointToAppSideral(now, &lst, true); + std::cout << "LST = " << lst.sexagesimal(true) << "\n"; + + + std::cout << "\n\n"; + + mcc::MccAltLimitPZ altmin(10.0_degs, state.lat, &erfa); + + bool inzone; + + std::cout << "time point = " << eqhrz.time_point << "\n"; + ret = altmin.inPZone(eqhrz, &inzone); + std::cout << "ret = " << ret.message() << "\n"; + std::cout << "ALTMIN: inZone = " << std::boolalpha << inzone << "\n"; + + std::chrono::duration dsec; + ret = altmin.timeToPZone(eqhrz, &dsec); + std::cout << "ret = " << ret.message() << "\n"; + std::cout << "TIME TO ZONE: " << dsec << " (" + << now + std::chrono::duration_cast(dsec) << ")\n"; + + mcc::MccCelestialPoint icp{.pair_kind = mcc::MccCoordPairKind::COORDS_KIND_AZALT, .time_point = now}; + ret = altmin.intersectPZone(eqhrz, &icp); + std::cout << "ret = " << ret.message() << "\n"; + std::cout << "INTERSEC AZ = " << mcc::MccAngle(icp.X).sexagesimal() << "\n"; + std::cout << "INTERSEC ALT = " << mcc::MccAngle(icp.Y).sexagesimal() << "\n"; + + return 0; +} diff --git a/mcc/update_iers_data.sh b/mcc/update_iers_data.sh new file mode 100755 index 0000000..375fca4 --- /dev/null +++ b/mcc/update_iers_data.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# +# $1 - output filename +# + +if [[ $# -eq 0 ]]; then + res_file="mcc_ccte_iers_default.h" +else + res_file=$1 +fi + + +echo -e '#pragma once\n + +#include \n + +namespace mcc::ccte::iers::defaults\n +{ + +// https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat\n +static std::string MCC_DEFAULT_LEAP_SECONDS_FILE = R"--(\n' > $res_file + +wget --quiet https://hpiers.obspm.fr/iers/bul/bulc/Leap_Second.dat -O - >> $res_file + +echo -e ')--";\n\n' >> $res_file + +echo -e '// https://datacenter.iers.org/data/latestVersion/bulletinA.txt\n +static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(\n' >> $res_file + +wget --quiet https://datacenter.iers.org/data/latestVersion/bulletinA.txt -O - >> $res_file + +echo -e ')--";\n + + +} // namespace mcc::ccte::iers::defaults\n' >> $res_file