Input/Output
Database Loader
- io.load_db() ModelDatabase
Loads a database from file (Excel).
- Parameters
db_file (BinaryIO) – the database file object
- Returns
the model database
- Return type
Database Model
- pydantic model spacenet.io.ModelDatabase[source]
Database stores models for nodes, edges, resources, demand models, and elements.
Show JSON schema
{ "title": "ModelDatabase", "description": "Database stores models for nodes, edges, resources, demand models, and elements.", "type": "object", "properties": { "nodes": { "title": "Nodes", "description": "List of nodes", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/LagrangeNode" }, { "$ref": "#/definitions/OrbitalNode" }, { "$ref": "#/definitions/SurfaceNode" } ] } }, "edges": { "title": "Edges", "description": "List of edges", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/FlightEdge" }, { "$ref": "#/definitions/SpaceEdge" }, { "$ref": "#/definitions/SurfaceEdge" } ] } }, "resources": { "title": "Resources", "description": "List of resources", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ContinuousResource" }, { "$ref": "#/definitions/DiscreteResource" } ] } }, "demandModels": { "title": "Demandmodels", "description": "List of demand models", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/TimedImpulseDemandModel" }, { "$ref": "#/definitions/RatedDemandModel" }, { "$ref": "#/definitions/SparingByMassDemandModel" } ] } }, "elements": { "title": "Elements", "description": "List of elements", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/Element" }, { "$ref": "#/definitions/ResourceContainer" }, { "$ref": "#/definitions/ElementCarrier" }, { "$ref": "#/definitions/SurfaceVehicle" }, { "$ref": "#/definitions/PropulsiveVehicle" }, { "$ref": "#/definitions/HumanAgent" }, { "$ref": "#/definitions/RoboticAgent" } ] } } }, "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" }, "LagrangeNode": { "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" ] }, "OrbitalNode": { "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" ] }, "SurfaceNode": { "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" ] }, "FlightEdge": { "title": "FlightEdge", "description": "A trajectory between two nodes that is known to be feasible for a given\ncargo (mass) and crew capacity under a specified flight architecture.", "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": "Edge type", "default": "Flight Edge", "enum": [ "Flight Edge" ], "type": "string" }, "origin": { "title": "Origin Node", "description": "Origin node unique identifier", "type": "string", "format": "uuid" }, "destination": { "title": "Destination Node", "description": "Destination node unique identifier", "type": "string", "format": "uuid" }, "duration": { "title": "duration", "description": "Duration of traversal between nodes", "type": "number", "format": "time-delta" }, "maxCrew": { "title": "Max Crew", "description": "Maximum number of crew to be transported", "minimum": 0, "type": "integer" }, "maxCargo": { "title": "Max Cargo", "description": "Maximum cargo (kg) to be transported", "minimum": 0, "type": "number" } }, "required": [ "name", "origin", "destination", "duration", "maxCrew", "maxCargo" ] }, "Burn": { "title": "Burn", "description": "Impulsive propulsive burn triggered at a designated time during a space\ntransport to generate a target change in velocity (delta-V).", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "time": { "title": "Time", "description": "Time relative to the start of the space transport", "type": "number", "format": "time-delta" }, "deltaV": { "title": "Deltav", "description": "Change in velocity (m/s) to be achieved", "minimum": 0, "type": "number" } }, "required": [ "time", "deltaV" ] }, "SpaceEdge": { "title": "SpaceEdge", "description": "An in-space trajectory between two nodes using a propulsive burn sequence.", "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": "Edge type", "default": "Space Edge", "enum": [ "Space Edge" ], "type": "string" }, "origin": { "title": "Origin Node", "description": "Origin node unique identifier", "type": "string", "format": "uuid" }, "destination": { "title": "Destination Node", "description": "Destination node unique identifier", "type": "string", "format": "uuid" }, "duration": { "title": "Duration", "description": "Duration of space edge", "type": "number", "format": "time-delta" }, "burns": { "title": "Burns", "description": "List of propulsive burns required to traverse the edge", "default": [], "type": "array", "items": { "$ref": "#/definitions/Burn" } } }, "required": [ "name", "origin", "destination", "duration" ] }, "SurfaceEdge": { "title": "SurfaceEdge", "description": "Surface trajectory between two surface nodes.", "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": "Edge type", "default": "Surface Edge", "enum": [ "Surface Edge" ], "type": "string" }, "origin": { "title": "Origin Node", "description": "Origin node unique identifier", "type": "string", "format": "uuid" }, "destination": { "title": "Destination Node", "description": "Destination node unique identifier", "type": "string", "format": "uuid" }, "distance": { "title": "Distance", "description": "Distance (m) of surface trajectory", "minimum": 0, "type": "number" } }, "required": [ "name", "origin", "destination", "distance" ] }, "ClassOfSupply": { "title": "ClassOfSupply", "description": "Enumeration of the ten top-level classes of supply and sub-classes of supply.", "enum": [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 101, 102, 103, 104, 105, 106, 201, 202, 203, 204, 205, 206, 301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 501, 502, 601, 602, 603, 701, 702, 703, 801, 802, 803, 804, 805, 806, 901, 902, 4011, 4012, 8041, 8042, 9021, 9022, 9023, 9024 ], "type": "integer" }, "Environment": { "title": "Environment", "description": "Enumeration of stowage environments.", "enum": [ "Pressurized", "Unpressurized" ], "type": "string" }, "ContinuousResource": { "title": "ContinuousResource", "description": "A resource instantiated in continuous (floating point) amounts.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Resource name", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "packingFactor": { "title": "Packing Factor", "description": "Mass (kg) of packing material (generic COS 5) required per unit", "minimum": 0, "type": "number" }, "units": { "title": "Units", "description": "Unit resource label (default: kg)", "default": "kg", "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "unitMass": { "title": "Unit Mass", "description": "Mass (kg) of 1.0 units", "exclusiveMinimum": 0, "type": "number" }, "unitVolume": { "title": "Unit Volume", "description": "Volume (m^3) of 1.0 units", "minimum": 0, "type": "number" }, "type": { "title": "Type", "description": "Resource type", "default": "Continuous", "enum": [ "Continuous" ], "type": "string" } }, "required": [ "name", "classOfSupply", "environment", "packingFactor", "unitMass", "unitVolume" ] }, "DiscreteResource": { "title": "DiscreteResource", "description": "A resource instantiated in discrete (integer) amounts.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Resource name", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "packingFactor": { "title": "Packing Factor", "description": "Mass (kg) of packing material (generic COS 5) required per unit", "minimum": 0, "type": "number" }, "units": { "title": "Units", "description": "Unit resource label (default: kg)", "default": "kg", "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "unitMass": { "title": "Unit Mass", "description": "Mass (kg) of 1.0 units", "exclusiveMinimum": 0, "type": "number" }, "unitVolume": { "title": "Unit Volume", "description": "Volume (m^3) of 1.0 units", "minimum": 0, "type": "number" }, "type": { "title": "Type", "description": "Resource type", "default": "Discrete", "enum": [ "Discrete" ], "type": "string" } }, "required": [ "name", "classOfSupply", "environment", "packingFactor", "unitMass", "unitVolume" ] }, "ResourceAmount": { "title": "ResourceAmount", "description": "A specified amount of a resource.", "type": "object", "properties": { "resource": { "title": "Resource UUID", "description": "Resource unique identifier", "type": "string", "format": "uuid" }, "amount": { "title": "Amount", "description": "Fixed amount of resource (units)", "type": "number" } }, "required": [ "resource", "amount" ] }, "GenericResourceAmount": { "title": "GenericResourceAmount", "description": "A specified amount of a generic resource.", "type": "object", "properties": { "classOfSupply": { "title": "Class of Suppoly", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "amount": { "title": "Amount", "description": "Fixed amount of resource (kg)", "type": "number" } }, "required": [ "classOfSupply", "environment", "amount" ] }, "TimedImpulseDemandModel": { "title": "TimedImpulseDemandModel", "description": "Demand model that generates an impulsive demand for resources.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Timed Impulse", "enum": [ "Timed Impulse" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "demands": { "title": "Demands", "description": "List of resource amounts to be demanded", "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ResourceAmount" }, { "$ref": "#/definitions/GenericResourceAmount" } ] } } }, "required": [ "name", "demands" ] }, "ResourceAmountRate": { "title": "ResourceAmountRate", "description": "A specified amount of a resource type.", "type": "object", "properties": { "resource": { "title": "Resource UUID", "description": "Resource unique identifier", "type": "string", "format": "uuid" }, "rate": { "title": "Rate", "description": "Time-rate of resource (units/day)", "type": "number" } }, "required": [ "resource", "rate" ] }, "GenericResourceAmountRate": { "title": "GenericResourceAmountRate", "description": "A specified amount of a generic resource.", "type": "object", "properties": { "classOfSupply": { "title": "Class of Suppoly", "description": "Class of supply", "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "rate": { "title": "Rate", "description": "Time-rate of resource (kg/day)", "type": "number" } }, "required": [ "classOfSupply", "environment", "rate" ] }, "RatedDemandModel": { "title": "RatedDemandModel", "description": "Demand model that generates a constant time rate demand for resources.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Rated", "enum": [ "Rated" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "demands": { "title": "Demands", "description": "List of resource amount rates to be demanded", "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ResourceAmountRate" }, { "$ref": "#/definitions/GenericResourceAmountRate" } ] } } }, "required": [ "name", "demands" ] }, "SparingByMassDemandModel": { "title": "SparingByMassDemandModel", "description": "Element demand model that generates demands for spares based on mass fraction.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "type": "string" }, "type": { "title": "Type", "description": "Demand model type", "default": "Sparing By Mass", "enum": [ "Sparing By Mass" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "unpressurizedSparesRate": { "title": "Unpressurized Spares Rate", "description": "fraction of an element mass demanded per year as unpressurized spares (generic COS 4)", "minimum": 0, "maximum": 1, "type": "number" }, "pressurizedSparesRate": { "title": "Pressurized Spares Rate", "description": "fraction of an element mass demanded per year as pressurized spares (generic COS 4)", "minimum": 0, "maximum": 1, "type": "number" }, "partsListEnabled": { "title": "Parts List Enabled", "description": "True, if the element part list identifies specific (non-generic) demands", "type": "boolean" } }, "required": [ "name", "unpressurizedSparesRate", "pressurizedSparesRate", "partsListEnabled" ] }, "StateType": { "title": "StateType", "description": "Enumeration of state types.", "enum": [ "Active", "Quiescent", "Dormant", "Decommissioned" ], "type": "string" }, "DemandModelType": { "title": "DemandModelType", "description": "Enumeration of demand model types.", "enum": [ "Crew Consumables", "Timed Impulse", "Rated", "Sparing By Mass" ], "type": "string" }, "InstElementDemandModel": { "title": "InstElementDemandModel", "description": "Base class for instantiated element demand models.", "type": "object", "properties": { "name": { "title": "Name", "description": "Instantiated demand model name", "type": "string" }, "type": { "description": "Demand model type", "allOf": [ { "$ref": "#/definitions/DemandModelType" } ] }, "templateId": { "title": "Templateid", "description": "Element demand model template unique identifier", "type": "string", "format": "uuid" } }, "required": [ "name", "type", "templateId" ] }, "State": { "title": "State", "description": "An element's operational state.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "State name", "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "type": { "description": "State type", "allOf": [ { "$ref": "#/definitions/StateType" } ] }, "demandModels": { "title": "Demand Models", "description": "List of instantiated demand models", "default": [], "type": "array", "items": { "$ref": "#/definitions/InstElementDemandModel" } } }, "required": [ "name", "type" ] }, "Part": { "title": "Part", "description": "Piece part of an element with attributes to describe failure and/or maintenance.", "type": "object", "properties": { "resource": { "title": "Resource", "description": "Unique identifier of resource", "type": "string", "format": "uuid" }, "meanTimeToFailure": { "title": "Meantimetofailure", "description": "Mean operating time to failure.", "type": "number", "format": "time-delta" }, "meanTimeToRepair": { "title": "Meantimetorepair", "description": "Mean crew time to repair.", "type": "number", "format": "time-delta" }, "massToRepair": { "title": "Masstorepair", "description": "Mass (kg, generic COS 4) required to perform a repair.", "minimum": 0, "type": "number" }, "quantity": { "title": "Quantity", "description": "Quantity of this part.", "default": 1, "minimum": 1, "type": "number" }, "dutyCycle": { "title": "Dutycycle", "description": "Fraction of time this part is in use.", "default": 1, "minimum": 0, "maximum": 1, "type": "number" } }, "required": [ "resource" ] }, "Element": { "title": "Element", "description": "Generic entity that persists over time.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Element", "enum": [ "Element" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" } }, "required": [ "name" ] }, "ResourceContainer": { "title": "ResourceContainer", "description": "Container for resources.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Resource Container", "enum": [ "Resource Container" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "maxCargoMass": { "title": "Max Cargo Mass", "description": "Cargo mass capacity constraint (kg)", "default": 0, "minimum": 0, "type": "number" }, "maxCargoVolume": { "title": "Maximum Cargo Volume", "description": "Cargo volume capacity constraint (m^3)", "default": 0, "minimum": 0, "type": "number" }, "cargoEnvironment": { "title": "Cargo Environment", "description": "Cargo stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "contents": { "title": "Resource Amount", "description": "List of contained resource amounts", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/ResourceAmount" }, { "$ref": "#/definitions/GenericResourceAmount" } ] } } }, "required": [ "name" ] }, "ElementCarrier": { "title": "ElementCarrier", "description": "Carrier of other elements.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Element Carrier", "enum": [ "Element Carrier" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "maxCargoMass": { "title": "Max Cargo Mass", "description": "Cargo mass capacity constraint (kg)", "default": 0, "minimum": 0, "type": "number" }, "maxCargoVolume": { "title": "Maximum Cargo Volume", "description": "Cargo volume capacity constraint (m^3)", "default": 0, "minimum": 0, "type": "number" }, "cargoEnvironment": { "title": "Cargo Environment", "description": "Cargo stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "contents": { "title": "Contents", "description": "List of elements (by unique identifiers) inside the carrier", "default": [], "type": "array", "items": { "type": "string", "format": "uuid" } }, "maxCrew": { "title": "Maximum Crew Count", "description": "Maximum number of human agents (crew)", "minimum": 0, "type": "integer" } }, "required": [ "name", "maxCrew" ] }, "SurfaceVehicle": { "title": "SurfaceVehicle", "description": "Surface vehicle that can traverse surface edges.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "the element's type", "default": "Surface Vehicle", "enum": [ "Surface Vehicle" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "maxCargoMass": { "title": "Max Cargo Mass", "description": "Cargo mass capacity constraint (kg)", "default": 0, "minimum": 0, "type": "number" }, "maxCargoVolume": { "title": "Maximum Cargo Volume", "description": "Cargo volume capacity constraint (m^3)", "default": 0, "minimum": 0, "type": "number" }, "cargoEnvironment": { "title": "Cargo Environment", "description": "Cargo stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "contents": { "title": "Contents", "description": "List of elements (by unique identifiers) inside the carrier", "default": [], "type": "array", "items": { "type": "string", "format": "uuid" } }, "maxCrew": { "title": "Maximum Crew Count", "description": "Maximum number of human agents (crew)", "minimum": 0, "type": "integer" }, "maxSpeed": { "title": "Maximum Speed", "description": "Maximum speed (km/hr)", "minimum": 0, "type": "number" }, "maxFuel": { "title": "Maximum Fuel", "description": "Maximum fuel amount (units)", "minimum": 0, "type": "number" }, "fuel": { "title": "Fuel", "description": "Type and amount of fuel", "anyOf": [ { "$ref": "#/definitions/ResourceAmount" }, { "$ref": "#/definitions/GenericResourceAmount" } ] } }, "required": [ "name", "maxCrew", "maxSpeed", "maxFuel", "fuel" ] }, "PropulsiveVehicle": { "title": "PropulsiveVehicle", "description": "Space vehicle with impulsive propulsion that can traverse space edges.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Propulsive Vehicle", "enum": [ "Propulsive Vehicle" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "maxCargoMass": { "title": "Max Cargo Mass", "description": "Cargo mass capacity constraint (kg)", "default": 0, "minimum": 0, "type": "number" }, "maxCargoVolume": { "title": "Maximum Cargo Volume", "description": "Cargo volume capacity constraint (m^3)", "default": 0, "minimum": 0, "type": "number" }, "cargoEnvironment": { "title": "Cargo Environment", "description": "Cargo stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "contents": { "title": "Contents", "description": "List of elements (by unique identifiers) inside the carrier", "default": [], "type": "array", "items": { "type": "string", "format": "uuid" } }, "maxCrew": { "title": "Maximum Crew Count", "description": "Maximum number of human agents (crew)", "minimum": 0, "type": "integer" }, "isp": { "title": "Specific Impulse", "description": "Specific impulse (s)", "minimum": 0, "type": "number" }, "maxFuel": { "title": "Maximum Fuel", "description": "Maximum propellant amount (units)", "minimum": 0, "type": "number" }, "fuel": { "title": "Fuel", "description": "Type and amount of propellant", "anyOf": [ { "$ref": "#/definitions/ResourceAmount" }, { "$ref": "#/definitions/GenericResourceAmount" } ] } }, "required": [ "name", "maxCrew", "isp", "maxFuel", "fuel" ] }, "HumanAgent": { "title": "HumanAgent", "description": "Human agent, i.e., a crew member.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Human Agent", "enum": [ "Human Agent" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "activeTimeFraction": { "title": "Active Time Fraction", "description": "fraction time an agent is available (0 to 1 inclusive)", "minimum": 0, "maximum": 1, "type": "number" } }, "required": [ "name", "activeTimeFraction" ] }, "RoboticAgent": { "title": "RoboticAgent", "description": "Robotic agent.", "type": "object", "properties": { "id": { "title": "Id", "description": "Unique identifier", "type": "string", "format": "uuid" }, "name": { "title": "Name", "description": "Element name", "type": "string" }, "type": { "title": "Type", "description": "Element type", "default": "Robotic Agent", "enum": [ "Robotic Agent" ], "type": "string" }, "description": { "title": "Description", "description": "Short description (optional)", "type": "string" }, "classOfSupply": { "title": "Class of Supply", "description": "Class of supply", "default": 0, "allOf": [ { "$ref": "#/definitions/ClassOfSupply" } ] }, "environment": { "title": "Environment", "description": "Required stowage environment", "default": "Unpressurized", "allOf": [ { "$ref": "#/definitions/Environment" } ] }, "accommodationMass": { "title": "Accommodation Mass", "description": "Amount of COS 5 (kg) required for stowage.", "default": 0, "minimum": 0, "type": "number" }, "mass": { "title": "Mass", "description": "Mass (kg)", "default": 0, "minimum": 0, "type": "number" }, "volume": { "title": "Volume", "description": "Volume (m^3)", "default": 0, "minimum": 0, "type": "number" }, "states": { "title": "States", "description": "List of operational states", "default": [], "type": "array", "items": { "$ref": "#/definitions/State" } }, "currentStateIndex": { "title": "Current State", "description": "Index of the current operational state", "minimum": -1, "type": "integer" }, "parts": { "title": "Parts", "description": "List of constituent parts", "default": [], "type": "array", "items": { "$ref": "#/definitions/Part" } }, "icon": { "title": "Icon", "type": "string" }, "activeTimeFraction": { "title": "Active Time Fraction", "description": "fraction time an agent is available (0 to 1 inclusive)", "minimum": 0, "maximum": 1, "type": "number" } }, "required": [ "name", "activeTimeFraction" ] } } }
- field demand_models: List[Union[TimedImpulseDemandModel, RatedDemandModel, SparingByMassDemandModel]] = [] (alias 'demandModels')
List of demand models
- field edges: List[Union[FlightEdge, SpaceEdge, SurfaceEdge]] = []
List of edges
- field elements: List[Union[Element, ResourceContainer, ElementCarrier, SurfaceVehicle, PropulsiveVehicle, HumanAgent, RoboticAgent]] = []
List of elements
- field nodes: List[Union[LagrangeNode, OrbitalNode, SurfaceNode]] = []
List of nodes
- field resources: List[Union[ContinuousResource, DiscreteResource]] = []
List of resources
- get_edge(name: str) Union[FlightEdge, SpaceEdge, SurfaceEdge][source]
Gets the edge matching a given name.
- get_node(name: str) Union[LagrangeNode, OrbitalNode, SurfaceNode][source]
Gets the node matching a given name.
- instantiate_element(cls, template_name: str, prefix: Optional[str] = None, suffix: Optional[str] = None) Union[InstElement, InstResourceContainer, InstElementCarrier, InstPropulsiveVehicle, InstSurfaceVehicle, InstHumanAgent, InstRoboticAgent][source]
Instantiates an element for a given template.