Skip to main content

Using JSON Schema to Define a Systems Modeling Vocabulary: The Tradespace Analysis Tool for Constellations (TAT-C)

  • Conference paper
  • First Online:
The Proceedings of the 2023 Conference on Systems Engineering Research (CSER 2023)

Part of the book series: Conference on Systems Engineering Research Series ((CSERS))

Included in the following conference series:

  • 85 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 219.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD 279.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. 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)

    Google Scholar 

  2. 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

    Google Scholar 

  3. 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)

    Article  Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Article  Google Scholar 

  6. JSON Schema, JSON schema, version 2020-12 (2020) [Online]. Available: http://json-schema.org

  7. The Linux Foundation, OpenAPI specification, version 3.1.0 (2021) [Online]. Available: https://spec.openapis.org/oas/v3.1.0

  8. 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)

    Google Scholar 

  9. R. Arp, B. Smith, A.D. Spear, Building Ontologies with Basic Formal Ontology (MIT Press, Cambridge, 2015)

    Book  Google Scholar 

  10. 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)

    Google Scholar 

  11. R. Guha, D. Brickley, S. Macbeth, Schema.org: evolution of structured data on the web. Commun. ACM 59(2), 44–51 (2016)

    Article  Google Scholar 

  12. 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)

    Google Scholar 

  13. R.J. Rovetto, An ontology for satellite databases. Earth Sci. Inf. 10, 417–427 (2017)

    Article  Google Scholar 

  14. 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)

    Google Scholar 

  15. 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

  16. 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

    Google Scholar 

  17. L. Yang, K. Cormican, M. Yu, Ontology-based systems engineering; a state-of-the-art review. Comput. Ind. 111, 148–171 (2019)

    Article  Google Scholar 

  18. 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)

    Google Scholar 

  19. S. Colvin and Contributors, Pydantic, version 1.10.2 (2022) [Online]. Available: https://github.com/samuelcolvin/pydantic/

  20. S. Ramírez, FastAPI, version 0.88.0 (2022) [Online]. Available: https://github.com/tiangolo/fastapi

  21. Stevens Institute of Technology, Tradespace analysis tool for constellations, version 3.1.2 (2022) [Online]. Available: https://github.com/code-lab-org/tatc

  22. Network Working Group, Date and time on the internet: timestamps, RFC 3339 (2002) [Online]. Available: https://datatracker.ietf.org/doc/html/rfc3339

  23. Internet Engineering Task Force, The GeoJSON format, RFC 7946 (2016) [Online]. Available: https://datatracker.ietf.org/doc/html/rfc7946

  24. Á. González, Measurement of areas on a sphere using Fibonacci and latitude–longitude lattices. Math. Geosci. 42(49), 49–64 (2010)

    Article  MathSciNet  Google Scholar 

  25. CesiumJS Contributors, CesiumJS, version 1.100 (2022) [Online]. Available: https://github.com/CesiumGS/cesium

Download references

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

Authors

Corresponding author

Correspondence to Paul T. Grogan .

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

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics