SpaceNet Schemas

Database

This module defines schemas usable for validating and interfacing with other parts of the spacenet module.

Types

class spacenet.schemas.node.Body(value)

An enumeration of the possible bodies for a node.

class spacenet.schemas.node.NodeType(value)

An enumeration of the three types of nodes.

class spacenet.schemas.edge.EdgeType(value)

An enumeration for the types of edges.

class spacenet.schemas.element.ElementType(value)

An enumeration of all the types of Element

class spacenet.schemas.resource.ResourceType(value)

An enumeration of the different kinds of resource.

Nodes

class spacenet.schemas.node.NodeUUID(*, id: UUID = None)

A base class which defines a node by its UUID only.

Parameters:

id (UUID) – unique identifier for node

class spacenet.schemas.node.Node(*, id: UUID = None, name: str, description: str, body1: Body, contents: List[UUID] = [])

Base class for all nodes.

Parameters:
  • name (str) – name of node

  • description (str) – short description of the node

  • body_1 (Body) – Body of surface location, body of orbit, or body of major Lagrange point

  • contents ([UUID]) – UUIDs of instantiated elements stored at this node during the spatial simulation

class spacenet.schemas.node.SurfaceNode(*, id: ~uuid.UUID = None, name: str, description: str, body1: ~spacenet.schemas.node.Body, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Surface Node] = NodeType.Surface, latitude: ~spacenet.schemas.node.ConstrainedFloatValue, longitude: ~spacenet.schemas.node.ConstrainedFloatValue)

A node on the surface of a body.

Parameters:
  • type (SurfaceNode) – Type of node (surface, orbital, or lagrange)

  • latitude (float from -90 to 90) – Latitude (decimal degrees)

  • longitude (float from -180 to 180) – Longitude (decimal degrees)

class spacenet.schemas.node.OrbitalNode(*, id: ~uuid.UUID = None, name: str, description: str, body1: ~spacenet.schemas.node.Body, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Orbital Node] = NodeType.Orbital, apoapsis: ~spacenet.schemas.types.ConstrainedFloatValue, periapsis: ~spacenet.schemas.types.ConstrainedFloatValue, inclination: ~spacenet.schemas.node.ConstrainedFloatValue)

A node orbiting a body.

Parameters:
  • type (OrbitalNode) – Type of node (surface, orbital, or lagrange)

  • apoapsis (NonNegFloat) – Major radius of orbit

  • periapsis (NonNegFloat) – Minor radius of orbit

  • inclination (float from 0 to 180) – Inclination of orbit

class spacenet.schemas.node.LagrangeNode(*, id: ~uuid.UUID = None, name: str, description: str, body1: ~spacenet.schemas.node.Body, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Lagrange Node] = NodeType.Lagrange, body2: ~spacenet.schemas.node.Body, lpNumber: ~spacenet.schemas.node.ConstrainedIntValue)

A node at a Lagrange point of two bodies.

Parameters:
  • type (LagrangeNode) – Type of node (surface, orbital, or lagrange)

  • body_2 (Body) – Minor body of Lagrange node

  • lp_number (int from 1 to 5) – Number of Lagrange point

Edges

class spacenet.schemas.edge.EdgeUUID(*, id: UUID = None)

A base class which defines an edge by its UUID only.

Parameters:

id (UUID) – unique identifier for edge

class spacenet.schemas.edge.SpaceEdge(*, id: ~uuid.UUID = None, name: str, description: str, origin: ~uuid.UUID, destination: ~uuid.UUID, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Space Edge] = EdgeType.Space, duration: ~datetime.timedelta, burns: ~typing.List[~spacenet.schemas.burn.Burn])

An edge between two nodes using a specified list of propulsive burns.

Parameters:
  • type (SpaceEdge) – the edge’s type

  • duration (timedelta) – duration of space edge

  • burns ([Burn]) – list of propulsive burns that take place along this space edge

class spacenet.schemas.edge.SurfaceEdge(*, id: ~uuid.UUID = None, name: str, description: str, origin: ~uuid.UUID, destination: ~uuid.UUID, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Surface Edge] = EdgeType.Surface, distance: ~spacenet.schemas.types.ConstrainedFloatValue)

An edge between two surface nodes.

Parameters:
  • type (SurfaceEdge) – type of edge

  • distance (NonNegFloat) – distance edge traverses

class spacenet.schemas.edge.FlightEdge(*, id: ~uuid.UUID = None, name: str, description: str, origin: ~uuid.UUID, destination: ~uuid.UUID, contents: ~typing.List[~uuid.UUID] = [], type: typing_extensions.Literal[Flight Edge] = EdgeType.Flight, duration: ~datetime.timedelta, maxCrew: ~spacenet.schemas.types.ConstrainedIntValue, maxCargo: ~spacenet.schemas.types.ConstrainedFloatValue)

An edge between two nodes using flight architectures that are known to close with a given cargo and crew capacity.

