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) set(ERFA_INCLUDE_DIR ${CMAKE_BINARY_DIR}/erfa_lib)
include_directories(${ERFA_INCLUDE_DIR}) include_directories(${ERFA_INCLUDE_DIR})
message(STATUS "ERFA: " ${ERFA_INCLUDE_DIR})
option(WITH_TESTS "Build tests" ON) 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) set(MCC_LIBRARY mcc)
add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC}) add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC})
target_compile_features(${MCC_LIBRARY} INTERFACE cxx_std_23) 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_SRC asibfm700_common.h asibfm700_hardware.h asibfm700_hardware.cpp asibfm700_mount.h asibfm700_mount.cpp
set(ASIBFM700_LIB asibfm700)
add_library(${ASIBFM700_LIB} STATIC ${ASIBFM700_LIB_SRC}
asibfm700_mount.h asibfm700_mount.cpp
asibfm700_config.h) 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 # 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) # 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) set(ASTROM_TEST_APP astrom_test)
add_executable(${ASTROM_TEST_APP} tests/astrom_test.cpp) 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) target_link_libraries(${ASTROM_TEST_APP} ERFA_LIB)
set(FITPACK_TEST_APP fitpack_test) 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 * * Rapid Service/Prediction of Earth Orientation *
********************************************************************** **********************************************************************
31 July 2025 Vol. XXXVIII No. 031 7 August 2025 Vol. XXXVIII No. 032
______________________________________________________________________ ______________________________________________________________________
GENERAL INFORMATION: GENERAL INFORMATION:
MJD = Julian Date - 2 400 000.5 days 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 IERS Rapid Service
MJD x error y error UT1-UTC error MJD x error y error UT1-UTC error
" " " " s s " " " " s s
25 7 25 60881 0.19849 .00009 0.43231 .00009 0.060664 0.000023 25 8 1 60888 0.21017 .00009 0.42717 .00009 0.062125 0.000021
25 7 26 60882 0.19962 .00009 0.43171 .00009 0.061061 0.000018 25 8 2 60889 0.21181 .00009 0.42627 .00009 0.062752 0.000019
25 7 27 60883 0.20063 .00009 0.43095 .00009 0.061275 0.000018 25 8 3 60890 0.21302 .00009 0.42504 .00009 0.063645 0.000016
25 7 28 60884 0.20201 .00009 0.43031 .00009 0.061376 0.000016 25 8 4 60891 0.21368 .00009 0.42383 .00009 0.064781 0.000010
25 7 29 60885 0.20393 .00009 0.42977 .00009 0.061481 0.000016 25 8 5 60892 0.21398 .00009 0.42271 .00009 0.066047 0.000009
25 7 30 60886 0.20609 .00009 0.42900 .00009 0.061552 0.000012 25 8 6 60893 0.21437 .00009 0.42152 .00009 0.067348 0.000008
25 7 31 60887 0.20824 .00009 0.42803 .00009 0.061682 0.000006 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, The following formulas will not reproduce the predictions given below,
but may be used to extend the predictions beyond the end of this table. 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 x = 0.1420 + 0.1046 cos A + 0.1043 sin A - 0.0336 cos C - 0.0648 sin C
y = 0.3863 + 0.1145 cos A - 0.0825 sin A - 0.0701 cos C + 0.0303 sin C y = 0.3838 + 0.1044 cos A - 0.0915 sin A - 0.0648 cos C + 0.0336 sin C
UT1-UTC = 0.0464 + 0.00010 (MJD - 60895) - (UT2-UT1) 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: 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 Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d
Polar coord's 0.004 0.007 0.010 0.013 Polar coord's 0.004 0.007 0.010 0.013
UT1-UTC 0.0014 0.0024 0.0032 0.0040 UT1-UTC 0.0014 0.0024 0.0032 0.0040
MJD x(arcsec) y(arcsec) UT1-UTC(sec) MJD x(arcsec) y(arcsec) UT1-UTC(sec)
2025 8 1 60888 0.2101 0.4272 0.06205 2025 8 8 60895 0.2155 0.4191 0.06979
2025 8 2 60889 0.2119 0.4263 0.06269 2025 8 9 60896 0.2161 0.4179 0.07073
2025 8 3 60890 0.2133 0.4254 0.06357 2025 8 10 60897 0.2169 0.4167 0.07137
2025 8 4 60891 0.2145 0.4244 0.06468 2025 8 11 60898 0.2176 0.4154 0.07173
2025 8 5 60892 0.2156 0.4234 0.06594 2025 8 12 60899 0.2184 0.4142 0.07190
2025 8 6 60893 0.2167 0.4224 0.06727 2025 8 13 60900 0.2191 0.4130 0.07200
2025 8 7 60894 0.2177 0.4213 0.06856 2025 8 14 60901 0.2198 0.4117 0.07218
2025 8 8 60895 0.2187 0.4202 0.06970 2025 8 15 60902 0.2204 0.4105 0.07254
2025 8 9 60896 0.2197 0.4190 0.07060 2025 8 16 60903 0.2210 0.4094 0.07316
2025 8 10 60897 0.2206 0.4177 0.07120 2025 8 17 60904 0.2216 0.4082 0.07403
2025 8 11 60898 0.2215 0.4164 0.07146 2025 8 18 60905 0.2222 0.4070 0.07507
2025 8 12 60899 0.2224 0.4152 0.07142 2025 8 19 60906 0.2227 0.4058 0.07619
2025 8 13 60900 0.2232 0.4139 0.07120 2025 8 20 60907 0.2232 0.4046 0.07725
2025 8 14 60901 0.2240 0.4127 0.07098 2025 8 21 60908 0.2237 0.4033 0.07814
2025 8 15 60902 0.2248 0.4114 0.07091 2025 8 22 60909 0.2242 0.4021 0.07878
2025 8 16 60903 0.2255 0.4101 0.07106 2025 8 23 60910 0.2247 0.4008 0.07912
2025 8 17 60904 0.2262 0.4089 0.07146 2025 8 24 60911 0.2251 0.3995 0.07921
2025 8 18 60905 0.2269 0.4076 0.07208 2025 8 25 60912 0.2255 0.3983 0.07914
2025 8 19 60906 0.2275 0.4063 0.07281 2025 8 26 60913 0.2259 0.3970 0.07899
2025 8 20 60907 0.2281 0.4049 0.07354 2025 8 27 60914 0.2263 0.3957 0.07887
2025 8 21 60908 0.2286 0.4036 0.07414 2025 8 28 60915 0.2266 0.3944 0.07884
2025 8 22 60909 0.2291 0.4023 0.07454 2025 8 29 60916 0.2269 0.3931 0.07898
2025 8 23 60910 0.2296 0.4009 0.07474 2025 8 30 60917 0.2272 0.3918 0.07930
2025 8 24 60911 0.2301 0.3996 0.07478 2025 8 31 60918 0.2275 0.3905 0.07979
2025 8 25 60912 0.2305 0.3982 0.07473 2025 9 1 60919 0.2278 0.3892 0.08042
2025 8 26 60913 0.2309 0.3968 0.07466 2025 9 2 60920 0.2280 0.3879 0.08112
2025 8 27 60914 0.2313 0.3954 0.07467 2025 9 3 60921 0.2282 0.3865 0.08182
2025 8 28 60915 0.2316 0.3941 0.07483 2025 9 4 60922 0.2283 0.3852 0.08242
2025 8 29 60916 0.2320 0.3927 0.07516 2025 9 5 60923 0.2285 0.3839 0.08283
2025 8 30 60917 0.2322 0.3913 0.07569 2025 9 6 60924 0.2286 0.3825 0.08295
2025 8 31 60918 0.2325 0.3899 0.07639 2025 9 7 60925 0.2287 0.3812 0.08277
2025 9 1 60919 0.2327 0.3885 0.07722 2025 9 8 60926 0.2287 0.3799 0.08232
2025 9 2 60920 0.2330 0.3871 0.07811 2025 9 9 60927 0.2287 0.3785 0.08173
2025 9 3 60921 0.2331 0.3857 0.07897 2025 9 10 60928 0.2288 0.3772 0.08114
2025 9 4 60922 0.2333 0.3843 0.07971 2025 9 11 60929 0.2287 0.3758 0.08072
2025 9 5 60923 0.2334 0.3828 0.08022 2025 9 12 60930 0.2287 0.3745 0.08056
2025 9 6 60924 0.2335 0.3814 0.08044 2025 9 13 60931 0.2286 0.3731 0.08070
2025 9 7 60925 0.2336 0.3800 0.08033 2025 9 14 60932 0.2285 0.3718 0.08108
2025 9 8 60926 0.2336 0.3786 0.07993 2025 9 15 60933 0.2284 0.3705 0.08159
2025 9 9 60927 0.2336 0.3772 0.07935 2025 9 16 60934 0.2282 0.3691 0.08209
2025 9 10 60928 0.2336 0.3757 0.07876 2025 9 17 60935 0.2281 0.3678 0.08247
2025 9 11 60929 0.2336 0.3743 0.07832 2025 9 18 60936 0.2279 0.3664 0.08265
2025 9 12 60930 0.2335 0.3729 0.07814 2025 9 19 60937 0.2276 0.3651 0.08260
2025 9 13 60931 0.2334 0.3715 0.07825 2025 9 20 60938 0.2274 0.3638 0.08234
2025 9 14 60932 0.2333 0.3701 0.07859 2025 9 21 60939 0.2271 0.3624 0.08194
2025 9 15 60933 0.2331 0.3686 0.07906 2025 9 22 60940 0.2268 0.3611 0.08146
2025 9 16 60934 0.2329 0.3672 0.07952 2025 9 23 60941 0.2264 0.3598 0.08101
2025 9 17 60935 0.2327 0.3658 0.07987 2025 9 24 60942 0.2261 0.3585 0.08064
2025 9 18 60936 0.2325 0.3644 0.08003 2025 9 25 60943 0.2257 0.3571 0.08042
2025 9 19 60937 0.2322 0.3630 0.07996 2025 9 26 60944 0.2253 0.3558 0.08037
2025 9 20 60938 0.2319 0.3616 0.07969 2025 9 27 60945 0.2248 0.3545 0.08049
2025 9 21 60939 0.2316 0.3602 0.07928 2025 9 28 60946 0.2244 0.3532 0.08076
2025 9 22 60940 0.2313 0.3588 0.07881 2025 9 29 60947 0.2239 0.3520 0.08112
2025 9 23 60941 0.2309 0.3574 0.07837 2025 9 30 60948 0.2234 0.3507 0.08148
2025 9 24 60942 0.2305 0.3560 0.07804 2025 10 1 60949 0.2228 0.3494 0.08177
2025 9 25 60943 0.2301 0.3546 0.07786 2025 10 2 60950 0.2223 0.3481 0.08189
2025 9 26 60944 0.2297 0.3532 0.07787 2025 10 3 60951 0.2217 0.3469 0.08176
2025 9 27 60945 0.2292 0.3518 0.07805 2025 10 4 60952 0.2211 0.3456 0.08133
2025 9 28 60946 0.2287 0.3505 0.07838 2025 10 5 60953 0.2204 0.3444 0.08059
2025 9 29 60947 0.2282 0.3491 0.07880 2025 10 6 60954 0.2198 0.3431 0.07962
2025 9 30 60948 0.2276 0.3478 0.07924 2025 10 7 60955 0.2191 0.3419 0.07856
2025 10 1 60949 0.2270 0.3464 0.07962 2025 10 8 60956 0.2184 0.3407 0.07759
2025 10 2 60950 0.2264 0.3451 0.07983 2025 10 9 60957 0.2177 0.3395 0.07687
2025 10 3 60951 0.2258 0.3438 0.07978 2025 10 10 60958 0.2169 0.3383 0.07647
2025 10 4 60952 0.2252 0.3424 0.07944 2025 10 11 60959 0.2161 0.3371 0.07637
2025 10 5 60953 0.2245 0.3411 0.07878 2025 10 12 60960 0.2153 0.3360 0.07648
2025 10 6 60954 0.2238 0.3398 0.07790 2025 10 13 60961 0.2145 0.3348 0.07665
2025 10 7 60955 0.2231 0.3386 0.07692 2025 10 14 60962 0.2137 0.3337 0.07674
2025 10 8 60956 0.2223 0.3373 0.07603 2025 10 15 60963 0.2128 0.3325 0.07667
2025 10 9 60957 0.2215 0.3360 0.07538 2025 10 16 60964 0.2119 0.3314 0.07640
2025 10 10 60958 0.2207 0.3348 0.07506 2025 10 17 60965 0.2110 0.3303 0.07594
2025 10 11 60959 0.2199 0.3335 0.07504 2025 10 18 60966 0.2101 0.3292 0.07535
2025 10 12 60960 0.2191 0.3323 0.07523 2025 10 19 60967 0.2092 0.3281 0.07470
2025 10 13 60961 0.2182 0.3311 0.07547 2025 10 20 60968 0.2082 0.3271 0.07405
2025 10 14 60962 0.2173 0.3299 0.07564 2025 10 21 60969 0.2072 0.3260 0.07350
2025 10 15 60963 0.2164 0.3287 0.07565 2025 10 22 60970 0.2062 0.3250 0.07310
2025 10 16 60964 0.2155 0.3275 0.07545 2025 10 23 60971 0.2052 0.3240 0.07289
2025 10 17 60965 0.2145 0.3263 0.07507 2025 10 24 60972 0.2041 0.3230 0.07287
2025 10 18 60966 0.2136 0.3252 0.07454 2025 10 25 60973 0.2031 0.3220 0.07302
2025 10 19 60967 0.2126 0.3241 0.07396 2025 10 26 60974 0.2020 0.3210 0.07329
2025 10 20 60968 0.2116 0.3229 0.07339 2025 10 27 60975 0.2009 0.3200 0.07360
2025 10 21 60969 0.2105 0.3218 0.07290 2025 10 28 60976 0.1998 0.3191 0.07388
2025 10 22 60970 0.2095 0.3207 0.07257 2025 10 29 60977 0.1986 0.3182 0.07405
2025 10 23 60971 0.2084 0.3197 0.07242 2025 10 30 60978 0.1975 0.3173 0.07402
2025 10 24 60972 0.2073 0.3186 0.07246 2025 10 31 60979 0.1963 0.3164 0.07372
2025 10 25 60973 0.2062 0.3176 0.07267 2025 11 1 60980 0.1951 0.3155 0.07315
2025 10 26 60974 0.2050 0.3166 0.07299 2025 11 2 60981 0.1939 0.3147 0.07232
2025 10 27 60975 0.2039 0.3156 0.07336 2025 11 3 60982 0.1927 0.3139 0.07133
2025 10 28 60976 0.2027 0.3146 0.07370 2025 11 4 60983 0.1915 0.3130 0.07034
2025 10 29 60977 0.2015 0.3136 0.07393 2025 11 5 60984 0.1902 0.3122 0.06953
2025 10 30 60978 0.2003 0.3126 0.07395 2025 11 6 60985 0.1890 0.3115 0.06901
2025 10 31 60979 0.1991 0.3117 0.07371 2025 11 7 60986 0.1877 0.3107 0.06882
2025 11 1 60980 0.1979 0.3108 0.07317 2025 11 8 60987 0.1864 0.3100 0.06889
2025 11 2 60981 0.1966 0.3099 0.07238 2025 11 9 60988 0.1851 0.3093 0.06908
2025 11 3 60982 0.1953 0.3090 0.07144 2025 11 10 60989 0.1838 0.3086 0.06924
2025 11 4 60983 0.1941 0.3082 0.07049 2025 11 11 60990 0.1825 0.3079 0.06927
2025 11 5 60984 0.1928 0.3073 0.06970 2025 11 12 60991 0.1812 0.3072 0.06910
2025 11 6 60985 0.1914 0.3065 0.06920 2025 11 13 60992 0.1798 0.3066 0.06876
2025 11 7 60986 0.1901 0.3057 0.06903 2025 11 14 60993 0.1784 0.3060 0.06828
2025 11 8 60987 0.1888 0.3050 0.06912 2025 11 15 60994 0.1771 0.3054 0.06774
2025 11 9 60988 0.1874 0.3042 0.06933 2025 11 16 60995 0.1757 0.3048 0.06722
2025 11 10 60989 0.1860 0.3035 0.06951 2025 11 17 60996 0.1743 0.3043 0.06677
2025 11 11 60990 0.1847 0.3028 0.06956 2025 11 18 60997 0.1729 0.3038 0.06647
2025 11 12 60991 0.1833 0.3021 0.06941 2025 11 19 60998 0.1715 0.3033 0.06635
2025 11 13 60992 0.1819 0.3014 0.06907 2025 11 20 60999 0.1701 0.3028 0.06642
2025 11 14 60993 0.1804 0.3008 0.06861 2025 11 21 61000 0.1687 0.3023 0.06667
2025 11 15 60994 0.1790 0.3001 0.06809 2025 11 22 61001 0.1672 0.3019 0.06705
2025 11 16 60995 0.1776 0.2995 0.06758 2025 11 23 61002 0.1658 0.3015 0.06751
2025 11 17 60996 0.1761 0.2989 0.06707 2025 11 24 61003 0.1643 0.3011 0.06788
2025 11 18 60997 0.1747 0.2984 0.06669 2025 11 25 61004 0.1629 0.3007 0.06817
2025 11 19 60998 0.1732 0.2979 0.06650 2025 11 26 61005 0.1614 0.3003 0.06829
2025 11 20 60999 0.1717 0.2973 0.06650 2025 11 27 61006 0.1600 0.3000 0.06820
2025 11 21 61000 0.1702 0.2969 0.06668 2025 11 28 61007 0.1585 0.2997 0.06785
2025 11 22 61001 0.1687 0.2964 0.06699 2025 11 29 61008 0.1570 0.2994 0.06727
2025 11 23 61002 0.1672 0.2959 0.06738 2025 11 30 61009 0.1556 0.2992 0.06650
2025 11 24 61003 0.1657 0.2955 0.06776 2025 12 1 61010 0.1541 0.2989 0.06567
2025 11 25 61004 0.1642 0.2951 0.06806 2025 12 2 61011 0.1526 0.2987 0.06494
2025 11 26 61005 0.1627 0.2948 0.06820 2025 12 3 61012 0.1511 0.2985 0.06442
2025 11 27 61006 0.1612 0.2944 0.06812 2025 12 4 61013 0.1496 0.2984 0.06421
2025 11 28 61007 0.1596 0.2941 0.06779 2025 12 5 61014 0.1481 0.2982 0.06429
2025 11 29 61008 0.1581 0.2938 0.06722 2025 12 6 61015 0.1466 0.2981 0.06454
2025 11 30 61009 0.1566 0.2935 0.06647 2025 12 7 61016 0.1451 0.2980 0.06483
2025 12 1 61010 0.1550 0.2933 0.06567 2025 12 8 61017 0.1437 0.2980 0.06500
2025 12 2 61011 0.1535 0.2930 0.06495 2025 12 9 61018 0.1422 0.2979 0.06498
2025 12 3 61012 0.1519 0.2928 0.06445 2025 12 10 61019 0.1407 0.2979 0.06476
2025 12 4 61013 0.1504 0.2926 0.06426 2025 12 11 61020 0.1392 0.2979 0.06439
2025 12 5 61014 0.1488 0.2925 0.06435 2025 12 12 61021 0.1377 0.2979 0.06395
2025 12 6 61015 0.1473 0.2924 0.06463 2025 12 13 61022 0.1362 0.2980 0.06353
2025 12 7 61016 0.1457 0.2923 0.06493 2025 12 14 61023 0.1347 0.2980 0.06319
2025 12 8 61017 0.1441 0.2922 0.06513 2025 12 15 61024 0.1332 0.2981 0.06299
2025 12 9 61018 0.1426 0.2921 0.06512 2025 12 16 61025 0.1318 0.2982 0.06297
2025 12 10 61019 0.1410 0.2921 0.06492 2025 12 17 61026 0.1303 0.2984 0.06315
2025 12 11 61020 0.1395 0.2921 0.06456 2025 12 18 61027 0.1288 0.2985 0.06351
2025 12 12 61021 0.1379 0.2921 0.06414 2025 12 19 61028 0.1274 0.2987 0.06401
2025 12 13 61022 0.1364 0.2921 0.06372 2025 12 20 61029 0.1259 0.2989 0.06461
2025 12 14 61023 0.1348 0.2922 0.06339 2025 12 21 61030 0.1245 0.2992 0.06522
2025 12 15 61024 0.1333 0.2923 0.06320 2025 12 22 61031 0.1230 0.2994 0.06575
2025 12 16 61025 0.1318 0.2924 0.06318 2025 12 23 61032 0.1216 0.2997 0.06614
2025 12 17 61026 0.1302 0.2925 0.06335 2025 12 24 61033 0.1201 0.3000 0.06632
2025 12 18 61027 0.1287 0.2927 0.06371 2025 12 25 61034 0.1187 0.3003 0.06627
2025 12 19 61028 0.1272 0.2929 0.06421 2025 12 26 61035 0.1173 0.3007 0.06599
2025 12 20 61029 0.1256 0.2931 0.06480 2025 12 27 61036 0.1159 0.3011 0.06554
2025 12 21 61030 0.1241 0.2933 0.06540 2025 12 28 61037 0.1145 0.3015 0.06500
2025 12 22 61031 0.1226 0.2936 0.06593 2025 12 29 61038 0.1131 0.3019 0.06451
2025 12 23 61032 0.1211 0.2939 0.06631 2025 12 30 61039 0.1117 0.3023 0.06418
2025 12 24 61033 0.1196 0.2942 0.06648 2025 12 31 61040 0.1103 0.3028 0.06410
2025 12 25 61034 0.1181 0.2945 0.06642 2026 1 1 61041 0.1090 0.3033 0.06429
2025 12 26 61035 0.1166 0.2948 0.06614 2026 1 2 61042 0.1076 0.3038 0.06468
2025 12 27 61036 0.1152 0.2952 0.06567 2026 1 3 61043 0.1063 0.3043 0.06514
2025 12 28 61037 0.1137 0.2956 0.06513 2026 1 4 61044 0.1050 0.3048 0.06553
2025 12 29 61038 0.1122 0.2960 0.06463 2026 1 5 61045 0.1036 0.3054 0.06573
2025 12 30 61039 0.1108 0.2965 0.06430 2026 1 6 61046 0.1023 0.3060 0.06569
2025 12 31 61040 0.1094 0.2970 0.06422 2026 1 7 61047 0.1010 0.3066 0.06545
2026 1 1 61041 0.1079 0.2974 0.06441 2026 1 8 61048 0.0998 0.3072 0.06509
2026 1 2 61042 0.1065 0.2980 0.06480 2026 1 9 61049 0.0985 0.3079 0.06472
2026 1 3 61043 0.1051 0.2985 0.06526 2026 1 10 61050 0.0973 0.3086 0.06441
2026 1 4 61044 0.1037 0.2991 0.06565 2026 1 11 61051 0.0960 0.3093 0.06423
2026 1 5 61045 0.1024 0.2996 0.06585 2026 1 12 61052 0.0948 0.3100 0.06423
2026 1 6 61046 0.1010 0.3002 0.06581 2026 1 13 61053 0.0936 0.3107 0.06442
2026 1 7 61047 0.0996 0.3009 0.06558 2026 1 14 61054 0.0924 0.3115 0.06480
2026 1 8 61048 0.0983 0.3015 0.06522 2026 1 15 61055 0.0912 0.3122 0.06532
2026 1 9 61049 0.0970 0.3022 0.06485 2026 1 16 61056 0.0901 0.3130 0.06595
2026 1 10 61050 0.0957 0.3029 0.06455 2026 1 17 61057 0.0889 0.3138 0.06660
2026 1 11 61051 0.0944 0.3036 0.06438 2026 1 18 61058 0.0878 0.3146 0.06719
2026 1 12 61052 0.0931 0.3043 0.06439 2026 1 19 61059 0.0867 0.3155 0.06763
2026 1 13 61053 0.0918 0.3051 0.06459 2026 1 20 61060 0.0856 0.3164 0.06787
2026 1 14 61054 0.0906 0.3058 0.06498 2026 1 21 61061 0.0846 0.3172 0.06785
2026 1 15 61055 0.0893 0.3066 0.06552 2026 1 22 61062 0.0835 0.3181 0.06761
2026 1 16 61056 0.0881 0.3074 0.06616 2026 1 23 61063 0.0825 0.3191 0.06717
2026 1 17 61057 0.0869 0.3083 0.06682 2026 1 24 61064 0.0815 0.3200 0.06664
2026 1 18 61058 0.0858 0.3091 0.06743 2026 1 25 61065 0.0805 0.3209 0.06615
2026 1 19 61059 0.0846 0.3100 0.06790 2026 1 26 61066 0.0795 0.3219 0.06579
2026 1 20 61060 0.0834 0.3109 0.06816 2026 1 27 61067 0.0786 0.3229 0.06566
2026 1 21 61061 0.0823 0.3118 0.06818 2026 1 28 61068 0.0776 0.3239 0.06578
2026 1 22 61062 0.0812 0.3127 0.06797 2026 1 29 61069 0.0767 0.3249 0.06612
2026 1 23 61063 0.0801 0.3136 0.06757 2026 1 30 61070 0.0758 0.3259 0.06656
2026 1 24 61064 0.0791 0.3146 0.06710 2026 1 31 61071 0.0749 0.3270 0.06697
2026 1 25 61065 0.0780 0.3156 0.06666 2026 2 1 61072 0.0741 0.3280 0.06723
2026 1 26 61066 0.0770 0.3166 0.06637 2026 2 2 61073 0.0733 0.3291 0.06725
2026 1 27 61067 0.0760 0.3176 0.06631 2026 2 3 61074 0.0725 0.3302 0.06704
2026 1 28 61068 0.0750 0.3186 0.06653 2026 2 4 61075 0.0717 0.3313 0.06666
2026 1 29 61069 0.0740 0.3196 0.06698 2026 2 5 61076 0.0709 0.3324 0.06622
2026 1 30 61070 0.0731 0.3207 0.06754 2026 2 6 61077 0.0702 0.3335 0.06583
2026 1 31 61071 0.0721 0.3218 0.06810 2026 2 7 61078 0.0695 0.3346 0.06557
2026 2 1 61072 0.0712 0.3229 0.06853 2026 2 8 61079 0.0688 0.3358 0.06552
2026 2 2 61073 0.0704 0.3240 0.06874 2026 2 9 61080 0.0681 0.3369 0.06570
2026 2 3 61074 0.0695 0.3251 0.06875 2026 2 10 61081 0.0675 0.3381 0.06610
2026 2 4 61075 0.0687 0.3262 0.06861 2026 2 11 61082 0.0668 0.3393 0.06671
2026 2 5 61076 0.0678 0.3273 0.06843 2026 2 12 61083 0.0662 0.3405 0.06747
2026 2 6 61077 0.0671 0.3285 0.06830 2026 2 13 61084 0.0657 0.3417 0.06829
2026 2 7 61078 0.0663 0.3297 0.06830 2026 2 14 61085 0.0651 0.3429 0.06910
2026 2 8 61079 0.0655 0.3309 0.06846 2026 2 15 61086 0.0646 0.3441 0.06977
2026 2 9 61080 0.0648 0.3321 0.06880 2026 2 16 61087 0.0641 0.3453 0.07023
2026 2 10 61081 0.0641 0.3333 0.06930 2026 2 17 61088 0.0636 0.3466 0.07040
2026 2 11 61082 0.0635 0.3345 0.06993 2026 2 18 61089 0.0632 0.3478 0.07026
2026 2 12 61083 0.0628 0.3357 0.07063 2026 2 19 61090 0.0627 0.3491 0.06986
2026 2 13 61084 0.0622 0.3370 0.07134 2026 2 20 61091 0.0623 0.3503 0.06930
2026 2 14 61085 0.0616 0.3382 0.07197 2026 2 21 61092 0.0620 0.3516 0.06869
2026 2 15 61086 0.0610 0.3395 0.07244 2026 2 22 61093 0.0616 0.3529 0.06818
2026 2 16 61087 0.0605 0.3407 0.07269 2026 2 23 61094 0.0613 0.3541 0.06787
2026 2 17 61088 0.0599 0.3420 0.07266 2026 2 24 61095 0.0610 0.3554 0.06779
2026 2 18 61089 0.0594 0.3433 0.07235 2026 2 25 61096 0.0607 0.3567 0.06793
2026 2 19 61090 0.0590 0.3446 0.07181 2026 2 26 61097 0.0605 0.3580 0.06818
2026 2 20 61091 0.0585 0.3459 0.07115 2026 2 27 61098 0.0602 0.3593 0.06844
2026 2 21 61092 0.0581 0.3472 0.07049 2026 2 28 61099 0.0600 0.3606 0.06858
2026 2 22 61093 0.0577 0.3485 0.06996 2026 3 1 61100 0.0599 0.3619 0.06850
2026 2 23 61094 0.0573 0.3499 0.06966 2026 3 2 61101 0.0597 0.3632 0.06818
2026 2 24 61095 0.0570 0.3512 0.06961 2026 3 3 61102 0.0596 0.3646 0.06765
2026 2 25 61096 0.0567 0.3525 0.06978 2026 3 4 61103 0.0595 0.3659 0.06699
2026 2 26 61097 0.0564 0.3539 0.07006 2026 3 5 61104 0.0595 0.3672 0.06631
2026 2 27 61098 0.0561 0.3552 0.07033 2026 3 6 61105 0.0594 0.3685 0.06572
2026 2 28 61099 0.0559 0.3566 0.07045 2026 3 7 61106 0.0594 0.3698 0.06529
2026 3 1 61100 0.0557 0.3579 0.07033 2026 3 8 61107 0.0594 0.3712 0.06505
2026 3 2 61101 0.0555 0.3593 0.06993 2026 3 9 61108 0.0595 0.3725 0.06500
2026 3 3 61102 0.0553 0.3607 0.06927 2026 3 10 61109 0.0595 0.3738 0.06511
2026 3 4 61103 0.0552 0.3620 0.06843 2026 3 11 61110 0.0596 0.3751 0.06533
2026 3 5 61104 0.0551 0.3634 0.06752 2026 3 12 61111 0.0597 0.3765 0.06562
2026 3 6 61105 0.0550 0.3648 0.06663 2026 3 13 61112 0.0599 0.3778 0.06589
2026 3 7 61106 0.0550 0.3662 0.06588 2026 3 14 61113 0.0600 0.3791 0.06606
2026 3 8 61107 0.0549 0.3675 0.06529 2026 3 15 61114 0.0602 0.3804 0.06604
2026 3 9 61108 0.0549 0.3689 0.06488 2026 3 16 61115 0.0604 0.3818 0.06576
2026 3 10 61109 0.0550 0.3703 0.06460 2026 3 17 61116 0.0607 0.3831 0.06516
2026 3 11 61110 0.0550 0.3717 0.06447 2026 3 18 61117 0.0610 0.3844 0.06423
2026 3 12 61111 0.0551 0.3731 0.06446 2026 3 19 61118 0.0613 0.3857 0.06304
2026 3 13 61112 0.0552 0.3744 0.06443 2026 3 20 61119 0.0616 0.3870 0.06180
2026 3 14 61113 0.0554 0.3758 0.06436 2026 3 21 61120 0.0619 0.3883 0.06065
2026 3 15 61114 0.0555 0.3772 0.06408 2026 3 22 61121 0.0623 0.3896 0.05966
2026 3 16 61115 0.0557 0.3786 0.06349 2026 3 23 61122 0.0627 0.3909 0.05895
2026 3 17 61116 0.0559 0.3799 0.06259 2026 3 24 61123 0.0631 0.3922 0.05844
2026 3 18 61117 0.0562 0.3813 0.06141 2026 3 25 61124 0.0636 0.3934 0.05812
2026 3 19 61118 0.0564 0.3827 0.06005 2026 3 26 61125 0.0640 0.3947 0.05791
2026 3 20 61119 0.0567 0.3840 0.05860 2026 3 27 61126 0.0645 0.3960 0.05759
2026 3 21 61120 0.0570 0.3854 0.05727 2026 3 28 61127 0.0651 0.3972 0.05717
2026 3 22 61121 0.0574 0.3867 0.05618 2026 3 29 61128 0.0656 0.3985 0.05646
2026 3 23 61122 0.0577 0.3881 0.05536 2026 3 30 61129 0.0662 0.3997 0.05548
2026 3 24 61123 0.0581 0.3894 0.05478 2026 3 31 61130 0.0668 0.4010 0.05432
2026 3 25 61124 0.0586 0.3907 0.05438 2026 4 1 61131 0.0674 0.4022 0.05306
2026 3 26 61125 0.0590 0.3921 0.05402 2026 4 2 61132 0.0680 0.4034 0.05187
2026 3 27 61126 0.0595 0.3934 0.05356 2026 4 3 61133 0.0687 0.4046 0.05076
2026 3 28 61127 0.0600 0.3947 0.05298 2026 4 4 61134 0.0694 0.4058 0.04986
2026 3 29 61128 0.0605 0.3960 0.05224 2026 4 5 61135 0.0701 0.4070 0.04920
2026 3 30 61129 0.0610 0.3973 0.05131 2026 4 6 61136 0.0708 0.4082 0.04872
2026 3 31 61130 0.0616 0.3986 0.05030 2026 4 7 61137 0.0716 0.4093 0.04838
2026 4 1 61131 0.0622 0.3999 0.04920 2026 4 8 61138 0.0724 0.4105 0.04815
2026 4 2 61132 0.0628 0.4012 0.04819 2026 4 9 61139 0.0732 0.4116 0.04795
2026 4 3 61133 0.0635 0.4024 0.04731 2026 4 10 61140 0.0740 0.4128 0.04768
2026 4 4 61134 0.0641 0.4037 0.04672 2026 4 11 61141 0.0748 0.4139 0.04735
2026 4 5 61135 0.0648 0.4050 0.04635 2026 4 12 61142 0.0757 0.4150 0.04689
2026 4 6 61136 0.0656 0.4062 0.04618 2026 4 13 61143 0.0766 0.4161 0.04620
2026 4 7 61137 0.0663 0.4074 0.04628 2026 4 14 61144 0.0775 0.4172 0.04531
2026 4 8 61138 0.0671 0.4086 0.04646 2026 4 15 61145 0.0784 0.4182 0.04419
2026 4 9 61139 0.0678 0.4098 0.04671 2026 4 16 61146 0.0794 0.4193 0.04299
2026 4 10 61140 0.0686 0.4110 0.04691 2026 4 17 61147 0.0803 0.4203 0.04183
2026 4 11 61141 0.0695 0.4122 0.04694 2026 4 18 61148 0.0813 0.4213 0.04095
2026 4 12 61142 0.0703 0.4134 0.04670 2026 4 19 61149 0.0823 0.4223 0.04036
2026 4 13 61143 0.0712 0.4145 0.04619 2026 4 20 61150 0.0833 0.4233 0.04007
2026 4 14 61144 0.0721 0.4157 0.04540 2026 4 21 61151 0.0844 0.4243 0.04013
2026 4 15 61145 0.0730 0.4168 0.04436 2026 4 22 61152 0.0854 0.4253 0.04026
2026 4 16 61146 0.0739 0.4179 0.04323 2026 4 23 61153 0.0865 0.4262 0.04040
2026 4 17 61147 0.0749 0.4190 0.04215 2026 4 24 61154 0.0876 0.4271 0.04039
2026 4 18 61148 0.0759 0.4201 0.04125 2026 4 25 61155 0.0887 0.4280 0.04013
2026 4 19 61149 0.0768 0.4211 0.04060 2026 4 26 61156 0.0899 0.4289 0.03962
2026 4 20 61150 0.0779 0.4222 0.04022 2026 4 27 61157 0.0910 0.4298 0.03894
2026 4 21 61151 0.0789 0.4232 0.04012 2026 4 28 61158 0.0922 0.4307 0.03819
2026 4 22 61152 0.0799 0.4242 0.04007 2026 4 29 61159 0.0933 0.4315 0.03743
2026 4 23 61153 0.0810 0.4253 0.03998 2026 4 30 61160 0.0945 0.4323 0.03681
2026 4 24 61154 0.0821 0.4262 0.03981 2026 5 1 61161 0.0957 0.4331 0.03639
2026 4 25 61155 0.0832 0.4272 0.03945 2026 5 2 61162 0.0970 0.4339 0.03619
2026 4 26 61156 0.0843 0.4282 0.03896 2026 5 3 61163 0.0982 0.4347 0.03616
2026 4 27 61157 0.0855 0.4291 0.03839 2026 5 4 61164 0.0994 0.4354 0.03629
2026 4 28 61158 0.0866 0.4300 0.03777 2026 5 5 61165 0.1007 0.4362 0.03660
2026 4 29 61159 0.0878 0.4309 0.03717 2026 5 6 61166 0.1020 0.4369 0.03691
2026 4 30 61160 0.0890 0.4318 0.03670 2026 5 7 61167 0.1033 0.4376 0.03721
2026 5 1 61161 0.0902 0.4327 0.03647 2026 5 8 61168 0.1046 0.4382 0.03749
2026 5 2 61162 0.0914 0.4335 0.03650 2026 5 9 61169 0.1059 0.4389 0.03763
2026 5 3 61163 0.0927 0.4343 0.03671 2026 5 10 61170 0.1072 0.4395 0.03762
2026 5 4 61164 0.0939 0.4351 0.03710 2026 5 11 61171 0.1086 0.4401 0.03744
2026 5 5 61165 0.0952 0.4359 0.03768 2026 5 12 61172 0.1099 0.4407 0.03706
2026 5 6 61166 0.0965 0.4367 0.03826 2026 5 13 61173 0.1113 0.4413 0.03652
2026 5 7 61167 0.0978 0.4374 0.03880 2026 5 14 61174 0.1126 0.4418 0.03595
2026 5 8 61168 0.0991 0.4382 0.03926 2026 5 15 61175 0.1140 0.4423 0.03555
2026 5 9 61169 0.1004 0.4389 0.03960 2026 5 16 61176 0.1154 0.4428 0.03545
2026 5 10 61170 0.1017 0.4396 0.03969 2026 5 17 61177 0.1168 0.4433 0.03561
2026 5 11 61171 0.1030 0.4402 0.03958 2026 5 18 61178 0.1182 0.4438 0.03605
2026 5 12 61172 0.1044 0.4409 0.03924 2026 5 19 61179 0.1196 0.4442 0.03672
2026 5 13 61173 0.1058 0.4415 0.03874 2026 5 20 61180 0.1210 0.4446 0.03732
2026 5 14 61174 0.1071 0.4421 0.03822 2026 5 21 61181 0.1224 0.4450 0.03779
2026 5 15 61175 0.1085 0.4427 0.03781 2026 5 22 61182 0.1239 0.4454 0.03807
2026 5 16 61176 0.1099 0.4432 0.03762 2026 5 23 61183 0.1253 0.4457 0.03818
2026 5 17 61177 0.1113 0.4438 0.03770 2026 5 24 61184 0.1267 0.4461 0.03811
2026 5 18 61178 0.1127 0.4443 0.03797 2026 5 25 61185 0.1282 0.4464 0.03802
2026 5 19 61179 0.1141 0.4448 0.03848 2026 5 26 61186 0.1296 0.4466 0.03795
2026 5 20 61180 0.1156 0.4453 0.03905 2026 5 27 61187 0.1311 0.4469 0.03798
2026 5 21 61181 0.1170 0.4457 0.03952 2026 5 28 61188 0.1326 0.4471 0.03820
2026 5 22 61182 0.1185 0.4461 0.03983 2026 5 29 61189 0.1340 0.4473 0.03862
2026 5 23 61183 0.1199 0.4465 0.03997 2026 5 30 61190 0.1355 0.4475 0.03926
2026 5 24 61184 0.1214 0.4469 0.03987 2026 5 31 61191 0.1369 0.4477 0.04005
2026 5 25 61185 0.1228 0.4473 0.03969 2026 6 1 61192 0.1384 0.4478 0.04090
2026 5 26 61186 0.1243 0.4476 0.03958 2026 6 2 61193 0.1399 0.4480 0.04191
2026 5 27 61187 0.1257 0.4479 0.03953 2026 6 3 61194 0.1414 0.4481 0.04298
2026 5 28 61188 0.1272 0.4482 0.03962 2026 6 4 61195 0.1428 0.4481 0.04399
2026 5 29 61189 0.1287 0.4485 0.03986 2026 6 5 61196 0.1443 0.4482 0.04491
2026 5 30 61190 0.1302 0.4487 0.04031 2026 6 6 61197 0.1458 0.4482 0.04568
2026 5 31 61191 0.1317 0.4489 0.04088 2026 6 7 61198 0.1472 0.4482 0.04614
2026 6 1 61192 0.1331 0.4491 0.04159 2026 6 8 61199 0.1487 0.4482 0.04638
2026 6 2 61193 0.1346 0.4493 0.04244 2026 6 9 61200 0.1502 0.4481 0.04649
2026 6 3 61194 0.1361 0.4494 0.04341 2026 6 10 61201 0.1516 0.4481 0.04648
2026 6 4 61195 0.1376 0.4496 0.04430 2026 6 11 61202 0.1531 0.4480 0.04649
2026 6 5 61196 0.1391 0.4497 0.04511 2026 6 12 61203 0.1545 0.4479 0.04661
2026 6 6 61197 0.1406 0.4497 0.04574 2026 6 13 61204 0.1560 0.4477 0.04699
2026 6 7 61198 0.1421 0.4498 0.04612 2026 6 14 61205 0.1574 0.4476 0.04756
2026 6 8 61199 0.1436 0.4498 0.04627 2026 6 15 61206 0.1589 0.4474 0.04835
2026 6 9 61200 0.1451 0.4498 0.04633 2026 6 16 61207 0.1603 0.4472 0.04924
2026 6 10 61201 0.1465 0.4498 0.04635 2026 6 17 61208 0.1618 0.4470 0.05017
2026 6 11 61202 0.1480 0.4498 0.04643 2026 6 18 61209 0.1632 0.4467 0.05089
2026 6 12 61203 0.1495 0.4497 0.04676 2026 6 19 61210 0.1646 0.4464 0.05142
2026 6 13 61204 0.1510 0.4496 0.04741 2026 6 20 61211 0.1660 0.4461 0.05178
2026 6 14 61205 0.1525 0.4495 0.04834 2026 6 21 61212 0.1674 0.4458 0.05200
2026 6 15 61206 0.1539 0.4494 0.04956 2026 6 22 61213 0.1688 0.4455 0.05221
2026 6 16 61207 0.1554 0.4492 0.05075 2026 6 23 61214 0.1702 0.4451 0.05260
2026 6 17 61208 0.1568 0.4490 0.05178 2026 6 24 61215 0.1716 0.4447 0.05320
2026 6 18 61209 0.1583 0.4488 0.05255 2026 6 25 61216 0.1730 0.4443 0.05401
2026 6 19 61210 0.1597 0.4486 0.05301 2026 6 26 61217 0.1743 0.4439 0.05511
2026 6 20 61211 0.1612 0.4483 0.05328 2026 6 27 61218 0.1757 0.4434 0.05647
2026 6 21 61212 0.1626 0.4481 0.05345 2026 6 28 61219 0.1770 0.4430 0.05798
2026 6 22 61213 0.1640 0.4478 0.05361 2026 6 29 61220 0.1783 0.4425 0.05967
2026 6 23 61214 0.1655 0.4474 0.05393 2026 6 30 61221 0.1797 0.4420 0.06128
2026 6 24 61215 0.1669 0.4471 0.05442 2026 7 1 61222 0.1810 0.4414 0.06275
2026 6 25 61216 0.1683 0.4467 0.05512 2026 7 2 61223 0.1823 0.4409 0.06403
2026 6 26 61217 0.1697 0.4463 0.05611 2026 7 3 61224 0.1836 0.4403 0.06505
2026 6 27 61218 0.1711 0.4459 0.05729 2026 7 4 61225 0.1848 0.4397 0.06585
2026 6 28 61219 0.1724 0.4455 0.05868 2026 7 5 61226 0.1861 0.4391 0.06645
2026 6 29 61220 0.1738 0.4450 0.06008 2026 7 6 61227 0.1873 0.4384 0.06686
2026 6 30 61221 0.1751 0.4446 0.06159 2026 7 7 61228 0.1886 0.4378 0.06722
2026 7 1 61222 0.1765 0.4441 0.06300 2026 7 8 61229 0.1898 0.4371 0.06760
2026 7 2 61223 0.1778 0.4435 0.06426 2026 7 9 61230 0.1910 0.4364 0.06810
2026 7 3 61224 0.1791 0.4430 0.06534 2026 7 10 61231 0.1921 0.4357 0.06889
2026 7 4 61225 0.1804 0.4424 0.06625 2026 7 11 61232 0.1933 0.4349 0.06992
2026 7 5 61226 0.1817 0.4418 0.06692 2026 7 12 61233 0.1945 0.4342 0.07122
2026 7 6 61227 0.1830 0.4412 0.06750 2026 7 13 61234 0.1956 0.4334 0.07254
2026 7 7 61228 0.1843 0.4406 0.06802 2026 7 14 61235 0.1967 0.4326 0.07391
2026 7 8 61229 0.1855 0.4400 0.06856 2026 7 15 61236 0.1978 0.4318 0.07504
2026 7 9 61230 0.1868 0.4393 0.06919 2026 7 16 61237 0.1989 0.4310 0.07591
2026 7 10 61231 0.1880 0.4386 0.06998 2026 7 17 61238 0.2000 0.4301 0.07652
2026 7 11 61232 0.1892 0.4379 0.07112 2026 7 18 61239 0.2010 0.4293 0.07702
2026 7 12 61233 0.1904 0.4372 0.07248 2026 7 19 61240 0.2021 0.4284 0.07743
2026 7 13 61234 0.1916 0.4364 0.07398 2026 7 20 61241 0.2031 0.4275 0.07799
2026 7 14 61235 0.1927 0.4357 0.07539 2026 7 21 61242 0.2041 0.4266 0.07873
2026 7 15 61236 0.1939 0.4349 0.07656 2026 7 22 61243 0.2050 0.4256 0.07969
2026 7 16 61237 0.1950 0.4341 0.07751 2026 7 23 61244 0.2060 0.4247 0.08084
2026 7 17 61238 0.1961 0.4333 0.07821 2026 7 24 61245 0.2069 0.4237 0.08212
2026 7 18 61239 0.1972 0.4324 0.07881 2026 7 25 61246 0.2078 0.4227 0.08367
2026 7 19 61240 0.1983 0.4316 0.07932 2026 7 26 61247 0.2087 0.4218 0.08531
2026 7 20 61241 0.1993 0.4307 0.07987 2026 7 27 61248 0.2096 0.4207 0.08702
2026 7 21 61242 0.2003 0.4298 0.08067 2026 7 28 61249 0.2105 0.4197 0.08862
2026 7 22 61243 0.2014 0.4289 0.08162 2026 7 29 61250 0.2113 0.4187 0.09004
2026 7 23 61244 0.2024 0.4280 0.08281 2026 7 30 61251 0.2121 0.4176 0.09130
2026 7 24 61245 0.2033 0.4271 0.08417 2026 7 31 61252 0.2129 0.4166 0.09234
2026 7 25 61246 0.2043 0.4261 0.08568 2026 8 1 61253 0.2136 0.4155 0.09321
2026 7 26 61247 0.2052 0.4251 0.08728 2026 8 2 61254 0.2144 0.4144 0.09386
2026 7 27 61248 0.2061 0.4242 0.08887 2026 8 3 61255 0.2151 0.4133 0.09435
2026 7 28 61249 0.2070 0.4232 0.09042 2026 8 4 61256 0.2158 0.4122 0.09493
2026 7 29 61250 0.2079 0.4221 0.09183 2026 8 5 61257 0.2165 0.4111 0.09554
2026 7 30 61251 0.2088 0.4211 0.09304 2026 8 6 61258 0.2171 0.4099 0.09635
2026 7 31 61252 0.2096 0.4201 0.09407 2026 8 7 61259 0.2177 0.4088 0.09737
These predictions are based on all announced leap seconds. These predictions are based on all announced leap seconds.
CELESTIAL POLE OFFSET SERIES: CELESTIAL POLE OFFSET SERIES:
NEOS Celestial Pole Offset Series NEOS Celestial Pole Offset Series
MJD dpsi error deps error MJD dpsi error deps error
(msec. of arc) (msec. of arc)
60865 -116.77 0.98 -11.24 0.21 60868 -116.99 0.86 -10.78 0.21
60866 -116.93 0.98 -11.18 0.21 60869 -117.02 0.86 -10.71 0.30
60867 -116.98 0.98 -10.97 0.21 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 IAU2000A Celestial Pole Offset Series
MJD dX error dY error MJD dX error dY error
(msec. of arc) (msec. of arc)
60865 0.402 0.390 -0.210 0.213 60868 0.366 0.342 -0.270 0.206
60866 0.393 0.390 -0.229 0.213 60869 0.360 0.343 -0.284 0.298
60867 0.382 0.390 -0.247 0.213 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 { struct MccSimpleGuidingModelCategory : public std::error_category {
MccSimpleGuidingModelCategory() : 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 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: protected:
std::function<error_t(guiding_point_t)> _guidingFunc{}; 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
// deduce controls types // deduce controls types

View File

@ -1,8 +1,11 @@
#pragma once #pragma once
/* MOUNT CONTROL COMPONENTS LIBRARY */
/* PROHIBITED ZONE IMPLEMENTATION */ /* MOUNT CONTROL COMPONENTS LIBRARY */
/* PROHIBITED ZONE IMPLEMENTATION */
#include <chrono> #include <chrono>
#include <string_view> #include <string_view>
@ -37,7 +40,8 @@ public:
static constexpr MccAltLimitKind altLimitKind = KIND; static constexpr MccAltLimitKind altLimitKind = KIND;
typedef MccAngle coord_t; typedef double coord_t;
// typedef MccAngle coord_t;
// floating-point time duration (seconds) // floating-point time duration (seconds)
typedef std::chrono::duration<double> duration_t; 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) : _altLimit(alt_limit), _latitude(lat), _abs_lat(std::abs(_latitude)), _lat_lim(pi2 - _abs_lat)
{ {
_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; using astrom_coord_t = typename astrom_engine_t::coord_t;
static_assert(std::convertible_to<coord_t, astrom_coord_t>, static_assert(std::convertible_to<coord_t, astrom_coord_t>,
@ -212,25 +217,32 @@ public:
double cos_ha = double cos_ha =
(std::sin(_altLimit) - std::sin(dec) * std::sin(_latitude)) / std::cos(dec) / std::cos(_latitude); (std::sin(_altLimit) - std::sin(dec) * std::sin(_latitude)) / std::cos(dec) / std::cos(_latitude);
if (cos_ha > 1.0) { // no intersection if (cos_ha > 1.0) { // no intersection
// compute culmination points? // compute culmination points?
return false; 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); cosA /= std::cos(_altLimit);
double sinA = std::cos(dec) * sqrt(1.0 - cos_ha * cos_ha) / cos(_altLimit);
if constexpr (KIND == if constexpr (KIND ==
MccAltLimitKind::MIN_ALT_LIMIT) { // the closest time point is one after upper culmination 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 } else if constexpr (KIND == MccAltLimitKind::MAX_ALT_LIMIT) { // the closest time point is one before upper
// culmination // 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, _coord2coord(MccCoordPairKind::COORDS_KIND_AZALT, az, _altLimit, target.time_point, int_point.coordPairKind,
int_point.x, int_point.y); int_point.x, int_point.y);
int_point.x = az;
return true; return true;
} }
@ -238,7 +250,7 @@ private:
coord_t _altLimit, _latitude, _abs_lat, _lat_lim; coord_t _altLimit, _latitude, _abs_lat, _lat_lim;
// wrapper function // 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{}; _coord2coord{};
bool doesObjectReachZone(const coord_t& dec_app) bool doesObjectReachZone(const coord_t& dec_app)
@ -322,7 +334,8 @@ private:
time_ang /= mcc_sideral_to_UT1_ratio; // to UT1 time scale 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) 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 { struct MccMountTelemetryCategory : public std::error_category {
MccMountTelemetryCategory() : 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 std::string message(int ec) const
{ {
@ -369,10 +372,10 @@ namespace traits
template <typename T> template <typename T>
concept mcc_mount_default_telemetry_c = requires { concept mcc_mount_default_telemetry_c = requires {
mcc_astrom_engine_c<typename T::astrom_engine_t>; requires mcc_astrom_engine_c<typename T::astrom_engine_t>;
mcc_mount_pec_c<typename T::pec_t>; requires mcc_mount_pec_c<typename T::pec_t>;
mcc_mount_hardware_c<typename T::hardware_t>; requires mcc_mount_hardware_c<typename T::hardware_t>;
mcc_mount_telemetry_data_c<typename T::mount_telemetry_data_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, 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>>; 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"; // 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; using engine_t = mcc::astrom::erfa::MccMountAstromEngineERFA;
engine_t::engine_state_t state; engine_t::engine_state_t state;
state.lon = 41.440732_degs; state.lon = 41.440732_degs;
@ -171,8 +173,8 @@ int main(int argc, char* argv[])
state.meteo = {10.0, 0.5, 1010.0}; state.meteo = {10.0, 0.5, 1010.0};
std::cout << "LON = " << state.lon.sexagesimal() << "\n"; std::cout << "LON = " << mcc::MccAngle(state.lon).sexagesimal() << "\n";
std::cout << "LAT = " << state.lat.sexagesimal() << "\n\n"; std::cout << "LAT = " << mcc::MccAngle(state.lat).sexagesimal() << "\n\n";
engine_t erfa(state); engine_t erfa(state);
engine_t::juldate_t jd{60861.72}; engine_t::juldate_t jd{60861.72};
@ -181,38 +183,38 @@ int main(int argc, char* argv[])
erfa.greg2jul(now, jd); erfa.greg2jul(now, jd);
std::cout << "MJD(" << now << ") = " << jd.mjd << "\n"; std::cout << "MJD(" << now << ") = " << jd.mjd << "\n";
mcc::MccAngle lst; double lst;
erfa.apparentSiderTime(jd, lst, true); 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{"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 ra1{"5:00:00", mcc::mcc_hms}, dec1{"38:25:10.43"};
mcc::MccAngle eor; double ra_o, dec_o, ha1, az1, alt1, eor;
std::cout << "RA = " << ra1.sexagesimal(true) << ", DEC = " << dec1.sexagesimal() << "\n"; 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); 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 << "ret code (icrs2obs) = " << res.message() << "\n";
std::cout << "alt = " << alt1.sexagesimal() << "\n"; std::cout << "alt = " << mcc::MccAngle(alt1).sexagesimal() << "\n";
std::cout << "az = " << az1.sexagesimal() << "\n"; std::cout << "az = " << mcc::MccAngle(az1).sexagesimal() << "\n";
std::cout << "HA_app = " << ha1.sexagesimal(true) << "\n"; std::cout << "HA_app = " << mcc::MccAngle(ha1).sexagesimal(true) << "\n";
std::cout << "RA_app = " << ra_o.sexagesimal(true) << "\n"; std::cout << "RA_app = " << mcc::MccAngle(ra_o).sexagesimal(true) << "\n";
std::cout << "DEC_app = " << dec_o.sexagesimal() << "\n"; std::cout << "DEC_app = " << mcc::MccAngle(dec_o).sexagesimal() << "\n";
res = erfa.eqOrigins(jd, eor); res = erfa.eqOrigins(jd, eor);
std::cout << "eq of origins (from eqOrigins) = " << eor.sexagesimal(true) << "\n"; std::cout << "eq of origins (from eqOrigins) = " << mcc::MccAngle(eor).sexagesimal(true) << "\n";
std::cout << "RA_app_comp = " << (lst - ha1 + eor).sexagesimal(true) << "\n"; std::cout << "RA_app_comp = " << mcc::MccAngle(lst - ha1 + eor).sexagesimal(true) << "\n";
std::cout << "\n\n\n\n"; std::cout << "\n\n\n\n";
mcc::MccMinAltPZ minalt_pz(10.0_degs, state.lat); mcc::MccMinAltPZ minalt_pz(10.0_degs, state.lat, &erfa);
mcc::MccMaxAltPZ maxalt_pz(85.0_degs, state.lat); 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}; // 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(), 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; dec1 = "40:25:10.43"_dms;
res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor); res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor);
std::cout << "ret code (icrs2obs) = " << res.message() << "\n"; std::cout << "ret code (icrs2obs) = " << res.message() << "\n";
std::cout << "alt = " << alt1.sexagesimal() << "\n"; std::cout << "alt = " << as_sgs(alt1) << "\n";
std::cout << "az = " << az1.sexagesimal() << "\n"; std::cout << "az = " << as_sgs(az1) << "\n";
std::cout << "HA_app = " << ha1.sexagesimal(true) << "\n"; std::cout << "HA_app = " << as_sgs(ha1, true) << "\n";
std::cout << "RA_app = " << ra_o.sexagesimal(true) << "\n"; std::cout << "RA_app = " << as_sgs(ra_o, true) << "\n";
std::cout << "DEC_app = " << dec_o.sexagesimal() << "\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}; // 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; jd.mjd += 1.0;
res = erfa.icrs2obs(ra1, dec1, jd, ra_o, dec_o, ha1, az1, alt1, eor); 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); tm = maxalt_pz.timeTo(tdata);
if (std::isinf(tm.count())) { 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"; 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; ra_o = 1.0;
dec_o = 2.0; dec_o = 2.0;
ha1 = ra_o * dec_o; ha1 = ra_o * dec_o;
std::cout << "mult: " << ha1.degrees() << "\n"; std::cout << "mult: " << mcc::MccAngle(ha1).degrees() << "\n";
return ecode; return ecode;
} }