RFC: Should JuliaAstro and JuliaAstrodynamics join forces?

41 views
Skip to first unread message

Helge Eichhorn

unread,
Mar 22, 2017, 9:42:38 AM3/22/17
to Julia Astro
Hi everybody,

I was recently contacted by Mosè who floated the idea of JuliaAstro and JuliaAstrodynamics joining forces. Due to the considerable overlap between the astro* domains and packages (e.g. AstronomicalTime.jl, EarthOrientation.jl, JPLEphemeris.jl from my side) this makes perfect sense to me.

These are my two main concerns:

1. I want to establish an astrodynamics package ecosystem following the example of MathProgBase.jl and DifferentialEquations.jl. This means that for example JPLEphemeris.jl will depend on AstroDynBase.jl and share an abstract base type with other ephemerides implementations. This introduces a dependency that might be unwanted if AstroDynBase is too astrodynamics-focused. It would certainly be possible to reduce the scope of AstroDynBase.jl, i.e. turning it into AstroBase.jl, and sharing base types with other Astro* packages. Would you support this?

2. Since the whole thing is in the process of becoming an "official" project with potential backing by my employer and a major space agency *wink*, there will need to be some kind of permission structure in place. But since it is possible to create teams within an organization this should not be a problem (https://help.github.com/articles/about-improved-organization-permissions/).

We may also want to consider this cautionary tale: https://discourse.julialang.org/t/new-organization-for-optim-family/2037

Best,
Helge

Mosè Giordano

unread,
Mar 22, 2017, 3:57:28 PM3/22/17
to julia...@googlegroups.com
Hi Helge,

thanks for having considered my proposal.

2017-03-22 10:25 GMT+01:00 Helge Eichhorn <he...@helgeeichhorn.de>:
> Hi everybody,
>
> I was recently contacted by Mosè who floated the idea of JuliaAstro and
> JuliaAstrodynamics joining forces. Due to the considerable overlap between
> the astro* domains and packages (e.g. AstronomicalTime.jl,
> EarthOrientation.jl, JPLEphemeris.jl from my side) this makes perfect sense
> to me.
>
> These are my two main concerns:
>
> 1. I want to establish an astrodynamics package ecosystem following the
> example of MathProgBase.jl and DifferentialEquations.jl. This means that for
> example JPLEphemeris.jl will depend on AstroDynBase.jl and share an abstract
> base type with other ephemerides implementations. This introduces a
> dependency that might be unwanted if AstroDynBase is too
> astrodynamics-focused. It would certainly be possible to reduce the scope of
> AstroDynBase.jl, i.e. turning it into AstroBase.jl, and sharing base types
> with other Astro* packages. Would you support this?

I'm personally much in favor of this. Part of AstroDynBase.jl is
really not specific to orbital mechanics, but can be useful for
astronomer and astrophysicists as well.

After a very quick look, I noticed that AstroDynBase.jl has already
some overlap with AstroLib.jl: they both define some constants about
planets[1][2], but with different interface (it's interesting your
idea of exploiting multiple-dispatch). Maybe there are other
duplicates.

I see AstroLib.jl as a collection of routines, with a consistent
interface, that don't fit elsewhere, but if we want to create a
package for a specific usage, I'd be happy to move functions there
from AstroLib.jl.

> 2. Since the whole thing is in the process of becoming an "official" project
> with potential backing by my employer and a major space agency *wink*,

Wow, it'd be a really great news if you manage to get a grant to work
full time on Julia astro stuff!

Bye,
Mosè


Notes:
[1] https://juliaastro.github.io/AstroLib.jl/latest/ref.html#Planet-1
[2] https://github.com/JuliaAstrodynamics/AstroDynBase.jl/blob/21412fa0efa6d8f4d2babf4a40c70c987ab32129/src/constants/planets.jl

Kyle Barbary

unread,
Mar 23, 2017, 5:36:01 PM3/23/17
to julia...@googlegroups.com

Thanks for starting this conversation, Helge and Mosè! I think it would be great to, at the very least, coordinate overlapping efforts.

I’m not sure it is particularly necessary to entirely merge the two GitHub orgs (JuliaAstro and JuliaAstrodynamics) in order to do that though. Helge, what you’re doing with JuliaAstrodynamics sounds like it makes sense - looks like a nice mini-ecosystem of astrodynamics packages. More broadly speaking, there are so many sub-fields of astronomy that it doesn’t make sense to try to host every astro-related package under the same org. In the Python ecosystem, for example, there are over 300 indexed packages tagged with “astronomy”.

How about moving the more general purpose packages to JuliaAstro (and make Helge an admin there)? Alternatively, we could simply list them on the JuliaAstro website, as an effort to make clear that these packages are the “community” effort to do X and encourage users to use and contribute back to them. Besides the packages that Helge lists, there’s probably also overlap with SkyCoords.jl — I’m not a coordinate systems expert so I’d be happy to merge that package with one run by someone who is! There’s also likely overlap with ERFA.jl (though that’s lower level) — for example astropy.time is a wrapper for liberfa.

Regarding a common base package, there are so many topics in astronomy that a single “AstroBase” package probably won’t end up making sense. I can see having more specific base packages though, along the lines of AstroDynBase.jl but more general — perhaps one for coordinate or frame types?

Anyway, great to see this, and let’s keep the conversation going. Perhaps a google hangout is warranted?
— Kyle


--
You received this message because you are subscribed to the Google Groups "Julia Astro" group.
To unsubscribe from this group and stop receiving emails from it, send an email to julia-astro+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mosè Giordano

unread,
Mar 23, 2017, 6:15:47 PM3/23/17
to julia...@googlegroups.com
Hi Kyle,

2017-03-23 22:35 GMT+01:00 Kyle Barbary <kyleb...@gmail.com>:
> Thanks for starting this conversation, Helge and Mosè! I think it would be
> great to, at the very least, coordinate overlapping efforts.
>
> I’m not sure it is particularly necessary to entirely merge the two GitHub
> orgs (JuliaAstro and JuliaAstrodynamics) in order to do that though. Helge,
> what you’re doing with JuliaAstrodynamics sounds like it makes sense - looks
> like a nice mini-ecosystem of astrodynamics packages. More broadly speaking,
> there are so many sub-fields of astronomy that it doesn’t make sense to try
> to host every astro-related package under the same org. In the Python
> ecosystem, for example, there are over 300 indexed packages tagged with
> “astronomy”.
>
> How about moving the more general purpose packages to JuliaAstro (and make
> Helge an admin there)? Alternatively, we could simply list them on the
> JuliaAstro website, as an effort to make clear that these packages are the
> “community” effort to do X and encourage users to use and contribute back to
> them. Besides the packages that Helge lists, there’s probably also overlap
> with SkyCoords.jl — I’m not a coordinate systems expert so I’d be happy to
> merge that package with one run by someone who is! There’s also likely
> overlap with ERFA.jl (though that’s lower level) — for example astropy.time
> is a wrapper for liberfa.

Currently, Helge's AstronomicalTime.jl is based on ERFA.jl, which is
simply a wrapper of liberfa, but doesn't have a user-friendly
interface. Instead, the new package can be the Julian way to work
with astronomical times. This work looks very promising! And there
is also the possibility, in the future, to implement the
time-conversion functions purely in Julia, in order to enable the use
of custom Julia types (but ERFA.jl will be fundamental for testing
purposes).

> Regarding a common base package, there are so many topics in astronomy that
> a single “AstroBase” package probably won’t end up making sense. I can see
> having more specific base packages though, along the lines of
> AstroDynBase.jl but more general — perhaps one for coordinate or frame
> types?

Yep, I agree that there is no need to move everything into a single
huge package, but we can have one (or, better, more) "core" library
(-ies) on which the different applications can be built. I think that
having a common base will be beneficial for everyone.

> Anyway, great to see this, and let’s keep the conversation going. Perhaps a
> google hangout is warranted?

That's fine with me!

Cheers,
Mosè

Kyle Barbary

unread,
Mar 24, 2017, 9:11:25 PM3/24/17
to julia...@googlegroups.com
Hi all,

We have a hangout scheduled to discuss coordinating development between JuliaAstro and JuliaAstrodynamics packages.

Wednesday March 29, 9AM PDT / 18:00 CEST.

Anyone interested is welcome to join. If you have problems joining on Wednesday, let me know via email (off list).
-- Kyle

Reply all
Reply to author
Forward
0 new messages