ggAstro Astronautics

ggame extensions for modeling spacecraft in planetary orbit

Planet

class ggame.astro.Planet(**kwargs)[source]

Initialize the Planet object.

Optional keyword parameters are supported:

Parameters:
  • viewscale (float) – Pixels per meter in graphics display. Default is 10.

  • radius (float) – Radius of the planet in meters. Default is Earth radius.

  • planetmass (float) – Mass of the planet in kg. Default is Earth mass.

  • color (int) – Color of the planet. Default is greenish (0x008040).

  • viewalt (float) – Altitude of initial viewpoint in meters. Default is rocket altitude.

  • viewanom (float) – True anomaly (angle) of initial viewpoint in radians. Default is the rocket anomaly.

  • viewanomd (float) – True anomaly (angle) of initial viewpoing in degrees. Default is the rocket anomaly.

Example:

"""
Example of using Planet class.
"""
from ggame.astro import Planet

EARTH = Planet(viewscale=0.00005)
EARTH.run()
run(userfunc=None)[source]

Execute the Planet (and Rocket) simulation without setting the initial view.

runWithRocket(rocket=None)[source]

Execute the Planet (and Rocket) simulation.

Optional parameters:

Parameters:

rocket (Rocket) – Reference to a Rocket object - sets the initial view

Returns:

None

Rocket

class ggame.astro.Rocket(planet, **kwargs)[source]

Rocket is a class for simulating the motion of a projectile through space, acted upon by arbitrary forces (thrust) and by gravitaitonal attraction to a single planetary object.

Required parameters:

Parameters:

planet (Planet) – Reference to a Planet object.

Optional keyword parameters are supported:

Parameters:
  • bitmap (str) – Url of a suitable bitmap image for the rocket (png recommended), default is images/rocket.png

  • bitmapscale (float) – Scale factor for bitmap. Default is 0.1

  • velocity (float) – Initial rocket speed. Default is zero.

  • directiond (float) – Initial rocket direction in degrees. Default is zero.

  • direction (float) – Initial rocket direction in radians. Default is zero.

  • tanomalyd (float) – Initial rocket true anomaly in degrees. Default is 90.

  • tanomaly (float) – Initial rocket true anomaly in radians. Default is pi/2.

  • altitude (float) – Initial rocket altitude in meters. Default is zero.

  • showstatus (bool) – Boolean displays flight parameters on screen. Default is True.

  • statuspos ((int, int)) – Tuple with screen x,y coordinates of flight parameters. Default is upper left.

  • statuslist (list[str]) – List of status names to include in flight parameters. Default is all, consisting of: “velocity”, “acceleration”, “course”, “altitude”, “thrust”, “mass”, “trueanomaly”, “scale”, “timezoom”, “shiptime”

  • leftkey (str) – A ggame.event.KeyEvent key identifier that will serve as the “rotate left” key while controlling the ship. Default is ‘left arrow’.

  • rightkey (str) – A ggame.event.KeyEvent key identifier that will serve as the “rotate right” key while controlling the ship. Default is ‘right arrow’.

Following parameters may be set as a constant value, or pass in the name of a function that will return the value dynamically or the name of a ggmath UI control that will return the value.

Parameters:
  • timezoom (function or float) – Scale factor for time zoom. Factor = 10^timezoom

  • heading (function or float) – Direction to point the rocket in (must be radians)

  • mass (fucntion or float) – Mass of the rocket (must be kg)

  • thrust (function or float) – Thrust of the rocket (must be N)

Animation related parameters may be ignored if no sprite animation:

Parameters:
  • bitmapframe (Frame) – ((x1,y1),(x2,y2)) tuple defines a region in the bitmap

  • bitmapqty (int) – Number of bitmaps – used for animation effects

  • bitmapdir (str) – “horizontal” or “vertical” use with animation effects. Default is “horizontal”

  • bitmapmargin (int) – Pixels between successive animation frames

  • tickrate (float) – Frequency of spacecraft dynamics calculations (Hz)

Example:

"""
Example of using Rocket class.
"""
from ggame.astro import Planet, Rocket

EARTH = Planet(viewscale=0.00005)
EARTH.run()

ROCKET = Rocket(EARTH, altitude=400000, velocity=7670, timezoom=2)
planet

Reference to an app object of Planet class

tickrate

Target animation frames per second.

localheading

Heading (angle) of travel

timezoom

Reference to a function that will dynamically determine the time zoom factor. An integer: 1,2,3 faster, -1, slower.

heading

Reference to a function that will dynamically calculate spaceship orientation or heading (in radians)

mass

Reference to a function that will dynamically calculate the spaceship mass (in kg).

thrust

Reference to a funtion that will dynamically calculate the rocket thrust (in N).

addStatusReport(statuslist, statusfuncs, statusselect)[source]

Accept list of all status names, all status text functions, and the list of status names that have been selected for display.

Parameters:
  • statuslist (list[str]) – List of status names to include in flight parameters. Default is all, consisting of: “velocity”, “acceleration”, “course”, “altitude”, “thrust”, “mass”, “trueanomaly”, “scale”, “timezoom”, and “shiptime”.

  • statusfuncs (list[func]) – List of function references corresponding to statuslist parameter.

  • statusselect (list[str]) – List of names chosen from statuslist to display.

Returns:

None

property xyposition

Report the x,y tuple for logical position of the spaceship.

property tanomalyd

Report/set the spaceship position as a direction relative to central body (degrees).

property altitude

Report/set the spaceship altitude of planet surface in meters.

property velocity

Report the spaceship velocity scalar in m/s.

property acceleration

Report the spaceship acceleration scalar in m/s.

property tanomaly

Report/set the spaceship position as a direction relative to central body (radians).

property r

Report the spaceship distance (radius) from central body center of mass.