Nodes

Nodes define stable locations in the exploration network.

Body

enum spacenet.schemas.Body(value)[source]

An enumeration of planetary bodies.

Member Type

str

Valid values are as follows:

SUN = <Body.SUN: 'Sun'>

Sun

EARTH = <Body.EARTH: 'Earth'>

Earth

MOON = <Body.MOON: 'Moon'>

Moon

MARS = <Body.MARS: 'Mars'>

Mars

Surface Node

pydantic model spacenet.schemas.SurfaceNode[source]

Stable location on the surface of a planetary body.

Show JSON schema
{
   "title": "SurfaceNode",
   "description": "Stable location on the surface of a planetary body.",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "description": "Unique identifier",
         "type": "string",
         "format": "uuid"
      },
      "name": {
         "title": "Name",
         "description": "Location name",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "description": "Short description of this location.",
         "type": "string"
      },
      "contents": {
         "title": "Contents",
         "description": "List of elements (by unique identifiers) located at this location.",
         "default": [],
         "type": "array",
         "items": {
            "$ref": "#/definitions/InstElementUUID"
         }
      },
      "type": {
         "title": "Type",
         "description": "Node type",
         "default": "Surface Node",
         "enum": [
            "Surface Node"
         ],
         "type": "string"
      },
      "body1": {
         "title": "Body 1",
         "description": "Primary planetary body",
         "default": "Earth",
         "allOf": [
            {
               "$ref": "#/definitions/Body"
            }
         ]
      },
      "latitude": {
         "title": "Latitude",
         "description": "Latitude (decimal degrees, -90 to 90 inclusive)",
         "minimum": -90,
         "maximum": 90,
         "type": "number"
      },
      "longitude": {
         "title": "Longitude",
         "description": "Longitude (decimal degrees, -180 to 180 inclusive)",
         "minimum": -180,
         "maximum": 180,
         "type": "number"
      }
   },
   "required": [
      "name",
      "latitude",
      "longitude"
   ],
   "definitions": {
      "InstElementUUID": {
         "title": "InstElementUUID",
         "description": "Instantiated element referenced by unique identifier.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            }
         }
      },
      "Body": {
         "title": "Body",
         "description": "An enumeration of planetary bodies.",
         "enum": [
            "Sun",
            "Earth",
            "Moon",
            "Mars"
         ],
         "type": "string"
      }
   }
}

field body_1: Body = Body.EARTH (alias 'body1')

Primary planetary body

field contents: List[InstElementUUID] = []

List of elements (by unique identifiers) located at this location.

field description: Optional[str] = None

Short description of this location.

field id: UUID [Optional]

Unique identifier

field latitude: float [Required]

Latitude (decimal degrees, -90 to 90 inclusive)

Constraints
  • minimum = -90

  • maximum = 90

field longitude: float [Required]

Longitude (decimal degrees, -180 to 180 inclusive)

Constraints
  • minimum = -180

  • maximum = 180

field name: str [Required]

Location name

field type: typing_extensions.Literal[Surface Node] = NodeType.SURFACE

Node type

Orbital Node

pydantic model spacenet.schemas.OrbitalNode[source]

Stable location orbiting a planetary body.

Show JSON schema
{
   "title": "OrbitalNode",
   "description": "Stable location orbiting a planetary body.",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "description": "Unique identifier",
         "type": "string",
         "format": "uuid"
      },
      "name": {
         "title": "Name",
         "description": "Location name",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "description": "Short description of this location.",
         "type": "string"
      },
      "contents": {
         "title": "Contents",
         "description": "List of elements (by unique identifiers) located at this location.",
         "default": [],
         "type": "array",
         "items": {
            "$ref": "#/definitions/InstElementUUID"
         }
      },
      "type": {
         "title": "Type",
         "description": "Node type",
         "default": "Orbital Node",
         "enum": [
            "Orbital Node"
         ],
         "type": "string"
      },
      "body1": {
         "title": "Body 1",
         "description": "Primary planetary body",
         "default": "Earth",
         "allOf": [
            {
               "$ref": "#/definitions/Body"
            }
         ]
      },
      "apoapsis": {
         "title": "Apoapsis",
         "description": "Major orbit radius (m)",
         "minimum": 0,
         "type": "number"
      },
      "periapsis": {
         "title": "Periapsis",
         "description": "Minor orbit radius (m)",
         "minimum": 0,
         "type": "number"
      },
      "inclination": {
         "title": "Inclination",
         "description": "Orbit inclination (decimal degrees, 0 to 180 inclusive)",
         "minimum": 0,
         "maximum": 180,
         "type": "number"
      }
   },
   "required": [
      "name",
      "apoapsis",
      "periapsis",
      "inclination"
   ],
   "definitions": {
      "InstElementUUID": {
         "title": "InstElementUUID",
         "description": "Instantiated element referenced by unique identifier.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            }
         }
      },
      "Body": {
         "title": "Body",
         "description": "An enumeration of planetary bodies.",
         "enum": [
            "Sun",
            "Earth",
            "Moon",
            "Mars"
         ],
         "type": "string"
      }
   }
}