Parameters:
  • type (FlightEdge) – the edge’s type

  • duration (timedelta) – duration of flight edge

  • max_crew (NonNegInt) – crew capacity along the entire edge

  • max_cargo (NonNegFloat) – cargo capacity along the entire edge

Elements

class spacenet.schemas.element.ElementUUID(*, id: UUID = None)

A base class for elements defining only the UUID.

Parameters:

id (UUID) – unique identifier for element

class spacenet.schemas.element.Element(*, id: UUID = None, name: str, description: str, classOfSupply: ClassOfSupply, type: typing_extensions.Literal[Element] = ElementType.Element, environment: Environment, accommodationMass: ConstrainedFloatValue, mass: ConstrainedFloatValue, volume: ConstrainedFloatValue, states: List[State] = [], currentStateIndex: Optional[ConstrainedIntValue] = None, parts: List[Part] = [], icon: Optional[str] = None)

A generic element.

Parameters:
  • name (str) – name of the element

  • description (str) – short description of the element

  • class_of_supply (ClassOfSupply) – class of supply number

  • type (Element) – the element’s type

  • environment (Environment) – the element’s environment, either unpressurized or pressurized

  • accommodation_mass (SafeNonNegFloat) – the amount of additional COS5 required to pack the element inside a carrier

  • mass (SafeNonNegFloat) – mass in kg

  • volume (SafeNonNegFloat) – volume in cubic meters

  • states ([State]) – list of states the element may possess

  • current_state_index (SafeInt) – The index of the current state of the element. Initialized at the initial state.

class spacenet.schemas.element.CargoCarrier(*, id: UUID = None, name: str, description: str, classOfSupply: ClassOfSupply, type: typing_extensions.Literal[Element] = ElementType.Element, environment: Environment, accommodationMass: ConstrainedFloatValue, mass: ConstrainedFloatValue, volume: ConstrainedFloatValue, states: List[State] = [], currentStateIndex: Optional[ConstrainedIntValue] = None, parts: List[Part] = [], icon: Optional[str] = None, maxCargoMass: Optional[ConstrainedFloatValue] = 0, maxCargoVolume: Optional[ConstrainedFloatValue] = 0, cargoEnvironment: Environment)

Abstract base class representing a carrier of some sort of cargo, elements or resources.

Parameters:
  • max_cargo_mass (SafeNonNegFloat) – cargo capacity constraint (kg)

  • max_cargo_volume (SafeNonNegFloat) – cargo capacity constraint (m^3)

  • cargo_environment (Environment) – the cargo’s environment - if unpressurized, cannot add pressurized elements as cargo

class spacenet.schemas.element.ResourceContainer(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Resource Container] = ElementType.ResourceContainer, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, cargoEnvironment: ~spacenet.schemas.constants.Environment, contents: ~typing.List[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]] = [])

An element representing a container for resources.

Parameters:
class spacenet.schemas.element.ElementCarrier(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Element Carrier] = ElementType.ElementCarrier, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, cargoEnvironment: ~spacenet.schemas.constants.Environment, contents: ~typing.List[~uuid.UUID] = [], maxCrew: ~spacenet.schemas.types.ConstrainedIntValue)

An element which can carry other elements.

Parameters:
  • type (ElementCarrier) – the element’s type

  • contents ([UUID]) – list of elements initially in carrier. These should be UUIDs of element templates.

  • max_crew (SafeNonNegInt) – crew capacity constraint

class spacenet.schemas.element.Agent(*, id: UUID = None, name: str, description: str, classOfSupply: ClassOfSupply, type: typing_extensions.Literal[Element] = ElementType.Element, environment: Environment, accommodationMass: ConstrainedFloatValue, mass: ConstrainedFloatValue, volume: ConstrainedFloatValue, states: List[State] = [], currentStateIndex: Optional[ConstrainedIntValue] = None, parts: List[Part] = [], icon: Optional[str] = None, activeTimeFraction: ConstrainedFloatValue)

An abstract base class representing a generic Agent element.

Parameters:

active_time_fraction (float from 0 to 1) – the fraction of the day that an agent is active (available)

class spacenet.schemas.element.HumanAgent(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Human Agent] = ElementType.HumanAgent, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, activeTimeFraction: ~spacenet.schemas.element.ConstrainedFloatValue)

An element representing a human agent, like a crew member.

Parameters:

type (HumanAgent) – the element’s type

class spacenet.schemas.element.RoboticAgent(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Robotic Agent] = ElementType.RoboticAgent, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, activeTimeFraction: ~spacenet.schemas.element.ConstrainedFloatValue)

An element representing a robotic agent.

Parameters:

type (RoboticAgent) – the element’s type

class spacenet.schemas.element.PropulsiveVehicle(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Propulsive Vehicle] = ElementType.PropulsiveVehicle, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, cargoEnvironment: ~spacenet.schemas.constants.Environment, contents: ~typing.List[~uuid.UUID] = [], maxCrew: ~spacenet.schemas.types.ConstrainedIntValue, isp: ~spacenet.schemas.types.ConstrainedFloatValue, maxFuel: ~spacenet.schemas.types.ConstrainedFloatValue, fuel: ~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount])

An element representing a vehicle with its own propulsion.

Parameters:
  • type (PropulsiveVehicle) – the element’s type

  • isp (SafeNonNegFloat) – specific impulse (s)

  • max_fuel (SafeNonNegFloat) – the maximum amount of fuel which can be stored in the propulsive vehicle (units)

  • fuel (ResourceAmount | GenericResourceAmount) – UUID and amount of fuel used by propulsive vehicle

class spacenet.schemas.element.SurfaceVehicle(*, id: ~uuid.UUID = None, name: str, description: str, classOfSupply: ~spacenet.schemas.constants.ClassOfSupply, type: typing_extensions.Literal[Surface Vehicle] = ElementType.SurfaceVehicle, environment: ~spacenet.schemas.constants.Environment, accommodationMass: ~spacenet.schemas.types.ConstrainedFloatValue, mass: ~spacenet.schemas.types.ConstrainedFloatValue, volume: ~spacenet.schemas.types.ConstrainedFloatValue, states: ~typing.List[~spacenet.schemas.state.State] = [], currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.List[~spacenet.schemas.resource.Part] = [], icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = 0, cargoEnvironment: ~spacenet.schemas.constants.Environment, contents: ~typing.List[~uuid.UUID] = [], maxCrew: ~spacenet.schemas.types.ConstrainedIntValue, maxSpeed: ~spacenet.schemas.types.ConstrainedFloatValue, maxFuel: ~spacenet.schemas.types.ConstrainedFloatValue, fuel: ~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount])

An element representing a surface vehicle.

Parameters:
  • type (SurfaceVehicle) – the element’s type

  • max_speed (SafeNonNegFloat) – maximum speed (kph)

  • max_fuel (SafeNonNegFloat) – maximum fuel (units)

  • fuel (ResourceAmount | GenericResourceAmount) – UUID and amount of propellant used by surface vehicle

Instantiated Elements

class spacenet.schemas.inst_element.InstElementUUID(*, id: UUID = None)

A base class for instantiated elements defining only the UUID.

Parameters:

id (UUID) – unique identifier for element

class spacenet.schemas.inst_element.InstElement(*, id: UUID = None, type: typing_extensions.Literal[Element] = ElementType.Element, templateId: UUID, name: str, description: Optional[str] = None, classOfSupply: Optional[ClassOfSupply] = None, environment: Optional[Environment] = None, accommodationMass: Optional[ConstrainedFloatValue] = None, mass: Optional[ConstrainedFloatValue] = None, volume: Optional[ConstrainedFloatValue] = None, states: Optional[List[State]] = None, currentStateIndex: Optional[ConstrainedIntValue] = None, parts: Optional[List[UUID]] = None, icon: Optional[str] = None)

A generic element.

Parameters:
  • type (Element) – the element’s type

  • template_id (UUID) – UUID of the template for this instantiated element

  • name (str) – name of the instantiated element

  • description (str) – short description of the element (optional)

  • class_of_supply (ClassOfSupply) – class of supply number (optional)

  • environment (Environment) – the element’s environment (optional)

  • accommodation_mass (SafeNonNegFloat) – the amount of additional COS5 required to pack the element inside a carrier (optional)

  • mass (SafeNonNegFloat) – mass in kg (optional)

  • volume (SafeNonNegFloat) – volume in cubic meters (optional)

  • states ([State]) – list of states the instantiated element may possess (optional)

  • current_state_index (SafeInt) – field describing the current state of the element. Set to initial state during creation. (optional)

class Config

Configuration inner class forbidding additional fields

class spacenet.schemas.inst_element.InstCargoCarrier(*, id: UUID = None, type: typing_extensions.Literal[Element] = ElementType.Element, templateId: UUID, name: str, description: Optional[str] = None, classOfSupply: Optional[ClassOfSupply] = None, environment: Optional[Environment] = None, accommodationMass: Optional[ConstrainedFloatValue] = None, mass: Optional[ConstrainedFloatValue] = None, volume: Optional[ConstrainedFloatValue] = None, states: Optional[List[State]] = None, currentStateIndex: Optional[ConstrainedIntValue] = None, parts: Optional[List[UUID]] = None, icon: Optional[str] = None, maxCargoMass: Optional[ConstrainedFloatValue] = None, maxCargoVolume: Optional[ConstrainedFloatValue] = None, cargoEnvironment: Optional[Environment] = None)

Abstract base class representing a carrier of some sort of cargo, elements or resources.

Parameters:
  • max_cargo_mass (SafeNonNegFloat) – cargo capacity constraint (kg) (optional)

  • max_cargo_volume (SafeNonNegFloat) – cargo capacity constraint (m^3) (optional)

  • cargo_environment (Environment) – the cargo’s environment - if unpressurized, cannot add pressurized elements as cargo (optional)

