Abstract
With the emergence of large-scale constellations and commercial services to supplement government programs, space systems engineering must draw on new approaches to improve standardized information exchange across organization boundaries. This chapter models distributed space systems in the Tradespace Analysis Tool for Constellations (TAT-C) using JavaScript Object Notation (JSON) Schema to improve interoperability among disparate systems engineering analysis tools. JSON Schema is a standardized vocabulary to define object schemas using the JavaScript Object Notation (JSON) encoding. TAT-C object schemas define four types of orbits, observing instruments, standalone satellites, and two constellation configurations (train and Walker). The proposed schema has been implemented in TAT-C to structure inputs and outputs to analysis functions using a web-based Representational State Transfer (REST) Hypertext Transfer Protocol (HTTP) interface specified by OpenAPI. An example JSON request document demonstrates how the object schema encodes and formats inputs to analyze coverage statistics over the United States for a proposed space mission with five satellites.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
J.L. Moigne, M.M. Little, M.C. Cole, New observing strategy (NOS) for future earth science missions, in 2019 IEEE International Geoscience and Remote Sensing Symposium, Yokohama, Japan, (IEEE, 2019)
J.P. Hale, P. Zimmerman, G. Kukkala, J. Guerrero, P. Kobryn, B. Puchek, M. Bisconti, C. Baldwin, M. Mulpuri, Digital model-based engineering: expectations, prerequisites, and challenges of infusion. NASA, Tech. Rep. NASA/TM-2017-219633, July 2017
S. Wolny, A. Mazak, C. Carpella, V. Geist, M. Wimmer, Thirteen years of SysML: a systematic mapping study. Softw. Syst. Model. 19, 111–169 (2020)
H.A.H. Handley, W. Khallouli, J. Huang, W. Edmonson, N. Kibret, Maintaining the consistency of SysML model exports to XML Metadata Interchange (XMI), in 2021 IEEE International Systems Conference, Vancouver, Canada, (IEEE, 2021)
M. Bone, M. Blackburn, B. Kruse, J. Dzielski, T. Hagedorn, I. Grosse, Toward an interoperability and integration framework to enable digital thread. Systems 6, 46 (2018)
JSON Schema, JSON schema, version 2020-12 (2020) [Online]. Available: http://json-schema.org
The Linux Foundation, OpenAPI specification, version 3.1.0 (2021) [Online]. Available: https://spec.openapis.org/oas/v3.1.0
C.D. Ball, I.J. Tapia-Tamayo, M. Paolieri, A.J. O’Brien, M. French, J.T. Johnson, P. Grogan, Integrated constellation analysis tools to support new observing strategy mission design, in CubeSats and SmallSats for Remote Sensing V, vol. 11832, no. 1183208, (SPIE, San Diego, 2021)
R. Arp, B. Smith, A.D. Spear, Building Ontologies with Basic Formal Ontology (MIT Press, Cambridge, 2015)
A. Tolk, What comes after the semantic web – PADS implications for the dynamic web, in 20th Workshop on Principles of Advanced and Distributed Simulation, Singapore, (IEEE, 2006)
R. Guha, D. Brickley, S. Macbeth, Schema.org: evolution of structured data on the web. Commun. ACM 59(2), 44–51 (2016)
A.P. Cox, C.K. Nebelecky, R. Rudnicki, W.A. Tagliaferri, J.L. Crassidis, B. Smith, The space object ontology, in 19th International Conference on Information Fusion, Heidelberg, Germany, (IEEE, 2016)
R.J. Rovetto, An ontology for satellite databases. Earth Sci. Inf. 10, 417–427 (2017)
A. Berquand, Y. Moshfeghi, A. Riccardi, Space mission design ontology: extraction of domain-specific entities and concepts similarity analysis, in AIAA SciTech 2020 Forum, no. 2020-2253, Orlando, FL (2020)
J.S. Jenkins, N.F. Rouquette, Semantically rigorous systems engineering modeling using SysML and OWL, in 5th International Workshop on Systems & Concurrent Engineering for Space Applications, Lisbon, Portugal (2016) [Online]. Available: http://hdl.handle.net/2014/43338
C. Hennig, A. Viehl, B. Kampgen, H. Eisenmann, Ontology-based design of space systems, in International Semantic Web Conference, Kobe, Japan, (Springer, 2016), pp. 308–324
L. Yang, K. Cormican, M. Yu, Ontology-based systems engineering; a state-of-the-art review. Comput. Ind. 111, 148–171 (2019)
L. Portelli, M. Sabatini, P.T. Grogan, Ontology development for knowledge-driven distributed space mission systems engineering, in AIAA SciTech 2019 Forum, no. 2019-1032, San Diego, CA (2019)
S. Colvin and Contributors, Pydantic, version 1.10.2 (2022) [Online]. Available: https://github.com/samuelcolvin/pydantic/
S. Ramírez, FastAPI, version 0.88.0 (2022) [Online]. Available: https://github.com/tiangolo/fastapi
Stevens Institute of Technology, Tradespace analysis tool for constellations, version 3.1.2 (2022) [Online]. Available: https://github.com/code-lab-org/tatc
Network Working Group, Date and time on the internet: timestamps, RFC 3339 (2002) [Online]. Available: https://datatracker.ietf.org/doc/html/rfc3339
Internet Engineering Task Force, The GeoJSON format, RFC 7946 (2016) [Online]. Available: https://datatracker.ietf.org/doc/html/rfc7946
Á. González, Measurement of areas on a sphere using Fibonacci and latitude–longitude lattices. Math. Geosci. 42(49), 49–64 (2010)
CesiumJS Contributors, CesiumJS, version 1.100 (2022) [Online]. Available: https://github.com/CesiumGS/cesium
Acknowledgments
This material is based upon work supported by the National Aeronautics and Space Administration (NASA) under Grant Numbers 80NSSC20K1118 and 80NSSC21K1515 issued through the Earth Science Technology Office.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix A: JSON Schema Listings
Appendix A: JSON Schema Listings
The following code listings document TAT-C objects in JSON Schema specification.
Listing 2
Two-line elements object
TwoLineElements: { type: "object", required: [ "tle" ], properties: { type: { type: "string", enum: [ "tle" ], default: "tle" }, tle: { type: "array", minItems: 2, maxItems: 2, items: { type: "string" } } } }
Listing 3
Circular orbit object
CircularOrbit: { type: "object", required: [ "altitude" ], properties: { type: { type: "string", enum: [ "circular" ], default: "circular" }, altitude: { type: "number" }, trueAnomaly: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 }, epoch: { type: "string", format: "date-time" }, inclination: { type: "number", minimum: 0, exclusiveMaximum: 180, default: 0 }, rightAscensionAscendingNode: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 } } }
Listing 4
Keplerian orbit object
KeplerianOrbit: { type: "object", required: [ "altitude" ], properties: { type: { type: "string", enum: [ "circular" ], default: "circular" }, altitude: { type: "number" }, trueAnomaly: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 }, epoch: { type: "string", format: "date-time" }, inclination: { type: "number", minimum: 0, exclusiveMaximum: 180, default: 0 }, rightAscensionAscendingNode: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 }, eccentricity: { type: "number", minimum: 0, default: 0 }, perigeeArgument: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 } } }
Listing 5
Sun-synchronous orbit object
SunSynchronousOrbit: { type: "object", required: [ "altitude", "equatorCrossingTime" ], properties: { type: { type: "string", enum: [ "sso" ], default: "sso" }, altitude: { type: "number" }, trueAnomaly: { type: "number", minimum: 0, exclusiveMaximum: 360, default: 0 }, epoch: { type: "string", format: "date-time" }, equatorCrossingTime: { type: "string", format: "time" }, equatorCrossingAscending: { type: "boolean", default: true } } }
Listing 6
Instrument object
Instrument: { type: "object", required: [ "name" ], properties: { name: { type: "string" }, fieldOfRegard: { type: "number", exclusiveMinimum: 0, maximum: 360, default: 180 }, minAccessTime: { type: "number", format: "time-delta", default: 0 }, reqSelfSunlit: { type: "boolean" }, reqTargetSunlit: { type: "boolean" } } }
Listing 7
Satellite object
Satellite: { type: "object", required: [ "name", "orbit" ], properties: { type: { type: "string", enum: [ "satellite" ], default: "satellite" }, name: { type: "string" }, orbit: { anyOf: [ {$ref: "#/TwoLineElements"}, {$ref: "#/CircularOrbit"}, {$ref: "#/SunSynchronousOrbit"}, {$ref: "#/KeplerianOrbit"} ] }, instruments: { type: "array", items: {$ref: "#/Instrument"}, default: [] } } }
Listing 8
Train constellation object
TrainConstellation: { type: "object", required: [ "name", "interval", "orbit" ], properties: { type: { type: "string", enum: [ "train" ], default: "train" }, name: { type: "string" }, orbit: { anyOf: [ {$ref: "#/TwoLineElements"}, {$ref: "#/CircularOrbit"}, {$ref: "#/SunSynchronousOrbit"}, {$ref: "#/KeplerianOrbit"} ] }, instruments: { type: "array", items: {$ref: "#/Instrument"}, default: [] }, numberSatellites: { type: "integer", minimum: 1, default: 1 }, interval: { type: "number", format: "time-delta" } } }
Listing 9
Walker constellation object in JSON Schema
WalkerConstellation: { type: "object", required: [ "name", "orbit" ], properties: { type: { type: "string", enum: [ "walker" ], default: "walker" }, name: { type: "string" }, orbit: { anyOf: [ {$ref: "#/TwoLineElements"}, {$ref: "#/CircularOrbit"}, {$ref: "#/SunSynchronousOrbit"}, {$ref: "#/KeplerianOrbit"} ] }, instruments: { type: "array", items: {$ref: "#/Instrument"}, default: [] }, configuration: { type: "string", enum: [ "delta", "star" ], default: "delta" }, numberSatellites: { type: "integer", minimum: 1, default: 1 }, numberPlanes: { type: "integer", minimum: 1, default: 1 }, relativeSpacing: { type: "integer", minimum: 0, default: 0 } } }
Listing 10
Point object
Point: { type: "object", required: [ "id", "latitude", "longitude" ], properties: { id: { type: "integer", minimum: 0 }, latitude: { type: "number", minimum: -90, maximum: 90 }, longitude: { type: "number", minimum: -180, maximum: 180 } } }
Listing 11
Point generator object
PointGenerator: { type: "object", properties: { method: { type: "string", enum: [ "cubed_square", "fibonacci_lattice" ], default: "cubed_square" }, distance: { type: "number", default: 1000000 }, region: { anyOf: [ {$ref: #/Polygon"}, { type: "string", minLength: 3, maxLength: 3 } ] } } }
Listing 12
Coverage analysis request object
CoverageAnalysisRequest: { type: "object", required: [ "satellites", "start", "end", "points" ], properties: { satellites: { type: "array", items: { anyOf: [ "#/Satellite", "#/TrainConstellation", "#/WalkerConstellation", ] } }, start: { type: "string", format: "date-time" }, end: { type: "string", format: "date-time" }, points: { anyOf: [ { type: "array", items: {$ref: "#/Point"} }, {$ref: #/PointGenerator"} ] } } }
Listing 13
Coverage analysis response object
CoverageAnalysisResponse: { type: "object", required: [ "points" ], properties: { points: { allOf: [ {$ref: #/FeatureCollection"} ] } } }
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Grogan, P.T., Tapia, J.I. (2024). Using JSON Schema to Define a Systems Modeling Vocabulary: The Tradespace Analysis Tool for Constellations (TAT-C). In: Verma, D., Madni, A.M., Hoffenson, S., Xiao, L. (eds) The Proceedings of the 2023 Conference on Systems Engineering Research. CSER 2023. Conference on Systems Engineering Research Series. Springer, Cham. https://doi.org/10.1007/978-3-031-49179-5_4
Download citation
DOI: https://doi.org/10.1007/978-3-031-49179-5_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-49178-8
Online ISBN: 978-3-031-49179-5
eBook Packages: EngineeringEngineering (R0)