This commit is contained in:
Timur A. Fatkhullin 2025-08-14 18:35:44 +03:00
parent e59f9a05b2
commit 3659ddab01
6 changed files with 623 additions and 436 deletions

View File

@ -103,6 +103,8 @@ add_dependencies(ERFA_LIB erfalib)
set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib)
include_directories(${ERFA_INCLUDE_DIR})
message(STATUS "ERFA: " ${ERFA_INCLUDE_DIR})
option(WITH_TESTS "Build tests" ON)
@ -132,15 +134,15 @@ set(MCC_LIBRARY_SRC mcc_mount_concepts.h mcc_fsm_mount.h mcc_generic_mount.h mcc
set(MCC_LIBRARY mcc)
add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC})
target_compile_features(${MCC_LIBRARY} INTERFACE cxx_std_23)
target_include_directories(${MCC_LIBRARY} INTERFACE ${FITPACK_INCLUDE_DIR})
target_include_directories(${MCC_LIBRARY} INTERFACE ${FITPACK_INCLUDE_DIR} ${ERFA_INCLUDE_DIR})
set(ASIBFM700_LIB_SRC asibfm700_common.h asibfm700_hardware.h asibfm700_hardware.cpp)
set(ASIBFM700_LIB asibfm700)
add_library(${ASIBFM700_LIB} STATIC ${ASIBFM700_LIB_SRC}
asibfm700_mount.h asibfm700_mount.cpp
set(ASIBFM700_LIB_SRC asibfm700_common.h asibfm700_hardware.h asibfm700_hardware.cpp asibfm700_mount.h asibfm700_mount.cpp
asibfm700_config.h)
target_include_directories(${ASIBFM700_LIB} PRIVATE ${FITPACK_INCLUDE_DIR})
set(ASIBFM700_LIB asibfm700)
add_library(${ASIBFM700_LIB} STATIC ${ASIBFM700_LIB_SRC})
# target_include_directories(${ASIBFM700_LIB} PRIVATE ${FITPACK_INCLUDE_DIR} ${ERFA_INCLUDE_DIR})
target_include_directories(${ASIBFM700_LIB} PUBLIC ${FITPACK_INCLUDE_DIR} ${ERFA_INCLUDE_DIR})
# set(MOUNT_SERVER_APP_SRC mount.h mount_state.h mount_server.cpp comm_server.h comm_server_endpoint.h comm_server_configfile.h mount_astrom.h
# mount_astrom_default.h mcc_coord.h mount_pz.h mcc_fsm.h mcc_fsm_utils.h mcc_finite_state_machine.h mcc_mount_events_states.h)
@ -161,7 +163,7 @@ if (WITH_TESTS)
set(ASTROM_TEST_APP astrom_test)
add_executable(${ASTROM_TEST_APP} tests/astrom_test.cpp)
target_include_directories(${ASTROM_TEST_APP} PRIVATE ${FITPACK_INCLUDE_DIR})
target_include_directories(${ASTROM_TEST_APP} PRIVATE ${FITPACK_INCLUDE_DIR} ${ERFA_INCLUDE_DIR})
target_link_libraries(${ASTROM_TEST_APP} ERFA_LIB)
set(FITPACK_TEST_APP fitpack_test)

View File

@ -67,7 +67,7 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
* *
* Rapid Service/Prediction of Earth Orientation *
**********************************************************************
31 July 2025 Vol. XXXVIII No. 031
7 August 2025 Vol. XXXVIII No. 032
______________________________________________________________________
GENERAL INFORMATION:
MJD = Julian Date - 2 400 000.5 days
@ -116,13 +116,47 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
IERS Rapid Service
MJD x error y error UT1-UTC error
" " " " s s
25 7 25 60881 0.19849 .00009 0.43231 .00009 0.060664 0.000023
25 7 26 60882 0.19962 .00009 0.43171 .00009 0.061061 0.000018
25 7 27 60883 0.20063 .00009 0.43095 .00009 0.061275 0.000018
25 7 28 60884 0.20201 .00009 0.43031 .00009 0.061376 0.000016
25 7 29 60885 0.20393 .00009 0.42977 .00009 0.061481 0.000016
25 7 30 60886 0.20609 .00009 0.42900 .00009 0.061552 0.000012
25 7 31 60887 0.20824 .00009 0.42803 .00009 0.061682 0.000006
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
_______________________________________________________________________
@ -130,401 +164,492 @@ 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.1419 + 0.0946 cos A + 0.1166 sin A - 0.0303 cos C - 0.0701 sin C
y = 0.3863 + 0.1145 cos A - 0.0825 sin A - 0.0701 cos C + 0.0303 sin C
UT1-UTC = 0.0464 + 0.00010 (MJD - 60895) - (UT2-UT1)
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)
where A = 2*pi*(MJD-60887)/365.25 and C = 2*pi*(MJD-60887)/435.
where A = 2*pi*(MJD-60894)/365.25 and C = 2*pi*(MJD-60894)/435.
TAI-UTC(MJD 60888) = 37.0
TAI-UTC(MJD 60895) = 37.0
The accuracy may be estimated from the expressions:
S x,y = 0.00068 (MJD-60887)**0.80 S t = 0.00025 (MJD-60887)**0.75
S x,y = 0.00068 (MJD-60894)**0.80 S t = 0.00025 (MJD-60894)**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 1 60888 0.2101 0.4272 0.06205
2025 8 2 60889 0.2119 0.4263 0.06269
2025 8 3 60890 0.2133 0.4254 0.06357
2025 8 4 60891 0.2145 0.4244 0.06468
2025 8 5 60892 0.2156 0.4234 0.06594
2025 8 6 60893 0.2167 0.4224 0.06727
2025 8 7 60894 0.2177 0.4213 0.06856
2025 8 8 60895 0.2187 0.4202 0.06970
2025 8 9 60896 0.2197 0.4190 0.07060
2025 8 10 60897 0.2206 0.4177 0.07120
2025 8 11 60898 0.2215 0.4164 0.07146
2025 8 12 60899 0.2224 0.4152 0.07142
2025 8 13 60900 0.2232 0.4139 0.07120
2025 8 14 60901 0.2240 0.4127 0.07098
2025 8 15 60902 0.2248 0.4114 0.07091
2025 8 16 60903 0.2255 0.4101 0.07106
2025 8 17 60904 0.2262 0.4089 0.07146
2025 8 18 60905 0.2269 0.4076 0.07208
2025 8 19 60906 0.2275 0.4063 0.07281
2025 8 20 60907 0.2281 0.4049 0.07354
2025 8 21 60908 0.2286 0.4036 0.07414
2025 8 22 60909 0.2291 0.4023 0.07454
2025 8 23 60910 0.2296 0.4009 0.07474
2025 8 24 60911 0.2301 0.3996 0.07478
2025 8 25 60912 0.2305 0.3982 0.07473
2025 8 26 60913 0.2309 0.3968 0.07466
2025 8 27 60914 0.2313 0.3954 0.07467
2025 8 28 60915 0.2316 0.3941 0.07483
2025 8 29 60916 0.2320 0.3927 0.07516
2025 8 30 60917 0.2322 0.3913 0.07569
2025 8 31 60918 0.2325 0.3899 0.07639
2025 9 1 60919 0.2327 0.3885 0.07722
2025 9 2 60920 0.2330 0.3871 0.07811
2025 9 3 60921 0.2331 0.3857 0.07897
2025 9 4 60922 0.2333 0.3843 0.07971
2025 9 5 60923 0.2334 0.3828 0.08022
2025 9 6 60924 0.2335 0.3814 0.08044
2025 9 7 60925 0.2336 0.3800 0.08033
2025 9 8 60926 0.2336 0.3786 0.07993
2025 9 9 60927 0.2336 0.3772 0.07935
2025 9 10 60928 0.2336 0.3757 0.07876
2025 9 11 60929 0.2336 0.3743 0.07832
2025 9 12 60930 0.2335 0.3729 0.07814
2025 9 13 60931 0.2334 0.3715 0.07825
2025 9 14 60932 0.2333 0.3701 0.07859
2025 9 15 60933 0.2331 0.3686 0.07906
2025 9 16 60934 0.2329 0.3672 0.07952
2025 9 17 60935 0.2327 0.3658 0.07987
2025 9 18 60936 0.2325 0.3644 0.08003
2025 9 19 60937 0.2322 0.3630 0.07996
2025 9 20 60938 0.2319 0.3616 0.07969
2025 9 21 60939 0.2316 0.3602 0.07928
2025 9 22 60940 0.2313 0.3588 0.07881
2025 9 23 60941 0.2309 0.3574 0.07837
2025 9 24 60942 0.2305 0.3560 0.07804
2025 9 25 60943 0.2301 0.3546 0.07786
2025 9 26 60944 0.2297 0.3532 0.07787
2025 9 27 60945 0.2292 0.3518 0.07805
2025 9 28 60946 0.2287 0.3505 0.07838
2025 9 29 60947 0.2282 0.3491 0.07880
2025 9 30 60948 0.2276 0.3478 0.07924
2025 10 1 60949 0.2270 0.3464 0.07962
2025 10 2 60950 0.2264 0.3451 0.07983
2025 10 3 60951 0.2258 0.3438 0.07978
2025 10 4 60952 0.2252 0.3424 0.07944
2025 10 5 60953 0.2245 0.3411 0.07878
2025 10 6 60954 0.2238 0.3398 0.07790
2025 10 7 60955 0.2231 0.3386 0.07692
2025 10 8 60956 0.2223 0.3373 0.07603
2025 10 9 60957 0.2215 0.3360 0.07538
2025 10 10 60958 0.2207 0.3348 0.07506
2025 10 11 60959 0.2199 0.3335 0.07504
2025 10 12 60960 0.2191 0.3323 0.07523
2025 10 13 60961 0.2182 0.3311 0.07547
2025 10 14 60962 0.2173 0.3299 0.07564
2025 10 15 60963 0.2164 0.3287 0.07565
2025 10 16 60964 0.2155 0.3275 0.07545
2025 10 17 60965 0.2145 0.3263 0.07507
2025 10 18 60966 0.2136 0.3252 0.07454
2025 10 19 60967 0.2126 0.3241 0.07396
2025 10 20 60968 0.2116 0.3229 0.07339
2025 10 21 60969 0.2105 0.3218 0.07290
2025 10 22 60970 0.2095 0.3207 0.07257
2025 10 23 60971 0.2084 0.3197 0.07242
2025 10 24 60972 0.2073 0.3186 0.07246
2025 10 25 60973 0.2062 0.3176 0.07267
2025 10 26 60974 0.2050 0.3166 0.07299
2025 10 27 60975 0.2039 0.3156 0.07336
2025 10 28 60976 0.2027 0.3146 0.07370
2025 10 29 60977 0.2015 0.3136 0.07393
2025 10 30 60978 0.2003 0.3126 0.07395
2025 10 31 60979 0.1991 0.3117 0.07371
2025 11 1 60980 0.1979 0.3108 0.07317
2025 11 2 60981 0.1966 0.3099 0.07238
2025 11 3 60982 0.1953 0.3090 0.07144
2025 11 4 60983 0.1941 0.3082 0.07049
2025 11 5 60984 0.1928 0.3073 0.06970
2025 11 6 60985 0.1914 0.3065 0.06920
2025 11 7 60986 0.1901 0.3057 0.06903
2025 11 8 60987 0.1888 0.3050 0.06912
2025 11 9 60988 0.1874 0.3042 0.06933
2025 11 10 60989 0.1860 0.3035 0.06951
2025 11 11 60990 0.1847 0.3028 0.06956
2025 11 12 60991 0.1833 0.3021 0.06941
2025 11 13 60992 0.1819 0.3014 0.06907
2025 11 14 60993 0.1804 0.3008 0.06861
2025 11 15 60994 0.1790 0.3001 0.06809
2025 11 16 60995 0.1776 0.2995 0.06758
2025 11 17 60996 0.1761 0.2989 0.06707
2025 11 18 60997 0.1747 0.2984 0.06669
2025 11 19 60998 0.1732 0.2979 0.06650
2025 11 20 60999 0.1717 0.2973 0.06650
2025 11 21 61000 0.1702 0.2969 0.06668
2025 11 22 61001 0.1687 0.2964 0.06699
2025 11 23 61002 0.1672 0.2959 0.06738
2025 11 24 61003 0.1657 0.2955 0.06776
2025 11 25 61004 0.1642 0.2951 0.06806
2025 11 26 61005 0.1627 0.2948 0.06820
2025 11 27 61006 0.1612 0.2944 0.06812
2025 11 28 61007 0.1596 0.2941 0.06779
2025 11 29 61008 0.1581 0.2938 0.06722
2025 11 30 61009 0.1566 0.2935 0.06647
2025 12 1 61010 0.1550 0.2933 0.06567
2025 12 2 61011 0.1535 0.2930 0.06495
2025 12 3 61012 0.1519 0.2928 0.06445
2025 12 4 61013 0.1504 0.2926 0.06426
2025 12 5 61014 0.1488 0.2925 0.06435
2025 12 6 61015 0.1473 0.2924 0.06463
2025 12 7 61016 0.1457 0.2923 0.06493
2025 12 8 61017 0.1441 0.2922 0.06513
2025 12 9 61018 0.1426 0.2921 0.06512
2025 12 10 61019 0.1410 0.2921 0.06492
2025 12 11 61020 0.1395 0.2921 0.06456
2025 12 12 61021 0.1379 0.2921 0.06414
2025 12 13 61022 0.1364 0.2921 0.06372
2025 12 14 61023 0.1348 0.2922 0.06339
2025 12 15 61024 0.1333 0.2923 0.06320
2025 12 16 61025 0.1318 0.2924 0.06318
2025 12 17 61026 0.1302 0.2925 0.06335
2025 12 18 61027 0.1287 0.2927 0.06371
2025 12 19 61028 0.1272 0.2929 0.06421
2025 12 20 61029 0.1256 0.2931 0.06480
2025 12 21 61030 0.1241 0.2933 0.06540
2025 12 22 61031 0.1226 0.2936 0.06593
2025 12 23 61032 0.1211 0.2939 0.06631
2025 12 24 61033 0.1196 0.2942 0.06648
2025 12 25 61034 0.1181 0.2945 0.06642
2025 12 26 61035 0.1166 0.2948 0.06614
2025 12 27 61036 0.1152 0.2952 0.06567
2025 12 28 61037 0.1137 0.2956 0.06513
2025 12 29 61038 0.1122 0.2960 0.06463
2025 12 30 61039 0.1108 0.2965 0.06430
2025 12 31 61040 0.1094 0.2970 0.06422
2026 1 1 61041 0.1079 0.2974 0.06441
2026 1 2 61042 0.1065 0.2980 0.06480
2026 1 3 61043 0.1051 0.2985 0.06526
2026 1 4 61044 0.1037 0.2991 0.06565
2026 1 5 61045 0.1024 0.2996 0.06585
2026 1 6 61046 0.1010 0.3002 0.06581
2026 1 7 61047 0.0996 0.3009 0.06558
2026 1 8 61048 0.0983 0.3015 0.06522
2026 1 9 61049 0.0970 0.3022 0.06485
2026 1 10 61050 0.0957 0.3029 0.06455
2026 1 11 61051 0.0944 0.3036 0.06438
2026 1 12 61052 0.0931 0.3043 0.06439
2026 1 13 61053 0.0918 0.3051 0.06459
2026 1 14 61054 0.0906 0.3058 0.06498
2026 1 15 61055 0.0893 0.3066 0.06552
2026 1 16 61056 0.0881 0.3074 0.06616
2026 1 17 61057 0.0869 0.3083 0.06682
2026 1 18 61058 0.0858 0.3091 0.06743
2026 1 19 61059 0.0846 0.3100 0.06790
2026 1 20 61060 0.0834 0.3109 0.06816
2026 1 21 61061 0.0823 0.3118 0.06818
2026 1 22 61062 0.0812 0.3127 0.06797
2026 1 23 61063 0.0801 0.3136 0.06757
2026 1 24 61064 0.0791 0.3146 0.06710
2026 1 25 61065 0.0780 0.3156 0.06666
2026 1 26 61066 0.0770 0.3166 0.06637
2026 1 27 61067 0.0760 0.3176 0.06631
2026 1 28 61068 0.0750 0.3186 0.06653
2026 1 29 61069 0.0740 0.3196 0.06698
2026 1 30 61070 0.0731 0.3207 0.06754
2026 1 31 61071 0.0721 0.3218 0.06810
2026 2 1 61072 0.0712 0.3229 0.06853
2026 2 2 61073 0.0704 0.3240 0.06874
2026 2 3 61074 0.0695 0.3251 0.06875
2026 2 4 61075 0.0687 0.3262 0.06861
2026 2 5 61076 0.0678 0.3273 0.06843
2026 2 6 61077 0.0671 0.3285 0.06830
2026 2 7 61078 0.0663 0.3297 0.06830
2026 2 8 61079 0.0655 0.3309 0.06846
2026 2 9 61080 0.0648 0.3321 0.06880
2026 2 10 61081 0.0641 0.3333 0.06930
2026 2 11 61082 0.0635 0.3345 0.06993
2026 2 12 61083 0.0628 0.3357 0.07063
2026 2 13 61084 0.0622 0.3370 0.07134
2026 2 14 61085 0.0616 0.3382 0.07197
2026 2 15 61086 0.0610 0.3395 0.07244
2026 2 16 61087 0.0605 0.3407 0.07269
2026 2 17 61088 0.0599 0.3420 0.07266
2026 2 18 61089 0.0594 0.3433 0.07235
2026 2 19 61090 0.0590 0.3446 0.07181
2026 2 20 61091 0.0585 0.3459 0.07115
2026 2 21 61092 0.0581 0.3472 0.07049
2026 2 22 61093 0.0577 0.3485 0.06996
2026 2 23 61094 0.0573 0.3499 0.06966
2026 2 24 61095 0.0570 0.3512 0.06961
2026 2 25 61096 0.0567 0.3525 0.06978
2026 2 26 61097 0.0564 0.3539 0.07006
2026 2 27 61098 0.0561 0.3552 0.07033
2026 2 28 61099 0.0559 0.3566 0.07045
2026 3 1 61100 0.0557 0.3579 0.07033
2026 3 2 61101 0.0555 0.3593 0.06993
2026 3 3 61102 0.0553 0.3607 0.06927
2026 3 4 61103 0.0552 0.3620 0.06843
2026 3 5 61104 0.0551 0.3634 0.06752
2026 3 6 61105 0.0550 0.3648 0.06663
2026 3 7 61106 0.0550 0.3662 0.06588
2026 3 8 61107 0.0549 0.3675 0.06529
2026 3 9 61108 0.0549 0.3689 0.06488
2026 3 10 61109 0.0550 0.3703 0.06460
2026 3 11 61110 0.0550 0.3717 0.06447
2026 3 12 61111 0.0551 0.3731 0.06446
2026 3 13 61112 0.0552 0.3744 0.06443
2026 3 14 61113 0.0554 0.3758 0.06436
2026 3 15 61114 0.0555 0.3772 0.06408
2026 3 16 61115 0.0557 0.3786 0.06349
2026 3 17 61116 0.0559 0.3799 0.06259
2026 3 18 61117 0.0562 0.3813 0.06141
2026 3 19 61118 0.0564 0.3827 0.06005
2026 3 20 61119 0.0567 0.3840 0.05860
2026 3 21 61120 0.0570 0.3854 0.05727
2026 3 22 61121 0.0574 0.3867 0.05618
2026 3 23 61122 0.0577 0.3881 0.05536
2026 3 24 61123 0.0581 0.3894 0.05478
2026 3 25 61124 0.0586 0.3907 0.05438
2026 3 26 61125 0.0590 0.3921 0.05402
2026 3 27 61126 0.0595 0.3934 0.05356
2026 3 28 61127 0.0600 0.3947 0.05298
2026 3 29 61128 0.0605 0.3960 0.05224
2026 3 30 61129 0.0610 0.3973 0.05131
2026 3 31 61130 0.0616 0.3986 0.05030
2026 4 1 61131 0.0622 0.3999 0.04920
2026 4 2 61132 0.0628 0.4012 0.04819
2026 4 3 61133 0.0635 0.4024 0.04731
2026 4 4 61134 0.0641 0.4037 0.04672
2026 4 5 61135 0.0648 0.4050 0.04635
2026 4 6 61136 0.0656 0.4062 0.04618
2026 4 7 61137 0.0663 0.4074 0.04628
2026 4 8 61138 0.0671 0.4086 0.04646
2026 4 9 61139 0.0678 0.4098 0.04671
2026 4 10 61140 0.0686 0.4110 0.04691
2026 4 11 61141 0.0695 0.4122 0.04694
2026 4 12 61142 0.0703 0.4134 0.04670
2026 4 13 61143 0.0712 0.4145 0.04619
2026 4 14 61144 0.0721 0.4157 0.04540
2026 4 15 61145 0.0730 0.4168 0.04436
2026 4 16 61146 0.0739 0.4179 0.04323
2026 4 17 61147 0.0749 0.4190 0.04215
2026 4 18 61148 0.0759 0.4201 0.04125
2026 4 19 61149 0.0768 0.4211 0.04060
2026 4 20 61150 0.0779 0.4222 0.04022
2026 4 21 61151 0.0789 0.4232 0.04012
2026 4 22 61152 0.0799 0.4242 0.04007
2026 4 23 61153 0.0810 0.4253 0.03998
2026 4 24 61154 0.0821 0.4262 0.03981
2026 4 25 61155 0.0832 0.4272 0.03945
2026 4 26 61156 0.0843 0.4282 0.03896
2026 4 27 61157 0.0855 0.4291 0.03839
2026 4 28 61158 0.0866 0.4300 0.03777
2026 4 29 61159 0.0878 0.4309 0.03717
2026 4 30 61160 0.0890 0.4318 0.03670
2026 5 1 61161 0.0902 0.4327 0.03647
2026 5 2 61162 0.0914 0.4335 0.03650
2026 5 3 61163 0.0927 0.4343 0.03671
2026 5 4 61164 0.0939 0.4351 0.03710
2026 5 5 61165 0.0952 0.4359 0.03768
2026 5 6 61166 0.0965 0.4367 0.03826
2026 5 7 61167 0.0978 0.4374 0.03880
2026 5 8 61168 0.0991 0.4382 0.03926
2026 5 9 61169 0.1004 0.4389 0.03960
2026 5 10 61170 0.1017 0.4396 0.03969
2026 5 11 61171 0.1030 0.4402 0.03958
2026 5 12 61172 0.1044 0.4409 0.03924
2026 5 13 61173 0.1058 0.4415 0.03874
2026 5 14 61174 0.1071 0.4421 0.03822
2026 5 15 61175 0.1085 0.4427 0.03781
2026 5 16 61176 0.1099 0.4432 0.03762
2026 5 17 61177 0.1113 0.4438 0.03770
2026 5 18 61178 0.1127 0.4443 0.03797
2026 5 19 61179 0.1141 0.4448 0.03848
2026 5 20 61180 0.1156 0.4453 0.03905
2026 5 21 61181 0.1170 0.4457 0.03952
2026 5 22 61182 0.1185 0.4461 0.03983
2026 5 23 61183 0.1199 0.4465 0.03997
2026 5 24 61184 0.1214 0.4469 0.03987
2026 5 25 61185 0.1228 0.4473 0.03969
2026 5 26 61186 0.1243 0.4476 0.03958
2026 5 27 61187 0.1257 0.4479 0.03953
2026 5 28 61188 0.1272 0.4482 0.03962
2026 5 29 61189 0.1287 0.4485 0.03986
2026 5 30 61190 0.1302 0.4487 0.04031
2026 5 31 61191 0.1317 0.4489 0.04088
2026 6 1 61192 0.1331 0.4491 0.04159
2026 6 2 61193 0.1346 0.4493 0.04244
2026 6 3 61194 0.1361 0.4494 0.04341
2026 6 4 61195 0.1376 0.4496 0.04430
2026 6 5 61196 0.1391 0.4497 0.04511
2026 6 6 61197 0.1406 0.4497 0.04574
2026 6 7 61198 0.1421 0.4498 0.04612
2026 6 8 61199 0.1436 0.4498 0.04627
2026 6 9 61200 0.1451 0.4498 0.04633
2026 6 10 61201 0.1465 0.4498 0.04635
2026 6 11 61202 0.1480 0.4498 0.04643
2026 6 12 61203 0.1495 0.4497 0.04676
2026 6 13 61204 0.1510 0.4496 0.04741
2026 6 14 61205 0.1525 0.4495 0.04834
2026 6 15 61206 0.1539 0.4494 0.04956
2026 6 16 61207 0.1554 0.4492 0.05075
2026 6 17 61208 0.1568 0.4490 0.05178
2026 6 18 61209 0.1583 0.4488 0.05255
2026 6 19 61210 0.1597 0.4486 0.05301
2026 6 20 61211 0.1612 0.4483 0.05328
2026 6 21 61212 0.1626 0.4481 0.05345
2026 6 22 61213 0.1640 0.4478 0.05361
2026 6 23 61214 0.1655 0.4474 0.05393
2026 6 24 61215 0.1669 0.4471 0.05442
2026 6 25 61216 0.1683 0.4467 0.05512
2026 6 26 61217 0.1697 0.4463 0.05611
2026 6 27 61218 0.1711 0.4459 0.05729
2026 6 28 61219 0.1724 0.4455 0.05868
2026 6 29 61220 0.1738 0.4450 0.06008
2026 6 30 61221 0.1751 0.4446 0.06159
2026 7 1 61222 0.1765 0.4441 0.06300
2026 7 2 61223 0.1778 0.4435 0.06426
2026 7 3 61224 0.1791 0.4430 0.06534
2026 7 4 61225 0.1804 0.4424 0.06625
2026 7 5 61226 0.1817 0.4418 0.06692
2026 7 6 61227 0.1830 0.4412 0.06750
2026 7 7 61228 0.1843 0.4406 0.06802
2026 7 8 61229 0.1855 0.4400 0.06856
2026 7 9 61230 0.1868 0.4393 0.06919
2026 7 10 61231 0.1880 0.4386 0.06998
2026 7 11 61232 0.1892 0.4379 0.07112
2026 7 12 61233 0.1904 0.4372 0.07248
2026 7 13 61234 0.1916 0.4364 0.07398
2026 7 14 61235 0.1927 0.4357 0.07539
2026 7 15 61236 0.1939 0.4349 0.07656
2026 7 16 61237 0.1950 0.4341 0.07751
2026 7 17 61238 0.1961 0.4333 0.07821
2026 7 18 61239 0.1972 0.4324 0.07881
2026 7 19 61240 0.1983 0.4316 0.07932
2026 7 20 61241 0.1993 0.4307 0.07987
2026 7 21 61242 0.2003 0.4298 0.08067
2026 7 22 61243 0.2014 0.4289 0.08162
2026 7 23 61244 0.2024 0.4280 0.08281
2026 7 24 61245 0.2033 0.4271 0.08417
2026 7 25 61246 0.2043 0.4261 0.08568
2026 7 26 61247 0.2052 0.4251 0.08728
2026 7 27 61248 0.2061 0.4242 0.08887
2026 7 28 61249 0.2070 0.4232 0.09042
2026 7 29 61250 0.2079 0.4221 0.09183
2026 7 30 61251 0.2088 0.4211 0.09304
2026 7 31 61252 0.2096 0.4201 0.09407
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
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)
60865 -116.77 0.98 -11.24 0.21
60866 -116.93 0.98 -11.18 0.21
60867 -116.98 0.98 -10.97 0.21
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)
60865 0.402 0.390 -0.210 0.213
60866 0.393 0.390 -0.229 0.213
60867 0.382 0.390 -0.247 0.213
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
)--";

