---
title: "Moon Cannon: dos"
description: |
  Can you shoot Earth from the Moon? Simulate lunar ballistic launches with Julia. Explore orbital mechanics, gravity, and drag in a simplified Moon-to-Earth cannon model.
date: 2024-09-25
categories:
  - Julia
  - Astrodynamics
  - Code
  - Aerospace
  - Space
  - Math
draft: false
freeze: false
image: moon_spirograph.png
---

```{julia}
using SPICE

const LSK = "https://naif.jpl.nasa.gov/pub/naif/generic_kernels/lsk/naif0012.tls"
const SPK = "https://naif.jpl.nasa.gov/pub/naif/generic_kernels/spk/planets/de440.bsp"

# Download kernels
download(LSK, "naif0012.tls")
download(SPK, "de440.bsp")

# Load leap seconds kernel
furnsh("naif0012.tls")

# Load a planetary ephemeris kernel
furnsh("de440.bsp")

function get_planet_positions(epoch)
    planets = ["MERCURY", "VENUS", "EARTH", "MARS", 
               "JUPITER", "SATURN", "URANUS", "NEPTUNE"]
    positions = Dict()

    for planet in planets
        # Get position vector in km relative to Sun
        pos, _ = spkpos(planet, epoch, "J2000", "NONE", "earth")
        positions[planet] = pos
    end

    return positions
end

# Example usage (epoch in UTC)
epoch = "1995-12-17T12:00:00" |> utc2et
positions = get_planet_positions(epoch)

```