diff --git a/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics.cpp b/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics.cpp index 6064e616f..9c799c36f 100644 --- a/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics.cpp +++ b/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -196,4 +197,5 @@ inline void OpenSpaceToolkitAstrodynamicsPy_Dynamics(pybind11::module& aModule) OpenSpaceToolkitAstrodynamicsPy_Dynamics_ThirdBodyGravity(dynamics); OpenSpaceToolkitAstrodynamicsPy_Dynamics_AtmosphericDrag(dynamics); OpenSpaceToolkitAstrodynamicsPy_Dynamics_Thruster(dynamics); + OpenSpaceToolkitAstrodynamicsPy_Dynamics_Tabulated(dynamics); } diff --git a/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics/Tabulated.cpp b/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics/Tabulated.cpp new file mode 100644 index 000000000..ea6261cb3 --- /dev/null +++ b/bindings/python/src/OpenSpaceToolkitAstrodynamicsPy/Dynamics/Tabulated.cpp @@ -0,0 +1,125 @@ +/// Apache License 2.0 + +#include + +inline void OpenSpaceToolkitAstrodynamicsPy_Dynamics_Tabulated(pybind11::module& aModule) +{ + using namespace pybind11; + + using ostk::core::types::Shared; + using ostk::core::ctnr::Array; + + using ostk::math::object::MatrixXd; + + using ostk::physics::time::Instant; + using ostk::physics::coord::Frame; + + using ostk::astro::Dynamics; + using ostk::astro::dynamics::Tabulated; + using ostk::astro::trajectory::state::CoordinatesSubset; + + { + class_>( + aModule, + "Tabulated", + R"doc( + The tabulated dynamics. + + Group: + dynamics + )doc" + ) + .def( + init< + const Array&, + const MatrixXd&, + const Array>&, + const Shared>(), + arg("instants"), + arg("contribution_profile"), + arg("coordinates_subsets"), + arg("frame"), + R"doc( + Constructor. + + Args: + instants (list[Instant]): An array of instants. + contribution_profile (numpy.ndarray): A contribution profile. + coordinates_subsets (list[CoordinatesSubset]): An array of coordinates subsets related to the contribution profile. + frame (Frame): A frame. + + )doc" + ) + + .def("__str__", &(shiftToString)) + .def("__repr__", &(shiftToString)) + + .def( + "is_defined", + &Tabulated::isDefined, + R"doc( + Check if the tabulated dynamics is defined. + + Returns: + bool: True if the tabulated dynamics is defined, False otherwise. + + )doc" + ) + + .def( + "get_instants", + &Tabulated::getInstants, + R"doc( + Get the contribution instants. + + Returns: + list[Instant]: The contribution instants. + + )doc" + ) + + .def( + "get_contribution_profile", + &Tabulated::getContributionProfile, + R"doc( + Get the contribution profile. + + Returns: + np.ndarray: The contribution profile. + + )doc" + ) + + .def( + "get_frame", + &Tabulated::getFrame, + R"doc( + Get the reference frame. + + Returns: + Frame: The reference frame. + + )doc" + ) + + .def( + "compute_contribution", + &Tabulated::computeContribution, + arg("instant"), + arg("x"), + arg("frame"), + R"doc( + Compute the contribution from the contribution profile to the state vector. + + Args: + instant (Instant): The instant of the state vector. + x (numpy.ndarray): The state vector. + frame (Frame): The reference frame. + + Returns: + numpy.ndarray: The contribution from the contribution profile to the state vector. + + )doc" + ); + } +} diff --git a/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity.csv b/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity.csv new file mode 100644 index 000000000..91e751621 --- /dev/null +++ b/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity.csv @@ -0,0 +1,565 @@ +2023-01-01T00:00:00,-1.4742338218500621,8.295074478707441,-5.9830958866552864e-05 +2023-01-01T00:00:01,-1.4730484735375864,8.295279783315607,-0.00932196001127631 +2023-01-01T00:00:04.451744,-1.4689429938613792,8.295909720502067,-0.041292330076803344 +2023-01-01T00:00:09.092519,-1.4633892542551585,8.296564237590925,-0.0842746208408211 +2023-01-01T00:00:14.445650,-1.4569347091110418,8.297045089958097,-0.1338518757594792 +2023-01-01T00:00:20.318016,-1.4497948297912164,8.29723476570635,-0.1882324601242854 +2023-01-01T00:00:26.604986,-1.4420824610575451,8.297046049178133,-0.24644348709829292 +2023-01-01T00:00:32.891955,-1.4342997304526834,8.296452178405396,-0.30464241126959674 +2023-01-01T00:00:39.675083,-1.425824324227369,8.295357074600492,-0.3674173918926606 +2023-01-01T00:00:46.862697,-1.4167551571000065,8.29368207682979,-0.4339126042148342 +2023-01-01T00:00:54.293944,-1.4072835882401344,8.291393677207509,-0.5026322091240797 +2023-01-01T00:01:01.725192,-1.3977160854015342,8.288539512321702,-0.5713170266073647 +2023-01-01T00:01:09.578163,-1.387502096619761,8.28490873944612,-0.643856590329239 +2023-01-01T00:01:17.431134,-1.377182490960187,8.280646640354597,-0.7163462742140015 +2023-01-01T00:01:25.649727,-1.366270176712744,8.275510361381574,-0.7921513779229782 +2023-01-01T00:01:33.868320,-1.3552439719503235,8.269683403165523,-0.8678891476717245 +2023-01-01T00:01:42.411548,-1.3436625059952139,8.2628946890858,-0.9465402237429008 +2023-01-01T00:01:50.954776,-1.3319600459723886,8.25536086253336,-1.0251042472408676 +2023-01-01T00:01:59.791390,-1.3197295558090554,8.24678516311637,-1.1062669380737846 +2023-01-01T00:02:08.628004,-1.307371978663436,8.237413987030253,-1.1873206790120598 +2023-01-01T00:02:17.464619,-1.294888538133491,8.227248329545127,-1.268257450455896 +2023-01-01T00:02:26.693941,-1.2817172851994796,8.215783849634988,-1.3526575855556737 +2023-01-01T00:02:35.923264,-1.2684115148365165,8.203455230453525,-1.4369123005961728 +2023-01-01T00:02:45.152587,-1.2549726742874099,8.190263918240195,-1.5210125269153387 +2023-01-01T00:02:54.734902,-1.2408806072880387,8.175656923827589,-1.6081561729843141 +2023-01-01T00:03:04.317218,-1.2266483325804631,8.160123505063773,-1.6951134553490939 +2023-01-01T00:03:13.899534,-1.212277526162489,8.14366562816188,-1.7818743236392776 +2023-01-01T00:03:23.481849,-1.197769881667503,8.126285373280272,-1.8684287640354775 +2023-01-01T00:03:33.486635,-1.18247844746822,8.10715694861059,-1.9585681848829224 +2023-01-01T00:03:43.491422,-1.1670416736677414,8.087028034113318,-2.0484603886189237 +2023-01-01T00:03:53.496208,-1.1514615442374088,8.065901381856692,-2.1380941103675304 +2023-01-01T00:04:03.500994,-1.1357400606447592,8.043779871131068,-2.2274581312453745 +2023-01-01T00:04:13.889578,-1.11926805109188,8.019760135044287,-2.319952883281361 +2023-01-01T00:04:24.278161,-1.1026480882082375,7.994674496110875,-2.4121323434862965 +2023-01-01T00:04:34.666745,-1.0858824676920396,7.96852660548044,-2.5039841098986595 +2023-01-01T00:04:45.055328,-1.0689735024933804,7.941320258131062,-2.5954958346877843 +2023-01-01T00:04:55.798753,-1.0513386850256228,7.912075512580747,-2.689762578437262 +2023-01-01T00:05:06.542179,-1.0335556496411673,7.881707499316928,-2.783638973340569 +2023-01-01T00:05:17.285604,-1.015627009221527,7.850220900992488,-2.8771115502378524 +2023-01-01T00:05:28.029029,-0.9975553943049289,7.817620565351692,-2.970166906614703 +2023-01-01T00:05:38.772455,-0.9793434527506881,7.783911505551652,-3.062791708873777 +2023-01-01T00:05:49.928369,-0.9602866166201562,7.747740359107605,-3.158502917244426 +2023-01-01T00:06:01.084284,-0.9410843479936015,7.71038528864698,-3.253720811856235 +2023-01-01T00:06:12.240198,-0.9217396691322501,7.671852473403543,-3.3484307198616614 +2023-01-01T00:06:23.396112,-0.9022556213590254,7.632148283579263,-3.442618063512356 +2023-01-01T00:06:34.552027,-0.8826352648301214,7.5912792788755326,-3.5362683645197976 +2023-01-01T00:06:46.098865,-0.8621870979330941,7.547758583240443,-3.6326194302438863 +2023-01-01T00:06:57.645704,-0.8415996349351205,7.503004927837083,-3.728363939720692 +2023-01-01T00:07:09.192542,-0.8208763312312861,7.457026212064326,-3.8234862041086286 +2023-01-01T00:07:20.739380,-0.8000206626426474,7.409830540494372,-3.917970667187941 +2023-01-01T00:07:32.286219,-0.7790361250306548,7.3614262188003,-4.011801908951893 +2023-01-01T00:07:43.833057,-0.757926233848881,7.311821749569129,-4.1049646486083065 +2023-01-01T00:07:55.379895,-0.736694523635228,7.26102582813869,-4.197443746992437 +2023-01-01T00:08:06.926734,-0.7153445474303952,7.2090473385914535,-4.289224208427024 +2023-01-01T00:08:18.473572,-0.6938798761092215,7.155895350017071,-4.380291182099888 +2023-01-01T00:08:30.020410,-0.6723040976262937,7.101579113118811,-4.470629963056264 +2023-01-01T00:08:41.567249,-0.6506208161529661,7.046108057216206,-4.560225992917766 +2023-01-01T00:08:53.114087,-0.6288336511114632,6.989491787647123,-4.649064860448545 +2023-01-01T00:09:04.660925,-0.6069462360947759,6.931740083545293,-4.7371323020840865 +2023-01-01T00:09:16.207764,-0.5849622176850358,6.872862895928238,-4.824414202524854 +2023-01-01T00:09:27.754602,-0.5628852541637697,6.812870346015253,-4.910896595475393 +2023-01-01T00:09:39.301440,-0.5407190141375082,6.751772723666987,-4.996565664581667 +2023-01-01T00:09:50.848279,-0.5184671750951706,6.689580485836563,-5.081407744587929 +2023-01-01T00:10:02.395117,-0.4961334219196578,6.626304254924129,-5.165409322702873 +2023-01-01T00:10:13.941956,-0.4737214453972518,6.561954816935791,-5.248557040133608 +2023-01-01T00:10:25.488794,-0.45123494074712145,6.49654311937706,-5.330837693723055 +2023-01-01T00:10:35.798600,-0.43109748672622006,6.437250479073085,-5.403560146157885 +2023-01-01T00:10:46.108407,-0.4109061997843946,6.377127854082391,-5.475571781614496 +2023-01-01T00:10:56.418213,-0.3906637140372484,6.316183353226458,-5.54686352272098 +2023-01-01T00:11:06.728020,-0.37037266350166886,6.254425181131189,-5.617426394584179 +2023-01-01T00:11:17.037826,-0.3500356816426593,6.191861636296915,-5.687251525326775 +2023-01-01T00:11:27.347633,-0.3296554010557622,6.128501109133925,-5.756330146452266 +2023-01-01T00:11:37.657439,-0.3092344532656379,6.0643520800170565,-5.8246535930288195 +2023-01-01T00:11:47.967246,-0.28877546866765424,5.999423117423599,-5.892213303699986 +2023-01-01T00:11:58.277052,-0.268281076601804,5.933722876214725,-5.959000820543736 +2023-01-01T00:12:08.586858,-0.24775390554363996,5.867260096112129,-6.0250077888112985 +2023-01-01T00:12:17.737796,-0.22950874109244612,5.807636359023352,-6.08293474518695 +2023-01-01T00:12:26.888734,-0.21124166037574188,5.747425048675543,-6.140234560172589 +2023-01-01T00:12:36.039671,-0.19295450108297496,5.68663244035147,-6.196901594569936 +2023-01-01T00:12:45.190609,-0.17464910136689582,5.625264859961,-6.252930272528805 +2023-01-01T00:12:54.341546,-0.15632730014608276,5.563328683946261,-6.308315081524161 +2023-01-01T00:13:03.492484,-0.13799093740844937,5.500830339319741,-6.363050572446205 +2023-01-01T00:13:12.643421,-0.11964185450573206,5.437776303819249,-6.4171313598333475 +2023-01-01T00:13:20.568013,-0.10374293429194337,5.382728397360862,-6.463431529505577 +2023-01-01T00:13:28.492605,-0.0878370548901839,5.327272926098436,-6.509233306674414 +2023-01-01T00:13:36.417197,-0.071925415440377,5.271414190017339,-6.554533311230559 +2023-01-01T00:13:44.341789,-0.05600921627950406,5.215156518241754,-6.599328200185868 +2023-01-01T00:13:51.356989,-0.041916652202815374,5.165025343702027,-6.638558469593813 +2023-01-01T00:13:58.372188,-0.027822290851633902,5.11458799809685,-6.677388042603879 +2023-01-01T00:14:05.387387,-0.013726967347375219,5.063847542243058,-6.715814674997111 +2023-01-01T00:14:10.926665,-0.0025970148775957824,5.023570182888458,-6.7458706083539886 +2023-01-01T00:14:16.465944,0.00853260456872551,4.983107281711979,-6.775672847361194 +2023-01-01T00:14:22.005222,0.01966147895775361,4.942460369425226,-6.805220319602961 +2023-01-01T00:14:27.544500,0.030789196035053923,4.901630983702807,-6.8345119624976105 +2023-01-01T00:14:33.509991,0.04277135413248789,4.857457729380773,-6.865770094096978 +2023-01-01T00:14:39.879756,0.05556293622857922,4.810061442111481,-6.89881617694078 +2023-01-01T00:14:46.591192,0.06903707970071427,4.759869002264956,-6.93326400161978 +2023-01-01T00:14:53.600352,0.08310424962832563,4.707174903366623,-6.968831812454549 +2023-01-01T00:15:00.874509,0.09769730607337035,4.652194751396726,-7.005301253589888 +2023-01-01T00:15:08.148667,0.11228337206994965,4.596918863768775,-7.04131716079015 +2023-01-01T00:15:15.875053,0.127767540981365,4.537886664568441,-7.079072969774214 +2023-01-01T00:15:23.601439,0.14324164900482783,4.478529225657834,-7.116311992348644 +2023-01-01T00:15:31.715394,0.15947990987864413,4.415848972244101,-7.154859856051578 +2023-01-01T00:15:39.829349,0.17570454674469893,4.352819926805886,-7.192832028754405 +2023-01-01T00:15:48.284621,0.1925957894525252,4.286773937334409,-7.231785893055565 +2023-01-01T00:15:56.739893,0.20946937302561763,4.220360544920392,-7.270108304274324 +2023-01-01T00:16:05.501754,0.22693460482067684,4.151157602079464,-7.309150733815733 +2023-01-01T00:16:14.263614,0.24437768866698195,4.0815729105642795,-7.347508316869963 +2023-01-01T00:16:23.025475,0.26179700930833727,4.011613016013093,-7.385177713707321 +2023-01-01T00:16:32.195239,0.2800000782033272,3.9380015061293214,-7.423860248995955 +2023-01-01T00:16:41.365004,0.2981735141327595,3.863993802871671,-7.4617817862585145 +2023-01-01T00:16:50.534769,0.3163154816990188,3.7895974931920846,-7.498938744779639 +2023-01-01T00:17:00.069247,0.3351436823311129,3.711838264434318,-7.53675900853326 +2023-01-01T00:17:09.603726,0.3539338349565573,3.633675715378009,-7.573745043568685 +2023-01-01T00:17:19.138204,0.37268389819960457,3.555118455570705,-7.609893104294675 +2023-01-01T00:17:29.004698,0.3920425145383897,3.473419253687831,-7.6464137922233775 +2023-01-01T00:17:38.871192,0.41135377862812894,3.391316213401182,-7.682029270084383 +2023-01-01T00:17:48.737686,0.4306154549962209,3.3088189556862213,-7.716735693106619 +2023-01-01T00:17:58.604180,0.44982531732379916,3.225937127452176,-7.750529316937447 +2023-01-01T00:18:08.872573,0.46976026055453657,3.139281234202784,-7.784726230878921 +2023-01-01T00:18:19.140967,0.48963419247825435,3.052230212563165,-7.817926523517926 +2023-01-01T00:18:29.409360,0.5094446351224835,2.964795026521029,-7.850126312350089 +2023-01-01T00:18:39.677753,0.5291891213186124,2.8769866712417205,-7.8813218282639275 +2023-01-01T00:18:50.314952,0.5495705873408516,2.785642798265248,-7.91257485272826 +2023-01-01T00:19:00.952150,0.5698759200169449,2.6939225968432865,-7.9427423104553965 +2023-01-01T00:19:11.589349,0.5901024140742313,2.601838399188251,-7.971820396803408 +2023-01-01T00:19:22.226547,0.6102473773466852,2.5094025753094904,-7.99980543925927 +2023-01-01T00:19:32.863746,0.6303081310691936,2.4166275329703906,-8.026693898627196 +2023-01-01T00:19:43.500944,0.6502820102032174,2.323525717315406,-8.052482370366553 +2023-01-01T00:19:54.138143,0.6701663637760122,2.230109610146673,-8.077167585979767 +2023-01-01T00:20:04.775341,0.6899585552129601,2.1363917288536873,-8.10074641435344 +2023-01-01T00:20:15.412540,0.709655962641465,2.04238462502206,-8.12321586296502 +2023-01-01T00:20:26.049738,0.7292559791454356,1.948100882767026,-8.144573078881203 +2023-01-01T00:20:36.686936,0.7487560129516605,1.8535531168532926,-8.164815349492676 +2023-01-01T00:20:47.324135,0.7681534875330641,1.7587539706737525,-8.183940102950858 +2023-01-01T00:20:57.961333,0.7874458416189781,1.6637161141653327,-8.201944908295056 +2023-01-01T00:21:08.598532,0.8066305291085318,1.5684522417402678,-8.218827475280653 +2023-01-01T00:21:19.235730,0.8257050188899933,1.47297507030587,-8.23458565394049 +2023-01-01T00:21:29.872929,0.8446667945756617,1.3772973374355726,-8.249217433929086 +2023-01-01T00:21:40.510127,0.8635133541685189,1.2814317997399156,-8.262720943714195 +2023-01-01T00:21:49.871499,0.8800021630725223,1.1969191608692544,-8.273670062778931 +2023-01-01T00:21:59.232871,0.8963981222269903,1.1122796772974646,-8.283742891939538 +2023-01-01T00:22:08.594243,0.9126995524881225,1.0275220760886148,-8.292938419147841 +2023-01-01T00:22:17.955615,0.9289047824814922,0.9426550933094557,-8.301255713744007 +2023-01-01T00:22:27.316987,0.9450121484437004,0.8576874737243037,-8.308693926168496 +2023-01-01T00:22:36.678359,0.9610199941067643,0.7726279705545318,-8.315252287779122 +2023-01-01T00:22:46.039730,0.9769266706366799,0.6874853452767364,-8.32093011078598 +2023-01-01T00:22:54.426571,0.9910901755142643,0.6111427775151621,-8.32526855359977 +2023-01-01T00:23:02.813412,1.005169985837301,0.5347468430951254,-8.32889937652536 +2023-01-01T00:23:11.200252,1.0191649313363231,0.45830385832125753,-8.331822250833113 +2023-01-01T00:23:19.587093,1.0330738467766072,0.38182014426651883,-8.334036900410329 +2023-01-01T00:23:27.973933,1.0468955721161093,0.3053020265655121,-8.335543102018404 +2023-01-01T00:23:35.103093,1.0585751863949104,0.24023615593853098,-8.336266250238733 +2023-01-01T00:23:42.232252,1.0701902592892387,0.1751538902589273,-8.336477297379654 +2023-01-01T00:23:48.550827,1.0804301832101593,0.11746089622986178,-8.336236238345943 +2023-01-01T00:23:54.869402,1.0906183684600792,0.059760791739720376,-8.33559285950968 +2023-01-01T00:24:01.187976,1.100754329705764,0.002056288697177666,-8.334547164777272 +2023-01-01T00:24:05.825425,1.1081599961922262,-0.040296521209581604,-8.333523705710054 +2023-01-01T00:24:10.462873,1.115537080703197,-0.08264916646247639,-8.332283558255495 +2023-01-01T00:24:15.834477,1.1240460566083146,-0.13170505311078,-8.330576249059549 +2023-01-01T00:24:21.730280,1.1333406117490488,-0.18554426076168856,-8.328367737833043 +2023-01-01T00:24:28.044247,1.1432419919581869,-0.2431951137076483,-8.32561436678499 +2023-01-01T00:24:34.709353,1.1536347060532037,-0.3040413656994378,-8.32227234766213 +2023-01-01T00:24:41.679053,1.1644366235310464,-0.36765310525634665,-8.318299304360647 +2023-01-01T00:24:48.918980,1.1755855136261442,-0.43371088750577297,-8.31365462576267 +2023-01-01T00:24:56.158907,1.1866605106278936,-0.49974396005639016,-8.308482738827644 +2023-01-01T00:25:03.858283,1.1983564757494913,-0.5699358265040602,-8.302404480816318 +2023-01-01T00:25:11.557658,1.2099672545846794,-0.640090218706157,-8.29573062647804 +2023-01-01T00:25:19.649459,1.222077103718795,-0.7137745043627955,-8.288075140487368 +2023-01-01T00:25:27.741260,1.234091001026244,-0.787406279253464,-8.279762730401993 +2023-01-01T00:25:36.177708,1.2465134099222175,-0.8641121304273016,-8.270397378176472 +2023-01-01T00:25:44.614157,1.2588294356264011,-0.9407482618354251,-8.260319219683725 +2023-01-01T00:25:53.359388,1.2714828225716226,-1.0201088680391437,-8.249120552382887 +2023-01-01T00:26:02.104618,1.2840196073092196,-1.0993804516893693,-8.237157603058332 +2023-01-01T00:26:10.849849,1.2964386395204484,-1.1785558391514994,-8.224431308808027 +2023-01-01T00:26:20.004561,1.309311779217046,-1.2613276224439105,-8.210292420681329 +2023-01-01T00:26:29.159272,1.3220533340679312,-1.3439779141450001,-8.19531934617839 +2023-01-01T00:26:38.313983,1.334662017980651,-1.426498499758079,-8.179513381164268 +2023-01-01T00:26:47.833427,1.3476307557140246,-1.5121603957063812,-8.162195840865136 +2023-01-01T00:26:57.352870,1.3604530235737804,-1.597663943137857,-8.14398083391151 +2023-01-01T00:27:06.872313,1.373127411699317,-1.6829999231982768,-8.124870078255906 +2023-01-01T00:27:16.722576,1.3860850933918787,-1.7711152835347417,-8.104154128856836 +2023-01-01T00:27:26.572839,1.3988814052786323,-1.8590311630960417,-8.082483132718592 +2023-01-01T00:27:36.423102,1.4115148240640543,-1.9467373694927337,-8.05985930085346 +2023-01-01T00:27:46.273364,1.4239838393649915,-2.0342237189019476,-8.036284951158521 +2023-01-01T00:27:56.522747,1.4367819418257657,-2.125010557432403,-8.01074894168532 +2023-01-01T00:28:06.772130,1.4493987554286463,-2.2155368973760954,-7.984189313382093 +2023-01-01T00:28:17.021513,1.4618326247013533,-2.3057913052027468,-7.95660905595702 +2023-01-01T00:28:27.270896,1.4740819109562748,-2.3957623651532822,-7.928011290808678 +2023-01-01T00:28:37.885777,1.4865717101478673,-2.4886309994289073,-7.897324605399321 +2023-01-01T00:28:48.500658,1.4988600087668367,-2.5811708634091266,-7.865553805901081 +2023-01-01T00:28:59.115540,1.5109450500577433,-2.673369357105038,-7.8327028122589075 +2023-01-01T00:29:09.730421,1.5228251015585097,-2.765213915843444,-7.798775698195397 +2023-01-01T00:29:20.345302,1.5344984566183735,-2.856692014280087,-7.7637766903597765 +2023-01-01T00:29:31.381691,1.5464143755198112,-2.9514006413314826,-7.726256022942182 +2023-01-01T00:29:42.418079,1.5581031870998103,-3.045685658448183,-7.6875864693935725 +2023-01-01T00:29:53.454468,1.5695630723362708,-3.139533148676543,-7.6477732932428735 +2023-01-01T00:30:04.490857,1.5807922490445017,-3.232929256564876,-7.606821926092184 +2023-01-01T00:30:15.527246,1.5917889731452106,-3.3258601905249408,-7.564737963784415 +2023-01-01T00:30:26.959320,1.6029330382476497,-3.4216178204686014,-7.51995708535981 +2023-01-01T00:30:38.391393,1.6138240046841554,-3.5168464140806783,-7.473973694531593 +2023-01-01T00:30:49.823467,1.6244600687968467,-3.611530866121763,-7.426794541821418 +2023-01-01T00:31:01.255541,1.6348394733217941,-3.7056561464592317,-7.378426549989662 +2023-01-01T00:31:12.687615,1.6449605071216855,-3.799207298453777,-7.328876811212083 +2023-01-01T00:31:24.119689,1.6548215045932424,-3.892169436877457,-7.2781525852139515 +2023-01-01T00:31:36.001265,1.6647929162442947,-3.988146671785496,-7.224197225306534 +2023-01-01T00:31:47.882840,1.6744799201049685,-4.083455102720482,-7.168989754113407 +2023-01-01T00:31:59.764416,1.6838807955585011,-4.1780782485807775,-7.112538896963526 +2023-01-01T00:32:11.645991,1.6929938696453946,-4.271999702482197,-7.054853578727467 +2023-01-01T00:32:23.527567,1.7018175153830064,-4.365203131226678,-6.995942927684966 +2023-01-01T00:32:35.409143,1.7103501501280136,-4.457672276015317,-6.9358162800844445 +2023-01-01T00:32:47.724109,1.7188852485961292,-4.55272207787778,-6.872223327455135 +2023-01-01T00:33:00.039075,1.7271043976314238,-4.646947739948903,-6.8073451908849085 +2023-01-01T00:33:12.354041,1.73500597614436,-4.740331432532172,-6.74119300662452 +2023-01-01T00:33:24.669007,1.74258840846722,-4.832855431247248,-6.673778172026124 +2023-01-01T00:33:36.983973,1.7498501636160158,-4.924502125434558,-6.605112348726133 +2023-01-01T00:33:49.298940,1.7567897548818843,-5.015254027321371,-6.53520746429762 +2023-01-01T00:34:01.613906,1.7634057397476441,-5.105093781513631,-6.464075712227528 +2023-01-01T00:34:13.928872,1.769696720113705,-5.19400417433727,-6.391729550204817 +2023-01-01T00:34:26.243838,1.7756613428154937,-5.281968142593465,-6.318181696835407 +2023-01-01T00:34:38.558804,1.7812983004109613,-5.36896878133285,-6.2434451270207525 +2023-01-01T00:34:50.873770,1.7866063322182293,-5.454989350344253,-6.167533066338394 +2023-01-01T00:35:03.188737,1.7915842255857597,-5.540013279164038,-6.09045898483622 +2023-01-01T00:35:15.503703,1.7962308173803425,-5.624024170538395,-6.01223659069242 +2023-01-01T00:35:27.818669,1.800544995680983,-5.707005802407359,-5.932879824193634 +2023-01-01T00:35:40.133635,1.8045257016671288,-5.788942128602997,-5.852402852451455 +2023-01-01T00:35:51.205605,1.8078191078234638,-5.86170284654243,-5.779104279095389 +2023-01-01T00:36:02.277576,1.8108414597389584,-5.933594379121617,-5.704922459207606 +2023-01-01T00:36:13.349546,1.8135921064586955,-6.0046054269112625,-5.629868144676459 +2023-01-01T00:36:24.421516,1.8160704373791323,-6.0747248036528205,-5.5539522299708874 +2023-01-01T00:36:35.493487,1.8182758837409136,-6.143941436208205,-5.477185752748897 +2023-01-01T00:36:46.565457,1.8202079201365242,-6.212244365084415,-5.399579895060909 +2023-01-01T00:36:56.243068,1.8216723355492714,-6.271188637999309,-5.331068818320219 +2023-01-01T00:37:05.920678,1.8229272092076774,-6.32941939685424,-5.261932774431165 +2023-01-01T00:37:15.598289,1.8239722768131865,-6.386929542820512,-5.192179507753663 +2023-01-01T00:37:25.275900,1.8248073024090936,-6.443712048785336,-5.121816850812752 +2023-01-01T00:37:33.613116,1.8253580949115613,-6.4920411422706135,-5.060717180436034 +2023-01-01T00:37:41.950332,1.825752730627066,-6.539820638408503,-4.999176231897675 +2023-01-01T00:37:49.383770,1.8259728237114512,-6.581953700573157,-4.943938577476282 +2023-01-01T00:37:56.817208,1.8260686433116922,-6.6236433413350015,-4.888357933121852 +2023-01-01T00:38:04.250646,1.8260401411236296,-6.66488653242665,-4.832438024973362 +2023-01-01T00:38:11.684085,1.825887279347778,-6.705680275813359,-4.776182609802931 +2023-01-01T00:38:19.117523,1.8256100306847625,-6.746021604569528,-4.719595474663048 +2023-01-01T00:38:27.011304,1.8251794136483062,-6.7883626329482665,-4.6591450654737 +2023-01-01T00:38:35.327918,1.8245739604016995,-6.8324123576371605,-4.595061670588001 +2023-01-01T00:38:44.020058,1.823774741619928,-6.877833452099514,-4.527657367398741 +2023-01-01T00:38:53.033550,1.8227663532568572,-6.924262310089979,-4.457306430908956 +2023-01-01T00:39:02.047041,1.8215751334354637,-6.970002607472241,-4.386499515696577 +2023-01-01T00:39:11.620166,1.8201098225210095,-7.017823374659005,-4.31080490356162 +2023-01-01T00:39:21.193291,1.8184384662589923,-7.0648561578804046,-4.234612476318723 +2023-01-01T00:39:31.245094,1.8164619327876426,-7.113386428896787,-4.154083909391214 +2023-01-01T00:39:41.296898,1.8142585751750748,-7.161035280769541,-4.0730260475752385 +2023-01-01T00:39:51.765020,1.8117230859026527,-7.20971389376637,-3.988059255185384 +2023-01-01T00:40:02.233142,1.8089421115817363,-7.257422741226517,-3.90254089564512 +2023-01-01T00:40:13.074764,1.8058034664474198,-7.305804244096402,-3.8134021810797707 +2023-01-01T00:40:23.916386,1.8024022229171663,-7.3531307601816085,-3.723697203817027 +2023-01-01T00:40:34.758008,1.7987387980632428,-7.399394999687939,-3.633438987577925 +2023-01-01T00:40:46.095337,1.7946279254425188,-7.446630573396344,-3.538476390471673 +2023-01-01T00:40:57.432667,1.790231398065913,-7.492688718454659,-3.4429382038812015 +2023-01-01T00:41:08.769997,1.7855498123712819,-7.537561622016176,-3.346839589514937 +2023-01-01T00:41:20.107327,1.7805838055161223,-7.5812416427371065,-3.2501958018262553 +2023-01-01T00:41:31.444657,1.7753340560185218,-7.623721308729274,-3.1530221904013813 +2023-01-01T00:41:42.781987,1.769801284749963,-7.664993316756513,-3.055334203063147 +2023-01-01T00:41:54.119317,1.7639862562268953,-7.7050505328296115,-2.957147389372924 +2023-01-01T00:42:05.456647,1.7578897801315745,-7.743885994271837,-2.858477404188254 +2023-01-01T00:42:16.793976,1.7515127129759889,-7.781492913244028,-2.759340010931103 +2023-01-01T00:42:28.131306,1.7448559598254962,-7.817864681620689,-2.6597510842283962 +2023-01-01T00:42:39.468636,1.7379204759773192,-7.852994877049431,-2.5597266116380903 +2023-01-01T00:42:50.805966,1.7307072685104927,-7.886877269935788,-2.459282694219256 +2023-01-01T00:43:02.143296,1.7232173976195173,-7.919505831058617,-2.3584355457746984 +2023-01-01T00:43:13.480626,1.7154519776603037,-7.950874739482516,-2.2572014906722035 +2023-01-01T00:43:24.817956,1.707412177853672,-7.980978390421004,-2.155596960233038 +2023-01-01T00:43:36.155286,1.6990992226059531,-8.009811402716693,-2.0536384877570337 +2023-01-01T00:43:47.492615,1.6905143914433278,-8.037368625619898,-1.9513427023314167 +2023-01-01T00:43:57.631435,1.6826078998122096,-8.060928036621336,-1.8595889294071986 +2023-01-01T00:44:07.770254,1.674486032976819,-8.083459852142926,-1.7675907714365293 +2023-01-01T00:44:17.909073,1.6661498154830188,-8.104960876438518,-1.6753602866812292 +2023-01-01T00:44:28.047892,1.6576003049244883,-8.125428071127445,-1.58290957530202 +2023-01-01T00:44:38.186711,1.6488385910911827,-8.144858555796311,-1.4902507745196971 +2023-01-01T00:44:48.325530,1.6398657950532893,-8.163249607961495,-1.39739605395576 +2023-01-01T00:44:58.464349,1.6306830682278077,-8.18059866245239,-1.3043576112708624 +2023-01-01T00:45:08.603168,1.6212915914774975,-8.196903310302835,-1.211147668199401 +2023-01-01T00:45:18.741988,1.6116925742584045,-8.21216129726396,-1.1177784670478494 +2023-01-01T00:45:27.848044,1.6028954461049159,-8.22497117025364,-1.033794404018341 +2023-01-01T00:45:36.954101,1.5939328179583505,-8.2369336373239,-0.9497006570459499 +2023-01-01T00:45:46.060157,1.5848056223401183,-8.248047377266845,-0.8655061273646599 +2023-01-01T00:45:55.166214,1.5755148089537236,-8.258311165000418,-0.7812197239794045 +2023-01-01T00:46:04.272270,1.5660613445547948,-8.267723870601964,-0.6968503629898342 +2023-01-01T00:46:13.378327,1.5564462128888126,-8.276284458483797,-0.6124069671007005 +2023-01-01T00:46:21.500367,1.547734516938462,-8.283200234940205,-0.5370334703868116 +2023-01-01T00:46:29.622406,1.5388957235131069,-8.289436749550187,-0.4616145182241953 +2023-01-01T00:46:37.744446,1.5299305651211252,-8.294993455408942,-0.3861564542117394 +2023-01-01T00:46:45.866486,1.5208397852839641,-8.299869864439454,-0.3106656255332975 +2023-01-01T00:46:53.062676,1.5126809333075588,-8.30362165998757,-0.24375790291158295 +2023-01-01T00:47:00.258865,1.5044245918232706,-8.306838818512315,-0.1768338641699383 +2023-01-01T00:47:07.455055,1.496071300118924,-8.309521116776905,-0.10989793040418563 +2023-01-01T00:47:13.467406,1.4890182574794824,-8.31135190277558,-0.05396764450625632 +2023-01-01T00:47:19.479758,1.4818982429603165,-8.3128091122378,0.001965277039889305 +2023-01-01T00:47:24.149182,1.4763225692805273,-8.313683059734966,0.04540510940419072 +2023-01-01T00:47:28.818605,1.4707068510891435,-8.314331609195182,0.08884376549328746 +2023-01-01T00:47:34.214914,1.4641672628833535,-8.31480033282305,0.13904142630630334 +2023-01-01T00:47:40.117295,1.4569536676702577,-8.314968257800475,0.19394082677241076 +2023-01-01T00:47:46.426160,1.4491734989358576,-8.314749478749427,0.2526115870307052 +2023-01-01T00:47:52.735025,1.4413216054541076,-8.314119186152347,0.3112696655349467 +2023-01-01T00:47:59.585221,1.4327152267540306,-8.31296885965693,0.37494305309703396 +2023-01-01T00:48:06.784512,1.4235801952308909,-8.311237159207558,0.4418372248340901 +2023-01-01T00:48:13.983802,1.4143534622216656,-8.308969841194504,0.50870234794507 +2023-01-01T00:48:21.637508,1.404444464815406,-8.305972199057134,0.5797511427299039 +2023-01-01T00:48:29.291214,1.3944332660515721,-8.302369620242176,0.6507567791455092 +2023-01-01T00:48:37.333473,1.3838045452170666,-8.297932692150741,0.7253148089205134 +2023-01-01T00:48:45.375732,1.3730647058438148,-8.292828574533804,0.7998131542891975 +2023-01-01T00:48:53.759589,1.3617513582397063,-8.28679785653718,0.8774056664976445 +2023-01-01T00:49:02.143447,1.350319258784701,-8.280043163701444,0.9549196595657611 +2023-01-01T00:49:10.833697,1.3383451409616898,-8.272278184259617,1.035176126691836 +2023-01-01T00:49:19.523946,1.3262457265798928,-8.263736884808482,1.1153330217350215 +2023-01-01T00:49:28.214196,1.3140222025106096,-8.254420169381907,1.1953826236948248 +2023-01-01T00:49:37.311401,1.3010946040068943,-8.243837500114514,1.2790575410025777 +2023-01-01T00:49:46.408607,1.2880337047530035,-8.232407396646202,1.3625976157536361 +2023-01-01T00:49:55.505812,1.2748409093420947,-8.220131181077361,1.4459940476914752 +2023-01-01T00:50:04.966290,1.2609829189057735,-8.206468806316213,1.5325588899586557 +2023-01-01T00:50:14.426767,1.2469854324631866,-8.191894633996798,1.6189490485794549 +2023-01-01T00:50:23.887245,1.232850075426001,-8.176410478598175,1.705154704893874 +2023-01-01T00:50:33.677998,1.2180778099242975,-8.159429614463933,1.79416519281901 +2023-01-01T00:50:43.468751,1.2031614699921764,-8.141478439252543,1.882956768304188 +2023-01-01T00:50:53.259505,1.1881029056096337,-8.122559334134916,1.9715186488962713 +2023-01-01T00:51:03.050258,1.1729039824488052,-8.102674804636495,2.0598400886195902 +2023-01-01T00:51:13.240525,1.1569378235138617,-8.080956396474026,2.1514986125937723 +2023-01-01T00:51:23.430791,1.140823793593428,-8.058198124171316,2.2428730448155485 +2023-01-01T00:51:33.621057,1.1245640486235695,-8.034403239323497,2.333951404527509 +2023-01-01T00:51:43.811324,1.1081607618662317,-8.009575137794728,2.424721760574662 +2023-01-01T00:51:54.368327,1.0910180923063844,-7.982767615778467,2.518421337920621 +2023-01-01T00:52:04.925331,1.0737261685488542,-7.954859067630116,2.61176444632692 +2023-01-01T00:52:15.482334,1.0562874639310396,-7.925853754707463,2.7047380036000086 +2023-01-01T00:52:26.039337,1.0387044702593222,-7.895756100713645,2.797328995774232 +2023-01-01T00:52:36.596341,1.0209796972742322,-7.864570689943317,2.8895244801094395 +2023-01-01T00:52:47.577021,1.0023958772936905,-7.830984724010059,2.984986510457979 +2023-01-01T00:52:58.557701,0.9836642667193356,-7.796232589246956,3.079992336290462 +2023-01-01T00:53:09.538381,0.9647877470446411,-7.760319980873705,3.1745276577043913 +2023-01-01T00:53:20.519062,0.9457692175585537,-7.723252769637449,3.26857827003779 +2023-01-01T00:53:31.499742,0.9266115944931044,-7.685036997978418,3.3621300657091755 +2023-01-01T00:53:42.878821,0.906615275274055,-7.644229499226357,3.4585348362990227 +2023-01-01T00:53:54.257899,0.8864760161447602,-7.602202351695778,3.554373415918248 +2023-01-01T00:54:05.636978,0.86619711503397,-7.55896283776306,3.649630440382049 +2023-01-01T00:54:17.016057,0.8457818865887181,-7.514518421841229,3.744290658754248 +2023-01-01T00:54:28.395136,0.8252336619766303,-7.468876747880563,3.8383389321735755 +2023-01-01T00:54:39.774215,0.8045557889570856,-7.4220456378460575,3.931760232432148 +2023-01-01T00:54:51.153294,0.7837516322116409,-7.374033091252567,4.024539640543359 +2023-01-01T00:55:02.532372,0.7628245739246782,-7.324847285777203,4.116662345593188 +2023-01-01T00:55:13.911451,0.7417780145651314,-7.27449657888919,4.208113644139856 +2023-01-01T00:55:25.290530,0.7206153738271657,-7.222989510362275,4.298878940439685 +2023-01-01T00:55:36.669609,0.6993400916452122,-7.170334805464316,4.388943747713456 +2023-01-01T00:55:48.048688,0.6779556292181055,-7.1165413785530705,4.478293690635996 +2023-01-01T00:55:59.427767,0.6564654699411916,-7.061618336763541,4.5669145091418315 +2023-01-01T00:56:10.806845,0.634873120161294,-7.005574983439855,4.65479206356994 +2023-01-01T00:56:22.185924,0.613182109678494,-6.948420820957942,4.741912341079358 +2023-01-01T00:56:33.565003,0.5913959918981431,-6.890165552601442,4.828261463173828 +2023-01-01T00:56:44.944082,0.5695183435971702,-6.830819083190564,4.913825694099248 +2023-01-01T00:56:56.323161,0.5475527642325355,-6.77039151822229,4.998591449797285 +2023-01-01T00:57:07.702239,0.5255028747997894,-6.708893161362514,5.082545307051666 +2023-01-01T00:57:19.081318,0.5033723162113071,-6.646334510213906,5.165674012422333 +2023-01-01T00:57:30.460397,0.48116474725194136,-6.5827262503966,5.247964490561313 +2023-01-01T00:57:41.839476,0.4588838421263266,-6.5180792480622864,5.329403851510814 +2023-01-01T00:57:53.218555,0.4365332877004744,-6.45240454108332,5.4099793966374605 +2023-01-01T00:58:04.597634,0.41411678048854617,-6.385713329215975,5.489678622907418 +2023-01-01T00:58:14.662114,0.39423800319778435,-6.3258887527094245,5.559430211207171 +2023-01-01T00:58:24.726595,0.3743130928793277,-6.265285797398052,5.628478249374352 +2023-01-01T00:58:34.791075,0.35434461434657294,-6.2039124899609615,5.696814473597826 +2023-01-01T00:58:44.855555,0.3343351311485141,-6.1417769321922435,5.764430739199736 +2023-01-01T00:58:54.920036,0.3142872040758973,-6.078887296138082,5.831319018204394 +2023-01-01T00:59:04.984516,0.29420338981949534,-6.015251819883032,5.89747139623608 +2023-01-01T00:59:15.048997,0.27408623980873426,-5.9508788041163685,5.962880068903992 +2023-01-01T00:59:25.113477,0.253938299251375,-5.885776609574288,6.027537337857184 +2023-01-01T00:59:35.177958,0.23376210638678963,-5.819953655414004,6.09143560670846 +2023-01-01T00:59:45.242438,0.21356019195690257,-5.753418418532619,6.154567377032786 +2023-01-01T00:59:54.082591,0.1957965851388188,-5.694396254277167,6.209381105919405 +2023-01-01T01:00:02.922745,0.17801678526598863,-5.634836967677855,6.263592806796425 +2023-01-01T01:00:11.762898,0.1602224922634794,-5.574746415952661,6.3171975729711605 +2023-01-01T01:00:20.603051,0.142415401468444,-5.514130493567897,6.3701905494384485 +2023-01-01T01:00:29.443205,0.12459720380003514,-5.45299513364613,6.422566932228178 +2023-01-01T01:00:38.283358,0.1067695859772626,-5.391346309502373,6.474321968166798 +2023-01-01T01:00:46.097070,0.09100545926459436,-5.336432924295554,6.519546579774591 +2023-01-01T01:00:53.910782,0.07523644734335155,-5.281127270953427,6.564278870484451 +2023-01-01T01:01:01.724494,0.059463707773069974,-5.225433558547809,6.6085156588086384 +2023-01-01T01:01:09.538206,0.04368839619150666,-5.169356024089383,6.652253796035662 +2023-01-01T01:01:16.169755,0.030298625317952244,-5.121464711015816,6.688981130694485 +2023-01-01T01:01:22.801305,0.01690853744780263,-5.073302625719649,6.725345156333714 +2023-01-01T01:01:28.711433,0.004975412147667058,-5.030153868862956,6.757445583622592 +2023-01-01T01:01:33.966538,-0.005634496836326441,-4.991609964168404,6.785743634112651 +2023-01-01T01:01:39.221642,-0.016243420012631127,-4.9529004939714465,6.813810422443336 +2023-01-01T01:01:44.476747,-0.026851008098615292,-4.914026791111864,6.841645044920643 +2023-01-01T01:01:50.268526,-0.03853992418044516,-4.87099449456796,6.8720522453296295 +2023-01-01T01:01:56.494926,-0.05110317430712774,-4.824514371806027,6.904424122210503 +2023-01-01T01:02:03.083371,-0.06439313069852792,-4.7750873391554665,6.938318938312248 +2023-01-01T01:02:09.984214,-0.07830831274222305,-4.723050254217985,6.973422851275866 +2023-01-01T01:02:17.161202,-0.09277414302648612,-4.668644940309252,7.009497392501361 +2023-01-01T01:02:24.586564,-0.10773302371345417,-4.612053682786509,7.046352252566894 +2023-01-01T01:02:32.011926,-0.12268323758955546,-4.555157981374889,7.082728719786134 +2023-01-01T01:02:39.866265,-0.1384866338704278,-4.494648318429645,7.120683516205426 +2023-01-01T01:02:47.720604,-0.15427807911736946,-4.433807051889385,7.15809778344178 +2023-01-01T01:02:55.946103,-0.17080168443084864,-4.369740318774198,7.196697760353351 +2023-01-01T01:03:04.171603,-0.18730958576719647,-4.305320426092043,7.234699051591337 +2023-01-01T01:03:12.726086,-0.20445964640970282,-4.237955215516259,7.273582013755832 +2023-01-01T01:03:21.280569,-0.22158979660251177,-4.170220011995758,7.311811077543043 +2023-01-01T01:03:30.131866,-0.2392917651495059,-4.099751679233485,7.350674895472904 +2023-01-01T01:03:38.983162,-0.2569691761233015,-4.0289006394966345,7.388831871197517 +2023-01-01T01:03:47.834459,-0.2746203839693844,-3.957673744943177,7.426278667074847 +2023-01-01T01:03:57.082116,-0.29303223909171505,-3.8828632943040295,7.464640191906627 +2023-01-01T01:04:06.329773,-0.3114118256524083,-3.8076579385299896,7.502219305636024 +2023-01-01T01:04:15.577429,-0.32975727401836785,-3.7320655622661807,7.539012450812082 +2023-01-01T01:04:25.180347,-0.3487693552355504,-3.6531680719381994,7.576383488465153 +2023-01-01T01:04:34.783265,-0.36774052391817613,-3.5738706585547733,7.6128994593387445 +2023-01-01T01:04:44.386182,-0.38666869549902216,-3.4941822261557327,7.648556651594032 +2023-01-01T01:04:53.989100,-0.40555178873416886,-3.4141117050695993,7.683351442216309 +2023-01-01T01:05:04.015978,-0.42521819730911825,-3.3301080735546025,7.71875821287971 +2023-01-01T01:05:14.042857,-0.4448308334340636,-3.2457078671298296,7.753216975781675 +2023-01-01T01:05:24.069735,-0.46438734139493154,-3.160921351121039,7.786723911591479 +2023-01-01T01:05:34.096614,-0.4838853710337263,-3.075758827456132,7.819275305280431 +2023-01-01T01:05:44.508123,-0.5040669464797585,-2.9869426330964797,7.852060275496315 +2023-01-01T01:05:54.919632,-0.5241803276304833,-2.897743798750281,7.883807179012066 +2023-01-01T01:06:05.331142,-0.544222907231292,-2.8081739893488646,7.914512224944642 +2023-01-01T01:06:15.742651,-0.5641920880967546,-2.7182449144903007,7.944171752958117 +2023-01-01T01:06:26.510444,-0.5847646565010985,-2.6248730423663655,7.973742686408044 +2023-01-01T01:06:37.278236,-0.6052531039899476,-2.5311425149306297,8.002187803455413 +2023-01-01T01:06:48.046029,-0.6256545990618297,-2.437066423601135,8.029503516364935 +2023-01-01T01:06:58.813822,-0.6459663267694337,-2.3426578991932594,8.055686399544664 +2023-01-01T01:07:09.581614,-0.6661854898012437,-2.247930106914381,8.080733191211841 +2023-01-01T01:07:20.349407,-0.6863093093869399,-2.152896240923627,8.104640794023705 +2023-01-01T01:07:31.117199,-0.7063350259857222,-2.057569518730313,8.127406274581336 +2023-01-01T01:07:41.884992,-0.7262598997264692,-1.9619631757256812,8.149026861787029 +2023-01-01T01:07:52.652785,-0.746081210580483,-1.8660904601430282,8.169499944113701 +2023-01-01T01:08:03.420577,-0.7657962582613991,-1.7699646287227817,8.188823065920646 +2023-01-01T01:08:14.188370,-0.7854023618616498,-1.6735989433216911,8.20699392301834 +2023-01-01T01:08:24.956162,-0.8048968592500547,-1.5770066686516722,8.224010357742682 +2023-01-01T01:08:35.723955,-0.8242771062695483,-1.4802010712666442,8.239870353840864 +2023-01-01T01:08:46.491748,-0.8435404757869859,-1.3831954198391412,8.254572031494877 +2023-01-01T01:08:55.999100,-0.860449699144214,-1.297389219513945,8.266588511095321 +2023-01-01T01:09:05.506452,-0.8772639826180751,-1.2114465458268844,8.277699493808697 +2023-01-01T01:09:15.013804,-0.8939815471280168,-1.125376544223247,8.287903936102683 +2023-01-01T01:09:24.521155,-0.9106006216535961,-1.0391883681061445,8.297200869974006 +2023-01-01T01:09:34.028507,-0.9271194428408143,-0.9528911812853766,8.30558940273054 +2023-01-01T01:09:43.535859,-0.9435362547257349,-0.8664941604911612,8.313068717473952 +2023-01-01T01:09:53.043211,-0.9598493085909712,-0.7800064978021273,8.319638074292582 +2023-01-01T01:10:02.550563,-0.9760568629794582,-0.6934374028380161,8.325296812134269 +2023-01-01T01:10:10.869939,-0.9901513158304438,-0.6176258593768988,8.329500963225772 +2023-01-01T01:10:19.189316,-1.004162502194046,-0.5417652256842909,8.333007066696542 +2023-01-01T01:10:27.508692,-1.0180892699108344,-0.46586171087954475,8.335814838231773 +2023-01-01T01:10:35.828068,-1.031930471966452,-0.38992153663819,8.33792404663007 +2023-01-01T01:10:44.147444,-1.045684966883985,-0.3139509369121431,8.339334515765525 +2023-01-01T01:10:51.358251,-1.0575356317281484,-0.24808374107799436,8.3399916636688 +2023-01-01T01:10:58.569059,-1.0693195689765878,-0.18220245319898598,8.340123749365416 +2023-01-01T01:11:04.494766,-1.078952924808999,-0.1280547607774531,8.339839251574185 +2023-01-01T01:11:10.420474,-1.0885403198807648,-0.07390257196738831,8.33920017394979 +2023-01-01T01:11:16.707173,-1.0986610814514761,-0.01644906535483759,8.338134558155003 +2023-01-01T01:11:21.700916,-1.1066628476167109,0.029188235119244843,8.337003745409401 +2023-01-01T01:11:26.694659,-1.1146311485776697,0.07482405004603415,8.335621208263662 +2023-01-01T01:11:31.953817,-1.1229865198948923,0.12288228507114529,8.333893091970115 +2023-01-01T01:11:37.762385,-1.1321709814552539,0.1759554531007992,8.331660113435657 +2023-01-01T01:11:44.003901,-1.1419884019019986,0.23297560920352056,8.328881370985277 +2023-01-01T01:11:50.606363,-1.1523148689110851,0.2932803225507826,8.325514394245916 +2023-01-01T01:11:57.520487,-1.16306353356419,0.3564140784548776,8.321517526555628 +2023-01-01T01:12:04.710245,-1.1741692546179452,0.4220418137269477,8.316850583841424 +2023-01-01T01:12:12.148051,-1.1855807576078008,0.4899049099121381,8.311474996259813 +2023-01-01T01:12:19.585856,-1.196912847530249,0.5577342972525741,8.305542881754876 +2023-01-01T01:12:27.452410,-1.208810941482214,0.6294320436983726,8.298663728250755 +2023-01-01T01:12:35.318964,-1.220618516742613,0.7010818206462294,8.291163094645194 +2023-01-01T01:12:43.556874,-1.2328855325306927,0.7760568185952456,8.282642868071418 +2023-01-01T01:12:51.794783,-1.245051375583712,0.8509674248225538,8.273442531349877 +2023-01-01T01:13:00.362209,-1.2575954971102083,0.9287996956138912,8.26315359208534 +2023-01-01T01:13:08.929635,-1.2700280847993024,1.0065490934295376,8.252130892185868 +2023-01-01T01:13:17.794628,-1.2827739483473353,1.0869045179835934,8.23995401014705 +2023-01-01T01:13:26.659620,-1.2953981077235073,1.1671566145883494,8.226993806123742 +2023-01-01T01:13:35.524612,-1.3078994175424956,1.2472979943086688,8.213251534085533 +2023-01-01T01:13:44.787179,-1.3208289152593817,1.3309072644457636,8.19805890792235 +2023-01-01T01:13:54.049746,-1.3336217784997495,1.4143792417668855,8.18201547764167 +2023-01-01T01:14:03.312312,-1.3462767382482934,1.4977055675058875,8.165122858997796 +2023-01-01T01:14:12.930952,-1.3592708764560653,1.584072039630679,8.14668386460349 +2023-01-01T01:14:22.549592,-1.3721135514434155,1.6702631293022054,8.127332886264359 +2023-01-01T01:14:32.168231,-1.3848033774779296,1.7562695265025776,8.107071933848355 +2023-01-01T01:14:41.786871,-1.3973389792965039,1.8420819304057707,8.085903085950658 +2023-01-01T01:14:51.829030,-1.4102604992084737,1.9314556880231635,8.062835739974778 +2023-01-01T01:15:01.871189,-1.4230108839144622,2.0205972857064056,8.038783661613213 +2023-01-01T01:15:11.913347,-1.4355886021070141,2.1094961480252996,8.013749473588152 +2023-01-01T01:15:21.955506,-1.4479921338118937,2.198141697315153,7.987735895162113 +2023-01-01T01:15:32.379602,-1.4606815488865408,2.2898794583859194,7.959699981452652 +2023-01-01T01:15:42.803699,-1.4731799774665981,2.3813210325590313,7.930615080838248 +2023-01-01T01:15:53.227795,-1.4854857615699686,2.472454580724216,7.900484603876987 +2023-01-01T01:16:03.651892,-1.4975972594221105,2.563268265759126,7.869312099475352 +2023-01-01T01:16:14.075988,-1.5095128467016776,2.653750257203569,7.837101260537442 +2023-01-01T01:16:24.934436,-1.521714876940821,2.747637001827452,7.8024482684031105 +2023-01-01T01:16:35.792884,-1.533700796561985,2.841137676176932,7.766677295188526 +2023-01-01T01:16:46.651332,-1.5454688393256686,2.934238976081562,7.729793039717073 +2023-01-01T01:16:57.509780,-1.5570172657068517,3.0269276377975647,7.6918003826915635 +2023-01-01T01:17:08.368228,-1.5683443641720585,3.1191904469245006,7.652704385350906 +2023-01-01T01:17:19.631814,-1.5798584175003187,3.21443160047334,7.610989432191777 +2023-01-01T01:17:30.895400,-1.591130664797302,3.3091857633571338,7.568098951320203 +2023-01-01T01:17:42.158985,-1.6021592973066845,3.4034384069423016,7.524039179280128 +2023-01-01T01:17:53.422571,-1.6129425418556826,3.4971750902488528,7.4788165374575195 +2023-01-01T01:18:04.686157,-1.6234786609653764,3.5903814631001874,7.432437623400479 +2023-01-01T01:18:16.336219,-1.6341144946242534,3.6862128433129886,7.383258093117804 +2023-01-01T01:18:27.986280,-1.6444822894409026,3.781445968787474,7.332856484395819 +2023-01-01T01:18:39.636342,-1.65458024235702,3.876065265106155,7.281240636165852 +2023-01-01T01:18:51.286403,-1.6644065903186513,3.9700552531417412,7.228418554949983 +2023-01-01T01:19:02.936465,-1.6739596102096608,4.063400542654742,7.17439841055 +2023-01-01T01:19:14.586527,-1.6832376190251659,4.156085825294433,7.1191885341643575 +2023-01-01T01:19:26.679751,-1.6925758977720873,4.251582348715219,7.0606291232151 +2023-01-01T01:19:38.772975,-1.7016142856579308,4.3463343231293905,7.000806585859416 +2023-01-01T01:19:50.866199,-1.7103510423714252,4.440324861960507,6.939730807824431 +2023-01-01T01:20:02.959423,-1.7187844789277018,4.533537148995244,6.877411880875821 +2023-01-01T01:20:15.052648,-1.7269129597954769,4.625954437518831,6.8138601124681895 +2023-01-01T01:20:27.145872,-1.7347349052280374,4.717560052448045,6.7490860360158145 +2023-01-01T01:20:39.668990,-1.742510211554922,4.8115489298176515,6.680732577509563 +2023-01-01T01:20:52.192109,-1.7499535488406972,4.904631265721241,6.6110921510342555 +2023-01-01T01:21:04.715227,-1.7570633677366447,4.996788834184029,6.540177283720053 +2023-01-01T01:21:17.238346,-1.763838192735853,5.088003534116607,6.468000799368329 +2023-01-01T01:21:29.761464,-1.770276623391873,5.178257405587172,6.394575821217706 +2023-01-01T01:21:42.284583,-1.7763773347343448,5.267532646581685,6.319915771240273 +2023-01-01T01:21:54.807701,-1.7821390768215104,5.3558116292687625,6.244034366034028 +2023-01-01T01:22:07.330820,-1.7875606734196672,5.4430769148755935,6.166945609620791 +2023-01-01T01:22:19.853938,-1.7926410198778397,5.529311266395499,6.088663783704877 +2023-01-01T01:22:32.377057,-1.7973790803217335,5.614497658555972,6.009203436115765 +2023-01-01T01:22:44.900175,-1.8017738843435103,5.6986192847074255,5.928579368266124 +2023-01-01T01:22:57.423294,-1.8058245234195085,5.781659560545771,5.846806622521407 +2023-01-01T01:23:08.399131,-1.8090910107511173,5.853537778852623,5.774204699623516 +2023-01-01T01:23:19.374969,-1.8120919335514705,5.9245619030556735,5.700742558571569 +2023-01-01T01:23:30.350806,-1.8148267850036306,5.994721186449155,5.626430743878799 +2023-01-01T01:23:41.326644,-1.8172950878954306,6.064005008342075,5.551279921360996 +2023-01-01T01:23:52.302481,-1.8194963937610145,6.132402871158337,5.47530087603493 +2023-01-01T01:24:03.278319,-1.8214302824478077,6.1999043975495916,5.398504511195541 +2023-01-01T01:24:13.061636,-1.8229283225128805,6.259308024414785,5.329372051946708 +2023-01-01T01:24:22.844953,-1.824213328254062,6.317984165891555,5.259606868476743 +2023-01-01T01:24:32.628269,-1.8252850601504353,6.375925706089767,5.189216922689161 +2023-01-01T01:24:42.411586,-1.8261432980796033,6.433125601234359,5.118210254242678 +2023-01-01T01:24:50.810746,-1.8267096362710147,6.4816358018765605,5.05676386211164 +2023-01-01T01:24:59.209906,-1.827118356222278,6.529589862182862,4.9948740793142985 +2023-01-01T01:25:07.609066,-1.827369356070275,6.576983454336504,4.9325461349111395 +2023-01-01T01:25:14.145265,-1.8274555002022899,6.613474462074583,4.883742946694765 +2023-01-01T01:25:20.681464,-1.827446039765479,6.6496214565638905,4.834680109433233 +2023-01-01T01:25:27.217664,-1.8273409432354533,6.685422451132087,4.785360144189253 +2023-01-01T01:25:34.243485,-1.8271212935072736,6.723517172904916,4.73206181411078 +2023-01-01T01:25:41.844058,-1.8267591812524997,6.7642727167966665,4.6740758087141705 +2023-01-01T01:25:49.904053,-1.8262338025007017,6.80697121701349,4.6122172702174575 +2023-01-01T01:25:58.361529,-1.825526030947132,6.851195465463714,4.546906613766545 +2023-01-01T01:26:07.172053,-1.8246182900513173,6.896629849141616,4.478438345274342 +2023-01-01T01:26:16.298855,-1.8234945966231537,6.94300609802225,4.40705491419161 +2023-01-01T01:26:25.425657,-1.8221843444971864,6.988676111075467,4.335213269859348 +2023-01-01T01:26:35.096666,-1.8205924611644608,7.036293150377291,4.25859600590334 +2023-01-01T01:26:44.767675,-1.8187912850446337,7.083105889262553,4.181481186926487 +2023-01-01T01:26:54.908044,-1.8166780638619642,7.13132056443594,4.100099037674082 +2023-01-01T01:27:05.048413,-1.8143350773870135,7.178638271536039,4.01818979179026 +2023-01-01T01:27:15.601199,-1.8116530670693418,7.22692118985468,3.9324006341454836 +2023-01-01T01:27:26.153986,-1.8087227530989543,7.274218839801304,3.8460635102257847 +2023-01-01T01:27:37.077403,-1.8054283343564324,7.322132564116316,3.7561294808683754 +2023-01-01T01:27:48.000820,-1.801868623658363,7.368975784521872,3.6656341203829297 +2023-01-01T01:27:58.924238,-1.7980440705262541,7.414741197773617,3.57459068664826 +2023-01-01T01:28:10.340996,-1.7937642651460144,7.461413865626784,3.478864120864333 +2023-01-01T01:28:21.757754,-1.7891962979076648,7.506893380992045,3.3825687776752704 +2023-01-01T01:28:33.174513,-1.7843408224903157,7.5511719423896455,3.2857201018401843 +2023-01-01T01:28:44.591271,-1.779198538445998,7.594241930240637,3.188333643904577 +2023-01-01T01:28:56.008029,-1.7737701906447296,7.636095907842497,3.0904250617183675 +2023-01-01T01:29:07.424788,-1.7680565690243717,7.676726623481976,2.9920101222138804 +2023-01-01T01:29:18.841546,-1.7620585086313176,7.716127013739823,2.893104703106031 +2023-01-01T01:29:30.258304,-1.755776889916283,7.75429020794806,2.79372479417164 +2023-01-01T01:29:41.675063,-1.7492126392315432,7.791209533667739,2.6938864977854484 +2023-01-01T01:29:53.091821,-1.7423667294632592,7.826878522971239,2.5936060284355307 +2023-01-01T01:30:00,-1.738087981400374,7.847851682870495,2.532719366042734 diff --git a/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv b/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv new file mode 100644 index 000000000..0d2cb311e --- /dev/null +++ b/bindings/python/test/dynamics/data/Tabulated_Earth_Gravity_Truth.csv @@ -0,0 +1,100 @@ +2023-01-01T00:32:48.111089,1.7191483402327778,-4.555695618883114,-6.870204125790202 +2023-01-01T00:19:29.459534,0.6238974331671631,2.4463543889353314,-8.018208336636835 +2023-01-01T00:04:09.215794,-1.1266971898009275,8.030698634105178,-2.278378122073309 +2023-01-01T00:50:31.618217,1.2211976307223766,-8.163082723958349,1.7754569691644122 +2023-01-01T01:13:11.556113,-1.2738169874249923,1.030366747921056,8.248604915195754 +2023-01-01T00:14:50.679103,0.07724202808611891,4.729170491836577,-6.954058816144306 +2023-01-01T00:18:45.802420,0.5409334646601992,2.8244395409078473,-7.899448991107787 +2023-01-01T00:56:58.873129,0.5426187466838862,-6.7567029107513585,5.0174759508932985 +2023-01-01T01:16:15.961482,-1.5116470711025858,2.6700801510740413,7.8311644209397295 +2023-01-01T01:13:50.455156,-1.3286734668163875,1.3820025202782518,8.188342483703309 +2023-01-01T00:09:54.817808,-0.5107984138222772,6.667949349042532,-5.110380980021721 +2023-01-01T01:29:38.472976,-1.7510821943533392,7.780980568267226,2.7219337108416783 +2023-01-01T00:36:28.648177,1.81694458577409,-6.101254983555447,-5.52474683715429 +2023-01-01T00:06:10.037691,-0.9255700188600137,7.679552998146506,-3.3297731246095985 +2023-01-01T00:40:33.018697,1.7993441563244328,-7.392044708689084,-3.6479557442598662 +2023-01-01T00:19:11.901712,0.5906951503274656,2.5991289518356875,-7.972657778620277 +2023-01-01T01:17:53.160545,-1.6126944907261054,3.495000450621351,7.479881720219948 +2023-01-01T01:08:18.578209,-0.7933635501867621,-1.634246582808268,8.214070725173318 +2023-01-01T00:16:38.199758,0.29190381793323983,3.889584301619638,-7.448778148556464 +2023-01-01T01:22:47.082217,-1.8025044560261774,5.713166568833113,5.914413404714071 +2023-01-01T00:02:16.676982,-1.2960063057051228,8.22818665192824,-1.2610482446266043 +2023-01-01T00:36:42.990626,1.819614036970772,-6.190291796117674,-5.424727731591136 +2023-01-01T01:24:06.079061,-1.8218808866162588,6.216984212477381,5.378778557119372 +2023-01-01T00:37:36.565536,1.8255157090572625,-6.509024155524373,-5.038974163886144 +2023-01-01T00:18:33.739507,0.5177790032383944,2.9278114028805,-7.86340402515843 +2023-01-01T01:26:44.190104,-1.81890472901968,7.080332826750333,4.186100446805546 +2023-01-01T00:41:46.359296,1.7679968901673206,-7.677764229340302,-3.0244060887920083 +2023-01-01T01:18:17.911011,-1.6355316647000262,3.6991212585301536,7.376516334826665 +2023-01-01T00:41:16.891529,1.7820212548741827,-7.568973572384791,-3.2776630025193447 +2023-01-01T00:09:22.975184,-0.5720342957180323,6.83783683778748,-4.8751980355200395 +2023-01-01T01:21:38.286553,-1.774466446193131,5.2391387688162,6.343884518172145 +2023-01-01T01:28:39.707876,-1.7814331500221776,7.575967606602878,3.230054461718644 +2023-01-01T00:00:03.274942,-1.47034510372926,8.295708671847907,-0.030392722591221555 +2023-01-01T00:09:23.790810,-0.5704740694512678,6.833589637504542,-4.881299953765859 +2023-01-01T00:36:37.621787,1.8186685101360809,-6.157142185461976,-5.462332848807409 +2023-01-01T01:11:01.870554,-1.0746924186421478,-0.15203487177915992,8.340008986773853 +2023-01-01T01:10:41.760623,-1.0417477509867208,-0.33574957977437886,8.339001338110384 +2023-01-01T00:39:22.664930,1.8181632718663985,-7.072016081771035,-4.222856119194648 +2023-01-01T01:18:10.438685,-1.6287637718649006,3.6377745450854726,7.408307145002938 +2023-01-01T01:11:45.758216,-1.1447381144557693,0.2490003551704275,8.328029617611113 +2023-01-01T00:03:09.954666,-1.2182103971287508,8.1505528611445,-1.7461808599416948 +2023-01-01T01:03:33.360775,-0.24574332890186396,-4.073949551646664,7.3646764431369425 +2023-01-01T01:25:05.714534,-1.8273265204381757,6.566342430029487,4.946642956140148 +2023-01-01T01:07:04.921685,-0.6574468730190839,-2.2889633707969215,8.07003344837744 +2023-01-01T01:02:34.648231,-0.12798889967184093,-4.534885206678296,7.095528327011042 +2023-01-01T00:29:26.058188,1.5406948634595339,-2.9057691015200944,-7.7444982061425796 +2023-01-01T01:13:48.240783,-1.32561485532992,1.3620467997330408,8.192176405095616 +2023-01-01T01:14:22.732652,-1.3723564928897094,1.6719017396232245,8.12695577172407 +2023-01-01T01:28:07.955409,-1.794682387845881,7.451759731979377,3.498914172064998 +2023-01-01T01:29:09.806441,-1.7668287629806183,7.685047738938106,2.9714173958457297 +2023-01-01T00:14:40.405281,0.05661814152732203,4.806140595508472,-6.901527293860264 +2023-01-01T00:02:59.529352,-1.2337770025487564,8.168000561755798,-1.6516886104461637 +2023-01-01T00:17:52.929006,0.4387823285234988,3.273656898006285,-7.731203070982043 +2023-01-01T00:37:20.140923,1.8243904048788335,-6.413674074117644,-5.159226953292578 +2023-01-01T01:14:15.185065,-1.3622941776032367,1.6042868682527216,8.142230738006791 +2023-01-01T00:50:14.928549,1.2462391448540813,-8.191096194619089,1.6235260936068399 +2023-01-01T00:54:18.078452,0.8438690012216613,-7.510307689400575,3.7530975063392926 +2023-01-01T00:24:45.783061,1.170765487597374,-0.40510125791105195,-8.315731169633908 +2023-01-01T00:01:57.258712,-1.3232480046139794,8.249324424806995,-1.083015537034382 +2023-01-01T00:31:54.180460,1.6794984333834824,-4.133694833169659,-7.139223271080013 +2023-01-01T00:55:30.125892,0.7115883361846516,-7.200754421519785,4.337237003779269 +2023-01-01T00:36:57.892352,1.821901014475061,-6.281163112092906,-5.319330437589282 +2023-01-01T00:33:51.622870,1.7580630573062552,-5.032277834205399,-6.521877891766843 +2023-01-01T00:34:04.467434,1.7648924160586155,-5.125778759239188,-6.447419853493752 +2023-01-01T01:09:04.917664,-0.8762254698811187,-1.2167727443880545,8.277037715967362 +2023-01-01T00:47:07.256764,1.4963027685774042,-8.30945437393638,-0.11174246550736944 +2023-01-01T01:14:17.941792,-1.3659802690739893,1.62899585141857,8.136716625150598 +2023-01-01T01:23:57.643477,-1.8204708790140682,6.165362658686394,5.438032100406363 +2023-01-01T01:00:49.239798,0.0846635778157603,-5.314235536822394,6.537597576067294 +2023-01-01T00:12:59.383450,-0.14622617561060303,5.528963023009678,-6.338553429161853 +2023-01-01T00:59:34.036082,0.2360525573480611,-5.827457645598424,6.084224374179853 +2023-01-01T00:16:50.319634,0.3158902220543037,3.791347320799506,-7.498075779805581 +2023-01-01T00:54:29.850437,0.8225962729982531,-7.462953557570155,3.850322112463583 +2023-01-01T00:18:58.868560,0.5659046813134986,2.7119175973396223,-7.936918851902513 +2023-01-01T00:22:39.959866,0.966607474078619,0.7427913375497692,-8.317342839594108 +2023-01-01T00:12:24.885698,-0.21524189511294337,5.760654526872627,-6.127746188639201 +2023-01-01T01:19:55.293661,-1.713473899311241,4.474542090705336,6.917058877465153 +2023-01-01T01:02:34.841429,-0.1283776697860189,-4.533398055476473,7.096463945200756 +2023-01-01T01:24:26.881579,-1.8246813859760056,6.34198044725019,5.230639012961589 +2023-01-01T00:48:06.706757,1.4236793475675074,-8.311258723592259,0.44111489270093 +2023-01-01T01:15:27.369926,-1.4546069261914814,2.2458277989541213,7.973304783132094 +2023-01-01T00:23:17.727067,1.029996623425181,0.39878582535594054,-8.333606866801693 +2023-01-01T00:55:49.580884,0.6750680547030987,-7.109211585456708,4.490269297918056 +2023-01-01T00:39:35.816861,1.8154879094985326,-7.135167767076911,-4.117282141102992 +2023-01-01T01:04:38.508759,-0.3750890100989724,-3.5430011149263043,7.626834980404639 +2023-01-01T01:03:54.914742,-0.2887198770867451,-3.9004323479387115,7.455719463454102 +2023-01-01T01:21:36.577068,-1.7736388504169218,5.226967213290195,6.354095014393573 +2023-01-01T01:01:37.871278,-0.013517439414202406,-4.962863103470826,6.806620441923002 +2023-01-01T00:12:27.523238,-0.20997429977853144,5.743228519583462,-6.14418419597112 +2023-01-01T00:02:09.572782,-1.306043283425021,8.236365025202598,-1.1959798600505176 +2023-01-01T01:21:43.010872,-1.7767207630574982,5.272679845998315,6.3155481925931465 +2023-01-01T00:50:13.720404,1.2480353327546196,-8.193014267839473,1.612505010356864 +2023-01-01T00:30:04.698667,1.5810014652662085,-3.2346834458753,-7.606039947863848 +2023-01-01T01:09:03.789328,-0.8742342596169408,-1.2269783418420623,8.275759789420542 +2023-01-01T00:52:55.175125,0.989450079120868,-7.807061861374834,3.050775469694659 +2023-01-01T00:17:00.658814,0.3363066999728969,3.7070166772459356,-7.539070284272322 +2023-01-01T00:49:27.260499,1.3153696787702975,-8.25548046612535,1.186603191701913 +2023-01-01T00:34:28.705749,1.7768144844622977,-5.299438203808603,-6.3033355963313635 +2023-01-01T00:12:33.820544,-0.19739093265368807,5.7014278656941295,-6.183218103392741 +2023-01-01T00:47:28.273901,1.471364002367263,-8.314267567435394,0.08377659463283968 diff --git a/bindings/python/test/dynamics/test_tabulated.py b/bindings/python/test/dynamics/test_tabulated.py new file mode 100644 index 000000000..8e2f28819 --- /dev/null +++ b/bindings/python/test/dynamics/test_tabulated.py @@ -0,0 +1,113 @@ +# Apache License 2.0 + +import pytest + +import numpy as np + +from ostk.physics.time import Instant +from ostk.physics.time import DateTime +from ostk.physics.time import Duration +from ostk.physics.time import Scale +from ostk.physics.coordinate import Frame + +from ostk.astrodynamics.trajectory.state import CoordinatesSubset +from ostk.astrodynamics.trajectory.state.coordinates_subset import CartesianVelocity +from ostk.astrodynamics import Dynamics +from ostk.astrodynamics.dynamics import Tabulated + + +@pytest.fixture +def instants() -> list[Instant]: + return [ + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 0), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 1), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 2), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 3), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 4), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 5), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 6), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 0, 7), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 1, 8), Scale.UTC), + Instant.date_time(DateTime(2021, 3, 20, 12, 1, 9), Scale.UTC), + ] + + +@pytest.fixture +def contribution_profile() -> np.ndarray: + return np.array( + [ + [1.0, 2.0, 3.0], + [4.0, 5.0, 6.0], + [7.0, 8.0, 9.0], + [10.0, 11.0, 12.0], + [13.0, 14.0, 15.0], + [16.0, 17.0, 18.0], + [19.0, 20.0, 21.0], + [22.0, 23.0, 24.0], + [25.0, 26.0, 27.0], + [28.0, 29.0, 30.0], + ] + ) + + +@pytest.fixture +def coordinates_subsets() -> list[CoordinatesSubset]: + return [ + CartesianVelocity.default(), + ] + + +@pytest.fixture +def frame() -> Frame: + return Frame.GCRF() + + +@pytest.fixture +def dynamics( + instants: list[Instant], + contribution_profile: np.ndarray, + coordinates_subsets: list[CoordinatesSubset], + frame: Frame, +) -> Tabulated: + return Tabulated(instants, contribution_profile, coordinates_subsets, frame) + + +class TestTabulated: + def test_constructor( + self, + dynamics: Tabulated, + ): + assert dynamics is not None + assert isinstance(dynamics, Tabulated) + assert isinstance(dynamics, Dynamics) + assert dynamics.is_defined() + + def test_getters( + self, + dynamics: Tabulated, + instants: list[Instant], + contribution_profile: np.ndarray, + frame: Frame, + ): + assert np.array_equal(dynamics.get_contribution_profile(), contribution_profile) + + assert dynamics.get_instants() == instants + + assert dynamics.get_frame() == frame + + def test_compute_contribution( + self, + dynamics: Tabulated, + instants: list[Instant], + contribution_profile: np.ndarray, + ): + for i in range(len(instants)): + contribution = dynamics.compute_contribution(instants[i], [], Frame.GCRF()) + assert contribution == pytest.approx(contribution_profile[i]) + + new_contribution = dynamics.compute_contribution( + instants[i] + Duration.seconds(0.5), [], Frame.GCRF() + ) + + assert new_contribution is not None + assert len(new_contribution) == 3 diff --git a/include/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.hpp b/include/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.hpp new file mode 100644 index 000000000..207f10402 --- /dev/null +++ b/include/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.hpp @@ -0,0 +1,144 @@ +/// Apache License 2.0 + +#ifndef __OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated__ +#define __OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated__ + +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include + +namespace ostk +{ +namespace astro +{ +namespace dynamics +{ + +using ostk::core::types::Shared; +using ostk::core::types::Real; +using ostk::core::ctnr::Array; + +using ostk::math::object::Vector3d; +using ostk::math::object::MatrixXd; +using ostk::math::curvefitting::interpolator::BarycentricRational; + +using ostk::physics::coord::Frame; +using ostk::physics::time::Instant; +using ostk::physics::time::Duration; + +using ostk::astro::trajectory::state::CoordinatesSubset; + +/// @brief A tabulated dynamics that uses the provided contribution profile to compute the contribution to the dynamics. +class Tabulated : public Dynamics +{ + public: + /// @brief Constructor + /// + /// @param anInstantArray An array of instants, must be sorted + /// @param aContributionProfile A contribution profile, one row for each instant + /// @param aWriteCoordinatesSubsets An array of coordinates subsets to write to + /// @param aFrameSPtr A frame + Tabulated( + const Array& anInstantArray, + const MatrixXd& aContributionProfile, + const Array>& aWriteCoordinatesSubsets, + const Shared& aFrameSPtr + ); + + /// @brief Output stream operator + /// + /// @code{.cpp} + /// std::cout << Dynamics(...) ; + /// @endcode + /// + /// @param anOutputStream An output stream + /// @param aTabulated A Tabulated dynamics + /// @return A reference to output stream + friend std::ostream& operator<<(std::ostream& anOutputStream, const Tabulated& aDynamics); + + /// @brief Access instants + /// + /// @return The instants + const Array& accessInstants() const; + + /// @brief Get instants + /// + /// @return The instants + Array getInstants() const; + + /// @brief Access contribution profile + /// + /// @return The contribution profile + const MatrixXd& accessContributionProfile() const; + + /// @brief Get contribution profile + /// + /// @return The contribution profile + MatrixXd getContributionProfile() const; + + /// @brief Access the frame + /// + /// @return The frame + const Shared& accessFrame() const; + + /// @brief Get the frame + /// + /// @return The frame + Shared getFrame() const; + + /// @brief Check if dynamics is defined (pure virtual) + /// + /// @return True if dynamics is defined + virtual bool isDefined() const override; + + /// @brief Return the coordinates subsets that the instance reads from + /// + /// @return The coordinates subsets that the instance reads from + virtual Array> getReadCoordinatesSubsets() const override; + + /// @brief Return the coordinates subsets that the instance writes to + /// + /// @return The coordinates subsets that the instance writes to + virtual Array> getWriteCoordinatesSubsets() const override; + + /// @brief Compute the contribution to the state derivative. + /// + /// @param anInstant An instant + /// @param x The reduced state vector (this vector will follow the structure determined by the + /// 'read' coordinate subsets) + /// @param aFrameSPtr The frame in which the state vector is expressed + /// + /// @return The reduced derivative state vector (this vector must follow the structure determined by + /// the 'write' coordinate subsets) expressed in the given frame + virtual VectorXd computeContribution( + const Instant& anInstant, const VectorXd& x, const Shared& aFrameSPtr + ) const override; + + /// @brief Print Tabulated dynamics + /// + /// @param anOutputStream An output stream + /// @param (optional) displayDecorators If true, display decorators + virtual void print(std::ostream& anOutputStream, bool displayDecorator = true) const override; + + private: + const MatrixXd contributionProfile_; + const Array instants_; + const Array> writeCoordinatesSubsets_; + const Shared frameSPtr_; + Array interpolators_; +}; + +} // namespace dynamics +} // namespace astro +} // namespace ostk + +#endif diff --git a/include/OpenSpaceToolkit/Astrodynamics/Trajectory/State/NumericalSolver.hpp b/include/OpenSpaceToolkit/Astrodynamics/Trajectory/State/NumericalSolver.hpp index 4bab8da27..db49e7fa4 100644 --- a/include/OpenSpaceToolkit/Astrodynamics/Trajectory/State/NumericalSolver.hpp +++ b/include/OpenSpaceToolkit/Astrodynamics/Trajectory/State/NumericalSolver.hpp @@ -31,7 +31,8 @@ using ostk::astro::trajectory::State; using ostk::astro::RootSolver; using MathNumericalSolver = ostk::math::solvers::NumericalSolver; -/// @brief Define an astrodynamics state contextual Numerical Solver. This class inherits from the OSTk Mathematics Numerical Solver. +/// @brief Define an astrodynamics state contextual Numerical Solver. This class inherits from the OSTk Mathematics +/// Numerical Solver. class NumericalSolver : public MathNumericalSolver { public: diff --git a/src/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.cpp b/src/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.cpp new file mode 100644 index 000000000..84e88e9ef --- /dev/null +++ b/src/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.cpp @@ -0,0 +1,171 @@ +/// Apache License 2.0 + +#include + +#include +#include + +#include + +namespace ostk +{ +namespace astro +{ +namespace dynamics +{ + +using ostk::core::types::Index; + +using ostk::math::object::VectorXd; + +Tabulated::Tabulated( + const Array& anInstantArray, + const MatrixXd& aContributionProfile, + const Array>& aWriteCoordinatesSubsets, + const Shared& aFrameSPtr +) + : Dynamics("Tabulated"), + contributionProfile_(aContributionProfile), + instants_(anInstantArray), + writeCoordinatesSubsets_(aWriteCoordinatesSubsets), + frameSPtr_(aFrameSPtr) +{ + if (anInstantArray.getSize() != (Index)aContributionProfile.rows()) + { + throw ostk::core::error::RuntimeError( + "Contribution profile must have the same number of rows as the number of instants." + ); + } + + if (aWriteCoordinatesSubsets + .map( + [](const auto& coordinatesSubset) + { + return coordinatesSubset->getSize(); + } + ) + .reduce(std::plus()) != (Index)aContributionProfile.cols()) + { + throw ostk::core::error::RuntimeError( + "Contribution profile must have the same number of columns as the sum of the sizes of the write " + "coordinates subsets." + ); + } + + VectorXd timestamps(anInstantArray.getSize()); + Index i = 0; + for (const auto& instant : anInstantArray) + { + timestamps(i) = (instant - anInstantArray.accessFirst()).inSeconds(); + ++i; + } + + interpolators_.reserve(aContributionProfile.cols()); + for (i = 0; i < (Index)aContributionProfile.cols(); ++i) + { + // TBI: In the future we can allow the user to specify the interpolator type. + interpolators_.add(BarycentricRational(timestamps, aContributionProfile.col(i))); + } +} + +std::ostream& operator<<(std::ostream& anOutputStream, const Tabulated& aTabulated) +{ + aTabulated.print(anOutputStream); + + return anOutputStream; +} + +const Array& Tabulated::accessInstants() const +{ + return instants_; +} + +Array Tabulated::getInstants() const +{ + return accessInstants(); +} + +const MatrixXd& Tabulated::accessContributionProfile() const +{ + return contributionProfile_; +} + +MatrixXd Tabulated::getContributionProfile() const +{ + return accessContributionProfile(); +} + +const Shared& Tabulated::accessFrame() const +{ + return frameSPtr_; +} + +Shared Tabulated::getFrame() const +{ + return accessFrame(); +} + +bool Tabulated::isDefined() const +{ + return true; +} + +Array> Tabulated::getReadCoordinatesSubsets() const +{ + return {}; +} + +Array> Tabulated::getWriteCoordinatesSubsets() const +{ + return writeCoordinatesSubsets_; +} + +VectorXd Tabulated::computeContribution( + const Instant& anInstant, [[maybe_unused]] const VectorXd& x, [[maybe_unused]] const Shared& aFrameSPtr +) const +{ + // TBI: Eventually we can check if the values can be converted using the subset inFrame methods. + if (aFrameSPtr != frameSPtr_) + { + throw ostk::core::error::runtime::Wrong("Frame"); + } + + const double epoch = (anInstant - instants_.accessFirst()).inSeconds(); + + VectorXd contribution(interpolators_.getSize()); + for (Index i = 0; i < interpolators_.getSize(); ++i) + { + contribution(i) = interpolators_[i].evaluate(epoch); + } + + return contribution; +} + +void Tabulated::print(std::ostream& anOutputStream, bool displayDecorator) const +{ + displayDecorator ? ostk::core::utils::Print::Header(anOutputStream, "Tabulated Dynamics") : void(); + + Dynamics::print(anOutputStream, false); + + for (const auto& subset : writeCoordinatesSubsets_) + { + ostk::core::utils::Print::Line(anOutputStream) << subset->getName() << subset->getSize(); + } + + const String profileDimensions = String::Format("{}x{}", contributionProfile_.rows(), contributionProfile_.cols()); + + ostk::core::utils::Print::Line(anOutputStream) << "Contribution Profile:" << profileDimensions; + + const String interval = + String::Format("[{}, {}]", instants_.accessFirst().toString(), instants_.accessLast().toString()); + + ostk::core::utils::Print::Line(anOutputStream) << "Interval:" << interval; + + ostk::core::utils::Print::Line(anOutputStream) << "Frame:" << frameSPtr_->getName(); + + displayDecorator ? ostk::core::utils::Print::Footer(anOutputStream) : void(); +} + +} // namespace dynamics +} // namespace astro +} // namespace ostk diff --git a/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.test.cpp b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.test.cpp new file mode 100644 index 000000000..ff979071e --- /dev/null +++ b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated.test.cpp @@ -0,0 +1,258 @@ +/// Apache License 2.0 + +#include +#include +#include + +#include + +#include + +#include +#include + +#include + +using ostk::core::types::Real; +using ostk::core::types::String; +using ostk::core::types::Shared; +using ostk::core::types::Index; +using ostk::core::filesystem::File; +using ostk::core::filesystem::Path; +using ostk::core::ctnr::Array; +using ostk::core::ctnr::Table; +using ostk::core::ctnr::Tuple; + +using ostk::math::object::MatrixXd; +using ostk::math::object::VectorXd; + +using ostk::physics::time::DateTime; +using ostk::physics::time::Instant; +using ostk::physics::time::Scale; +using ostk::physics::coord::Frame; + +using ostk::astro::dynamics::Tabulated; +using ostk::astro::trajectory::state::CoordinatesSubset; +using ostk::astro::trajectory::state::coordinatessubsets::CartesianVelocity; + +class OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated : public ::testing::Test +{ + void SetUp() override + { + contributionProfile_.resize(defaultInstants_.getSize(), 3); + contributionProfile_ << 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0; + } + + protected: + const Array defaultInstants_ = { + Instant::DateTime(DateTime(2018, 01, 01, 0, 0, 0, 000), Scale::UTC), + Instant::DateTime(DateTime(2018, 01, 01, 0, 0, 5, 000), Scale::UTC), + Instant::DateTime(DateTime(2018, 01, 01, 0, 0, 10, 000), Scale::UTC), + Instant::DateTime(DateTime(2018, 01, 01, 0, 0, 15, 000), Scale::UTC), + }; + const Array> defaultWriteCoordinatesSubsets_ = {CartesianVelocity::Default()}; + const Shared defaultFrameSPtr_ = Frame::GCRF(); + + MatrixXd contributionProfile_; + + Tuple, MatrixXd> loadData(const String& aPath) + { + const File file = File::Path(Path::Parse(aPath)); + + const Table referenceData = Table::Load(file, Table::Format::CSV, false); + + Array instants = Array::Empty(); + instants.reserve(referenceData.getRowCount()); + + MatrixXd contributionProfile(referenceData.getRowCount(), referenceData.getColumnCount() - 1); + + Index i = 0; + for (const auto& referenceRow : referenceData) + { + instants.add(Instant::DateTime(DateTime::Parse(referenceRow[0].accessString()), Scale::UTC)); + + VectorXd row(contributionProfile.cols()); + for (Index j = 0; j < (Index)row.size(); ++j) + { + row[j] = referenceRow[j + 1].accessReal(); + } + + contributionProfile.row(i) = row.transpose(); + ++i; + } + + return {instants, contributionProfile}; + } +}; + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, Constructor) +{ + { + EXPECT_NO_THROW( + Tabulated(defaultInstants_, contributionProfile_, defaultWriteCoordinatesSubsets_, defaultFrameSPtr_) + ); + } + + { + EXPECT_THROW( + { + try + { + Tabulated({}, contributionProfile_, defaultWriteCoordinatesSubsets_, defaultFrameSPtr_); + } + catch (const ostk::core::error::RuntimeError& e) + { + EXPECT_EQ( + "Contribution profile must have the same number of rows as the number of instants.", + e.getMessage() + ); + throw; + } + }, + ostk::core::error::RuntimeError + ); + } + + { + EXPECT_THROW( + { + try + { + Tabulated(defaultInstants_, contributionProfile_, {CoordinatesSubset::Mass()}, defaultFrameSPtr_); + } + catch (const ostk::core::error::RuntimeError& e) + { + EXPECT_EQ( + "Contribution profile must have the same number of columns as the sum of the sizes of the " + "write coordinates subsets.", + e.getMessage() + ); + throw; + } + }, + ostk::core::error::RuntimeError + ); + } +} + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, StreamOperator) +{ + testing::internal::CaptureStdout(); + + Tabulated tabulated = { + defaultInstants_, + contributionProfile_, + defaultWriteCoordinatesSubsets_, + defaultFrameSPtr_, + }; + + EXPECT_NO_THROW(std::cout << tabulated << std::endl); + + EXPECT_FALSE(testing::internal::GetCapturedStdout().empty()); +} + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, Print) +{ + testing::internal::CaptureStdout(); + + Tabulated tabulated = { + defaultInstants_, + contributionProfile_, + defaultWriteCoordinatesSubsets_, + defaultFrameSPtr_, + }; + + EXPECT_NO_THROW(tabulated.print(std::cout, true)); + EXPECT_NO_THROW(tabulated.print(std::cout, false)); + + EXPECT_FALSE(testing::internal::GetCapturedStdout().empty()); +} + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, Accessors) +{ + Tabulated tabulated = { + defaultInstants_, + contributionProfile_, + defaultWriteCoordinatesSubsets_, + defaultFrameSPtr_, + }; + + { + EXPECT_EQ(tabulated.accessInstants(), defaultInstants_); + } + + { + EXPECT_EQ(tabulated.accessContributionProfile(), contributionProfile_); + } + + { + EXPECT_EQ(tabulated.accessFrame(), defaultFrameSPtr_); + } +} + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, Getters) +{ + Tabulated tabulated = { + defaultInstants_, + contributionProfile_, + defaultWriteCoordinatesSubsets_, + defaultFrameSPtr_, + }; + + { + EXPECT_EQ(tabulated.getInstants(), defaultInstants_); + } + + { + EXPECT_EQ(tabulated.getContributionProfile(), contributionProfile_); + } + + { + EXPECT_EQ(tabulated.getFrame(), defaultFrameSPtr_); + } +} + +TEST_F(OpenSpaceToolkit_Astrodynamics_Dynamics_Tabulated, ComputeContribution) +{ + { + Tabulated tabulated = { + defaultInstants_, contributionProfile_, defaultWriteCoordinatesSubsets_, defaultFrameSPtr_ + }; + + const VectorXd x; // Not used + EXPECT_THROW( + tabulated.computeContribution(defaultInstants_[0], x, Frame::ITRF()), ostk::core::error::runtime::Wrong + ); + } + + { + MatrixXd contributionProfile; + Array instants; + std::tie(instants, contributionProfile) = + loadData("/app/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity.csv"); + + const Tabulated tabulated = { + instants, + contributionProfile, + defaultWriteCoordinatesSubsets_, + defaultFrameSPtr_, + }; + + MatrixXd expectedProfile; + Array expectedInstants; + std::tie(expectedInstants, expectedProfile) = + loadData("/app/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity_Truth.csv"); + + const VectorXd x; // Not used + for (Index i = 0; i < expectedInstants.getSize(); ++i) + { + const VectorXd computedContribution = tabulated.computeContribution(expectedInstants[i], x, Frame::GCRF()); + const VectorXd expectedContribution = expectedProfile.row(i); + + for (Index j = 0; j < (Index)computedContribution.size(); ++j) + { + EXPECT_NEAR(computedContribution(j), expectedContribution(j), 1e-8); + } + } + } +} diff --git a/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity.csv b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity.csv new file mode 100644 index 000000000..91e751621 --- /dev/null +++ b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity.csv @@ -0,0 +1,565 @@ +2023-01-01T00:00:00,-1.4742338218500621,8.295074478707441,-5.9830958866552864e-05 +2023-01-01T00:00:01,-1.4730484735375864,8.295279783315607,-0.00932196001127631 +2023-01-01T00:00:04.451744,-1.4689429938613792,8.295909720502067,-0.041292330076803344 +2023-01-01T00:00:09.092519,-1.4633892542551585,8.296564237590925,-0.0842746208408211 +2023-01-01T00:00:14.445650,-1.4569347091110418,8.297045089958097,-0.1338518757594792 +2023-01-01T00:00:20.318016,-1.4497948297912164,8.29723476570635,-0.1882324601242854 +2023-01-01T00:00:26.604986,-1.4420824610575451,8.297046049178133,-0.24644348709829292 +2023-01-01T00:00:32.891955,-1.4342997304526834,8.296452178405396,-0.30464241126959674 +2023-01-01T00:00:39.675083,-1.425824324227369,8.295357074600492,-0.3674173918926606 +2023-01-01T00:00:46.862697,-1.4167551571000065,8.29368207682979,-0.4339126042148342 +2023-01-01T00:00:54.293944,-1.4072835882401344,8.291393677207509,-0.5026322091240797 +2023-01-01T00:01:01.725192,-1.3977160854015342,8.288539512321702,-0.5713170266073647 +2023-01-01T00:01:09.578163,-1.387502096619761,8.28490873944612,-0.643856590329239 +2023-01-01T00:01:17.431134,-1.377182490960187,8.280646640354597,-0.7163462742140015 +2023-01-01T00:01:25.649727,-1.366270176712744,8.275510361381574,-0.7921513779229782 +2023-01-01T00:01:33.868320,-1.3552439719503235,8.269683403165523,-0.8678891476717245 +2023-01-01T00:01:42.411548,-1.3436625059952139,8.2628946890858,-0.9465402237429008 +2023-01-01T00:01:50.954776,-1.3319600459723886,8.25536086253336,-1.0251042472408676 +2023-01-01T00:01:59.791390,-1.3197295558090554,8.24678516311637,-1.1062669380737846 +2023-01-01T00:02:08.628004,-1.307371978663436,8.237413987030253,-1.1873206790120598 +2023-01-01T00:02:17.464619,-1.294888538133491,8.227248329545127,-1.268257450455896 +2023-01-01T00:02:26.693941,-1.2817172851994796,8.215783849634988,-1.3526575855556737 +2023-01-01T00:02:35.923264,-1.2684115148365165,8.203455230453525,-1.4369123005961728 +2023-01-01T00:02:45.152587,-1.2549726742874099,8.190263918240195,-1.5210125269153387 +2023-01-01T00:02:54.734902,-1.2408806072880387,8.175656923827589,-1.6081561729843141 +2023-01-01T00:03:04.317218,-1.2266483325804631,8.160123505063773,-1.6951134553490939 +2023-01-01T00:03:13.899534,-1.212277526162489,8.14366562816188,-1.7818743236392776 +2023-01-01T00:03:23.481849,-1.197769881667503,8.126285373280272,-1.8684287640354775 +2023-01-01T00:03:33.486635,-1.18247844746822,8.10715694861059,-1.9585681848829224 +2023-01-01T00:03:43.491422,-1.1670416736677414,8.087028034113318,-2.0484603886189237 +2023-01-01T00:03:53.496208,-1.1514615442374088,8.065901381856692,-2.1380941103675304 +2023-01-01T00:04:03.500994,-1.1357400606447592,8.043779871131068,-2.2274581312453745 +2023-01-01T00:04:13.889578,-1.11926805109188,8.019760135044287,-2.319952883281361 +2023-01-01T00:04:24.278161,-1.1026480882082375,7.994674496110875,-2.4121323434862965 +2023-01-01T00:04:34.666745,-1.0858824676920396,7.96852660548044,-2.5039841098986595 +2023-01-01T00:04:45.055328,-1.0689735024933804,7.941320258131062,-2.5954958346877843 +2023-01-01T00:04:55.798753,-1.0513386850256228,7.912075512580747,-2.689762578437262 +2023-01-01T00:05:06.542179,-1.0335556496411673,7.881707499316928,-2.783638973340569 +2023-01-01T00:05:17.285604,-1.015627009221527,7.850220900992488,-2.8771115502378524 +2023-01-01T00:05:28.029029,-0.9975553943049289,7.817620565351692,-2.970166906614703 +2023-01-01T00:05:38.772455,-0.9793434527506881,7.783911505551652,-3.062791708873777 +2023-01-01T00:05:49.928369,-0.9602866166201562,7.747740359107605,-3.158502917244426 +2023-01-01T00:06:01.084284,-0.9410843479936015,7.71038528864698,-3.253720811856235 +2023-01-01T00:06:12.240198,-0.9217396691322501,7.671852473403543,-3.3484307198616614 +2023-01-01T00:06:23.396112,-0.9022556213590254,7.632148283579263,-3.442618063512356 +2023-01-01T00:06:34.552027,-0.8826352648301214,7.5912792788755326,-3.5362683645197976 +2023-01-01T00:06:46.098865,-0.8621870979330941,7.547758583240443,-3.6326194302438863 +2023-01-01T00:06:57.645704,-0.8415996349351205,7.503004927837083,-3.728363939720692 +2023-01-01T00:07:09.192542,-0.8208763312312861,7.457026212064326,-3.8234862041086286 +2023-01-01T00:07:20.739380,-0.8000206626426474,7.409830540494372,-3.917970667187941 +2023-01-01T00:07:32.286219,-0.7790361250306548,7.3614262188003,-4.011801908951893 +2023-01-01T00:07:43.833057,-0.757926233848881,7.311821749569129,-4.1049646486083065 +2023-01-01T00:07:55.379895,-0.736694523635228,7.26102582813869,-4.197443746992437 +2023-01-01T00:08:06.926734,-0.7153445474303952,7.2090473385914535,-4.289224208427024 +2023-01-01T00:08:18.473572,-0.6938798761092215,7.155895350017071,-4.380291182099888 +2023-01-01T00:08:30.020410,-0.6723040976262937,7.101579113118811,-4.470629963056264 +2023-01-01T00:08:41.567249,-0.6506208161529661,7.046108057216206,-4.560225992917766 +2023-01-01T00:08:53.114087,-0.6288336511114632,6.989491787647123,-4.649064860448545 +2023-01-01T00:09:04.660925,-0.6069462360947759,6.931740083545293,-4.7371323020840865 +2023-01-01T00:09:16.207764,-0.5849622176850358,6.872862895928238,-4.824414202524854 +2023-01-01T00:09:27.754602,-0.5628852541637697,6.812870346015253,-4.910896595475393 +2023-01-01T00:09:39.301440,-0.5407190141375082,6.751772723666987,-4.996565664581667 +2023-01-01T00:09:50.848279,-0.5184671750951706,6.689580485836563,-5.081407744587929 +2023-01-01T00:10:02.395117,-0.4961334219196578,6.626304254924129,-5.165409322702873 +2023-01-01T00:10:13.941956,-0.4737214453972518,6.561954816935791,-5.248557040133608 +2023-01-01T00:10:25.488794,-0.45123494074712145,6.49654311937706,-5.330837693723055 +2023-01-01T00:10:35.798600,-0.43109748672622006,6.437250479073085,-5.403560146157885 +2023-01-01T00:10:46.108407,-0.4109061997843946,6.377127854082391,-5.475571781614496 +2023-01-01T00:10:56.418213,-0.3906637140372484,6.316183353226458,-5.54686352272098 +2023-01-01T00:11:06.728020,-0.37037266350166886,6.254425181131189,-5.617426394584179 +2023-01-01T00:11:17.037826,-0.3500356816426593,6.191861636296915,-5.687251525326775 +2023-01-01T00:11:27.347633,-0.3296554010557622,6.128501109133925,-5.756330146452266 +2023-01-01T00:11:37.657439,-0.3092344532656379,6.0643520800170565,-5.8246535930288195 +2023-01-01T00:11:47.967246,-0.28877546866765424,5.999423117423599,-5.892213303699986 +2023-01-01T00:11:58.277052,-0.268281076601804,5.933722876214725,-5.959000820543736 +2023-01-01T00:12:08.586858,-0.24775390554363996,5.867260096112129,-6.0250077888112985 +2023-01-01T00:12:17.737796,-0.22950874109244612,5.807636359023352,-6.08293474518695 +2023-01-01T00:12:26.888734,-0.21124166037574188,5.747425048675543,-6.140234560172589 +2023-01-01T00:12:36.039671,-0.19295450108297496,5.68663244035147,-6.196901594569936 +2023-01-01T00:12:45.190609,-0.17464910136689582,5.625264859961,-6.252930272528805 +2023-01-01T00:12:54.341546,-0.15632730014608276,5.563328683946261,-6.308315081524161 +2023-01-01T00:13:03.492484,-0.13799093740844937,5.500830339319741,-6.363050572446205 +2023-01-01T00:13:12.643421,-0.11964185450573206,5.437776303819249,-6.4171313598333475 +2023-01-01T00:13:20.568013,-0.10374293429194337,5.382728397360862,-6.463431529505577 +2023-01-01T00:13:28.492605,-0.0878370548901839,5.327272926098436,-6.509233306674414 +2023-01-01T00:13:36.417197,-0.071925415440377,5.271414190017339,-6.554533311230559 +2023-01-01T00:13:44.341789,-0.05600921627950406,5.215156518241754,-6.599328200185868 +2023-01-01T00:13:51.356989,-0.041916652202815374,5.165025343702027,-6.638558469593813 +2023-01-01T00:13:58.372188,-0.027822290851633902,5.11458799809685,-6.677388042603879 +2023-01-01T00:14:05.387387,-0.013726967347375219,5.063847542243058,-6.715814674997111 +2023-01-01T00:14:10.926665,-0.0025970148775957824,5.023570182888458,-6.7458706083539886 +2023-01-01T00:14:16.465944,0.00853260456872551,4.983107281711979,-6.775672847361194 +2023-01-01T00:14:22.005222,0.01966147895775361,4.942460369425226,-6.805220319602961 +2023-01-01T00:14:27.544500,0.030789196035053923,4.901630983702807,-6.8345119624976105 +2023-01-01T00:14:33.509991,0.04277135413248789,4.857457729380773,-6.865770094096978 +2023-01-01T00:14:39.879756,0.05556293622857922,4.810061442111481,-6.89881617694078 +2023-01-01T00:14:46.591192,0.06903707970071427,4.759869002264956,-6.93326400161978 +2023-01-01T00:14:53.600352,0.08310424962832563,4.707174903366623,-6.968831812454549 +2023-01-01T00:15:00.874509,0.09769730607337035,4.652194751396726,-7.005301253589888 +2023-01-01T00:15:08.148667,0.11228337206994965,4.596918863768775,-7.04131716079015 +2023-01-01T00:15:15.875053,0.127767540981365,4.537886664568441,-7.079072969774214 +2023-01-01T00:15:23.601439,0.14324164900482783,4.478529225657834,-7.116311992348644 +2023-01-01T00:15:31.715394,0.15947990987864413,4.415848972244101,-7.154859856051578 +2023-01-01T00:15:39.829349,0.17570454674469893,4.352819926805886,-7.192832028754405 +2023-01-01T00:15:48.284621,0.1925957894525252,4.286773937334409,-7.231785893055565 +2023-01-01T00:15:56.739893,0.20946937302561763,4.220360544920392,-7.270108304274324 +2023-01-01T00:16:05.501754,0.22693460482067684,4.151157602079464,-7.309150733815733 +2023-01-01T00:16:14.263614,0.24437768866698195,4.0815729105642795,-7.347508316869963 +2023-01-01T00:16:23.025475,0.26179700930833727,4.011613016013093,-7.385177713707321 +2023-01-01T00:16:32.195239,0.2800000782033272,3.9380015061293214,-7.423860248995955 +2023-01-01T00:16:41.365004,0.2981735141327595,3.863993802871671,-7.4617817862585145 +2023-01-01T00:16:50.534769,0.3163154816990188,3.7895974931920846,-7.498938744779639 +2023-01-01T00:17:00.069247,0.3351436823311129,3.711838264434318,-7.53675900853326 +2023-01-01T00:17:09.603726,0.3539338349565573,3.633675715378009,-7.573745043568685 +2023-01-01T00:17:19.138204,0.37268389819960457,3.555118455570705,-7.609893104294675 +2023-01-01T00:17:29.004698,0.3920425145383897,3.473419253687831,-7.6464137922233775 +2023-01-01T00:17:38.871192,0.41135377862812894,3.391316213401182,-7.682029270084383 +2023-01-01T00:17:48.737686,0.4306154549962209,3.3088189556862213,-7.716735693106619 +2023-01-01T00:17:58.604180,0.44982531732379916,3.225937127452176,-7.750529316937447 +2023-01-01T00:18:08.872573,0.46976026055453657,3.139281234202784,-7.784726230878921 +2023-01-01T00:18:19.140967,0.48963419247825435,3.052230212563165,-7.817926523517926 +2023-01-01T00:18:29.409360,0.5094446351224835,2.964795026521029,-7.850126312350089 +2023-01-01T00:18:39.677753,0.5291891213186124,2.8769866712417205,-7.8813218282639275 +2023-01-01T00:18:50.314952,0.5495705873408516,2.785642798265248,-7.91257485272826 +2023-01-01T00:19:00.952150,0.5698759200169449,2.6939225968432865,-7.9427423104553965 +2023-01-01T00:19:11.589349,0.5901024140742313,2.601838399188251,-7.971820396803408 +2023-01-01T00:19:22.226547,0.6102473773466852,2.5094025753094904,-7.99980543925927 +2023-01-01T00:19:32.863746,0.6303081310691936,2.4166275329703906,-8.026693898627196 +2023-01-01T00:19:43.500944,0.6502820102032174,2.323525717315406,-8.052482370366553 +2023-01-01T00:19:54.138143,0.6701663637760122,2.230109610146673,-8.077167585979767 +2023-01-01T00:20:04.775341,0.6899585552129601,2.1363917288536873,-8.10074641435344 +2023-01-01T00:20:15.412540,0.709655962641465,2.04238462502206,-8.12321586296502 +2023-01-01T00:20:26.049738,0.7292559791454356,1.948100882767026,-8.144573078881203 +2023-01-01T00:20:36.686936,0.7487560129516605,1.8535531168532926,-8.164815349492676 +2023-01-01T00:20:47.324135,0.7681534875330641,1.7587539706737525,-8.183940102950858 +2023-01-01T00:20:57.961333,0.7874458416189781,1.6637161141653327,-8.201944908295056 +2023-01-01T00:21:08.598532,0.8066305291085318,1.5684522417402678,-8.218827475280653 +2023-01-01T00:21:19.235730,0.8257050188899933,1.47297507030587,-8.23458565394049 +2023-01-01T00:21:29.872929,0.8446667945756617,1.3772973374355726,-8.249217433929086 +2023-01-01T00:21:40.510127,0.8635133541685189,1.2814317997399156,-8.262720943714195 +2023-01-01T00:21:49.871499,0.8800021630725223,1.1969191608692544,-8.273670062778931 +2023-01-01T00:21:59.232871,0.8963981222269903,1.1122796772974646,-8.283742891939538 +2023-01-01T00:22:08.594243,0.9126995524881225,1.0275220760886148,-8.292938419147841 +2023-01-01T00:22:17.955615,0.9289047824814922,0.9426550933094557,-8.301255713744007 +2023-01-01T00:22:27.316987,0.9450121484437004,0.8576874737243037,-8.308693926168496 +2023-01-01T00:22:36.678359,0.9610199941067643,0.7726279705545318,-8.315252287779122 +2023-01-01T00:22:46.039730,0.9769266706366799,0.6874853452767364,-8.32093011078598 +2023-01-01T00:22:54.426571,0.9910901755142643,0.6111427775151621,-8.32526855359977 +2023-01-01T00:23:02.813412,1.005169985837301,0.5347468430951254,-8.32889937652536 +2023-01-01T00:23:11.200252,1.0191649313363231,0.45830385832125753,-8.331822250833113 +2023-01-01T00:23:19.587093,1.0330738467766072,0.38182014426651883,-8.334036900410329 +2023-01-01T00:23:27.973933,1.0468955721161093,0.3053020265655121,-8.335543102018404 +2023-01-01T00:23:35.103093,1.0585751863949104,0.24023615593853098,-8.336266250238733 +2023-01-01T00:23:42.232252,1.0701902592892387,0.1751538902589273,-8.336477297379654 +2023-01-01T00:23:48.550827,1.0804301832101593,0.11746089622986178,-8.336236238345943 +2023-01-01T00:23:54.869402,1.0906183684600792,0.059760791739720376,-8.33559285950968 +2023-01-01T00:24:01.187976,1.100754329705764,0.002056288697177666,-8.334547164777272 +2023-01-01T00:24:05.825425,1.1081599961922262,-0.040296521209581604,-8.333523705710054 +2023-01-01T00:24:10.462873,1.115537080703197,-0.08264916646247639,-8.332283558255495 +2023-01-01T00:24:15.834477,1.1240460566083146,-0.13170505311078,-8.330576249059549 +2023-01-01T00:24:21.730280,1.1333406117490488,-0.18554426076168856,-8.328367737833043 +2023-01-01T00:24:28.044247,1.1432419919581869,-0.2431951137076483,-8.32561436678499 +2023-01-01T00:24:34.709353,1.1536347060532037,-0.3040413656994378,-8.32227234766213 +2023-01-01T00:24:41.679053,1.1644366235310464,-0.36765310525634665,-8.318299304360647 +2023-01-01T00:24:48.918980,1.1755855136261442,-0.43371088750577297,-8.31365462576267 +2023-01-01T00:24:56.158907,1.1866605106278936,-0.49974396005639016,-8.308482738827644 +2023-01-01T00:25:03.858283,1.1983564757494913,-0.5699358265040602,-8.302404480816318 +2023-01-01T00:25:11.557658,1.2099672545846794,-0.640090218706157,-8.29573062647804 +2023-01-01T00:25:19.649459,1.222077103718795,-0.7137745043627955,-8.288075140487368 +2023-01-01T00:25:27.741260,1.234091001026244,-0.787406279253464,-8.279762730401993 +2023-01-01T00:25:36.177708,1.2465134099222175,-0.8641121304273016,-8.270397378176472 +2023-01-01T00:25:44.614157,1.2588294356264011,-0.9407482618354251,-8.260319219683725 +2023-01-01T00:25:53.359388,1.2714828225716226,-1.0201088680391437,-8.249120552382887 +2023-01-01T00:26:02.104618,1.2840196073092196,-1.0993804516893693,-8.237157603058332 +2023-01-01T00:26:10.849849,1.2964386395204484,-1.1785558391514994,-8.224431308808027 +2023-01-01T00:26:20.004561,1.309311779217046,-1.2613276224439105,-8.210292420681329 +2023-01-01T00:26:29.159272,1.3220533340679312,-1.3439779141450001,-8.19531934617839 +2023-01-01T00:26:38.313983,1.334662017980651,-1.426498499758079,-8.179513381164268 +2023-01-01T00:26:47.833427,1.3476307557140246,-1.5121603957063812,-8.162195840865136 +2023-01-01T00:26:57.352870,1.3604530235737804,-1.597663943137857,-8.14398083391151 +2023-01-01T00:27:06.872313,1.373127411699317,-1.6829999231982768,-8.124870078255906 +2023-01-01T00:27:16.722576,1.3860850933918787,-1.7711152835347417,-8.104154128856836 +2023-01-01T00:27:26.572839,1.3988814052786323,-1.8590311630960417,-8.082483132718592 +2023-01-01T00:27:36.423102,1.4115148240640543,-1.9467373694927337,-8.05985930085346 +2023-01-01T00:27:46.273364,1.4239838393649915,-2.0342237189019476,-8.036284951158521 +2023-01-01T00:27:56.522747,1.4367819418257657,-2.125010557432403,-8.01074894168532 +2023-01-01T00:28:06.772130,1.4493987554286463,-2.2155368973760954,-7.984189313382093 +2023-01-01T00:28:17.021513,1.4618326247013533,-2.3057913052027468,-7.95660905595702 +2023-01-01T00:28:27.270896,1.4740819109562748,-2.3957623651532822,-7.928011290808678 +2023-01-01T00:28:37.885777,1.4865717101478673,-2.4886309994289073,-7.897324605399321 +2023-01-01T00:28:48.500658,1.4988600087668367,-2.5811708634091266,-7.865553805901081 +2023-01-01T00:28:59.115540,1.5109450500577433,-2.673369357105038,-7.8327028122589075 +2023-01-01T00:29:09.730421,1.5228251015585097,-2.765213915843444,-7.798775698195397 +2023-01-01T00:29:20.345302,1.5344984566183735,-2.856692014280087,-7.7637766903597765 +2023-01-01T00:29:31.381691,1.5464143755198112,-2.9514006413314826,-7.726256022942182 +2023-01-01T00:29:42.418079,1.5581031870998103,-3.045685658448183,-7.6875864693935725 +2023-01-01T00:29:53.454468,1.5695630723362708,-3.139533148676543,-7.6477732932428735 +2023-01-01T00:30:04.490857,1.5807922490445017,-3.232929256564876,-7.606821926092184 +2023-01-01T00:30:15.527246,1.5917889731452106,-3.3258601905249408,-7.564737963784415 +2023-01-01T00:30:26.959320,1.6029330382476497,-3.4216178204686014,-7.51995708535981 +2023-01-01T00:30:38.391393,1.6138240046841554,-3.5168464140806783,-7.473973694531593 +2023-01-01T00:30:49.823467,1.6244600687968467,-3.611530866121763,-7.426794541821418 +2023-01-01T00:31:01.255541,1.6348394733217941,-3.7056561464592317,-7.378426549989662 +2023-01-01T00:31:12.687615,1.6449605071216855,-3.799207298453777,-7.328876811212083 +2023-01-01T00:31:24.119689,1.6548215045932424,-3.892169436877457,-7.2781525852139515 +2023-01-01T00:31:36.001265,1.6647929162442947,-3.988146671785496,-7.224197225306534 +2023-01-01T00:31:47.882840,1.6744799201049685,-4.083455102720482,-7.168989754113407 +2023-01-01T00:31:59.764416,1.6838807955585011,-4.1780782485807775,-7.112538896963526 +2023-01-01T00:32:11.645991,1.6929938696453946,-4.271999702482197,-7.054853578727467 +2023-01-01T00:32:23.527567,1.7018175153830064,-4.365203131226678,-6.995942927684966 +2023-01-01T00:32:35.409143,1.7103501501280136,-4.457672276015317,-6.9358162800844445 +2023-01-01T00:32:47.724109,1.7188852485961292,-4.55272207787778,-6.872223327455135 +2023-01-01T00:33:00.039075,1.7271043976314238,-4.646947739948903,-6.8073451908849085 +2023-01-01T00:33:12.354041,1.73500597614436,-4.740331432532172,-6.74119300662452 +2023-01-01T00:33:24.669007,1.74258840846722,-4.832855431247248,-6.673778172026124 +2023-01-01T00:33:36.983973,1.7498501636160158,-4.924502125434558,-6.605112348726133 +2023-01-01T00:33:49.298940,1.7567897548818843,-5.015254027321371,-6.53520746429762 +2023-01-01T00:34:01.613906,1.7634057397476441,-5.105093781513631,-6.464075712227528 +2023-01-01T00:34:13.928872,1.769696720113705,-5.19400417433727,-6.391729550204817 +2023-01-01T00:34:26.243838,1.7756613428154937,-5.281968142593465,-6.318181696835407 +2023-01-01T00:34:38.558804,1.7812983004109613,-5.36896878133285,-6.2434451270207525 +2023-01-01T00:34:50.873770,1.7866063322182293,-5.454989350344253,-6.167533066338394 +2023-01-01T00:35:03.188737,1.7915842255857597,-5.540013279164038,-6.09045898483622 +2023-01-01T00:35:15.503703,1.7962308173803425,-5.624024170538395,-6.01223659069242 +2023-01-01T00:35:27.818669,1.800544995680983,-5.707005802407359,-5.932879824193634 +2023-01-01T00:35:40.133635,1.8045257016671288,-5.788942128602997,-5.852402852451455 +2023-01-01T00:35:51.205605,1.8078191078234638,-5.86170284654243,-5.779104279095389 +2023-01-01T00:36:02.277576,1.8108414597389584,-5.933594379121617,-5.704922459207606 +2023-01-01T00:36:13.349546,1.8135921064586955,-6.0046054269112625,-5.629868144676459 +2023-01-01T00:36:24.421516,1.8160704373791323,-6.0747248036528205,-5.5539522299708874 +2023-01-01T00:36:35.493487,1.8182758837409136,-6.143941436208205,-5.477185752748897 +2023-01-01T00:36:46.565457,1.8202079201365242,-6.212244365084415,-5.399579895060909 +2023-01-01T00:36:56.243068,1.8216723355492714,-6.271188637999309,-5.331068818320219 +2023-01-01T00:37:05.920678,1.8229272092076774,-6.32941939685424,-5.261932774431165 +2023-01-01T00:37:15.598289,1.8239722768131865,-6.386929542820512,-5.192179507753663 +2023-01-01T00:37:25.275900,1.8248073024090936,-6.443712048785336,-5.121816850812752 +2023-01-01T00:37:33.613116,1.8253580949115613,-6.4920411422706135,-5.060717180436034 +2023-01-01T00:37:41.950332,1.825752730627066,-6.539820638408503,-4.999176231897675 +2023-01-01T00:37:49.383770,1.8259728237114512,-6.581953700573157,-4.943938577476282 +2023-01-01T00:37:56.817208,1.8260686433116922,-6.6236433413350015,-4.888357933121852 +2023-01-01T00:38:04.250646,1.8260401411236296,-6.66488653242665,-4.832438024973362 +2023-01-01T00:38:11.684085,1.825887279347778,-6.705680275813359,-4.776182609802931 +2023-01-01T00:38:19.117523,1.8256100306847625,-6.746021604569528,-4.719595474663048 +2023-01-01T00:38:27.011304,1.8251794136483062,-6.7883626329482665,-4.6591450654737 +2023-01-01T00:38:35.327918,1.8245739604016995,-6.8324123576371605,-4.595061670588001 +2023-01-01T00:38:44.020058,1.823774741619928,-6.877833452099514,-4.527657367398741 +2023-01-01T00:38:53.033550,1.8227663532568572,-6.924262310089979,-4.457306430908956 +2023-01-01T00:39:02.047041,1.8215751334354637,-6.970002607472241,-4.386499515696577 +2023-01-01T00:39:11.620166,1.8201098225210095,-7.017823374659005,-4.31080490356162 +2023-01-01T00:39:21.193291,1.8184384662589923,-7.0648561578804046,-4.234612476318723 +2023-01-01T00:39:31.245094,1.8164619327876426,-7.113386428896787,-4.154083909391214 +2023-01-01T00:39:41.296898,1.8142585751750748,-7.161035280769541,-4.0730260475752385 +2023-01-01T00:39:51.765020,1.8117230859026527,-7.20971389376637,-3.988059255185384 +2023-01-01T00:40:02.233142,1.8089421115817363,-7.257422741226517,-3.90254089564512 +2023-01-01T00:40:13.074764,1.8058034664474198,-7.305804244096402,-3.8134021810797707 +2023-01-01T00:40:23.916386,1.8024022229171663,-7.3531307601816085,-3.723697203817027 +2023-01-01T00:40:34.758008,1.7987387980632428,-7.399394999687939,-3.633438987577925 +2023-01-01T00:40:46.095337,1.7946279254425188,-7.446630573396344,-3.538476390471673 +2023-01-01T00:40:57.432667,1.790231398065913,-7.492688718454659,-3.4429382038812015 +2023-01-01T00:41:08.769997,1.7855498123712819,-7.537561622016176,-3.346839589514937 +2023-01-01T00:41:20.107327,1.7805838055161223,-7.5812416427371065,-3.2501958018262553 +2023-01-01T00:41:31.444657,1.7753340560185218,-7.623721308729274,-3.1530221904013813 +2023-01-01T00:41:42.781987,1.769801284749963,-7.664993316756513,-3.055334203063147 +2023-01-01T00:41:54.119317,1.7639862562268953,-7.7050505328296115,-2.957147389372924 +2023-01-01T00:42:05.456647,1.7578897801315745,-7.743885994271837,-2.858477404188254 +2023-01-01T00:42:16.793976,1.7515127129759889,-7.781492913244028,-2.759340010931103 +2023-01-01T00:42:28.131306,1.7448559598254962,-7.817864681620689,-2.6597510842283962 +2023-01-01T00:42:39.468636,1.7379204759773192,-7.852994877049431,-2.5597266116380903 +2023-01-01T00:42:50.805966,1.7307072685104927,-7.886877269935788,-2.459282694219256 +2023-01-01T00:43:02.143296,1.7232173976195173,-7.919505831058617,-2.3584355457746984 +2023-01-01T00:43:13.480626,1.7154519776603037,-7.950874739482516,-2.2572014906722035 +2023-01-01T00:43:24.817956,1.707412177853672,-7.980978390421004,-2.155596960233038 +2023-01-01T00:43:36.155286,1.6990992226059531,-8.009811402716693,-2.0536384877570337 +2023-01-01T00:43:47.492615,1.6905143914433278,-8.037368625619898,-1.9513427023314167 +2023-01-01T00:43:57.631435,1.6826078998122096,-8.060928036621336,-1.8595889294071986 +2023-01-01T00:44:07.770254,1.674486032976819,-8.083459852142926,-1.7675907714365293 +2023-01-01T00:44:17.909073,1.6661498154830188,-8.104960876438518,-1.6753602866812292 +2023-01-01T00:44:28.047892,1.6576003049244883,-8.125428071127445,-1.58290957530202 +2023-01-01T00:44:38.186711,1.6488385910911827,-8.144858555796311,-1.4902507745196971 +2023-01-01T00:44:48.325530,1.6398657950532893,-8.163249607961495,-1.39739605395576 +2023-01-01T00:44:58.464349,1.6306830682278077,-8.18059866245239,-1.3043576112708624 +2023-01-01T00:45:08.603168,1.6212915914774975,-8.196903310302835,-1.211147668199401 +2023-01-01T00:45:18.741988,1.6116925742584045,-8.21216129726396,-1.1177784670478494 +2023-01-01T00:45:27.848044,1.6028954461049159,-8.22497117025364,-1.033794404018341 +2023-01-01T00:45:36.954101,1.5939328179583505,-8.2369336373239,-0.9497006570459499 +2023-01-01T00:45:46.060157,1.5848056223401183,-8.248047377266845,-0.8655061273646599 +2023-01-01T00:45:55.166214,1.5755148089537236,-8.258311165000418,-0.7812197239794045 +2023-01-01T00:46:04.272270,1.5660613445547948,-8.267723870601964,-0.6968503629898342 +2023-01-01T00:46:13.378327,1.5564462128888126,-8.276284458483797,-0.6124069671007005 +2023-01-01T00:46:21.500367,1.547734516938462,-8.283200234940205,-0.5370334703868116 +2023-01-01T00:46:29.622406,1.5388957235131069,-8.289436749550187,-0.4616145182241953 +2023-01-01T00:46:37.744446,1.5299305651211252,-8.294993455408942,-0.3861564542117394 +2023-01-01T00:46:45.866486,1.5208397852839641,-8.299869864439454,-0.3106656255332975 +2023-01-01T00:46:53.062676,1.5126809333075588,-8.30362165998757,-0.24375790291158295 +2023-01-01T00:47:00.258865,1.5044245918232706,-8.306838818512315,-0.1768338641699383 +2023-01-01T00:47:07.455055,1.496071300118924,-8.309521116776905,-0.10989793040418563 +2023-01-01T00:47:13.467406,1.4890182574794824,-8.31135190277558,-0.05396764450625632 +2023-01-01T00:47:19.479758,1.4818982429603165,-8.3128091122378,0.001965277039889305 +2023-01-01T00:47:24.149182,1.4763225692805273,-8.313683059734966,0.04540510940419072 +2023-01-01T00:47:28.818605,1.4707068510891435,-8.314331609195182,0.08884376549328746 +2023-01-01T00:47:34.214914,1.4641672628833535,-8.31480033282305,0.13904142630630334 +2023-01-01T00:47:40.117295,1.4569536676702577,-8.314968257800475,0.19394082677241076 +2023-01-01T00:47:46.426160,1.4491734989358576,-8.314749478749427,0.2526115870307052 +2023-01-01T00:47:52.735025,1.4413216054541076,-8.314119186152347,0.3112696655349467 +2023-01-01T00:47:59.585221,1.4327152267540306,-8.31296885965693,0.37494305309703396 +2023-01-01T00:48:06.784512,1.4235801952308909,-8.311237159207558,0.4418372248340901 +2023-01-01T00:48:13.983802,1.4143534622216656,-8.308969841194504,0.50870234794507 +2023-01-01T00:48:21.637508,1.404444464815406,-8.305972199057134,0.5797511427299039 +2023-01-01T00:48:29.291214,1.3944332660515721,-8.302369620242176,0.6507567791455092 +2023-01-01T00:48:37.333473,1.3838045452170666,-8.297932692150741,0.7253148089205134 +2023-01-01T00:48:45.375732,1.3730647058438148,-8.292828574533804,0.7998131542891975 +2023-01-01T00:48:53.759589,1.3617513582397063,-8.28679785653718,0.8774056664976445 +2023-01-01T00:49:02.143447,1.350319258784701,-8.280043163701444,0.9549196595657611 +2023-01-01T00:49:10.833697,1.3383451409616898,-8.272278184259617,1.035176126691836 +2023-01-01T00:49:19.523946,1.3262457265798928,-8.263736884808482,1.1153330217350215 +2023-01-01T00:49:28.214196,1.3140222025106096,-8.254420169381907,1.1953826236948248 +2023-01-01T00:49:37.311401,1.3010946040068943,-8.243837500114514,1.2790575410025777 +2023-01-01T00:49:46.408607,1.2880337047530035,-8.232407396646202,1.3625976157536361 +2023-01-01T00:49:55.505812,1.2748409093420947,-8.220131181077361,1.4459940476914752 +2023-01-01T00:50:04.966290,1.2609829189057735,-8.206468806316213,1.5325588899586557 +2023-01-01T00:50:14.426767,1.2469854324631866,-8.191894633996798,1.6189490485794549 +2023-01-01T00:50:23.887245,1.232850075426001,-8.176410478598175,1.705154704893874 +2023-01-01T00:50:33.677998,1.2180778099242975,-8.159429614463933,1.79416519281901 +2023-01-01T00:50:43.468751,1.2031614699921764,-8.141478439252543,1.882956768304188 +2023-01-01T00:50:53.259505,1.1881029056096337,-8.122559334134916,1.9715186488962713 +2023-01-01T00:51:03.050258,1.1729039824488052,-8.102674804636495,2.0598400886195902 +2023-01-01T00:51:13.240525,1.1569378235138617,-8.080956396474026,2.1514986125937723 +2023-01-01T00:51:23.430791,1.140823793593428,-8.058198124171316,2.2428730448155485 +2023-01-01T00:51:33.621057,1.1245640486235695,-8.034403239323497,2.333951404527509 +2023-01-01T00:51:43.811324,1.1081607618662317,-8.009575137794728,2.424721760574662 +2023-01-01T00:51:54.368327,1.0910180923063844,-7.982767615778467,2.518421337920621 +2023-01-01T00:52:04.925331,1.0737261685488542,-7.954859067630116,2.61176444632692 +2023-01-01T00:52:15.482334,1.0562874639310396,-7.925853754707463,2.7047380036000086 +2023-01-01T00:52:26.039337,1.0387044702593222,-7.895756100713645,2.797328995774232 +2023-01-01T00:52:36.596341,1.0209796972742322,-7.864570689943317,2.8895244801094395 +2023-01-01T00:52:47.577021,1.0023958772936905,-7.830984724010059,2.984986510457979 +2023-01-01T00:52:58.557701,0.9836642667193356,-7.796232589246956,3.079992336290462 +2023-01-01T00:53:09.538381,0.9647877470446411,-7.760319980873705,3.1745276577043913 +2023-01-01T00:53:20.519062,0.9457692175585537,-7.723252769637449,3.26857827003779 +2023-01-01T00:53:31.499742,0.9266115944931044,-7.685036997978418,3.3621300657091755 +2023-01-01T00:53:42.878821,0.906615275274055,-7.644229499226357,3.4585348362990227 +2023-01-01T00:53:54.257899,0.8864760161447602,-7.602202351695778,3.554373415918248 +2023-01-01T00:54:05.636978,0.86619711503397,-7.55896283776306,3.649630440382049 +2023-01-01T00:54:17.016057,0.8457818865887181,-7.514518421841229,3.744290658754248 +2023-01-01T00:54:28.395136,0.8252336619766303,-7.468876747880563,3.8383389321735755 +2023-01-01T00:54:39.774215,0.8045557889570856,-7.4220456378460575,3.931760232432148 +2023-01-01T00:54:51.153294,0.7837516322116409,-7.374033091252567,4.024539640543359 +2023-01-01T00:55:02.532372,0.7628245739246782,-7.324847285777203,4.116662345593188 +2023-01-01T00:55:13.911451,0.7417780145651314,-7.27449657888919,4.208113644139856 +2023-01-01T00:55:25.290530,0.7206153738271657,-7.222989510362275,4.298878940439685 +2023-01-01T00:55:36.669609,0.6993400916452122,-7.170334805464316,4.388943747713456 +2023-01-01T00:55:48.048688,0.6779556292181055,-7.1165413785530705,4.478293690635996 +2023-01-01T00:55:59.427767,0.6564654699411916,-7.061618336763541,4.5669145091418315 +2023-01-01T00:56:10.806845,0.634873120161294,-7.005574983439855,4.65479206356994 +2023-01-01T00:56:22.185924,0.613182109678494,-6.948420820957942,4.741912341079358 +2023-01-01T00:56:33.565003,0.5913959918981431,-6.890165552601442,4.828261463173828 +2023-01-01T00:56:44.944082,0.5695183435971702,-6.830819083190564,4.913825694099248 +2023-01-01T00:56:56.323161,0.5475527642325355,-6.77039151822229,4.998591449797285 +2023-01-01T00:57:07.702239,0.5255028747997894,-6.708893161362514,5.082545307051666 +2023-01-01T00:57:19.081318,0.5033723162113071,-6.646334510213906,5.165674012422333 +2023-01-01T00:57:30.460397,0.48116474725194136,-6.5827262503966,5.247964490561313 +2023-01-01T00:57:41.839476,0.4588838421263266,-6.5180792480622864,5.329403851510814 +2023-01-01T00:57:53.218555,0.4365332877004744,-6.45240454108332,5.4099793966374605 +2023-01-01T00:58:04.597634,0.41411678048854617,-6.385713329215975,5.489678622907418 +2023-01-01T00:58:14.662114,0.39423800319778435,-6.3258887527094245,5.559430211207171 +2023-01-01T00:58:24.726595,0.3743130928793277,-6.265285797398052,5.628478249374352 +2023-01-01T00:58:34.791075,0.35434461434657294,-6.2039124899609615,5.696814473597826 +2023-01-01T00:58:44.855555,0.3343351311485141,-6.1417769321922435,5.764430739199736 +2023-01-01T00:58:54.920036,0.3142872040758973,-6.078887296138082,5.831319018204394 +2023-01-01T00:59:04.984516,0.29420338981949534,-6.015251819883032,5.89747139623608 +2023-01-01T00:59:15.048997,0.27408623980873426,-5.9508788041163685,5.962880068903992 +2023-01-01T00:59:25.113477,0.253938299251375,-5.885776609574288,6.027537337857184 +2023-01-01T00:59:35.177958,0.23376210638678963,-5.819953655414004,6.09143560670846 +2023-01-01T00:59:45.242438,0.21356019195690257,-5.753418418532619,6.154567377032786 +2023-01-01T00:59:54.082591,0.1957965851388188,-5.694396254277167,6.209381105919405 +2023-01-01T01:00:02.922745,0.17801678526598863,-5.634836967677855,6.263592806796425 +2023-01-01T01:00:11.762898,0.1602224922634794,-5.574746415952661,6.3171975729711605 +2023-01-01T01:00:20.603051,0.142415401468444,-5.514130493567897,6.3701905494384485 +2023-01-01T01:00:29.443205,0.12459720380003514,-5.45299513364613,6.422566932228178 +2023-01-01T01:00:38.283358,0.1067695859772626,-5.391346309502373,6.474321968166798 +2023-01-01T01:00:46.097070,0.09100545926459436,-5.336432924295554,6.519546579774591 +2023-01-01T01:00:53.910782,0.07523644734335155,-5.281127270953427,6.564278870484451 +2023-01-01T01:01:01.724494,0.059463707773069974,-5.225433558547809,6.6085156588086384 +2023-01-01T01:01:09.538206,0.04368839619150666,-5.169356024089383,6.652253796035662 +2023-01-01T01:01:16.169755,0.030298625317952244,-5.121464711015816,6.688981130694485 +2023-01-01T01:01:22.801305,0.01690853744780263,-5.073302625719649,6.725345156333714 +2023-01-01T01:01:28.711433,0.004975412147667058,-5.030153868862956,6.757445583622592 +2023-01-01T01:01:33.966538,-0.005634496836326441,-4.991609964168404,6.785743634112651 +2023-01-01T01:01:39.221642,-0.016243420012631127,-4.9529004939714465,6.813810422443336 +2023-01-01T01:01:44.476747,-0.026851008098615292,-4.914026791111864,6.841645044920643 +2023-01-01T01:01:50.268526,-0.03853992418044516,-4.87099449456796,6.8720522453296295 +2023-01-01T01:01:56.494926,-0.05110317430712774,-4.824514371806027,6.904424122210503 +2023-01-01T01:02:03.083371,-0.06439313069852792,-4.7750873391554665,6.938318938312248 +2023-01-01T01:02:09.984214,-0.07830831274222305,-4.723050254217985,6.973422851275866 +2023-01-01T01:02:17.161202,-0.09277414302648612,-4.668644940309252,7.009497392501361 +2023-01-01T01:02:24.586564,-0.10773302371345417,-4.612053682786509,7.046352252566894 +2023-01-01T01:02:32.011926,-0.12268323758955546,-4.555157981374889,7.082728719786134 +2023-01-01T01:02:39.866265,-0.1384866338704278,-4.494648318429645,7.120683516205426 +2023-01-01T01:02:47.720604,-0.15427807911736946,-4.433807051889385,7.15809778344178 +2023-01-01T01:02:55.946103,-0.17080168443084864,-4.369740318774198,7.196697760353351 +2023-01-01T01:03:04.171603,-0.18730958576719647,-4.305320426092043,7.234699051591337 +2023-01-01T01:03:12.726086,-0.20445964640970282,-4.237955215516259,7.273582013755832 +2023-01-01T01:03:21.280569,-0.22158979660251177,-4.170220011995758,7.311811077543043 +2023-01-01T01:03:30.131866,-0.2392917651495059,-4.099751679233485,7.350674895472904 +2023-01-01T01:03:38.983162,-0.2569691761233015,-4.0289006394966345,7.388831871197517 +2023-01-01T01:03:47.834459,-0.2746203839693844,-3.957673744943177,7.426278667074847 +2023-01-01T01:03:57.082116,-0.29303223909171505,-3.8828632943040295,7.464640191906627 +2023-01-01T01:04:06.329773,-0.3114118256524083,-3.8076579385299896,7.502219305636024 +2023-01-01T01:04:15.577429,-0.32975727401836785,-3.7320655622661807,7.539012450812082 +2023-01-01T01:04:25.180347,-0.3487693552355504,-3.6531680719381994,7.576383488465153 +2023-01-01T01:04:34.783265,-0.36774052391817613,-3.5738706585547733,7.6128994593387445 +2023-01-01T01:04:44.386182,-0.38666869549902216,-3.4941822261557327,7.648556651594032 +2023-01-01T01:04:53.989100,-0.40555178873416886,-3.4141117050695993,7.683351442216309 +2023-01-01T01:05:04.015978,-0.42521819730911825,-3.3301080735546025,7.71875821287971 +2023-01-01T01:05:14.042857,-0.4448308334340636,-3.2457078671298296,7.753216975781675 +2023-01-01T01:05:24.069735,-0.46438734139493154,-3.160921351121039,7.786723911591479 +2023-01-01T01:05:34.096614,-0.4838853710337263,-3.075758827456132,7.819275305280431 +2023-01-01T01:05:44.508123,-0.5040669464797585,-2.9869426330964797,7.852060275496315 +2023-01-01T01:05:54.919632,-0.5241803276304833,-2.897743798750281,7.883807179012066 +2023-01-01T01:06:05.331142,-0.544222907231292,-2.8081739893488646,7.914512224944642 +2023-01-01T01:06:15.742651,-0.5641920880967546,-2.7182449144903007,7.944171752958117 +2023-01-01T01:06:26.510444,-0.5847646565010985,-2.6248730423663655,7.973742686408044 +2023-01-01T01:06:37.278236,-0.6052531039899476,-2.5311425149306297,8.002187803455413 +2023-01-01T01:06:48.046029,-0.6256545990618297,-2.437066423601135,8.029503516364935 +2023-01-01T01:06:58.813822,-0.6459663267694337,-2.3426578991932594,8.055686399544664 +2023-01-01T01:07:09.581614,-0.6661854898012437,-2.247930106914381,8.080733191211841 +2023-01-01T01:07:20.349407,-0.6863093093869399,-2.152896240923627,8.104640794023705 +2023-01-01T01:07:31.117199,-0.7063350259857222,-2.057569518730313,8.127406274581336 +2023-01-01T01:07:41.884992,-0.7262598997264692,-1.9619631757256812,8.149026861787029 +2023-01-01T01:07:52.652785,-0.746081210580483,-1.8660904601430282,8.169499944113701 +2023-01-01T01:08:03.420577,-0.7657962582613991,-1.7699646287227817,8.188823065920646 +2023-01-01T01:08:14.188370,-0.7854023618616498,-1.6735989433216911,8.20699392301834 +2023-01-01T01:08:24.956162,-0.8048968592500547,-1.5770066686516722,8.224010357742682 +2023-01-01T01:08:35.723955,-0.8242771062695483,-1.4802010712666442,8.239870353840864 +2023-01-01T01:08:46.491748,-0.8435404757869859,-1.3831954198391412,8.254572031494877 +2023-01-01T01:08:55.999100,-0.860449699144214,-1.297389219513945,8.266588511095321 +2023-01-01T01:09:05.506452,-0.8772639826180751,-1.2114465458268844,8.277699493808697 +2023-01-01T01:09:15.013804,-0.8939815471280168,-1.125376544223247,8.287903936102683 +2023-01-01T01:09:24.521155,-0.9106006216535961,-1.0391883681061445,8.297200869974006 +2023-01-01T01:09:34.028507,-0.9271194428408143,-0.9528911812853766,8.30558940273054 +2023-01-01T01:09:43.535859,-0.9435362547257349,-0.8664941604911612,8.313068717473952 +2023-01-01T01:09:53.043211,-0.9598493085909712,-0.7800064978021273,8.319638074292582 +2023-01-01T01:10:02.550563,-0.9760568629794582,-0.6934374028380161,8.325296812134269 +2023-01-01T01:10:10.869939,-0.9901513158304438,-0.6176258593768988,8.329500963225772 +2023-01-01T01:10:19.189316,-1.004162502194046,-0.5417652256842909,8.333007066696542 +2023-01-01T01:10:27.508692,-1.0180892699108344,-0.46586171087954475,8.335814838231773 +2023-01-01T01:10:35.828068,-1.031930471966452,-0.38992153663819,8.33792404663007 +2023-01-01T01:10:44.147444,-1.045684966883985,-0.3139509369121431,8.339334515765525 +2023-01-01T01:10:51.358251,-1.0575356317281484,-0.24808374107799436,8.3399916636688 +2023-01-01T01:10:58.569059,-1.0693195689765878,-0.18220245319898598,8.340123749365416 +2023-01-01T01:11:04.494766,-1.078952924808999,-0.1280547607774531,8.339839251574185 +2023-01-01T01:11:10.420474,-1.0885403198807648,-0.07390257196738831,8.33920017394979 +2023-01-01T01:11:16.707173,-1.0986610814514761,-0.01644906535483759,8.338134558155003 +2023-01-01T01:11:21.700916,-1.1066628476167109,0.029188235119244843,8.337003745409401 +2023-01-01T01:11:26.694659,-1.1146311485776697,0.07482405004603415,8.335621208263662 +2023-01-01T01:11:31.953817,-1.1229865198948923,0.12288228507114529,8.333893091970115 +2023-01-01T01:11:37.762385,-1.1321709814552539,0.1759554531007992,8.331660113435657 +2023-01-01T01:11:44.003901,-1.1419884019019986,0.23297560920352056,8.328881370985277 +2023-01-01T01:11:50.606363,-1.1523148689110851,0.2932803225507826,8.325514394245916 +2023-01-01T01:11:57.520487,-1.16306353356419,0.3564140784548776,8.321517526555628 +2023-01-01T01:12:04.710245,-1.1741692546179452,0.4220418137269477,8.316850583841424 +2023-01-01T01:12:12.148051,-1.1855807576078008,0.4899049099121381,8.311474996259813 +2023-01-01T01:12:19.585856,-1.196912847530249,0.5577342972525741,8.305542881754876 +2023-01-01T01:12:27.452410,-1.208810941482214,0.6294320436983726,8.298663728250755 +2023-01-01T01:12:35.318964,-1.220618516742613,0.7010818206462294,8.291163094645194 +2023-01-01T01:12:43.556874,-1.2328855325306927,0.7760568185952456,8.282642868071418 +2023-01-01T01:12:51.794783,-1.245051375583712,0.8509674248225538,8.273442531349877 +2023-01-01T01:13:00.362209,-1.2575954971102083,0.9287996956138912,8.26315359208534 +2023-01-01T01:13:08.929635,-1.2700280847993024,1.0065490934295376,8.252130892185868 +2023-01-01T01:13:17.794628,-1.2827739483473353,1.0869045179835934,8.23995401014705 +2023-01-01T01:13:26.659620,-1.2953981077235073,1.1671566145883494,8.226993806123742 +2023-01-01T01:13:35.524612,-1.3078994175424956,1.2472979943086688,8.213251534085533 +2023-01-01T01:13:44.787179,-1.3208289152593817,1.3309072644457636,8.19805890792235 +2023-01-01T01:13:54.049746,-1.3336217784997495,1.4143792417668855,8.18201547764167 +2023-01-01T01:14:03.312312,-1.3462767382482934,1.4977055675058875,8.165122858997796 +2023-01-01T01:14:12.930952,-1.3592708764560653,1.584072039630679,8.14668386460349 +2023-01-01T01:14:22.549592,-1.3721135514434155,1.6702631293022054,8.127332886264359 +2023-01-01T01:14:32.168231,-1.3848033774779296,1.7562695265025776,8.107071933848355 +2023-01-01T01:14:41.786871,-1.3973389792965039,1.8420819304057707,8.085903085950658 +2023-01-01T01:14:51.829030,-1.4102604992084737,1.9314556880231635,8.062835739974778 +2023-01-01T01:15:01.871189,-1.4230108839144622,2.0205972857064056,8.038783661613213 +2023-01-01T01:15:11.913347,-1.4355886021070141,2.1094961480252996,8.013749473588152 +2023-01-01T01:15:21.955506,-1.4479921338118937,2.198141697315153,7.987735895162113 +2023-01-01T01:15:32.379602,-1.4606815488865408,2.2898794583859194,7.959699981452652 +2023-01-01T01:15:42.803699,-1.4731799774665981,2.3813210325590313,7.930615080838248 +2023-01-01T01:15:53.227795,-1.4854857615699686,2.472454580724216,7.900484603876987 +2023-01-01T01:16:03.651892,-1.4975972594221105,2.563268265759126,7.869312099475352 +2023-01-01T01:16:14.075988,-1.5095128467016776,2.653750257203569,7.837101260537442 +2023-01-01T01:16:24.934436,-1.521714876940821,2.747637001827452,7.8024482684031105 +2023-01-01T01:16:35.792884,-1.533700796561985,2.841137676176932,7.766677295188526 +2023-01-01T01:16:46.651332,-1.5454688393256686,2.934238976081562,7.729793039717073 +2023-01-01T01:16:57.509780,-1.5570172657068517,3.0269276377975647,7.6918003826915635 +2023-01-01T01:17:08.368228,-1.5683443641720585,3.1191904469245006,7.652704385350906 +2023-01-01T01:17:19.631814,-1.5798584175003187,3.21443160047334,7.610989432191777 +2023-01-01T01:17:30.895400,-1.591130664797302,3.3091857633571338,7.568098951320203 +2023-01-01T01:17:42.158985,-1.6021592973066845,3.4034384069423016,7.524039179280128 +2023-01-01T01:17:53.422571,-1.6129425418556826,3.4971750902488528,7.4788165374575195 +2023-01-01T01:18:04.686157,-1.6234786609653764,3.5903814631001874,7.432437623400479 +2023-01-01T01:18:16.336219,-1.6341144946242534,3.6862128433129886,7.383258093117804 +2023-01-01T01:18:27.986280,-1.6444822894409026,3.781445968787474,7.332856484395819 +2023-01-01T01:18:39.636342,-1.65458024235702,3.876065265106155,7.281240636165852 +2023-01-01T01:18:51.286403,-1.6644065903186513,3.9700552531417412,7.228418554949983 +2023-01-01T01:19:02.936465,-1.6739596102096608,4.063400542654742,7.17439841055 +2023-01-01T01:19:14.586527,-1.6832376190251659,4.156085825294433,7.1191885341643575 +2023-01-01T01:19:26.679751,-1.6925758977720873,4.251582348715219,7.0606291232151 +2023-01-01T01:19:38.772975,-1.7016142856579308,4.3463343231293905,7.000806585859416 +2023-01-01T01:19:50.866199,-1.7103510423714252,4.440324861960507,6.939730807824431 +2023-01-01T01:20:02.959423,-1.7187844789277018,4.533537148995244,6.877411880875821 +2023-01-01T01:20:15.052648,-1.7269129597954769,4.625954437518831,6.8138601124681895 +2023-01-01T01:20:27.145872,-1.7347349052280374,4.717560052448045,6.7490860360158145 +2023-01-01T01:20:39.668990,-1.742510211554922,4.8115489298176515,6.680732577509563 +2023-01-01T01:20:52.192109,-1.7499535488406972,4.904631265721241,6.6110921510342555 +2023-01-01T01:21:04.715227,-1.7570633677366447,4.996788834184029,6.540177283720053 +2023-01-01T01:21:17.238346,-1.763838192735853,5.088003534116607,6.468000799368329 +2023-01-01T01:21:29.761464,-1.770276623391873,5.178257405587172,6.394575821217706 +2023-01-01T01:21:42.284583,-1.7763773347343448,5.267532646581685,6.319915771240273 +2023-01-01T01:21:54.807701,-1.7821390768215104,5.3558116292687625,6.244034366034028 +2023-01-01T01:22:07.330820,-1.7875606734196672,5.4430769148755935,6.166945609620791 +2023-01-01T01:22:19.853938,-1.7926410198778397,5.529311266395499,6.088663783704877 +2023-01-01T01:22:32.377057,-1.7973790803217335,5.614497658555972,6.009203436115765 +2023-01-01T01:22:44.900175,-1.8017738843435103,5.6986192847074255,5.928579368266124 +2023-01-01T01:22:57.423294,-1.8058245234195085,5.781659560545771,5.846806622521407 +2023-01-01T01:23:08.399131,-1.8090910107511173,5.853537778852623,5.774204699623516 +2023-01-01T01:23:19.374969,-1.8120919335514705,5.9245619030556735,5.700742558571569 +2023-01-01T01:23:30.350806,-1.8148267850036306,5.994721186449155,5.626430743878799 +2023-01-01T01:23:41.326644,-1.8172950878954306,6.064005008342075,5.551279921360996 +2023-01-01T01:23:52.302481,-1.8194963937610145,6.132402871158337,5.47530087603493 +2023-01-01T01:24:03.278319,-1.8214302824478077,6.1999043975495916,5.398504511195541 +2023-01-01T01:24:13.061636,-1.8229283225128805,6.259308024414785,5.329372051946708 +2023-01-01T01:24:22.844953,-1.824213328254062,6.317984165891555,5.259606868476743 +2023-01-01T01:24:32.628269,-1.8252850601504353,6.375925706089767,5.189216922689161 +2023-01-01T01:24:42.411586,-1.8261432980796033,6.433125601234359,5.118210254242678 +2023-01-01T01:24:50.810746,-1.8267096362710147,6.4816358018765605,5.05676386211164 +2023-01-01T01:24:59.209906,-1.827118356222278,6.529589862182862,4.9948740793142985 +2023-01-01T01:25:07.609066,-1.827369356070275,6.576983454336504,4.9325461349111395 +2023-01-01T01:25:14.145265,-1.8274555002022899,6.613474462074583,4.883742946694765 +2023-01-01T01:25:20.681464,-1.827446039765479,6.6496214565638905,4.834680109433233 +2023-01-01T01:25:27.217664,-1.8273409432354533,6.685422451132087,4.785360144189253 +2023-01-01T01:25:34.243485,-1.8271212935072736,6.723517172904916,4.73206181411078 +2023-01-01T01:25:41.844058,-1.8267591812524997,6.7642727167966665,4.6740758087141705 +2023-01-01T01:25:49.904053,-1.8262338025007017,6.80697121701349,4.6122172702174575 +2023-01-01T01:25:58.361529,-1.825526030947132,6.851195465463714,4.546906613766545 +2023-01-01T01:26:07.172053,-1.8246182900513173,6.896629849141616,4.478438345274342 +2023-01-01T01:26:16.298855,-1.8234945966231537,6.94300609802225,4.40705491419161 +2023-01-01T01:26:25.425657,-1.8221843444971864,6.988676111075467,4.335213269859348 +2023-01-01T01:26:35.096666,-1.8205924611644608,7.036293150377291,4.25859600590334 +2023-01-01T01:26:44.767675,-1.8187912850446337,7.083105889262553,4.181481186926487 +2023-01-01T01:26:54.908044,-1.8166780638619642,7.13132056443594,4.100099037674082 +2023-01-01T01:27:05.048413,-1.8143350773870135,7.178638271536039,4.01818979179026 +2023-01-01T01:27:15.601199,-1.8116530670693418,7.22692118985468,3.9324006341454836 +2023-01-01T01:27:26.153986,-1.8087227530989543,7.274218839801304,3.8460635102257847 +2023-01-01T01:27:37.077403,-1.8054283343564324,7.322132564116316,3.7561294808683754 +2023-01-01T01:27:48.000820,-1.801868623658363,7.368975784521872,3.6656341203829297 +2023-01-01T01:27:58.924238,-1.7980440705262541,7.414741197773617,3.57459068664826 +2023-01-01T01:28:10.340996,-1.7937642651460144,7.461413865626784,3.478864120864333 +2023-01-01T01:28:21.757754,-1.7891962979076648,7.506893380992045,3.3825687776752704 +2023-01-01T01:28:33.174513,-1.7843408224903157,7.5511719423896455,3.2857201018401843 +2023-01-01T01:28:44.591271,-1.779198538445998,7.594241930240637,3.188333643904577 +2023-01-01T01:28:56.008029,-1.7737701906447296,7.636095907842497,3.0904250617183675 +2023-01-01T01:29:07.424788,-1.7680565690243717,7.676726623481976,2.9920101222138804 +2023-01-01T01:29:18.841546,-1.7620585086313176,7.716127013739823,2.893104703106031 +2023-01-01T01:29:30.258304,-1.755776889916283,7.75429020794806,2.79372479417164 +2023-01-01T01:29:41.675063,-1.7492126392315432,7.791209533667739,2.6938864977854484 +2023-01-01T01:29:53.091821,-1.7423667294632592,7.826878522971239,2.5936060284355307 +2023-01-01T01:30:00,-1.738087981400374,7.847851682870495,2.532719366042734 diff --git a/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity_Truth.csv b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity_Truth.csv new file mode 100644 index 000000000..0d2cb311e --- /dev/null +++ b/test/OpenSpaceToolkit/Astrodynamics/Dynamics/Tabulated_Earth_Gravity_Truth.csv @@ -0,0 +1,100 @@ +2023-01-01T00:32:48.111089,1.7191483402327778,-4.555695618883114,-6.870204125790202 +2023-01-01T00:19:29.459534,0.6238974331671631,2.4463543889353314,-8.018208336636835 +2023-01-01T00:04:09.215794,-1.1266971898009275,8.030698634105178,-2.278378122073309 +2023-01-01T00:50:31.618217,1.2211976307223766,-8.163082723958349,1.7754569691644122 +2023-01-01T01:13:11.556113,-1.2738169874249923,1.030366747921056,8.248604915195754 +2023-01-01T00:14:50.679103,0.07724202808611891,4.729170491836577,-6.954058816144306 +2023-01-01T00:18:45.802420,0.5409334646601992,2.8244395409078473,-7.899448991107787 +2023-01-01T00:56:58.873129,0.5426187466838862,-6.7567029107513585,5.0174759508932985 +2023-01-01T01:16:15.961482,-1.5116470711025858,2.6700801510740413,7.8311644209397295 +2023-01-01T01:13:50.455156,-1.3286734668163875,1.3820025202782518,8.188342483703309 +2023-01-01T00:09:54.817808,-0.5107984138222772,6.667949349042532,-5.110380980021721 +2023-01-01T01:29:38.472976,-1.7510821943533392,7.780980568267226,2.7219337108416783 +2023-01-01T00:36:28.648177,1.81694458577409,-6.101254983555447,-5.52474683715429 +2023-01-01T00:06:10.037691,-0.9255700188600137,7.679552998146506,-3.3297731246095985 +2023-01-01T00:40:33.018697,1.7993441563244328,-7.392044708689084,-3.6479557442598662 +2023-01-01T00:19:11.901712,0.5906951503274656,2.5991289518356875,-7.972657778620277 +2023-01-01T01:17:53.160545,-1.6126944907261054,3.495000450621351,7.479881720219948 +2023-01-01T01:08:18.578209,-0.7933635501867621,-1.634246582808268,8.214070725173318 +2023-01-01T00:16:38.199758,0.29190381793323983,3.889584301619638,-7.448778148556464 +2023-01-01T01:22:47.082217,-1.8025044560261774,5.713166568833113,5.914413404714071 +2023-01-01T00:02:16.676982,-1.2960063057051228,8.22818665192824,-1.2610482446266043 +2023-01-01T00:36:42.990626,1.819614036970772,-6.190291796117674,-5.424727731591136 +2023-01-01T01:24:06.079061,-1.8218808866162588,6.216984212477381,5.378778557119372 +2023-01-01T00:37:36.565536,1.8255157090572625,-6.509024155524373,-5.038974163886144 +2023-01-01T00:18:33.739507,0.5177790032383944,2.9278114028805,-7.86340402515843 +2023-01-01T01:26:44.190104,-1.81890472901968,7.080332826750333,4.186100446805546 +2023-01-01T00:41:46.359296,1.7679968901673206,-7.677764229340302,-3.0244060887920083 +2023-01-01T01:18:17.911011,-1.6355316647000262,3.6991212585301536,7.376516334826665 +2023-01-01T00:41:16.891529,1.7820212548741827,-7.568973572384791,-3.2776630025193447 +2023-01-01T00:09:22.975184,-0.5720342957180323,6.83783683778748,-4.8751980355200395 +2023-01-01T01:21:38.286553,-1.774466446193131,5.2391387688162,6.343884518172145 +2023-01-01T01:28:39.707876,-1.7814331500221776,7.575967606602878,3.230054461718644 +2023-01-01T00:00:03.274942,-1.47034510372926,8.295708671847907,-0.030392722591221555 +2023-01-01T00:09:23.790810,-0.5704740694512678,6.833589637504542,-4.881299953765859 +2023-01-01T00:36:37.621787,1.8186685101360809,-6.157142185461976,-5.462332848807409 +2023-01-01T01:11:01.870554,-1.0746924186421478,-0.15203487177915992,8.340008986773853 +2023-01-01T01:10:41.760623,-1.0417477509867208,-0.33574957977437886,8.339001338110384 +2023-01-01T00:39:22.664930,1.8181632718663985,-7.072016081771035,-4.222856119194648 +2023-01-01T01:18:10.438685,-1.6287637718649006,3.6377745450854726,7.408307145002938 +2023-01-01T01:11:45.758216,-1.1447381144557693,0.2490003551704275,8.328029617611113 +2023-01-01T00:03:09.954666,-1.2182103971287508,8.1505528611445,-1.7461808599416948 +2023-01-01T01:03:33.360775,-0.24574332890186396,-4.073949551646664,7.3646764431369425 +2023-01-01T01:25:05.714534,-1.8273265204381757,6.566342430029487,4.946642956140148 +2023-01-01T01:07:04.921685,-0.6574468730190839,-2.2889633707969215,8.07003344837744 +2023-01-01T01:02:34.648231,-0.12798889967184093,-4.534885206678296,7.095528327011042 +2023-01-01T00:29:26.058188,1.5406948634595339,-2.9057691015200944,-7.7444982061425796 +2023-01-01T01:13:48.240783,-1.32561485532992,1.3620467997330408,8.192176405095616 +2023-01-01T01:14:22.732652,-1.3723564928897094,1.6719017396232245,8.12695577172407 +2023-01-01T01:28:07.955409,-1.794682387845881,7.451759731979377,3.498914172064998 +2023-01-01T01:29:09.806441,-1.7668287629806183,7.685047738938106,2.9714173958457297 +2023-01-01T00:14:40.405281,0.05661814152732203,4.806140595508472,-6.901527293860264 +2023-01-01T00:02:59.529352,-1.2337770025487564,8.168000561755798,-1.6516886104461637 +2023-01-01T00:17:52.929006,0.4387823285234988,3.273656898006285,-7.731203070982043 +2023-01-01T00:37:20.140923,1.8243904048788335,-6.413674074117644,-5.159226953292578 +2023-01-01T01:14:15.185065,-1.3622941776032367,1.6042868682527216,8.142230738006791 +2023-01-01T00:50:14.928549,1.2462391448540813,-8.191096194619089,1.6235260936068399 +2023-01-01T00:54:18.078452,0.8438690012216613,-7.510307689400575,3.7530975063392926 +2023-01-01T00:24:45.783061,1.170765487597374,-0.40510125791105195,-8.315731169633908 +2023-01-01T00:01:57.258712,-1.3232480046139794,8.249324424806995,-1.083015537034382 +2023-01-01T00:31:54.180460,1.6794984333834824,-4.133694833169659,-7.139223271080013 +2023-01-01T00:55:30.125892,0.7115883361846516,-7.200754421519785,4.337237003779269 +2023-01-01T00:36:57.892352,1.821901014475061,-6.281163112092906,-5.319330437589282 +2023-01-01T00:33:51.622870,1.7580630573062552,-5.032277834205399,-6.521877891766843 +2023-01-01T00:34:04.467434,1.7648924160586155,-5.125778759239188,-6.447419853493752 +2023-01-01T01:09:04.917664,-0.8762254698811187,-1.2167727443880545,8.277037715967362 +2023-01-01T00:47:07.256764,1.4963027685774042,-8.30945437393638,-0.11174246550736944 +2023-01-01T01:14:17.941792,-1.3659802690739893,1.62899585141857,8.136716625150598 +2023-01-01T01:23:57.643477,-1.8204708790140682,6.165362658686394,5.438032100406363 +2023-01-01T01:00:49.239798,0.0846635778157603,-5.314235536822394,6.537597576067294 +2023-01-01T00:12:59.383450,-0.14622617561060303,5.528963023009678,-6.338553429161853 +2023-01-01T00:59:34.036082,0.2360525573480611,-5.827457645598424,6.084224374179853 +2023-01-01T00:16:50.319634,0.3158902220543037,3.791347320799506,-7.498075779805581 +2023-01-01T00:54:29.850437,0.8225962729982531,-7.462953557570155,3.850322112463583 +2023-01-01T00:18:58.868560,0.5659046813134986,2.7119175973396223,-7.936918851902513 +2023-01-01T00:22:39.959866,0.966607474078619,0.7427913375497692,-8.317342839594108 +2023-01-01T00:12:24.885698,-0.21524189511294337,5.760654526872627,-6.127746188639201 +2023-01-01T01:19:55.293661,-1.713473899311241,4.474542090705336,6.917058877465153 +2023-01-01T01:02:34.841429,-0.1283776697860189,-4.533398055476473,7.096463945200756 +2023-01-01T01:24:26.881579,-1.8246813859760056,6.34198044725019,5.230639012961589 +2023-01-01T00:48:06.706757,1.4236793475675074,-8.311258723592259,0.44111489270093 +2023-01-01T01:15:27.369926,-1.4546069261914814,2.2458277989541213,7.973304783132094 +2023-01-01T00:23:17.727067,1.029996623425181,0.39878582535594054,-8.333606866801693 +2023-01-01T00:55:49.580884,0.6750680547030987,-7.109211585456708,4.490269297918056 +2023-01-01T00:39:35.816861,1.8154879094985326,-7.135167767076911,-4.117282141102992 +2023-01-01T01:04:38.508759,-0.3750890100989724,-3.5430011149263043,7.626834980404639 +2023-01-01T01:03:54.914742,-0.2887198770867451,-3.9004323479387115,7.455719463454102 +2023-01-01T01:21:36.577068,-1.7736388504169218,5.226967213290195,6.354095014393573 +2023-01-01T01:01:37.871278,-0.013517439414202406,-4.962863103470826,6.806620441923002 +2023-01-01T00:12:27.523238,-0.20997429977853144,5.743228519583462,-6.14418419597112 +2023-01-01T00:02:09.572782,-1.306043283425021,8.236365025202598,-1.1959798600505176 +2023-01-01T01:21:43.010872,-1.7767207630574982,5.272679845998315,6.3155481925931465 +2023-01-01T00:50:13.720404,1.2480353327546196,-8.193014267839473,1.612505010356864 +2023-01-01T00:30:04.698667,1.5810014652662085,-3.2346834458753,-7.606039947863848 +2023-01-01T01:09:03.789328,-0.8742342596169408,-1.2269783418420623,8.275759789420542 +2023-01-01T00:52:55.175125,0.989450079120868,-7.807061861374834,3.050775469694659 +2023-01-01T00:17:00.658814,0.3363066999728969,3.7070166772459356,-7.539070284272322 +2023-01-01T00:49:27.260499,1.3153696787702975,-8.25548046612535,1.186603191701913 +2023-01-01T00:34:28.705749,1.7768144844622977,-5.299438203808603,-6.3033355963313635 +2023-01-01T00:12:33.820544,-0.19739093265368807,5.7014278656941295,-6.183218103392741 +2023-01-01T00:47:28.273901,1.471364002367263,-8.314267567435394,0.08377659463283968 diff --git a/test/OpenSpaceToolkit/Astrodynamics/Trajectory/Propagator.test.cpp b/test/OpenSpaceToolkit/Astrodynamics/Trajectory/Propagator.test.cpp index 478279b34..ff06fed7a 100644 --- a/test/OpenSpaceToolkit/Astrodynamics/Trajectory/Propagator.test.cpp +++ b/test/OpenSpaceToolkit/Astrodynamics/Trajectory/Propagator.test.cpp @@ -42,9 +42,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -67,6 +69,7 @@ using ostk::core::ctnr::Table; using ostk::core::ctnr::Tuple; using ostk::core::filesystem::File; using ostk::core::filesystem::Path; +using ostk::core::filesystem::Directory; using ostk::core::types::Integer; using ostk::core::types::Real; using ostk::core::types::Shared; @@ -77,6 +80,7 @@ using ostk::math::geometry::d3::objects::Composite; using ostk::math::geometry::d3::objects::Cuboid; using ostk::math::geometry::d3::objects::Point; using ostk::math::object::Matrix3d; +using ostk::math::object::MatrixXd; using ostk::math::object::Vector3d; using ostk::math::object::VectorXd; @@ -124,11 +128,13 @@ using ostk::astro::trajectory::orbit::models::kepler::COE; using ostk::astro::Dynamics; using ostk::astro::flight::system::PropulsionSystem; using ostk::astro::flight::system::SatelliteSystem; +using ostk::astro::flight::system::SatelliteSystemBuilder; using ostk::astro::dynamics::PositionDerivative; using ostk::astro::dynamics::CentralBodyGravity; using ostk::astro::dynamics::ThirdBodyGravity; using ostk::astro::dynamics::AtmosphericDrag; using ostk::astro::dynamics::Thruster; +using ostk::astro::dynamics::Tabulated; using ostk::astro::guidancelaw::ConstantThrust; using ostk::astro::guidancelaw::QLaw; using ostk::astro::solvers::FiniteDifferenceSolver; @@ -3076,6 +3082,109 @@ TEST_P(OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Models_Propagator_QLaw, S } } +TEST_F(OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Models_Propagator, TabulatedDynamics_ConstantThrust) +{ + VectorXd coordinates(9); + coordinates << 1204374.4983743676, -6776950.422456586, 0.0, -967.6410027260863, -171.96557073856417, + 7546.1119092033205, 110.0, 500.0, 2.2; + + const State initialState = { + Instant::DateTime(DateTime(2023, 1, 1, 0, 0, 0, 0), Scale::UTC), + coordinates, + Frame::GCRF(), + dragCoordinatesBrokerSPtr_, + }; + + const Earth earth = Earth::FromModels( + std::make_shared(EarthGravitationalModel::Type::EGM96, Directory::Undefined(), 20, 20), + std::make_shared(EarthMagneticModel::Type::Undefined), + std::make_shared(EarthAtmosphericModel::Type::Exponential) + ); + const Shared earthSPtr = std::make_shared(earth); + + const PropulsionSystem propulsionSystem = { + Scalar(1e-1, PropulsionSystem::thrustSIUnit), + Scalar(3000.0, PropulsionSystem::specificImpulseSIUnit), + }; + + const SatelliteSystem satelliteSystem = SatelliteSystemBuilder::Default() + .withPropulsionSystem(propulsionSystem) + .withDryMass(Mass::Kilograms(100.0)) + .build(); + + const Shared constantThrustSPtr = std::make_shared(ConstantThrust::Intrack()); + + const Array> dynamics = { + std::make_shared(), + std::make_shared(earthSPtr), + std::make_shared(earthSPtr), + std::make_shared(satelliteSystem, constantThrustSPtr), + }; + + const NumericalSolver numericalSolver = { + NumericalSolver::LogType::NoLog, + NumericalSolver::StepperType::RungeKuttaFehlberg78, + 1.0, + 1e-12, + 1e-12, + }; + + // Create contribution profile + Propagator propagator = {numericalSolver, dynamics}; + const State endStatePropagated = + propagator.calculateStateAt(initialState, initialState.accessInstant() + Duration::Hours(1.5)); + + // TBI: For some reason it's pushing the initial state twice + const Array tmpStates = propagator.accessNumericalSolver().getObservedStates(); + const Array states(tmpStates.begin() + 1, tmpStates.end()); + + MatrixXd contributions(states.getSize(), 4); + for (Size i = 0; i < states.getSize(); ++i) + { + const VectorXd contribution = + dynamics[3]->computeContribution(states[i].accessInstant(), states[i].accessCoordinates(), Frame::GCRF()); + contributions.row(i) = contribution; + } + const Array instants = states.map( + [](const auto& state) + { + return state.accessInstant(); + } + ); + + const Tabulated tabulated = { + instants, + contributions, + {CartesianVelocity::Default(), CoordinatesSubset::Mass()}, + gcrfSPtr_, + }; + + // Re-propagate with tabulated dynamics + const Array> tabulatedDynamics = { + std::make_shared(), + std::make_shared(earthSPtr), + std::make_shared(earthSPtr), + std::make_shared(tabulated), + }; + + const NumericalSolver tabulatedNumericalSolver = { + NumericalSolver::LogType::NoLog, + NumericalSolver::StepperType::RungeKutta4, + 3.0, + 1e-12, + 1e-12, + }; + + Propagator tabulatedPropagator = {tabulatedNumericalSolver, tabulatedDynamics}; + const State endStateTabulated = + propagator.calculateStateAt(initialState, initialState.accessInstant() + Duration::Hours(1.5)); + + for (Size i = 0; i < endStateTabulated.getSize(); ++i) + { + EXPECT_NEAR(endStatePropagated.accessCoordinates()[i], endStateTabulated.accessCoordinates()[i], 1e-14); + } +} + TEST_P( OpenSpaceToolkit_Astrodynamics_Trajectory_Orbit_Models_Propagator_Thruster, PropAccuracy_TwoBody_Newtonian_ConstantThrust