Code Monkey home page Code Monkey logo

orbital's Introduction

Orbital

Build Status PyPI Version Python Version MIT License

Orbital is a high level orbital mechanics package for Python.

Installation

$ pip install orbitalpy

Example

from orbital import earth, KeplerianElements, Maneuver, plot

from scipy.constants import kilo
import matplotlib.pyplot as plt

orbit = KeplerianElements.with_altitude(1000 * kilo, body=earth)
man = Maneuver.hohmann_transfer_to_altitude(10000 * kilo)
plot(orbit, title='Maneuver 1', maneuver=man)
plt.show()

Example plot

Documentation

For more information, view the documentation online.

orbital's People

Contributors

garbagetrash avatar jiversen avatar razerm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

orbital's Issues

Getting Cartesian position and velocity vectors for propagated orbit

I am trying to get the cartesian position and velocity vectors for each propagation step in my orbit. I generated the orbit with Keplerian elements.

According to the documentation I should be able to get the state vectors (both position and velocity) from class orbital.utilities.StateVector , but I get a Type Error: new() takes exactly 3 arguments (2 given)

Here is the code:

from scipy.constants import kilo
import orbital
from orbital import earth, KeplerianElements, Maneuver, plot, utilities
from orbital.utilities import Position, Velocity
import matplotlib.pyplot as plt
import numpy as np

#Orbit Setup
orbitPineapple = KeplerianElements.with_period(96 * 60, body=earth, i=(np.deg2rad(51.6)))
plot(orbitPineapple)
plt.show()
orbitPineapple

Out[23]: KeplerianElements(a=6945033.343911132,
e=0,
i=0.90058989402907408,
raan=0,
arg_pe=0,
M0=0.0,
body=orbital.bodies.earth,
ref_epoch=)

prop1 = orbital.maneuver.PropagateAnomalyTo(M=1.00)
orbitX = orbitPineapple.apply_maneuver(prop1)
plot(orbitPineapple, title='Go Pineapple!')
plt.show()

orbital.utilities.StateVector(orbitPineapple)

TypeError Traceback (most recent call last)
in ()
4 #print(orbital.utilities.StateVector.velocity(orbitPineapple))
5
----> 6 orbital.utilities.StateVector(orbitPineapple)
7 #orbital.utilities.StateVector.position(orbitPineapple())
8
TypeError: new() takes exactly 3 arguments (2 given)

KeplerianElements.from_state_vector() RuntimeError

Initializing Eutelsat 117 West B from TLE provided in Celestrak for 7/11/2021 I get the error output shown below. I print out the r and v used in elements.py for the RuntimeError check just above the check (around line 149.) You can see that everything is passing except for the r.z value, which is off by just a bit more than 0.1 mm. I'm increasing the error limit to 1e-3 (1 mm) for my use as that level of error is acceptable for my application.

