Hi!
I have just tagged the v0.6.3 of SatelliteToolbox.jl (it should be accepted soon, the PR can be seen here). This is a very interesting release. The modifications were:
- A bug in eclipse time computation was fixed.
- The function
ground_station_visible
now acceptsSVector
. - The eccentricity was not being printed in TLEs.
- The function that checks if a satellite is inside the visibility circle of a ground station has been renamed to
ground_station_visible
. The old one is now marked as deprecated. - The function that computes the beta angle has been renamed to
beta_angle
. The old one is now marked as deprecated. - The function that computes the eclipse times has been renamed to
eclipse_time_summary
. The old one is now marked as deprecated. - The orbit propagator API now has the function
epoch
that returns the current epoch of a propagator. - The accesses to ground stations can now be computed using the function
ground_station_accesses
. - It is now possible to select what kind of perturbations are desired when computing the beta angle in function
beta_angle
. - Add the simplified dipole model to compute the geomagnetic field.
- The function
propagate_to_epoch!
can now be used withOrbitPropagatorJ4
. - The function
JDtoDate
now uses the native functionjulian2datetime
to convert between Date to Julian date represented
inDateTime
format. - The eclipse time computation algorithm was drastically improved by adding an edge find mechanism, leading to an algorithm 3x faster.
- This version support Julia 1.0 and 1.2. The support for
Julia 1.1 has been dropped.
The most interesting part was, for sure, the algorithm to compute the ground station access. For example, if you want to know when the Brazilian satellite SCD-1 will have access to the Brazilian ground station at CuiabΓ‘, you just need to:
# Define the ground station.
cuiaba = (deg2rad(-15.55500), deg2rad(-56.0696), 273.03)
# Define the propagator.
tle = tle"""
SCD 1
1 22490U 93009B 19283.72957809 .00000231 00000-0 13179-4 0 9999
2 22490 24.9691 136.4834 0042805 261.1830 162.1761 14.44560213407992
"""
orbp = init_orbit_propagator(Val{:sgp4}, tle[1])
# List the accesses during 2 days.
list_ground_station_accesses(orbp, cuiaba, 2*86400, TEME(), PEF(), ΞΈ = 5*pi/180)
leading to:
ββββββββββββ¬ββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ¬βββββββββββββββββ
β Access # β Beginning (UTC) β End (UTC) β Duration [min] β
ββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββ€
β 1 β 2019-10-10T22:57:32.66 β 2019-10-10T23:05:54.075 β 8.357 β
β 2 β 2019-10-11T00:41:36.595 β 2019-10-11T00:53:52.822 β 12.270 β
β 3 β 2019-10-11T02:27:40.489 β 2019-10-11T02:40:09.275 β 12.480 β
β 4 β 2019-10-11T04:14:42.492 β 2019-10-11T04:26:17.149 β 11.578 β
β 5 β 2019-10-11T06:01:34.032 β 2019-10-11T06:13:04.633 β 11.510 β
β 6 β 2019-10-11T07:47:44.417 β 2019-10-11T08:00:09.721 β 12.422 β
β 7 β 2019-10-11T09:33:56.086 β 2019-10-11T09:46:23.688 β 12.460 β
β 8 β 2019-10-11T11:21:34.239 β 2019-10-11T11:30:47.698 β 9.224 β
β MIN 9 β 2019-10-11T22:09:51.491 β 2019-10-11T22:16:30.49 β 6.650 β
β 10 β 2019-10-11T23:53:14.971 β 2019-10-12T00:05:14.082 β 11.985 β
β MAX 11 β 2019-10-12T01:39:02.105 β 2019-10-12T01:51:40.532 β 12.640 β
β 12 β 2019-10-12T03:25:58.731 β 2019-10-12T03:37:44.508 β 11.763 β
β 13 β 2019-10-12T05:12:58.174 β 2019-10-12T05:24:22.434 β 11.404 β
β 14 β 2019-10-12T06:59:15.646 β 2019-10-12T07:11:28.356 β 12.212 β
β 15 β 2019-10-12T08:45:22.226 β 2019-10-12T08:57:56.066 β 12.564 β
β 16 β 2019-10-12T10:32:33.561 β 2019-10-12T10:42:46.681 β 10.219 β
ββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββ€
β β β Minimum access β 6.650 β
β β β Mean access β 11.234 β
β β β Maximum access β 12.640 β
ββββββββββββΌββββββββββββββββββββββββββΌββββββββββββββββββββββββββΌβββββββββββββββββ€
β β β Total access β 179.738 β
ββββββββββββ΄ββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ΄βββββββββββββββββ
It is also possible to compute the accesses to multiple stations and to obtain merged accesses times, i.e. like they are one (see the keyword reduction
of the function ground_station_accesses
).
There are also another new feature: a way to compute the geomagnetic field using a simplified dipole model geomag_dipole
. This is useful for computations that does not require high accuracy, because the model is blazing fast.