field apoapsis: float [Required]

Major orbit radius (m)

Constraints
  • minimum = 0

field body_1: Body = Body.EARTH (alias 'body1')

Primary planetary body

field contents: List[InstElementUUID] = []

List of elements (by unique identifiers) located at this location.

field description: Optional[str] = None

Short description of this location.

field id: UUID [Optional]

Unique identifier

field inclination: float [Required]

Orbit inclination (decimal degrees, 0 to 180 inclusive)

Constraints
  • minimum = 0

  • maximum = 180

field name: str [Required]

Location name

field periapsis: float [Required]

Minor orbit radius (m)

Constraints
  • minimum = 0

field type: typing_extensions.Literal[Orbital Node] = NodeType.ORBITAL

Node type

Lagrange Node

pydantic model spacenet.schemas.LagrangeNode[source]

Stable location at a Lagrange point between two bodies.

Show JSON schema
{
   "title": "LagrangeNode",
   "description": "Stable location at a Lagrange point between two bodies.",
   "type": "object",
   "properties": {
      "id": {
         "title": "Id",
         "description": "Unique identifier",
         "type": "string",
         "format": "uuid"
      },
      "name": {
         "title": "Name",
         "description": "Location name",
         "type": "string"
      },
      "description": {
         "title": "Description",
         "description": "Short description of this location.",
         "type": "string"
      },
      "contents": {
         "title": "Contents",
         "description": "List of elements (by unique identifiers) located at this location.",
         "default": [],
         "type": "array",
         "items": {
            "$ref": "#/definitions/InstElementUUID"
         }
      },
      "type": {
         "title": "Type",
         "description": "Node type",
         "default": "Lagrange Node",
         "enum": [
            "Lagrange Node"
         ],
         "type": "string"
      },
      "body1": {
         "title": "Body 1",
         "description": "Primary planetary body",
         "default": "Earth",
         "allOf": [
            {
               "$ref": "#/definitions/Body"
            }
         ]
      },
      "body2": {
         "title": "Body 2",
         "description": "Secondary Lagrange point body",
         "allOf": [
            {
               "$ref": "#/definitions/Body"
            }
         ]
      },
      "lpNumber": {
         "title": "LP Number",
         "description": "Lagrange point number (1 to 5)",
         "minimum": 1,
         "maximum": 5,
         "type": "integer"
      }
   },
   "required": [
      "name",
      "body2",
      "lpNumber"
   ],
   "definitions": {
      "InstElementUUID": {
         "title": "InstElementUUID",
         "description": "Instantiated element referenced by unique identifier.",
         "type": "object",
         "properties": {
            "id": {
               "title": "Id",
               "description": "Unique identifier",
               "type": "string",
               "format": "uuid"
            }
         }
      },
      "Body": {
         "title": "Body",
         "description": "An enumeration of planetary bodies.",
         "enum": [
            "Sun",
            "Earth",
            "Moon",
            "Mars"
         ],
         "type": "string"
      }
   }
}

field body_1: Body = Body.EARTH (alias 'body1')

Primary planetary body

field body_2: Body [Required] (alias 'body2')

Secondary Lagrange point body

field contents: List[InstElementUUID] = []

List of elements (by unique identifiers) located at this location.

field description: Optional[str] = None

Short description of this location.

field id: UUID [Optional]

Unique identifier

field lp_number: int [Required] (alias 'lpNumber')

Lagrange point number (1 to 5)

Constraints
  • minimum = 1

  • maximum = 5

field name: str [Required]

Location name

field type: typing_extensions.Literal[Lagrange Node] = NodeType.LAGRANGE

Node type