class spacenet.schemas.inst_element.InstResourceContainer(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Resource Container] = ElementType.ResourceContainer, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, cargoEnvironment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, contents: ~typing.Optional[~typing.List[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]]] = None)

An element representing a container for resources.

Parameters:
class spacenet.schemas.inst_element.InstElementCarrier(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Element Carrier] = ElementType.ElementCarrier, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, cargoEnvironment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, contents: ~typing.List[~spacenet.schemas.inst_element.InstElementUUID] = [], maxCrew: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None)

An element which can carry other elements.

Parameters:
  • type (ElementCarrier) – the element’s type

  • contents ([UUID]) – list of instantiated elements moved into carrier during spatial simulation

  • max_crew (SafeNonNegInt) – crew capacity constraint

class spacenet.schemas.inst_element.InstAgent(*, id: UUID = None, type: typing_extensions.Literal[Element] = ElementType.Element, templateId: UUID, name: str, description: Optional[str] = None, classOfSupply: Optional[ClassOfSupply] = None, environment: Optional[Environment] = None, accommodationMass: Optional[ConstrainedFloatValue] = None, mass: Optional[ConstrainedFloatValue] = None, volume: Optional[ConstrainedFloatValue] = None, states: Optional[List[State]] = None, currentStateIndex: Optional[ConstrainedIntValue] = None, parts: Optional[List[UUID]] = None, icon: Optional[str] = None, activeTimeFraction: Optional[ConstrainedFloatValue] = None)

An abstract base class representing a generic Agent element.

Parameters:

active_time_fraction (float from 0 to 1) – the fraction of the day that an agent is active (available) (optional)

class spacenet.schemas.inst_element.InstHumanAgent(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Human Agent] = ElementType.HumanAgent, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, activeTimeFraction: ~typing.Optional[~spacenet.schemas.inst_element.ConstrainedFloatValue] = None)

An element representing a human agent, like a crew member.

Parameters:

type (HumanAgent) – the element’s type

class spacenet.schemas.inst_element.InstRoboticAgent(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Robotic Agent] = ElementType.RoboticAgent, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, activeTimeFraction: ~typing.Optional[~spacenet.schemas.inst_element.ConstrainedFloatValue] = None)

An element representing a robotic agent.

Parameters:

type (RoboticAgent) – the element’s type

class spacenet.schemas.inst_element.InstPropulsiveVehicle(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Propulsive Vehicle] = ElementType.PropulsiveVehicle, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, cargoEnvironment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, contents: ~typing.List[~spacenet.schemas.inst_element.InstElementUUID] = [], maxCrew: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, maxFuel: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, fuel: ~typing.Optional[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]] = None, isp: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None)

An element representing a vehicle with its own propulsion.

Parameters:
  • type (PropulsiveVehicle) – the element’s type

  • isp (SafeNonNegFloat) – specific impulse (s) (optional)

  • max_fuel (SafeNonNegFloat) – maximum fuel (units) (optional)

  • fuel (ResourceAmount | GenericResourceAmount) – UUID and amount of fuel used by propulsive vehicle (optional)

class spacenet.schemas.inst_element.InstSurfaceVehicle(*, id: ~uuid.UUID = None, type: typing_extensions.Literal[Surface Vehicle] = ElementType.SurfaceVehicle, templateId: ~uuid.UUID, name: str, description: ~typing.Optional[str] = None, classOfSupply: ~typing.Optional[~spacenet.schemas.constants.ClassOfSupply] = None, environment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, accommodationMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, mass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, volume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, states: ~typing.Optional[~typing.List[~spacenet.schemas.state.State]] = None, currentStateIndex: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, parts: ~typing.Optional[~typing.List[~uuid.UUID]] = None, icon: ~typing.Optional[str] = None, maxCargoMass: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, maxCargoVolume: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, cargoEnvironment: ~typing.Optional[~spacenet.schemas.constants.Environment] = None, contents: ~typing.List[~spacenet.schemas.inst_element.InstElementUUID] = [], maxCrew: ~typing.Optional[~spacenet.schemas.types.ConstrainedIntValue] = None, maxSpeed: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, maxFuel: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None, fuel: ~typing.Optional[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]] = None)

An element representing a surface vehicle.

Parameters:
  • type (SurfaceVehicle) – the element’s type

  • max_speed (SafeNonNegFloat) – maximum speed (kph) (optional)

  • max_fule (SafeNonNegFloat) – maximum fuel (units) (optional)

  • fuel (ResourceAmount | GenericResourceAmount) – UUID and amount of fuel used by surface vehicle (optional)

Resources

class spacenet.schemas.resource.ResourceUUID(*, id: UUID = None)

A base class which defines a resource by its UUID only.

Parameters:

id (UUID) – unique identifier for resource

