Mission Models
Architecture
- pydantic model tatc.schemas.Architecture[source]
Mission architecture.
Show JSON schema
{ "title": "Architecture", "description": "Mission architecture.", "type": "object", "properties": { "name": { "title": "Name", "description": "Name of this mission.", "type": "string" }, "satellites": { "title": "Satellites", "description": "List of member space systems.", "default": [], "type": "array", "items": { "anyOf": [ { "$ref": "#/definitions/Satellite" }, { "$ref": "#/definitions/TrainConstellation" }, { "$ref": "#/definitions/WalkerConstellation" } ] } }, "stations": { "title": "Stations", "description": "List of member ground stations.", "default": [], "type": "array", "items": { "$ref": "#/definitions/GroundStation" } } }, "required": [ "name" ], "definitions": { "TwoLineElements": { "title": "TwoLineElements", "description": "Orbit defined with standard two line elements.", "type": "object", "properties": { "type": { "title": "Type", "description": "Orbit type discriminator.", "default": "tle", "enum": [ "tle" ], "type": "string" }, "tle": { "title": "Tle", "description": "Two line elements.", "example": [ "1 25544U 98067A 21156.30527927 .00003432 00000-0 70541-4 0 9993", "2 25544 51.6455 41.4969 0003508 68.0432 78.3395 15.48957534286754" ], "minItems": 2, "maxItems": 2, "type": "array", "items": { "type": "string" } } }, "required": [ "tle" ] }, "CircularOrbit": { "title": "CircularOrbit", "description": "Orbit specification using Keplerian elements for elliptical motion -- circular motion case.", "type": "object", "properties": { "altitude": { "title": "Altitude", "description": "Mean altitude (meters).", "type": "number" }, "true_anomaly": { "title": "True Anomaly", "description": "True anomaly (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" }, "epoch": { "title": "Epoch", "description": "Timestamp (epoch) of the initial orbital state.", "default": "2023-04-01T19:44:08.701722+00:00", "type": "string", "format": "date-time" }, "type": { "title": "Type", "description": "Orbit type discriminator.", "default": "circular", "enum": [ "circular" ], "type": "string" }, "inclination": { "title": "Inclination", "description": "Inclination (degrees).", "default": 0, "exclusiveMaximum": 180, "minimum": 0, "type": "number" }, "right_ascension_ascending_node": { "title": "Right Ascension Ascending Node", "description": "Right ascension of ascending node (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" } }, "required": [ "altitude" ] }, "SunSynchronousOrbit": { "title": "SunSynchronousOrbit", "description": "Orbit defined by sun synchronous parameters.", "type": "object", "properties": { "altitude": { "title": "Altitude", "description": "Mean altitude (meters).", "exclusiveMaximum": 5980991.228584941, "minimum": 0, "type": "number" }, "true_anomaly": { "title": "True Anomaly", "description": "True anomaly (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" }, "epoch": { "title": "Epoch", "description": "Timestamp (epoch) of the initial orbital state.", "default": "2023-04-01T19:44:08.701722+00:00", "type": "string", "format": "date-time" }, "type": { "title": "Type", "description": "Orbit type discriminator.", "default": "sso", "enum": [ "sso" ], "type": "string" }, "equator_crossing_time": { "title": "Equator Crossing Time", "description": "Equator crossing time (local solar time).", "type": "string", "format": "time" }, "equator_crossing_ascending": { "title": "Equator Crossing Ascending", "description": "True, if the equator crossing time is ascending (south-to-north).", "default": true, "type": "boolean" } }, "required": [ "altitude", "equator_crossing_time" ] }, "KeplerianOrbit": { "title": "KeplerianOrbit", "description": "Orbit specification using Keplerian elements for elliptical motion.", "type": "object", "properties": { "altitude": { "title": "Altitude", "description": "Mean altitude (meters).", "type": "number" }, "true_anomaly": { "title": "True Anomaly", "description": "True anomaly (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" }, "epoch": { "title": "Epoch", "description": "Timestamp (epoch) of the initial orbital state.", "default": "2023-04-01T19:44:08.701722+00:00", "type": "string", "format": "date-time" }, "type": { "title": "Type", "description": "Orbit type discriminator.", "default": "keplerian", "enum": [ "keplerian" ], "type": "string" }, "inclination": { "title": "Inclination", "description": "Inclination (degrees).", "default": 0, "exclusiveMaximum": 180, "minimum": 0, "type": "number" }, "right_ascension_ascending_node": { "title": "Right Ascension Ascending Node", "description": "Right ascension of ascending node (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" }, "eccentricity": { "title": "Eccentricity", "description": "Eccentricity.", "default": 0, "minimum": 0, "type": "number" }, "perigee_argument": { "title": "Perigee Argument", "description": "Perigee argument (degrees).", "default": 0, "exclusiveMaximum": 360, "minimum": 0, "type": "number" } }, "required": [ "altitude" ] }, "Instrument": { "title": "Instrument", "description": "Remote sensing instrument.", "type": "object", "properties": { "name": { "title": "Name", "description": "Instrument name.", "type": "string" }, "field_of_regard": { "title": "Field Of Regard", "description": "Angular field (degrees) of possible observations (with pointing).", "default": 180, "exclusiveMinimum": 0, "maximum": 360, "example": 50, "type": "number" }, "min_access_time": { "title": "Min Access Time", "description": "Minimum access (integration) time to record an observation.", "default": 0.0, "example": "0:00:10", "type": "number", "format": "time-delta" }, "req_self_sunlit": { "title": "Req Self Sunlit", "description": "Required instrument sunlit state for valid observation (`True`: sunlit, `False`: eclipse, `None`: no requirement).", "type": "boolean" }, "req_target_sunlit": { "title": "Req Target Sunlit", "description": "Required target sunlit state for valid observation (`True`: sunlit, `False`: eclipse, `None`: no requirement).", "type": "boolean" } }, "required": [ "name" ] }, "Satellite": { "title": "Satellite", "description": "Single satellite.", "type": "object", "properties": { "name": { "title": "Name", "description": "Space system name.", "example": "International Space Station", "type": "string" }, "orbit": { "title": "Orbit", "description": "Orbit specification.", "anyOf": [ { "$ref": "#/definitions/TwoLineElements" }, { "$ref": "#/definitions/CircularOrbit" }, { "$ref": "#/definitions/SunSynchronousOrbit" }, { "$ref": "#/definitions/KeplerianOrbit" } ] }, "instruments": { "title": "Instruments", "description": "List of assigned instruments.", "default": [], "type": "array", "items": { "$ref": "#/definitions/Instrument" } }, "type": { "title": "Type", "description": "Space system type discriminator.", "default": "satellite", "enum": [ "satellite" ], "type": "string" } }, "required": [ "name", "orbit" ] }, "TrainConstellation": { "title": "TrainConstellation", "description": "A constellation that arranges member satellites in sequence.", "type": "object", "properties": { "name": { "title": "Name", "description": "Space system name.", "example": "International Space Station", "type": "string" }, "orbit": { "title": "Orbit", "description": "Lead orbit for this constellation.", "anyOf": [ { "$ref": "#/definitions/TwoLineElements" }, { "$ref": "#/definitions/SunSynchronousOrbit" }, { "$ref": "#/definitions/CircularOrbit" }, { "$ref": "#/definitions/KeplerianOrbit" } ] }, "instruments": { "title": "Instruments", "description": "List of assigned instruments.", "default": [], "type": "array", "items": { "$ref": "#/definitions/Instrument" } }, "type": { "title": "Type", "description": "Space system type discriminator.", "default": "train", "enum": [ "train" ], "type": "string" }, "number_satellites": { "title": "Number Satellites", "description": "The count of the number of satellites.", "default": 1, "minimum": 1, "type": "integer" }, "interval": { "title": "Interval", "description": "The local time interval between satellites in a train constellation.", "type": "number", "format": "time-delta" }, "repeat_ground_track": { "title": "Repeat Ground Track", "description": "True, if the train satellites should repeat the same ground track.", "default": true, "type": "boolean" } }, "required": [ "name", "orbit", "interval" ] }, "WalkerConfiguration": { "title": "WalkerConfiguration", "description": "Enumeration of different Walker constellation configurations.", "enum": [ "delta", "star" ], "type": "string" }, "WalkerConstellation": { "title": "WalkerConstellation", "description": "A constellation that arranges member satellites following the Walker pattern.", "type": "object", "properties": { "name": { "title": "Name", "description": "Space system name.", "example": "International Space Station", "type": "string" }, "orbit": { "title": "Orbit", "description": "Lead orbit for this constellation.", "anyOf": [ { "$ref": "#/definitions/TwoLineElements" }, { "$ref": "#/definitions/SunSynchronousOrbit" }, { "$ref": "#/definitions/CircularOrbit" }, { "$ref": "#/definitions/KeplerianOrbit" } ] }, "instruments": { "title": "Instruments", "description": "List of assigned instruments.", "default": [], "type": "array", "items": { "$ref": "#/definitions/Instrument" } }, "type": { "title": "Type", "description": "Space system type discriminator.", "default": "walker", "enum": [ "walker" ], "type": "string" }, "configuration": { "description": "Walker configuration.", "default": "delta", "allOf": [ { "$ref": "#/definitions/WalkerConfiguration" } ] }, "number_satellites": { "title": "Number Satellites", "description": "Number of satellites in the constellation.", "default": 1, "minimum": 1, "type": "integer" }, "number_planes": { "title": "Number Planes", "description": "The number of equally-spaced planes in a Walker Delta constellation. Ranges from 1 to (number of satellites).", "default": 1, "minimum": 1, "type": "integer" }, "relative_spacing": { "title": "Relative Spacing", "description": "Relative spacing of satellites between plans for a Walker Delta constellation. Ranges from 0 for equal true anomaly to (number of planes) - 1. For example, `relative_spacing=1` means the true anomaly is shifted by `360/number_satellites` between adjacent planes.", "default": 0, "minimum": 0, "type": "integer" } }, "required": [ "name", "orbit" ] }, "GroundStation": { "title": "GroundStation", "description": "Ground station in the WGS 84 coordinate system.", "type": "object", "properties": { "name": { "title": "Name", "description": "Ground station name", "example": "station 1", "type": "string" }, "latitude": { "title": "Latitude", "description": "Latitude (decimal degrees) in the WGS 84 coordinate system.", "minimum": -90, "maximum": 90, "example": 40.74259, "type": "number" }, "longitude": { "title": "Longitude", "description": "Longitude (decimal degrees) in the WGS 84 coordinate system.", "minimum": -180, "maximum": 180, "example": -74.02686, "type": "number" }, "elevation": { "title": "Elevation", "description": "Elevation (meters) above datum in the WGS 84 coordinate system.", "default": 0, "type": "number" }, "min_elevation_angle": { "title": "Min Elevation Angle", "description": "The minimum elevation angle (decimal degrees) required for satellite communication.", "default": 0, "minimum": 0, "maximum": 90, "type": "number" }, "min_access_time": { "title": "Min Access Time", "description": "Minimum access (integration) time required for satellite communication.", "default": 0.0, "example": "0:00:10", "type": "number", "format": "time-delta" } }, "required": [ "name", "latitude", "longitude" ] } } }
- Fields
name (str)satellites (List[Union[tatc.schemas.satellite.Satellite, tatc.schemas.satellite.TrainConstellation, tatc.schemas.satellite.WalkerConstellation]])stations (List[tatc.schemas.point.GroundStation])
- field satellites: List[Union[Satellite, TrainConstellation, WalkerConstellation]] = []
List of member space systems.
- field stations: List[GroundStation] = []
List of member ground stations.