Ways to plot LEO orbit

What would be a good way to start ploting an LEO orbit using Plots, or in Pluto.jl? I’d like to make sliders for 6 Keplerian elements to visualize how each parameter interact with the orbit. One is something like Wolfram has. But it doesn’t show the Earth. An orbit of 500 Km altitude with an Earth in center would be nice.

Your main options are:

  1. Plots.jl + Interact.jl
  2. Makie.jl
  3. Pluto.jl

All three are pretty easy to use for something simple like this. Pluto will be the simplest to get up and running and Makie will be the fastest probably (not sure how important that is in this case, though)

Makie also has this example, which gives you the earth.

The URL has changed to https://lazarusa.github.io/BeautifulMakie/GeoPlots/blueMarble/

Just in case anyone is interested in, the following is a version with SatelliteToolbox.jl and GeometryBasics.jl

  • GLMakie v0.5.5
  • SatelliteToolbox v0.9.4
  • GeometryBasics v0.4.2
using SatelliteToolbox
using GeometryBasics
using GLMakie
using FileIO

img = load(download("https://svs.gsfc.nasa.gov/vis/a000000/a002900/a002915/bluemarble-2048.png"));
limit = 2.5R0
altitude = 500_000

f = Figure()
a = Axis3(f[1,1], aspect = (1,1,1), viewmode = :fit,
          limits = (-limit/2, limit/2, -limit/2, limit/2, -limit/2, limit/2))

earth = GeometryBasics.Sphere(Point3f(0), R0)
mesh!(a, earth, color=img)

r = R0 + altitude
t = LinRange(0, 2π, 100)
x = r * cos.(t)
y = r * sin.(t)
lines!(a, x, y)

2 Likes

Or this example from the awesome new RPR backend: https://makie.juliaplots.org/stable/documentation/backends/rprmakie/#earth_example

3 Likes