The award-winning WIRED UK Podcast with James Temperton and the rest of the team. Listen every week for the an informed and entertaining rundown of latest technology, science, business and culture news. New episodes every Friday.
…
continue reading
Content provided by HPR Volunteer and Hacker Public Radio. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by HPR Volunteer and Hacker Public Radio or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Player FM - Podcast App
Go offline with the Player FM app!
Go offline with the Player FM app!
HPR2598: Calculating planetary orbits in Haskell
MP3•Episode home
Manage episode 212918937 series 108988
Content provided by HPR Volunteer and Hacker Public Radio. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by HPR Volunteer and Hacker Public Radio or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Function signatures (it might or might not be helpful to have these at hand while listening):
- Helpers:
radToDeg :: Floating a => a -> a degToRad :: Floating a => a -> a clamp :: Float -> Float
Time:
day :: Int -> Int -> Int -> Float -> Day Float
- Orbital parameters:
longitudeOfAscendingNode :: Orbit body center => body -> center -> Day d -> LongAscNode body center inclinationToEcliptic :: Orbit body center => body -> center -> Day d -> InclToEcl body center argumentOfPeriapsis :: Orbit body center => body -> center -> Day d -> ArgPeri body center semiMajorAxis :: Orbit body center => body -> center -> Day d -> SemiMajor body center eccentricity :: Orbit body center => body -> center -> Day d -> Ecc body center meanAnomaly :: Orbit body center => body -> center -> Day d -> MeanAno body center
- Calculating location on orbital plane:
eccAnomaly :: MeanAno a b -> Ecc a b -> EccAnomaly a b trueAnomaly :: EccAnomaly a b -> Ecc a b -> TrueAnomaly a b dist :: EccAnomaly a b -> Ecc a b -> SemiMajor a b -> Distance a b
- Translating between coordinate systems:
toEclCoord :: TrueAnomaly a b -> Distance a b -> LongAscNode a b -> ArgPeri a b -> InclToEcl a b -> EclCoord a b toEqCoordinates :: EclCoord body Earth -> Day Float -> EqCoord body
Some helpful links:
- Guide by Paul Schlyter - https://www.stjarnhimlen.se/comp/ppcomp.html
- Sample calculations by Paul Schlyter - https://www.stjarnhimlen.se/comp/tutorial.html
- Tuula's blog post - https://engineersjourney.wordpress.com/2018/06/29/planetary-orbits-and-haskell/
- Definition of orbital elements in Wikipedia - https://en.wikipedia.org/wiki/Orbital_elements
- Units of angle in Wikipedia - https://en.wikipedia.org/wiki/Degree_(angle) and https://en.wikipedia.org/wiki/Radian
4103 episodes
MP3•Episode home
Manage episode 212918937 series 108988
Content provided by HPR Volunteer and Hacker Public Radio. All podcast content including episodes, graphics, and podcast descriptions are uploaded and provided directly by HPR Volunteer and Hacker Public Radio or their podcast platform partner. If you believe someone is using your copyrighted work without your permission, you can follow the process outlined here https://player.fm/legal.
Function signatures (it might or might not be helpful to have these at hand while listening):
- Helpers:
radToDeg :: Floating a => a -> a degToRad :: Floating a => a -> a clamp :: Float -> Float
Time:
day :: Int -> Int -> Int -> Float -> Day Float
- Orbital parameters:
longitudeOfAscendingNode :: Orbit body center => body -> center -> Day d -> LongAscNode body center inclinationToEcliptic :: Orbit body center => body -> center -> Day d -> InclToEcl body center argumentOfPeriapsis :: Orbit body center => body -> center -> Day d -> ArgPeri body center semiMajorAxis :: Orbit body center => body -> center -> Day d -> SemiMajor body center eccentricity :: Orbit body center => body -> center -> Day d -> Ecc body center meanAnomaly :: Orbit body center => body -> center -> Day d -> MeanAno body center
- Calculating location on orbital plane:
eccAnomaly :: MeanAno a b -> Ecc a b -> EccAnomaly a b trueAnomaly :: EccAnomaly a b -> Ecc a b -> TrueAnomaly a b dist :: EccAnomaly a b -> Ecc a b -> SemiMajor a b -> Distance a b
- Translating between coordinate systems:
toEclCoord :: TrueAnomaly a b -> Distance a b -> LongAscNode a b -> ArgPeri a b -> InclToEcl a b -> EclCoord a b toEqCoordinates :: EclCoord body Earth -> Day Float -> EqCoord body
Some helpful links:
- Guide by Paul Schlyter - https://www.stjarnhimlen.se/comp/ppcomp.html
- Sample calculations by Paul Schlyter - https://www.stjarnhimlen.se/comp/tutorial.html
- Tuula's blog post - https://engineersjourney.wordpress.com/2018/06/29/planetary-orbits-and-haskell/
- Definition of orbital elements in Wikipedia - https://en.wikipedia.org/wiki/Orbital_elements
- Units of angle in Wikipedia - https://en.wikipedia.org/wiki/Degree_(angle) and https://en.wikipedia.org/wiki/Radian
4103 episodes
All episodes
×Welcome to Player FM!
Player FM is scanning the web for high-quality podcasts for you to enjoy right now. It's the best podcast app and works on Android, iPhone, and the web. Signup to sync subscriptions across devices.