class spacenet.schemas.resource.Resource(*, id: UUID = None, name: str, classOfSupply: ClassOfSupply, packingFactor: ConstrainedFloatValue, units: str = 'kg', description: Optional[str] = None, unitMass: ConstrainedFloatValue, unitVolume: ConstrainedFloatValue)

A resource with a given class of supply as a general category, as well as specified physical properties such as mass and volume.

Parameters:
  • name (str) – resource name

  • class_of_supply (ClassOfSupply) – class of supply number for resource

  • packing_factor (SafeNonNegFloat) – nonnegative float representing resource’s packing factor

  • units (str) – user customizable field for what 1.0 quantity of resource represents

  • description (str) – optional field for description of resource

  • unit_mass (SafePosFloat) – resource mass

  • SafeNonNegFloat (unit_volume) – resource volume

class spacenet.schemas.resource.ResourceAmount(*, resource: UUID, amount: float)

A specified amount of a resource type.

Parameters:
  • resource (UUID) – UUID of resource being used

  • amount (float) – amount of resource being used, in units specified by that resource

class spacenet.schemas.resource.ResourceAmountRate(*, resource: UUID, rate: float)

A specified amount of a resource type.

Parameters:
  • resource (UUID) – UUID of resource being used

  • rate (float) – rate of resource being used, in units specified by that resource

class spacenet.schemas.resource.GenericResourceAmount(*, classOfSupply: ClassOfSupply, environment: Environment, amount: float)

A specified amount of a generic resource.

Parameters:
  • class_of_supply (ClassOfSupply) – COS number of generic resource being used

  • environment (Environment) – environment of generic resource. Either pressurized or unpressurized.

  • amount (float) – amount of generic resource being used, in units specified by that resource

class spacenet.schemas.resource.GenericResourceAmountRate(*, classOfSupply: ClassOfSupply, environment: Environment, rate: float)

A specified amount of a generic resource.

Parameters:
  • class_of_supply (ClassOfSupply) – COS number of generic resource being used

  • environment (Environment) – environment of generic resource. Either pressurized or unpressurized.

  • rate (float) – rate of generic resource being used, in units specified by that resource

class spacenet.schemas.resource.ContinuousResource(*, id: UUID = None, name: str, classOfSupply: ClassOfSupply, packingFactor: ConstrainedFloatValue, units: str = 'kg', description: Optional[str] = None, unitMass: ConstrainedFloatValue, unitVolume: ConstrainedFloatValue, type: typing_extensions.Literal[Continuous] = ResourceType.Continuous)

A resource which can be replaced in continuous increments.

class spacenet.schemas.resource.DiscreteResource(*, id: UUID = None, name: str, classOfSupply: ClassOfSupply, packingFactor: ConstrainedFloatValue, units: str = 'kg', description: Optional[str] = None, unitMass: ConstrainedFloatValue, unitVolume: ConstrainedFloatValue, type: typing_extensions.Literal[Discrete] = ResourceType.Discrete)

A resource which can only be replaced in discrete increments.

States

class spacenet.schemas.state.StateType(value)

An enumeration of the possible types/classifications of State.

class spacenet.schemas.state.StateUUID(*, id: UUID = None)

A representation of a state using only its UUID. This serves as a base class for all states.

Parameters:

id (UUID) – unique identifier for state

class spacenet.schemas.state.State(*, id: UUID = None, name: str, description: str = '', type: StateType, demandModels: List[InstElementDemandModel])

An abbreviated representation of the state of a specific element.

Parameters:
  • name (str) – the name of this state

  • description (str) – short description of the state

  • type (StateType) – the general classificaton of this state

  • demand_models ([InstDemandModel]) – list of instantiated demand models associated with this state

Campaign

Types

class spacenet.schemas.bases.EventType(value)

An enumeration of all the types of events

class spacenet.schemas.propulsive_burn.BurnStage(value)

An enumeration of the two actions possible in a propulsive burn event. Burn - A propulsive burn,

Element Events

class spacenet.schemas.element_events.CreateElements(*, name: str, type: typing_extensions.Literal[Create Elements] = EventType.CreateElements, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, queuedAt: ~datetime.timedelta = None, elements: ~typing.List[~uuid.UUID], container: ~uuid.UUID)

An event which brings elements “into” a simulation at a specific time and location (node, edge, or inside an element carrier).

Parameters:
  • type (CreateElements) – the type of event

  • elements ([UUID]) – list of the UUIDs of the instantiated elements being added to simulation

  • container (UUID) – the UUID of the node, edge or instianted element where the element is being created

class spacenet.schemas.element_events.MoveElements(*, name: str, type: typing_extensions.Literal[Move Elements] = EventType.MoveElements, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, queuedAt: ~datetime.timedelta = None, elements: ~typing.List[~uuid.UUID], container: ~uuid.UUID)

An event which moves elements at a specific time and location (node or edge) to a new location (node, edge, or element carrier).

Parameters:
  • type (MoveElements) – the type of event

  • elements ([UUID]) – list of the UUIDs of the instantiated elements being moved

  • container (UUID) – the UUID of the node, edge or instianted element to which the elements are being moved

class spacenet.schemas.element_events.RemoveElements(*, name: str, type: typing_extensions.Literal[Remove Elements] = EventType.RemoveElements, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, queuedAt: ~datetime.timedelta = None, elements: ~typing.List[~uuid.UUID])

An event which deletes elements from the simulation at a specific time and location (node or edge).

Parameters:
  • type (RemoveElements) – the type of event

  • elements ([UUID]) – list of the UUIDs of the instantiated elements being removed

class spacenet.schemas.element_events.ReconfigureElement(*, name: str, type: typing_extensions.Literal[Reconfigure Element] = EventType.ReconfigureElement, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, element: ~uuid.UUID, stateIndex: ~spacenet.schemas.types.ConstrainedIntValue)

An event which changes the operational state for an individual element at a specific time and location (node or edge).

Parameters:
  • type (ReconfigureElement) – the type of event

  • element (UUID) – UUID of the element whose state is to be changed

  • state_index (SafeInt) – index of the element’s new operational state

class spacenet.schemas.element_events.ReconfigureElements(*, name: str, type: typing_extensions.Literal[Reconfigure Elements] = EventType.ReconfigureElements, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, elements: ~typing.List[~uuid.UUID], stateType: ~spacenet.schemas.state.StateType)

An event which changes the operational state for elements at a specific time and location (node or edge).

Parameters:

element_states (Dict[InstElementUUID, SafeInt]) – a mapping from the IDs of instantiated elements to the index of their desired new state

Transport Events

class spacenet.schemas.burn.Burn(*, id: UUID = None, time: timedelta, deltaV: ConstrainedFloatValue)

An individual burn to generate a specified amount of velocity change. Base class for propulsive burns

Parameters:
  • time (timedelta) – amount of time the burn will take

  • delta_v (SafeNonNegFloat) – change in velocity to be achieved by this burn

class spacenet.schemas.propulsive_burn.BurnStageItem(*, element: UUID, type: BurnStage)

Class for items in the burn-stage sequence

Parameters:
  • element (UUID) – UUID of instantiated propulsive vehicle to go through a burn or stage

  • BurnStage – whether the target element will be burned or staged

class spacenet.schemas.propulsive_burn.PropulsiveBurn(*, name: str, type: typing_extensions.Literal[Propulsive Burn] = EventType.PropulsiveBurn, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, queuedAt: ~datetime.timedelta = None, elements: ~typing.List[~uuid.UUID], burn: ~uuid.UUID, burnStageSequence: ~typing.List[~spacenet.schemas.propulsive_burn.BurnStageItem])

Event that represents a propulsive maneuver that may be composed of one or more burns or stages of individual elements.

Parameters:
  • type (ProplsiveBurn) – the type of event

  • elements ([UUID]) – list of UUIDs of instantiated elements to be included in the burn event

  • burn (UUID) – UUID of burn upon which this event is based

  • burn_stage_sequence ([BurnStageItem]) – list of the burns and stages to be performed in the event

class spacenet.schemas.flight_transport.FlightTransport(*, name: str, type: typing_extensions.Literal[Flight Transport] = EventType.FlightTransport, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, edge: ~uuid.UUID, elements: ~typing.List[~uuid.UUID])

Schema for Flight Transport

Parameters:
  • type (FlightTransport) – type of event

  • elements ([UUID]) – list of UUIDs of instantiated elements being transported

class spacenet.schemas.space_transport.BurnStageSequence(*, burn: UUID, actions: List[BurnStageItem])

A sequence of burn/stage events.

Parameters:
  • burn (UUID) – UUID of burn that is occurring

  • burn_stage_sequence ([BurnStageItem]) – list of the burns and stages to be performed in the event

class spacenet.schemas.space_transport.SpaceTransport(*, name: str, type: typing_extensions.Literal[Space Transport] = EventType.SpaceTransport, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, edge: ~uuid.UUID, elements: ~typing.List[~uuid.UUID], burnStageSequence: ~typing.List[~spacenet.schemas.space_transport.BurnStageSequence], deltaV: ~typing.Optional[~spacenet.schemas.types.ConstrainedFloatValue] = None)

Schema for Space Transport

Parameters:
  • type (SpaceTransport) – type of the event

  • elements ([UUID]) – list of the UUIDs of the instantiated elements that will be transported

  • burn_stage_sequence ([BurnStageSequence]) – list of separate Burn-Stage sequences

  • delta_v (SafeNonNegFloat) – Delta V of space transport (optional)

class spacenet.schemas.surface_transport.SurfaceTransport(*, name: str, type: typing_extensions.Literal[Surface Transport] = EventType.SurfaceTransport, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, edge: ~uuid.UUID, elements: ~typing.List[~uuid.UUID])

Schema for Surface Transport

Parameters:

Resource Events

class spacenet.schemas.transfer_resources.TransferResources(*, name: str, type: typing_extensions.Literal[Transfer Resources] = EventType.TransferResources, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, resources: ~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount], container: ~uuid.UUID)

