JuliaSpace / SatelliteToolbox.jl

A toolbox for satellite analysis written in julia language.
MIT License
249 stars 33 forks source link

Is it possible to divide the package into different packages? #40

Closed htyeim closed 3 years ago

htyeim commented 4 years ago

It is a nice package! I have learned both Julia and simulation by reading the code. I wonder if it is possible to divide the whole package into different packages. Because I think some parts of the code are also useful in other fields (e.g., GNSS navigation, ionosphere). I think each model (IGRF, MSISE00, etc) can be divided into an individual package. I read some parts of the code and found that these models are almost independent. if this huge package consists of many smaller packages which are separated from the package by using, it would be easier to read, maintain, and use.

ronisbr commented 4 years ago

Hi @htyeim !

It is a nice package! I have learned both Julia and simulation by reading the code.

I am glad this package is being useful!

I wonder if it is possible to divide the whole package into different packages. Because I think some parts of the code are also useful in other fields (e.g., GNSS navigation, ionosphere). I think each model (IGRF, MSISE00, etc) can be divided into an individual package. I read some parts of the code and found that these models are almost independent.

Yes, this is the goal. We already have an opened issue #1 about this. The proposal is start spliting the packages internally. Right now, we have two submodules: SPG4 and TLE. When all the submodules are created, then we can start to register new packages.

if this huge package consists of many smaller packages which are separated from the package by using , it would be easier to read, maintain, and use.

Actually, it is quite the opposite. I had this discussion with Julia devs when this package was created. It is way much harder to maintain a lot of small packages than it is to maintain a single big one. The updates take time, the registration process takes time, we always have to be sure that the required versions match (e.g., you modify a package with a breaking changing for another one), etc.

Hence, I decided that I will focus on adding the many missing features here. When it makes sense, I will split into submodules. However, I think the right move is to split the packages only (and if) we have enough maintainers to help me.

helgee commented 4 years ago

I agree. I split my Astrodynamics.jl way too early and have been dealing with the repercussions for years.

Nevertheless, it should happen at some point when everything is nicely sorted into submodules and there is actual demand from other fields who want nothing to do with satellites 😄

ronisbr commented 4 years ago

Nevertheless, it should happen at some point when everything is nicely sorted into submodules and there is actual demand from other fields who want nothing to do with satellites 😄

I totally agree! For example, I had some demands related to the atmospheric models (which are used in ionosphere research). Hence, we can start with it. But, I think it is better to focus our very small workforce in implementing new features at this moment.

htyeim commented 4 years ago

Thank you for your reply! I completely understand your priority at the moment.

I mostly use C++ and Python before, but after some comparing, I have rewritten some of my code in Julia. But, so far, I am not very familiar with Julia, so I only start to rewrite my code when necessary. For example, only when Cxx.jl package broken in v1.4, I started rewriting the part of GPSTk C++ code I used before in Julia. My research now is related to ionospheric disturbances using GNSS-TEC data. I think space_indices, atmospheric models, and IGRF model are very useful for me. I will try to organize some of these code for my own use and make the repositories public later. But as I said before I am not very familiar with Julia, so these might only be considered some tests.

I have heard that NRLMSISE model may be updated this year (after 20 years...), so maybe this can be one of the new features of this great package later :)

ronisbr commented 3 years ago

I will close this as dup of #1.