using Thesis using SPICE using LinearAlgebra using Dates try furnsh("../../spice_files/naif0012.tls") furnsh("../../spice_files/de430.bsp") catch furnsh("spice_files/naif0012.tls") furnsh("spice_files/de430.bsp") end function cost_1(m::Union{Mission, Mission_Guess}) norm_mass = (m.start_mass - prop(m)[7]) / m.start_mass norm_C3 = ( m.launch_v∞ ⋅ m.launch_v∞ ) / 200. tof = sum([p.tof for p in m.phases])/(20Thesis.year) return 2norm_mass + norm_C3 + tof end function cost_2(m::Union{Mission, Mission_Guess}) norm_mass = (m.start_mass - prop(m)[7]) / m.start_mass norm_C3 = ( m.launch_v∞ ⋅ m.launch_v∞ ) / 200. tof = sum([p.tof for p in m.phases])/(20Thesis.year) return 2norm_mass + norm_C3# + tof end function get_id(m::Mission) letters = "E" for phase in m.phases letters *= phase.planet.name[1] end letters *= " " letters *= Dates.format(m.launch_date, "yyyy-mm-dd HH:MM:SS") return letters end missions = Vector{Mission}() folders = readdir("/home/connor/projects/thesis/archive/saturn", join=true) for folder in folders try push!(missions, ingest(folder * "/mission")) catch e println("Ingestion failure") end end sorted_missions1 = sort(missions, by=cost_1) sorted_missions2 = sort(missions, by=cost_2) println(get_id.(sorted_missions1[1:10])) println(get_id.(sorted_missions2[1:10])) display_mission = improve(sorted_missions2[1], n=7) # display(plot(display_mission, # title="Sample Algorithm Result Mission", # mode="light", # planet_colors=false, # phase_colors=["#F00","#F0F","#6AF"], # markers=false)); display(plot_thrust(display_mission, title="Thrust Magnitude vs Time", mode="light")) display(plot_thrust_components(display_mission, title="Thrust Components vs Time", mode="light")) # store(display_mission, "/home/connor/projects/thesis/archive/best/long_mission")