An event that moves resources at a specific time and location (node or edge) from an origin resource container to a destination resource container

Parameters:
class spacenet.schemas.consume_resources.ConsumeResources(*, name: str, type: typing_extensions.Literal[Consume Resources] = EventType.ConsumeResources, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, resources: ~typing.List[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]], source: ~uuid.UUID)

Schema for consuming resources from a point

Parameters:

Demand Models

class spacenet.schemas.demand_model.MissionDemandModel(*, id: UUID = None, name: str, description: str = '')

Mission Demand Model base class.

Parameters:

name (str) – name of demand model

class spacenet.schemas.demand_model.ElementDemandModel(*, id: UUID = None, name: str, description: str = '')

Element Demand Model base class.

Parameters:

name (str) – name of demand model

class spacenet.schemas.demand_model.TimedImpulseDemandModel(*, id: ~uuid.UUID = None, name: str, description: str = '', type: typing_extensions.Literal[Timed Impulse] = DemandModelType.TimedImpulse, processed: bool = False, demands: ~typing.List[~typing.Union[~spacenet.schemas.resource.ResourceAmount, ~spacenet.schemas.resource.GenericResourceAmount]])

Demand model consuming a resource in one instant.

Parameters:
  • processed (bool) – flag using in simulation to determine whether or not a demand has been processed.

  • type (TimedImpulse) – demand model’s type

  • demands ([Demand]) – a list of demands to occur at one instant in time

class spacenet.schemas.demand_model.RatedDemandModel(*, id: UUID = None, name: str, description: str = '', type: typing_extensions.Literal[Rated] = DemandModelType.Rated, demands: List[Union[ResourceAmountRate, GenericResourceAmountRate]])

Demand model consuming a resource in one instant.

Parameters:
  • type (Rated) – demand model’s type

  • demands ([Demand]) – a list of resources and rates at which they are demanded

class spacenet.schemas.demand_model.CrewConsumablesDemandModel(*, id: ~uuid.UUID = None, name: str, description: str = '', type: typing_extensions.Literal[Crew Consumables] = DemandModelType.CrewConsumables, reservesDuration: float, waterRecoveryRate: float, clothingLifetime: float, transitDemandsOmitted: bool, waterRate: float = 3.6, evaWaterRate: float = 0.6875, foodSupportRate: float = 0.05556, ambientFoodRate: float = 0.76389, rfFoodRate: float = 1.61667, oxygenRate: float = 3.85714, evaOxygenRate: float = 0.07875, nitrogenRate: float = 2.21429, hygieneRate: float = 0.27778, hygieneKit: float = 1.8, clothingRate: float = 2.3, personalItems: float = 10, officeEquipment: float = 5, evaSuit: float = 107, evaLithiumHydroxide: float = 0.3625, healthEquipment: float = 20, healthConsumables: float = 0.1, safetyEquipment: float = 25, commEquipment: float = 20, computerEquipment: float = 5, trashBagRate: float = 0.05, wasteContainmentRate: float = 0.05)

Demands for consumables by crew.

Parameters:
  • type (CrewConsumables) –

  • reserves_duration (float) –

  • water_recovery_rate (float) –

  • clothing_lifetime (float) –

  • transit_demand_omitted (float) –

  • water_rate (float) –

  • eva_water_rate (float) –

  • food_support_rate (float) –

  • ambient_food_rate (float) –

  • rf_food_rate (float) –

  • oxygen_rate (float) –

  • eva_oxygen_rate (float) –

  • nitrogen_rate (float) –

  • hygiene_rate (float) –

  • hygiene_kit (float) –

  • clothing_rate (float) –

  • personal_items (float) –

  • office_equipment (float) –

  • eva_suit (float) –

  • eva_lithium_hydroxide (float) –

  • health_equipment (float) –

  • health_consumables (float) –

  • safety_equipment (float) –

  • comm_equipment (float) –

  • computer_equipment (float) –

  • trash_bag_rate (float) –

  • waste_containment_rate (float) –

class spacenet.schemas.demand_model.SparingByMassDemandModel(*, id: ~uuid.UUID = None, name: str, description: str = '', type: typing_extensions.Literal[Sparing By Mass] = DemandModelType.SparingByMass, unpressurizedSparesRate: float, pressurizedSparesRate: float, partsListEnabled: bool)

Demand model consuming a resource in one instant.

Parameters:
  • type (SparingByMass) – demand model’s type

  • unpressurizedSparesRate (float) – percentage of an element’s mass demanded as unpressurized spares each year

  • pressurizedSparesRate (float) – percentage of an element’s mass demanded as pressurized spares each year

  • partsListEnabled (bool) – true if the element’s part list should be used to drive demand resources

Exploration Events