$ python bug_report.py 
Velocity(x=2543.4512779206098, y=1727.4460679597057, z=-0.002894147431130707) [ 2.54345128e+03  1.72744607e+03 -2.89414719e-03]
Position(x=23690484.727244586, y=-34881289.01751084, z=1241.3622029999844) [ 2.36904847e+07 -3.48812890e+07  1.24136210e+03]
Traceback (most recent call last):
  File "bug_report.py", line 8, in <module>
    elements = KeplerianElements.from_tle(tle1, tle2, earth)
  File "/home/<user>/.local/lib/python3.8/site-packages/orbital/elements.py", line 168, in from_tle
    return cls.from_state_vector(r, v, body=body, ref_epoch=ref_epoch)
  File "/home/<user>/.local/lib/python3.8/site-packages/orbital/elements.py", line 150, in from_state_vector
    raise RuntimeError(
RuntimeError: Failed to set orbital elements for velocity. Please file a bug report at https://github.com/RazerM/orbital/issues
$
$
$ cat bug_report.py 
from orbital.elements import KeplerianElements
from orbital.bodies import earth

tle = "EUTELSAT 117 WEST B"
tle1 = "1 41589U 16038B   21192.36582182 -.00000005  00000-0  00000-0 0  9991"
tle2 = "2 41589   0.0115 155.4241 0000363 329.5012 179.2540  1.00272119 18608"

elements = KeplerianElements.from_tle(tle1, tle2, earth)

print(elements)
# elements.py, around line 149
        # Now check that the computed properties for position and velocity are
        # reasonably close to the inputs.
        # 1e-4 is a large uncertainty, but we don't want to throw an error
        # within small differences (e.g. 1e-4 m is 0.1 mm)
        print(self.v, v)
        print(self.r, r)
        if (abs(self.v - v) > 1e-4).any() or (abs(self.r - r) > 1e-4).any():
            raise RuntimeError(
                'Failed to set orbital elements for velocity. Please file a bug'
                ' report at https://github.com/RazerM/orbital/issues')

        return self

"Failed to set orbital elements for velocity"

Hello,

I've been using your very nice code and have learned a lot from it. Thank you very much.

Creating orbits from state vectors and ran into this problem, which it asked to submit...

(In general, I've been successfully creating orbits from other state vectors without any problem (example at end of post), and all the demo examples have worked fine.)

Best,

John

RuntimeError                              Traceback (most recent call last)
<ipython-input-66-488aa03a69d9> in <module>()
----> 1 o_t = KeplerianElements.from_state_vector(pos_t,vel_t,kerbin,epoch_now)

/Users/Shared/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/OrbitalPy-0.7.0-py2.7.egg/orbital/elements.pyc in from_state_vector(cls, r, v, body, ref_epoch)
    147         if (abs(self.v - v) > 1e-4).any() or (abs(self.r - r) > 1e-4).any():
    148             raise RuntimeError(
--> 149                 'Failed to set orbital elements for velocity. Please file a bug'
    150                 ' report at https://github.com/RazerM/orbital/issues')
    151 

RuntimeError: Failed to set orbital elements for velocity. Please file a bug report at https://github.com/RazerM/orbital/issues 

Here are the values of the parameters:

pos_t
Out[71]: array([  204743.06114967,  1428132.8598776 ,   251818.17000336])

vel_t
Out[72]: array([-1526.97583962,   364.18231985,    64.21519853])

kerbin
Out[73]: 
Body(mass=5.2915158e+22,
     mu=3531599977046.4004,
     mean_radius=600000,
     equatorial_radius=600000,
     polar_radius=600000,
     apoapsis_names=['apoapsis'],
     periapsis_names=['periapsis'],
     plot_color='#4e82ff')

epoch_now
Out[74]: <Time object: scale='utc' format='unix' value=7556.12317328>

Example of successful call

pos
Out[75]: array([ 247268.07000127,  693357.70149011,  131046.51960241])

vel
Out[76]: array([-2132.80777345,   917.83812274,   152.35050925])

o = KeplerianElements.from_state_vector(pos,vel,kerbin,epoch_now)

o
Out[78]: 
KeplerianElements(a=875887.0762039395,
                  e=0.16369404202869495,
                  i=0.18403267520899097,
                  raan=6.2370404415406639,
                  arg_pe=0.734910141888515,
                  M0=0.39119332728994977,
                  body=Body(mass=5.2915158e+22,
                            mu=3531599977046.4004,
                            mean_radius=600000,
                            equatorial_radius=600000,
                            polar_radius=600000,
                            apoapsis_names=['apoapsis'],
                            periapsis_names=['periapsis'],
                            plot_color='#4e82ff'),
                  ref_epoch=<Time object: scale='utc' format='unix' value=7556.12317328>)

Cannot import name 'RepresentationMixin' from 'represent'

Attempting to run the following example of plot3d in OrbitalPy.

#!/Users/user/opt/anaconda3/envs/my_conda/bin/python3

from numpy import radians
from scipy.constants import kilo

from orbital import earth, KeplerianElements, Maneuver, plot, plot3d

from orbital import earth_sidereal_day
import matplotlib.pyplot as plt

molniya = KeplerianElements.with_period(
    earth_sidereal_day / 2, e=0.741, i=radians(63.4), arg_pe=radians(270),
    body=earth)

orbit = KeplerianElements.with_altitude( 1000 * kilo, body=earth )

plot3d( molniya, title="Molniya 1", animate=True )
plt.show()

plt.savefig( "Molniya 1.png" )

The messages I get are:

Traceback (most recent call last):
  File "/Users/user/DIVA_EphGen/2nd_ODE_auto_deriv_ggplot_Rev-06/molniya_ex.py", line 14, in <module>
    from orbital import earth, KeplerianElements, Maneuver, plot, plot3d
  File "/Users/user/opt/anaconda3/envs/my_conda/lib/python3.11/site-packages/orbital/__init__.py", line 4, in <module>
    from .bodies import *
  File "/Users/user/opt/anaconda3/envs/my_conda/lib/python3.11/site-packages/orbital/bodies.py", line 4, in <module>
    from represent import RepresentationMixin
ImportError: cannot import name 'RepresentationMixin' from 'represent' (/Users/user/opt/anaconda3/envs/my_conda/lib/python3.11/site-packages/represent/__init__.py)

I'm running OrbitalPy on a Mac Pro (2020) desktop under Mac OS X Sonoma, ver. 14.5 using Python 3.11.5.

Please advise.

Sam Dupree.

Issues with plotting - doesn't show anything unless plt.show() is called, and orbit rendering issues

It seems that plot/plot2d and plot3d do not display anything, i've tried the following :

from numpy import radians
from scipy.constants import kilo
from orbital import earth, KeplerianElements, Maneuver, plot, plot3d
from orbital import earth_sidereal_day
molniya = KeplerianElements.with_period(
    earth_sidereal_day / 2, e=0.741, i=radians(63.4), arg_pe=radians(270),
    body=earth)

orbit = KeplerianElements.with_altitude(1000 * kilo, body=earth)
plot3d(molniya, title='Molniya 1', animate=True)

and got this :

C:\Users\Lucaspec72\AppData\Local\Programs\Python\Python310\lib\site-packages\matplotlib\animation.py:884: UserWarning: Animation was deleted without rendering anything. This is most likely not intended. To prevent deletion, assign the Animation to a variable, e.g. `anim`, that exists until you output the Animation using `plt.show()` or `anim.save()`.
  warnings.warn(

i've managed to make it display by loading in matplotlib.pyplot and adding a plt.show(), but animations don't work (makes sense, since it seems like they're handled by Plotter2D and Plotter3D)

from numpy import radians
from scipy.constants import kilo
from orbital import earth, KeplerianElements, Maneuver, plot, plot3d
from orbital import earth_sidereal_day
import matplotlib.pyplot as plt #added
molniya = KeplerianElements.with_period(
    earth_sidereal_day / 2, e=0.741, i=radians(63.4), arg_pe=radians(270),
    body=earth)

orbit = KeplerianElements.with_altitude(1000 * kilo, body=earth)
plot3d(molniya, title='Molniya 1', animate=True)
plt.show() #added

(pointer doesn't move)
image
additionally, the orbit isn't properly rendered, and is hidden whenever overlapping with a planet, regardless of whether or not it's in front or behind it. That being said, this doesn't seem to happen on the screenshots in the documentation (https://pythonhosted.org/OrbitalPy/examples/plotting/plotting/#maneuvers) so it might be a side effect of displaying using plt.show.

Driving the animated plot feauure in orbitalpy to use a user supplied ephemeris

I'm running OrbitalPy ver. 0.7.0 on a Mac Pro (desktop) running mac OS X ver. 10.12.54 (Sierra) under Python 2.7.x using the Anaconda Distribution. I've generated an ephemeris file that I would like to input into OrbitalPy and to animate the orbit using OrbitalPy's animate feature in its plot function. Can this be done? If so, what is the procedure and does anyone have an example that illustrates the procedure?

Encountering TypeError: object of type <class 'float'> cannot be safely interpreted as an integer

I attempted to run the example on the GitHub page. See the attached file.

The results I get are

Last login: Fri Jan 10 23:56:44 on ttys001
users-MacBook-Pro:~ user$ python untitled-text-2.py
Traceback (most recent call last):
File "/Users/user/anaconda3/lib/python3.7/site-packages/numpy/core/function_base.py", line 117, in linspace
num = operator.index(num)
TypeError: 'float' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "untitled-text-2.py", line 11, in
plot(orbit, title='Maneuver 1', maneuver=man)
File "/Users/user/anaconda3/lib/python3.7/site-packages/orbital/plotting.py", line 37, in plot2d
plotter.plot(orbit, title=title, maneuver=maneuver)
File "/Users/user/anaconda3/lib/python3.7/site-packages/orbital/plotting.py", line 78, in plot
self._plot_orbit(orbit, label='Initial orbit')
File "/Users/user/anaconda3/lib/python3.7/site-packages/orbital/plotting.py", line 136, in _plot_orbit
f = np.linspace(f1, f2, num_points)
File "<array_function internals>", line 6, in linspace
File "/Users/user/anaconda3/lib/python3.7/site-packages/numpy/core/function_base.py", line 121, in linspace
.format(type(num)))
TypeError: object of type <class 'float'> cannot be safely interpreted as an integer.
users-MacBook-Pro:~ user$

Please advise.

Sam Dupree.
untitled-text-2.py.txt

Function like state_vector_from_keplerian_elements

Hello,

I want to transform keplerian elements to cartesian elements, like into position vector and velocity vector. Sorry If I am being ignorant but I can't find something like that in the repository, am I wrong?
If so, then I think it would be a necessary addition to the package.

thanks,
Cheers

Elements from statevector returns "Failed to set orbital elements for velocity."

I am running the follow simple code:

import numpy as np
import orbital
r2 = np.array([-1365.50, 3637.60, 6346.80]) # km
v2 = np.array([-6.21740189, -4.01216524, 1.59898473]) # km/s
orbit = orbital.elements.KeplerianElements.from_state_vector(r2, v2, orbital.bodies.earth)

where r and v are values taken from Curtis (2014), pp. 244-246.

I receive the following error:

RuntimeError                              Traceback (most recent call last)
<ipython-input-76-d6d16bb4db48> in <module>
----> 1 orbit_1 = orbital.elements.KeplerianElements.from_state_vector(r2, v2, orbital.bodies.earth)

c:\python37\lib\site-packages\orbital\elements.py in from_state_vector(cls, r, v, body, ref_epoch)
    147         if (abs(self.v - v) > 1e-4).any() or (abs(self.r - r) > 1e-4).any():
    148             raise RuntimeError(
--> 149                 'Failed to set orbital elements for velocity. Please file a bug'
    150                 ' report at https://github.com/RazerM/orbital/issues')
    151 

RuntimeError: Failed to set orbital elements for velocity.

I checked issue #4 , but even if I set the tolerance to 1e+3 instead of 1e-4, I receive the same error.

Is there something I am missing?

Coordinate System for State Vectors? ECI?

The position and velocity state vectors seem to be in some Earth/body centric inertial coordinate system. For Earth, would it be a Earth Centric Inertial (ECI) coordinate system or Geocentric Celestial Reference System (GCRS)? What is the x-axis point to?

How to generate an animation for a Hohmann Transfer

I'm running OrbitalPy ver. 0.7.0 on a Mac Pro (desktop, Late 2012) running Mac OS X ver. 10.12.6 (Sierra) under Python 3.6.5 using the Anaconda Distribution. I'd like to generate an animation (2D and 3D) of a Hohmann transfer.

The 2D and 3D static plots came out fine. As for the animations, the results I get are animations for the initial orbit and not the actual transfer. The questions I have are: (1) does Orbitalpy support generation of Hohmann transfer animations? (2) if Orbitalpy supports animations of Hohmann transfers, then what is the procedure to make it happen?

I've attached a text file containing a copy of the program and the output static plots below. The animations stored as *.mp4 files are not included.

OrbitalPy_Hohmann.py.txt

figure_1
figure_2
figure_3
figure_4

hohmann transfer 2d view

hohmann transfer 3d view

disregard this

minimal example

import orbital
from matplotlib import pyplot as plt
from math import pi
orbital.plot3d(orbital.elements.KeplerianElements(a=7000e3,e=0,i=pi,body=orbital.bodies.earth))
plt.show()

The orbit is inclined 90° but plotted as if it had an inclination of zero.

KeplerianElements.from_state_vector() error bounds too small and/or non-relative

For Low Earth Orbit inputs of

r = np.array([-6478150,0,1200000])
v = np.array([0.0,-7844.111438052,0.0])

The checked calculation in from_state_vector() uses these comparisons:

abs(out.v - v)
# 0.000113, 9.1e-13, 2.1e-5
abs(out.r - r)
# 1.9e-9, 0.0982, 1.164e-9

With a hardcoded tolerance of 1e-4. The position y element exceeds that here.

This could be resolved by using relative error instead of absolute.

#21, #18, and #17 seem related.

Documentation needed for which coordinate system is used

First of all, for Cartesian coordinates, which axis is "up", or perpendicular to the orbital plane? From looking at the code, I'm guessing that this is the Z axis, but this needs to be documented.

Secondly, what is the handedness of the coordinate system? Which direction is +Y relative to +X and +Z? If you look at the origin from (1, 1, 1), such that the XYZ unit vectors are all pointing towards you, in a right-handed coordinate system you see XYZ counterclockwise and ZYX clockwise, while a left-handed coordinate system has XYZ clockwise and ZYX counterclockwise. This also needs to be documented, perhaps on the same page as the above information.

Thirdly, it has been asked before if this library uses ECI or what, and it was stated that it uses J2000. This string only appears once in the documentation, so this needs to be clarified.

AttributeError encountered in generating and saving a 3D animation

I'm running OrbitalPy on a Mac Pro (2019) under Mac OS X Big Sur using the Anaconda distribution Python 3.7. Version 3.3.3 of Matplotlib is used. I get the following messages when I attempt to generate a 3D plot with animation turned on and when attempting to sate the animation to a .mp4 file:

`================================================================================
December 27, 2020 at 03:28:11
~/Keplerain Orbit Trajectory Plots - OrbitalPy-v0.7.0(python3)/OrbitalPy_Hohmann.py

Exception in Tkinter callback
Traceback (most recent call last):
File "/Users/user/opt/anaconda3/lib/python3.7/tkinter/init.py", line 1705, in call
return self.func(*args)
File "/Users/user/opt/anaconda3/lib/python3.7/tkinter/init.py", line 749, in callit
func(*args)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/backends/_backend_tk.py", line 253, in idle_draw
self.draw()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_tkagg.py", line 9, in draw
super(FigureCanvasTkAgg, self).draw()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py", line 407, in draw
self.figure.draw(self.renderer)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/artist.py", line 41, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/figure.py", line 1870, in draw
self.canvas.draw_event(renderer)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/backend_bases.py", line 1759, in draw_event
self.callbacks.process(s, event)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/cbook/init.py", line 229, in process
self.exception_handler(exc)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/cbook/init.py", line 81, in _exception_printer
raise exc
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/cbook/init.py", line 224, in process
func(*args, **kwargs)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 959, in _start
self._init_draw()
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1703, in _init_draw
self._draw_frame(next(self.new_frame_seq()))
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 1726, in _draw_frame
self._drawn_artists = self._func(framedata, *self._args)
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/orbital/plotting.py", line 238, in animate
self.pos_dot.set_3d_properties([z])
File "/Users/user/opt/anaconda3/lib/python3.7/site-packages/mpl_toolkits/mplot3d/art3d.py", line 143, in set_3d_properties
zs = np.broadcast_to(zs, xs.shape)
AttributeError: 'list' object has no attribute 'shape'
`
The Python program is attached to this note.

Any suggestions?

Sam Dupree.

OrbitalPy_Hohmann.py.txt

elements_from_state_vector returns bad result

from numpy import array
from orbital import elements_from_state_vector
r = array([-7.28535000e+07  8.92198056e-09  0.00000000e+00])
v = array([-1.84818933e+00  2.18661193e+03  0.00000000e+00])
mu = 1811405020000000.0
print(elements_from_state_vector(r, v, mu))

prints
OrbitalElements(a=40301757.83775852, e=0.8077004603395054, i=3.141592653589793, raan=nan, arg_pe=nan, f=3.1413914189703034)
raan and arg_pe are nan.

Plots don't get shown in jupyter on Python 3.6 on Mac or Fedora

Package installs ok (orbitalpy 0.7.0 installed via pip, on an anaconda main python install), can generate orbital elements ok. Plots simply don't show in jupyter. No error message. Tried the "_ = plot(orbit1)" trick referenced in another issue, but that didn't help.

Problem with 3D plots

When trying to plot a 3D graph I am getting the error message 'NameError: name 'plot3d' is not defined' when using code 'plot3d(molniya)' as it is provided in the examples. I'm using Python 2.7. Is there extra code I'm missing the plot this graph or is it a problem within Orbital?

I've also tried using 'from mpl_toolkits import mplot3d' then
ax = plt.axes(projection='3d')
ax.plot3D(molniya)'
but this returns an error 'TypeError: plot() takes at least 3 arguments (2 given)'

Any help would be appreciated.

Plot function is no longer working!!

From example a code snippet taken-
orbit1 = KeplerianElements.with_period(90 * 60, body=earth) plot(orbit1,title='orbit1') plt.show()

Showing Error
**<array_function internals> in linspace(*args, **kwargs)

/usr/local/lib/python3.7/dist-packages/numpy/core/function_base.py in linspace(start, stop, num, endpoint, retstep, dtype, axis)
118
119 """
--> 120
121
122 div =(num - 1) if endpoint else num

TypeError: 'float' object cannot be interpreted as an integer**

raise child_exception_type(errno_num, err_msg, err_filename) in Mac OS X (Catalina)

I just transitioned to a Mac Pro (2019) that runs Mac OS X 10.15.3 (Catalina) using the Anaconda distribution for Python 3.7.3. In running the Hohmann Transfer example the following results occurred.

(base) Samuels-Mac-Pro:Keplerain Orbit Trajectory Plots - OrbitalPy-v0.7.0(python3) user$ python OrbitalPy_Hohmann.py
Traceback (most recent call last):
File "OrbitalPy_Hohmann.py", line 17, in
from orbital import earth, KeplerianElements, plot, plot3d, StateVector
File "/Users/user/anaconda3/lib/python3.7/site-packages/orbital/init.py", line 8, in
from .plotting import *
File "/Users/user/anaconda3/lib/python3.7/site-packages/orbital/plotting.py", line 12, in
from matplotlib import animation
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 737, in
class ImageMagickWriter(ImageMagickBase, MovieWriter):
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 120, in wrapper
if writerClass.isAvailable():
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 730, in isAvailable
return super().isAvailable()
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 427, in isAvailable
return shutil.which(cls.bin_path()) is not None
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/animation.py", line 724, in bin_path
binpath = mpl._get_executable_info('magick').executable
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/init.py", line 385, in _get_executable_info
return impl([path, "--version"], r"^Version: ImageMagick (\S*)")
File "/Users/user/anaconda3/lib/python3.7/site-packages/matplotlib/init.py", line 325, in impl
universal_newlines=True, errors="replace")
File "/Users/user/anaconda3/lib/python3.7/subprocess.py", line 395, in check_output
**kwargs).stdout
File "/Users/user/anaconda3/lib/python3.7/subprocess.py", line 472, in run
with Popen(*popenargs, **kwargs) as process:
File "/Users/user/anaconda3/lib/python3.7/subprocess.py", line 775, in init
restore_signals, start_new_session)
File "/Users/user/anaconda3/lib/python3.7/subprocess.py", line 1522, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Permission denied: 'convert'
(base) Samuels-Mac-Pro:Keplerain Orbit Trajectory Plots - OrbitalPy-v0.7.0(python3) user$

A copy of the Python program used is attached to this post as a text file.

Please advise.

Sam Dupree.

OrbitalPy_Hohmann.py.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.