Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add calculate_perturber_moids #148

Merged
merged 2 commits into from
Mar 6, 2025
Merged

Add calculate_perturber_moids #148

merged 2 commits into from
Mar 6, 2025

Conversation

moeyensj
Copy link
Member

@moeyensj moeyensj commented Mar 5, 2025

No description provided.

@moeyensj moeyensj requested a review from akoumjian March 5, 2025 23:35
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python Benchmark

Benchmark suite Current: da66c8d Previous: 79d5873 Ratio
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 430.3635469185334 iter/sec (stddev: 0.00011070958362529077) 414.2272993595435 iter/sec (stddev: 0.00008687065496736218) 0.96
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 293.2929418108827 iter/sec (stddev: 0.00017680328463226265) 289.14443088137216 iter/sec (stddev: 0.00018179149793541918) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 312.26211481693645 iter/sec (stddev: 0.00018663804171232965) 306.82728134016173 iter/sec (stddev: 0.00019044302216406756) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 446.8718014532326 iter/sec (stddev: 0.00004257426370807876) 437.1844882838435 iter/sec (stddev: 0.0000394280872003898) 0.98
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 305.17358380353613 iter/sec (stddev: 0.0000261380536249666) 297.2386713473087 iter/sec (stddev: 0.00010833800274776578) 0.97
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[1-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 328.45580550536727 iter/sec (stddev: 0.00003603145587141161) 320.1511478119343 iter/sec (stddev: 0.00005132085305576665) 0.97
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 417.72082655372003 iter/sec (stddev: 0.00009769295569467394) 412.39686708748013 iter/sec (stddev: 0.00008705194572426934) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 257.1336591045487 iter/sec (stddev: 0.000044064333270077425) 255.71646592453152 iter/sec (stddev: 0.00007070660455224373) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 255.93700919303163 iter/sec (stddev: 0.0002025912418979155) 256.1659922843901 iter/sec (stddev: 0.00017188959055974007) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 419.07472145422696 iter/sec (stddev: 0.0000812329194590714) 416.0535377447173 iter/sec (stddev: 0.00008227251788644514) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 256.1339251569794 iter/sec (stddev: 0.00008104889314600176) 252.5469624229983 iter/sec (stddev: 0.0001570845152646052) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[50-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 266.4232000295255 iter/sec (stddev: 0.00010409143301534324) 264.6273936154566 iter/sec (stddev: 0.00003260969382665468) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=SphericalCoordinates,] 398.84267269734096 iter/sec (stddev: 0.00008475853009998462) 402.3139493399897 iter/sec (stddev: 0.00004278613383178018) 1.01
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=KeplerianCoordinates,] 227.22921329997416 iter/sec (stddev: 0.00005271630850980985) 224.5316550339781 iter/sec (stddev: 0.00006485030864320537) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=equatorial,-to=CometaryCoordinates,] 225.59155746163108 iter/sec (stddev: 0.00018556845179000056) 224.2250099773649 iter/sec (stddev: 0.00015282257094603177) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=SphericalCoordinates,] 400.05956437776325 iter/sec (stddev: 0.00010078937562111777) 403.8184260612072 iter/sec (stddev: 0.0000305522182769343) 1.01
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=KeplerianCoordinates,] 223.53760570226456 iter/sec (stddev: 0.000060045566294332985) 223.78931995169427 iter/sec (stddev: 0.00004676722681671138) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_transform_cartesian_coordinates[100-origin=SUN,-frame=ecliptic,-to=CometaryCoordinates,] 230.15468467215427 iter/sec (stddev: 0.000048346740693997565) 230.43645335085318 iter/sec (stddev: 0.00011355958091434851) 1.00
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_CoordinateCovariances_to_matrix 663.3663087201093 iter/sec (stddev: 0.00009804630866158257) 656.8407541109246 iter/sec (stddev: 0.000017204833118415327) 0.99
src/adam_core/coordinates/tests/test_benchmarks.py::test_benchmark_CoordinateCovariances_from_matrix 10711.835433808601 iter/sec (stddev: 0.0000071258434845076965) 10472.01854853993 iter/sec (stddev: 0.000009474162913335038) 0.98
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark__propagate_2body 44253.879568155106 iter/sec (stddev: 0.000009131595925245791) 43692.289761780594 iter/sec (stddev: 0.000009173340245929476) 0.99
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark__propagate_2body_vmap 35600.0386383742 iter/sec (stddev: 0.000010148348594030878) 36230.00879489638 iter/sec (stddev: 0.000010517740639313427) 1.02
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark_propagate_2body 329.471119122702 iter/sec (stddev: 0.0000737626400290365) 328.9007813560328 iter/sec (stddev: 0.00007144619400774584) 1.00
src/adam_core/dynamics/tests/test_propagation.py::test_benchmark_propagate_2body_matrix 3.993899497444558 iter/sec (stddev: 0.001983956961421156) 3.993321964483915 iter/sec (stddev: 0.000782101676596069) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=X05,-times=1,] 559.8002073047481 iter/sec (stddev: 0.000022607737147580283) 540.2472906141963 iter/sec (stddev: 0.00009944424961816196) 0.97
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=X05,-times=10000,] 4.889027246187476 iter/sec (stddev: 0.0002466948468963249) 4.829329892741229 iter/sec (stddev: 0.00048146570534062617) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=500,-times=1,] 1124.4650488587422 iter/sec (stddev: 0.000014842439724175848) 1112.992252999901 iter/sec (stddev: 0.000015109069780054562) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=equatorial,-code=500,-times=10000,] 17.616886037384123 iter/sec (stddev: 0.0005616058975177993) 17.549616966884585 iter/sec (stddev: 0.00025452537350075584) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=X05,-times=1,] 563.3454809108852 iter/sec (stddev: 0.00002201247869654313) 543.318398482911 iter/sec (stddev: 0.00006475108233525659) 0.96
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=X05,-times=10000,] 4.881275956319179 iter/sec (stddev: 0.00024962710235160775) 4.8152305186594075 iter/sec (stddev: 0.00019892538866431514) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=500,-times=1,] 1132.6219516061183 iter/sec (stddev: 0.000018412767524210823) 1111.9501096292038 iter/sec (stddev: 0.000014921018834699952) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SUN,-frame=ecliptic,-code=500,-times=10000,] 17.420209609060638 iter/sec (stddev: 0.0011254686802518) 17.31891279832036 iter/sec (stddev: 0.0008000805533093534) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=X05,-times=1,] 558.1910414457129 iter/sec (stddev: 0.00004147491994470155) 550.7419340406615 iter/sec (stddev: 0.00002510870027202613) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=X05,-times=10000,] 4.864059631098911 iter/sec (stddev: 0.002291452165439514) 4.842424415219336 iter/sec (stddev: 0.0006902809719004652) 1.00
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=500,-times=1,] 1147.3004958099025 iter/sec (stddev: 0.000022073737695688237) 1127.7335008962925 iter/sec (stddev: 0.000016560126872901258) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-code=500,-times=10000,] 17.92287039692312 iter/sec (stddev: 0.00015434150951899102) 17.6026080446531 iter/sec (stddev: 0.0011566010717341266) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=X05,-times=1,] 562.2435271104299 iter/sec (stddev: 0.00006431139466882865) 551.3090780832646 iter/sec (stddev: 0.00004339877552391954) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=X05,-times=10000,] 4.883006103562467 iter/sec (stddev: 0.0019329968139805858) 4.835284051802716 iter/sec (stddev: 0.0004766471067127217) 0.99
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=500,-times=1,] 1134.132093068515 iter/sec (stddev: 0.000016719079794902213) 1115.3296759904736 iter/sec (stddev: 0.00001916033875145367) 0.98
src/adam_core/observers/tests/test_benchmarks.py::test_benchmark_get_observer_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-code=500,-times=10000,] 17.796740472804377 iter/sec (stddev: 0.0010877380252373623) 17.6227764171792 iter/sec (stddev: 0.00108240326402553) 0.99
src/adam_core/orbits/tests/test_benchmarks.py::test_benchmark_iterate_real_orbits 18771.815300976374 iter/sec (stddev: 0.000013080701362880457) 19033.543092177697 iter/sec (stddev: 0.000008031269233173058) 1.01
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=EARTH,-times=1,] 1369.844792721396 iter/sec (stddev: 0.000015461645764446565) 1353.3812549955724 iter/sec (stddev: 0.000022482761867580043) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=EARTH,-times=10000,] 17.550377373477144 iter/sec (stddev: 0.0009795355475083337) 17.460868549352448 iter/sec (stddev: 0.00036663037187661853) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SUN,-times=1,] 1373.2475931151473 iter/sec (stddev: 0.00004583733840014887) 1357.566364754191 iter/sec (stddev: 0.00004059906303514589) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SUN,-times=10000,] 19.614025035667552 iter/sec (stddev: 0.000572883139130048) 19.612647332132962 iter/sec (stddev: 0.0004651162218096943) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1378.5805898094948 iter/sec (stddev: 0.00001794299859618497) 1367.667888340491 iter/sec (stddev: 0.00003081432173821825) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 18.374247757568572 iter/sec (stddev: 0.0010586791313155442) 18.41397768295394 iter/sec (stddev: 0.000963231929441066) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=EARTH,-times=1,] 1370.185782703484 iter/sec (stddev: 0.00005910908764739093) 1365.6925111141754 iter/sec (stddev: 0.000031618244619739315) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=EARTH,-times=10000,] 17.531156327192225 iter/sec (stddev: 0.0002049928026966493) 17.20726027998018 iter/sec (stddev: 0.0010810202907782316) 0.98
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SUN,-times=1,] 1386.9010020328028 iter/sec (stddev: 0.000014263536686934637) 1365.7401814934772 iter/sec (stddev: 0.00003429322278975812) 0.98
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SUN,-times=10000,] 19.711551620421993 iter/sec (stddev: 0.00017094666547090345) 19.32836532106825 iter/sec (stddev: 0.0017859699531203234) 0.98
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1382.8953446569963 iter/sec (stddev: 0.000015333555592501805) 1365.5445994219724 iter/sec (stddev: 0.00003119411867869497) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SUN,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 18.454936567368502 iter/sec (stddev: 0.0002785819005638384) 18.28326183660697 iter/sec (stddev: 0.0009543621325262483) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=EARTH,-times=1,] 1386.7997060625173 iter/sec (stddev: 0.000013789935513558416) 1385.256121970128 iter/sec (stddev: 0.000027445372842697148) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=EARTH,-times=10000,] 17.989905737962953 iter/sec (stddev: 0.00019581565094553536) 17.735452964446267 iter/sec (stddev: 0.001162019299238729) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SUN,-times=1,] 1384.1436733707428 iter/sec (stddev: 0.00001356751930903971) 1378.5371212637049 iter/sec (stddev: 0.000023360062302957637) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SUN,-times=10000,] 18.511258604964315 iter/sec (stddev: 0.0005954782309021991) 18.245959661748035 iter/sec (stddev: 0.0013508930396818463) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1388.5443128927798 iter/sec (stddev: 0.00003603128500052305) 1394.3037983085446 iter/sec (stddev: 0.000027389038389234423) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=equatorial,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 19.660684870853373 iter/sec (stddev: 0.00022736607892545675) 19.61207215375092 iter/sec (stddev: 0.00030716236411093247) 1.00
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=EARTH,-times=1,] 1384.3656031049143 iter/sec (stddev: 0.000014795913026965381) 1337.67166125815 iter/sec (stddev: 0.00008604948179004909) 0.97
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=EARTH,-times=10000,] 17.87102692532947 iter/sec (stddev: 0.00023918083709944708) 17.603965799506966 iter/sec (stddev: 0.0012955580562431037) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SUN,-times=1,] 1402.6188060620293 iter/sec (stddev: 0.000016331272417060887) 1381.935294300608 iter/sec (stddev: 0.00003269387933539406) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SUN,-times=10000,] 18.47531863173587 iter/sec (stddev: 0.00024503090867714837) 18.20575706244607 iter/sec (stddev: 0.0011262081673784428) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=1,] 1405.5071214789925 iter/sec (stddev: 0.000017058400737908828) 1385.1317830526807 iter/sec (stddev: 0.00003568006372558881) 0.99
src/adam_core/utils/tests/test_benchmarks.py::test_benchmark_get_perturber_state[origin=SOLAR_SYSTEM_BARYCENTER,-frame=ecliptic,-perturber=SOLAR_SYSTEM_BARYCENTER,-times=10000,] 19.585178093897945 iter/sec (stddev: 0.0009531088936869344) 19.534304486099238 iter/sec (stddev: 0.0003893332849754899) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

A table containing the MOID and time for each orbit with respect to the perturbing body or bodies.
"""
assert len(orbits.orbit_id.unique()) == len(orbits)
assert len(orbits.coordinates.origin.code.unique()) == 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably something obvious, but why this assert?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we wanted to accept arbitrary origins then we would need to batch by the orbits' unique origin as well (since we need to pull the perturber states to have the same origin). I suppose this MOID calculation really only makes sense from the heliocenter or barycenter at the moment.

@moeyensj moeyensj merged commit eff7833 into main Mar 6, 2025
3 checks passed
@moeyensj moeyensj deleted the jm/mp-moid branch March 6, 2025 00:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants