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.
- 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:
type (ResourceContainer) – the element’s type
contents ([ResourceAmount | GenericResourceAmount]) – list of resource quantities initially in container
- 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:
type (ResourceContainer) – the element’s type
contents ([ResourceAmount | GenericResourceAmount]) – list of resource quantities moved into container during spatial simulation (optional)
- 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:
type (SurfaceTransport) – type of event occuring
elements ([InstElementUUID]) – the list of UUIDs of instantiated elements being transported
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:
type (TransferResources) – type of event occurring
resources (ResourceAmount | GenericResourceAmount) – list of resource quantities to transfer
container (UUID) – UUID of the instantiated resource container to which the resource should be transferred
- 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:
type (ConsumeResources) – type of event
resources ([ResourceAmount | GenericResourceAmount]) – list of resource quantities to consume
source (UUID) – UUID of the instantiated element where the resource to be consumed is currently stored
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