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 name: str [Required]

Name of this mission.

field satellites: List[Union[Satellite, TrainConstellation, WalkerConstellation]] = []

List of member space systems.

field stations: List[GroundStation] = []

List of member ground stations.