class spacenet.schemas.crewed_eva.CrewedEVA(*, name: str, type: typing_extensions.Literal[Crewed EVA] = EventType.CrewedEVA, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, evaDuration: ~datetime.timedelta, vehicle: ~uuid.UUID, elementStates: ~typing.List[~spacenet.schemas.state.ElementState], additionalDemands: ~typing.List[~uuid.UUID])

An event for a single crewed extravehicular activity.

Parameters:
  • type (CrewedEVA) – the type of event

  • eva_duration (timedelta) – the duration of the EVA

  • vehicle (UUID) – the UUID of the instantiated vehicle that will be used for the EVA

  • element_states (List[ElementState]) – a list of objects specifying instantiated elements and the states to which they should be changed

  • additional_demands ([UUID]) – list of UUIDs of demand models needed for EVA

class spacenet.schemas.crewed_exploration.CrewedExploration(*, name: str, type: typing_extensions.Literal[Crewed Exploration] = EventType.CrewedExploration, priority: ~spacenet.schemas.bases.ConstrainedIntValue, missionTime: ~datetime.timedelta, location: ~uuid.UUID, evaDuration: ~datetime.timedelta, duration: ~datetime.timedelta, vehicle: ~uuid.UUID, evaPerWeek: ~spacenet.schemas.types.ConstrainedFloatValue, elementStates: ~typing.List[~spacenet.schemas.state.ElementState], additionalDemands: ~typing.List[~uuid.UUID] = [])

Crewed Exploration Event schema

Parameters:
  • type (CrewedExploration) – the type of event

  • eva_duration (timedelta) – the duration of the crewed exploration

  • duration (timedelta) – the total duration of the exporation

  • vehicle (tUUID) – the UUID of the instantiated vehicle in which the crewed exploration will take place

  • eva_per_week (SafeNonNegFloat) – number of EVAs to be performed per week

  • element_states (List[ElementState]) – a list of objects specifying instantiated elements and the states to which they should be changed

  • additional_demands ([UUID]) – list of UUIDs of demand models needed for EVA

High Level Schemas

class spacenet.schemas.mission.Mission(*, name: str, startDate: datetime, events: List[Union[FlightTransport, SpaceTransport, SurfaceTransport, MoveElements, RemoveElements, CreateElements, CrewedExploration, ConsumeResources, ReconfigureElements, ReconfigureElement]], demandModels: List[Union[InstTimedImpulseDemandModel, InstRatedDemandModel, InstCrewConsumablesDemandModel]], origin: UUID, destination: UUID, returnOrigin: Optional[UUID] = None, returnDestination: Optional[UUID] = None)

A schema representing a single mission, which is represented as a list of events.

Parameters:
  • name (str) – name of mission

  • start_date (datetime) – date of mission start

  • events ([AllEvents]) – list of events occuring in mission

  • demand_models ([UUID]) – list of mission demand models by UUID

  • origin (UUID) – UUID of origin node

  • destination (UUID) – UUID of destination node

  • return_origin (UUID) – UUID of return origin node (not necessary for one-way missions)

  • return_destination (UUID) – UUID of return destination node (not necessary for one-way missions)

class spacenet.schemas.scenario.Scenario(*, name: str, createdBy: str, description: str = None, startDate: datetime, scenarioType: ScenarioType, network: Network, missionList: List[Mission], elementTemplates: List[Union[Element, ResourceContainer, ElementCarrier, HumanAgent, RoboticAgent, PropulsiveVehicle, SurfaceVehicle]], instantiatedElements: List[Union[InstElement, InstResourceContainer, InstElementCarrier, InstHumanAgent, InstRoboticAgent, InstPropulsiveVehicle, InstSurfaceVehicle]], demandModels: List[Union[TimedImpulseDemandModel, RatedDemandModel, CrewConsumablesDemandModel, SparingByMassDemandModel]], resourceList: List[Union[DiscreteResource, ContinuousResource]] = None, manifest: Optional[Manifest] = None, configuration: Configuration)

A scenario describing a space mission campaign.

Parameters:
  • name (str) – name of the scenario

  • description (str) – short description

  • start_date (datetime) – start date of mission

  • scenario_type (ScenarioType) – type of scenario

  • network (Network) – nodes and edges used

  • mission_list ([Mission]) – list of missions included in scenario

  • element_templates ([AllElements]) – list of base element objects for use in scenario

  • instantiated_elements ([AllInstElements]) – list of elements created in events

  • mission_demand_models ([AllMissionDemandModels]) – library of mission demand models used

  • resource_list ([AllResources]) – list of resources used throughout the scenario

  • manifest (Manifest) – object specifying packing of resources

  • configuration (Configuration) – object specifying specific settings for scenario

Paran str created_by:

author of the scenario

Constants

class spacenet.schemas.constants.Environment(value)

An enumeration of the environments an element can be carried in or carry elements in, either pressurized or unpressurized

class spacenet.schemas.constants.ClassOfSupply(value)

An enumeration of the ten main classes of supply, and the sub-classes of supply.

property name: str

the name of this class of supply

Type:

return