View File

@ -49,7 +49,10 @@ namespace mcc
struct MccSimpleGuidingModelCategory : public std::error_category {
MccSimpleGuidingModelCategory() : std::error_category() {}
const char* name() const noexcept { return "ADC_GENERIC_DEVICE"; }
const char* name() const noexcept
{
return "ADC_GENERIC_DEVICE";
}
std::string message(int ec) const
{
@ -169,13 +172,27 @@ public:
}
error_t guiding(guiding_point_t guiding_point) { return _guidingFunc(std::move(guiding_point)); }
error_t guiding(guiding_point_t guiding_point)
{
return _guidingFunc(std::move(guiding_point));
}
error_t stopGuiding(bool off) { _doCorrection = off; }
error_t stopGuiding(bool off)
{
_doCorrection = off;
bool inGuiding() { return _doCorrection; }
return MccSimpleGuidingModelErrorCode::ERROR_OK;
}
error_t stop() { return MccSimpleGuidingModelErrorCode::ERROR_OK; }
bool inGuiding()
{
return _doCorrection;
}
error_t stop()
{
return MccSimpleGuidingModelErrorCode::ERROR_OK;
}
protected:
std::function<error_t(guiding_point_t)> _guidingFunc{};
@ -184,7 +201,7 @@ protected:
error_t init(auto* p_telemetry, auto* p_hardware, auto* p_prohibited_zones)
void init(auto* p_telemetry, auto* p_hardware, auto* p_prohibited_zones)
{
// deduce controls types
// deduce controls types

View File

@ -1,8 +1,11 @@
#pragma once
/* MOUNT CONTROL COMPONENTS LIBRARY */
/* PROHIBITED ZONE IMPLEMENTATION */
/* MOUNT CONTROL COMPONENTS LIBRARY */
/* PROHIBITED ZONE IMPLEMENTATION */
#include <chrono>
#include <string_view>
@ -37,7 +40,8 @@ public:
static constexpr MccAltLimitKind altLimitKind = KIND;
typedef MccAngle coord_t;
typedef double coord_t;
// typedef MccAngle coord_t;
// floating-point time duration (seconds)
typedef std::chrono::duration<double> duration_t;
@ -53,9 +57,10 @@ public:
: _altLimit(alt_limit), _latitude(lat), _abs_lat(std::abs(_latitude)), _lat_lim(pi2 - _abs_lat)
{
_lat_lim = pi2 - _abs_lat;
_altLimit.normalize<MccAngle::NORM_KIND_90_90>();
// _altLimit.normalize<MccAngle::NORM_KIND_90_90>();
_altLimit = MccAngle(_altLimit).normalize<MccAngle::NORM_KIND_90_90>();
using astrom_engine_t = decltype(*astrom_engine);
using astrom_engine_t = std::remove_cvref_t<decltype(*astrom_engine)>;
using astrom_coord_t = typename astrom_engine_t::coord_t;
static_assert(std::convertible_to<coord_t, astrom_coord_t>,
@ -212,25 +217,32 @@ public:
double cos_ha =
(std::sin(_altLimit) - std::sin(dec) * std::sin(_latitude)) / std::cos(dec) / std::cos(_latitude);
if (cos_ha > 1.0) { // no intersection
// compute culmination points?
return false;
}
double cosA = -sin(dec) * std::cos(_latitude) + std::cos(dec) * std::sin(_latitude) * cos_ha;
double cosA = -std::sin(dec) * std::cos(_latitude) + std::cos(dec) * std::sin(_latitude) * cos_ha;
cosA /= std::cos(_altLimit);
double sinA = std::cos(dec) * sqrt(1.0 - cos_ha * cos_ha) / cos(_altLimit);
if constexpr (KIND ==
MccAltLimitKind::MIN_ALT_LIMIT) { // the closest time point is one after upper culmination
az = std::acos(cosA);
az = -std::acos(cosA);
// az = atan2(cosA, sinA);
} else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { // the closest time point is one before upper
// culmination
az = -std::acos(cosA);
az = std::acos(cosA);
// az = atan2(cosA, sinA);
}
_coord2coord(MccCoordPairKind::COORDS_KIND_AZALT, az, _altLimit, target.time_point, int_point.coordPairKind,
int_point.x, int_point.y);
int_point.x = az;
return true;
}
@ -238,7 +250,7 @@ private:
coord_t _altLimit, _latitude, _abs_lat, _lat_lim;
// wrapper function
std::function<coord_t(MccCoordPairKind, coord_t, coord_t, time_point_t, MccCoordPairKind, coord_t&, coord_t&)>
std::function<void(MccCoordPairKind, coord_t, coord_t, time_point_t, MccCoordPairKind, coord_t&, coord_t&)>
_coord2coord{};
bool doesObjectReachZone(const coord_t& dec_app)
@ -322,7 +334,8 @@ private:
time_ang /= mcc_sideral_to_UT1_ratio; // to UT1 time scale
return duration_t{time_ang.seconds()};
return duration_t{MccAngle(time_ang).seconds()};
// return duration_t{time_ang.seconds()};
}
duration_t compute(traits::mcc_mount_telemetry_data_c auto const& telemetry_data, bool before_upper_culm)

View File

@ -19,7 +19,10 @@ enum class MccMountTelemetryErrorCode : int { ERROR_OK, ERROR_HARDWARE, ERROR_DA
struct MccMountTelemetryCategory : public std::error_category {
MccMountTelemetryCategory() : std::error_category() {}
const char* name() const noexcept { return "ADC_GENERIC_DEVICE"; }
const char* name() const noexcept
{
return "ADC_GENERIC_DEVICE";
}
std::string message(int ec) const
{
@ -369,10 +372,10 @@ namespace traits
template <typename T>
concept mcc_mount_default_telemetry_c = requires {
mcc_astrom_engine_c<typename T::astrom_engine_t>;
mcc_mount_pec_c<typename T::pec_t>;
mcc_mount_hardware_c<typename T::hardware_t>;
mcc_mount_telemetry_data_c<typename T::mount_telemetry_data_t>;
requires mcc_astrom_engine_c<typename T::astrom_engine_t>;
requires mcc_mount_pec_c<typename T::pec_t>;
requires mcc_mount_hardware_c<typename T::hardware_t>;
requires mcc_mount_telemetry_data_c<typename T::mount_telemetry_data_t>;
requires std::derived_from<T, mcc::MccMountTelemetry<typename T::astrom_engine_t, typename T::pec_t,
typename T::hardware_t, typename T::mount_telemetry_data_t>>;

View File

@ -163,6 +163,8 @@ int main(int argc, char* argv[])
// std::cout << "\n\n\n\n";
auto as_sgs = [](double v, bool hms = false) { return mcc::MccAngle(v).sexagesimal(hms); };
using engine_t = mcc::astrom::erfa::MccMountAstromEngineERFA;
engine_t::engine_state_t state;
state.lon = 41.440732_degs;
@ -171,8 +173,8 @@ int main(int argc, char* argv[])
state.meteo = {10.0, 0.5, 1010.0};
std::cout << "LON = " << state.lon.sexagesimal() << "\n";
std::cout << "LAT = " << state.lat.sexagesimal() << "\n\n";
std::cout << "LON = " << mcc::MccAngle(state.lon).sexagesimal() << "\n";
std::cout << "LAT = " << mcc::MccAngle(state.lat).sexagesimal() << "\n\n";
engine_t erfa(state);
engine_t::juldate_t jd{60861.72};
@ -181,38 +183,38 @@ int main(int argc, char* argv[])
erfa.greg2jul(now, jd);
std::cout << "MJD(" << now << ") = " << jd.mjd << "\n";
mcc::MccAngle lst;
double lst;
erfa.apparentSiderTime(jd, lst, true);
std::cout << "LST(MJD = " << jd.mjd << ") = " << lst.sexagesimal(true) << "\n\n";
std::cout << "LST(MJD = " << jd.mjd << ") = " << mcc::MccAngle(lst).sexagesimal(true) << "\n\n";
// mcc::MccAngle ra1{"10:00:00", mcc::mcc_hms}, dec1{"68:25:10.43"}, ra_o, dec_o, ha1, az1, alt1;
mcc::MccAngle ra1{"5:00:00", mcc::mcc_hms}, dec1{"38:25:10.43"}, ra_o, dec_o, ha1, az1, alt1;
mcc::MccAngle eor;
mcc::MccAngle ra1{"5:00:00", mcc::mcc_hms}, dec1{"38:25:10.43"};
double ra_o, dec_o, ha1, az1, alt1, eor;
std::cout << "RA = " << ra1.sexagesimal(true) << ", DEC = " << dec1.sexagesimal() << "\n";
auto res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor);
std::cout << "eq of origins (from icrs2obs) = " << eor.sexagesimal(true) << "\n";
std::cout << "eq of origins (from icrs2obs) = " << mcc::MccAngle(eor).sexagesimal(true) << "\n";
std::cout << "ret code (icrs2obs) = " << res.message() << "\n";
std::cout << "alt = " << alt1.sexagesimal() << "\n";
std::cout << "az = " << az1.sexagesimal() << "\n";
std::cout << "alt = " << mcc::MccAngle(alt1).sexagesimal() << "\n";
std::cout << "az = " << mcc::MccAngle(az1).sexagesimal() << "\n";
std::cout << "HA_app = " << ha1.sexagesimal(true) << "\n";
std::cout << "RA_app = " << ra_o.sexagesimal(true) << "\n";
std::cout << "DEC_app = " << dec_o.sexagesimal() << "\n";
std::cout << "HA_app = " << mcc::MccAngle(ha1).sexagesimal(true) << "\n";
std::cout << "RA_app = " << mcc::MccAngle(ra_o).sexagesimal(true) << "\n";
std::cout << "DEC_app = " << mcc::MccAngle(dec_o).sexagesimal() << "\n";
res = erfa.eqOrigins(jd, eor);
std::cout << "eq of origins (from eqOrigins) = " << eor.sexagesimal(true) << "\n";
std::cout << "RA_app_comp = " << (lst - ha1 + eor).sexagesimal(true) << "\n";
std::cout << "eq of origins (from eqOrigins) = " << mcc::MccAngle(eor).sexagesimal(true) << "\n";
std::cout << "RA_app_comp = " << mcc::MccAngle(lst - ha1 + eor).sexagesimal(true) << "\n";
std::cout << "\n\n\n\n";
mcc::MccMinAltPZ minalt_pz(10.0_degs, state.lat);
mcc::MccMaxAltPZ maxalt_pz(85.0_degs, state.lat);
mcc::MccMinAltPZ minalt_pz(10.0_degs, state.lat, &erfa);
mcc::MccMaxAltPZ maxalt_pz(85.0_degs, state.lat, &erfa);
// tel_data_t tdata{std::chrono::system_clock::now(), ra_o, dec_o, ha1, az1, alt1, 0.0, 0.0, 0.0, 0.0};
mcc::MccMountTelemetryData<engine_t> tdata{.time_point = engine_t::timePointNow(),
@ -247,12 +249,12 @@ int main(int argc, char* argv[])
dec1 = "40:25:10.43"_dms;
res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor);
std::cout << "ret code (icrs2obs) = " << res.message() << "\n";
std::cout << "alt = " << alt1.sexagesimal() << "\n";
std::cout << "az = " << az1.sexagesimal() << "\n";
std::cout << "alt = " << as_sgs(alt1) << "\n";
std::cout << "az = " << as_sgs(az1) << "\n";
std::cout << "HA_app = " << ha1.sexagesimal(true) << "\n";
std::cout << "RA_app = " << ra_o.sexagesimal(true) << "\n";
std::cout << "DEC_app = " << dec_o.sexagesimal() << "\n";
std::cout << "HA_app = " << as_sgs(ha1, true) << "\n";
std::cout << "RA_app = " << as_sgs(ra_o, true) << "\n";
std::cout << "DEC_app = " << as_sgs(dec_o) << "\n";
// tdata = {std::chrono::system_clock::now(), ra_o, dec_o, ha1, az1, alt1, 0.0, 0.0, 0.0, 0.0};
@ -265,7 +267,7 @@ int main(int argc, char* argv[])
jd.mjd += 1.0;
res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor);
std::cout << "RA_app (+24h) = " << ra_o.sexagesimal(true) << "\n";
std::cout << "RA_app (+24h) = " << as_sgs(ra_o, true) << "\n";
tm = maxalt_pz.timeTo(tdata);
if (std::isinf(tm.count())) {
@ -285,10 +287,35 @@ int main(int argc, char* argv[])
std::cout << "(MAXALT) time from zone: " << std::chrono::hh_mm_ss(tm) << " (" << now1 << ")\n";
}
struct cp_t {
typedef double coord_t;
typedef std::chrono::system_clock::time_point time_point_t;
mcc::MccCoordPairKind coordPairKind;
std::chrono::system_clock::time_point time_point;
double x, y;
};
cp_t tcp{.coordPairKind = mcc::MccCoordPairKind::COORDS_KIND_RADEC_ICRS,
.time_point = engine_t::timePointNow(),
.x = "17:00:00"_hms,
.y = "40:25:10.43"_dms},
icp{.coordPairKind = mcc::MccCoordPairKind::COORDS_KIND_AZALT};
// bool ok = minalt_pz.intersectPoint(tcp, icp);
bool ok = maxalt_pz.intersectPoint(tcp, icp);
std::cout << "\nINTERSECT Az = " << as_sgs(icp.x) << "\n";
std::cout << "INTERSECT Alt = " << as_sgs(icp.y) << "\n";
ra_o = 1.0;
dec_o = 2.0;
ha1 = ra_o * dec_o;
std::cout << "mult: " << ha1.degrees() << "\n";
std::cout << "mult: " << mcc::MccAngle(ha1).degrees() << "\n";
return ecode;
}