Go offline with the Player FM app!
HPR2598: Calculating planetary orbits in Haskell
Archived series ("Inactive feed" status)
When? This feed was archived on February 10, 2021 18:12 (). Last successful fetch was on February 26, 2021 20:39 ()
Why? Inactive feed status. Our servers were unable to retrieve a valid podcast feed for a sustained period.
What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.
Manage episode 212919713 series 49648
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 - http://www.stjarnhimlen.se/comp/ppcomp.html
- Sample calculations by Paul Schlyter - http://www.stjarnhimlen.se/comp/tutorial.html
- tuturto'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
3280 episodes
Archived series ("Inactive feed" status)
When? This feed was archived on February 10, 2021 18:12 (). Last successful fetch was on February 26, 2021 20:39 ()
Why? Inactive feed status. Our servers were unable to retrieve a valid podcast feed for a sustained period.
What now? You might be able to find a more up-to-date version using the search function. This series will no longer be checked for updates. If you believe this to be in error, please check if the publisher's feed link below is valid and contact support to request the feed be restored or if you have any other concerns about this.
Manage episode 212919713 series 49648
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 - http://www.stjarnhimlen.se/comp/ppcomp.html
- Sample calculations by Paul Schlyter - http://www.stjarnhimlen.se/comp/tutorial.html
- tuturto'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
3280 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.