[ANN] SatelliteAnalysis.jl v0.3.0


After a massive rewrite of the SatelliteToolbox.jl package, I finally managed to finish the first version of SatelliteAnalysis.jl after the revamp!

The idea was to split the original huge SatelliteToolbox.jl package into smaller ones, each solving a part required for satellite-related analysis. However, some functions did not fit anywhere because they required multiple parts to solve the problem. Hence, I created a package for those cases. In SatelliteAnalysis.jl, many algorithms use the entire SatelliteToolbox.jl ecosystem to perform analysis for space missions.

In the current version, we can:

  • Compute the mission beta angle (used in thermal analysis).
  • Compute the mission eclipse summary.
  • Compute ground facility accesses and gaps to a satellite.
  • Compute the ground facility visibility circle.
  • Compute the ground trace of a satellite.
  • Design orbits (Sun-synchronous, ground-repeating, frozen orbits).

I tried to add some examples in the documentation: Home ยท Satellite Analysis

For example, if someone wants to find all the possible Sun-synchronous, ground-repeating orbits between 700km and 800km that repeat their ground trace in 6 days, at most, to find the best one for their mission, all they have to do is:

julia> using SatelliteAnalysis

julia> df = design_sun_sync_ground_repeating_orbit(1, 6; minimum_altitude=700e3, maximum_altitude=800e3)
3ร—7 DataFrame
 Row โ”‚ semi_major_axis  altitude  inclination  period    rev_per_days  adjacent_gt_distance  adjacent_gt_angle
     โ”‚ Float64          Float64   Float64      Float64   String        Float64               Float64
   1 โ”‚         7098.09   719.954      98.2747   99.3103  14 + ยน/โ‚‚                  1350.87             83.4747
   2 โ”‚         7130.98   752.847      98.4106  100.0     14 + ยฒ/โ‚…                   543.811            39.4254
   3 โ”‚         7153.13   774.988      98.503   100.465   14 + ยน/โ‚ƒ                   910.164            59.7702

In the following, I added some figures with the data obtained from the package that was plotted using Makie ecosystem (CairoMakie.jl, GeoMakie.jl, GeoJSON.jl):