# Copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH
# GraphQL Schema for Service ProvideSensorTracksCms
# This service allows the CMS to obtain an overview of (real and/or simulated) air
# / land / space / surface objects observed or simulated. Information may cover all
# aspects of a track such as kinematic and amplifying information.
# The service does not cover:
#
# - additional track information provision dedicated for engagement
# support,
# - special search functions such as cued search, volume search and horizon
# search (however, if such a search function is initiated by means of another
# service, the tracks shall be provided by this service),
#
# Although the service focuses on radar as an example of a sensor, the service also
# applies to other sensors, like IR/EO sensors and ECM/ESM sensors.
# The actor is the Combat Management System.
# The service starts when:
#
# - if the service does provide registration capabilities: the service "Register
# interest" has completed successfully, or
# - if the service does not provide registration capabilities: the service
# "Provide subsystem services" has completed successfully for this service.
#
# The sensor provides, periodically or on event, a set of sensor tracks observed by
# the sensor. These may be sensor point or bearing tracks. The set of sensor tracks
# includes:
#
# - Track updates of existing and new sensor tracks. These are provided when
# there are sufficient measurements (e.g. plots) in the last observation cycle,
# which may be associated with the sensor track.
# - Dead-reckoned tracks. These are sensor track updates for which in the last
# observation cycle there are no measurements that may be associated with the
# sensor track. For dead-reckoned tracks, the sensor track information (e.g.
# kinematics) is extrapolated. The dead-reckoned tracks may become"normal" tracks
# again if, in the next scan, there are measurement(s) that may be associated with
# the track. Alternatively, dead-reckoned tracks (after n unsuccessful scans) may
# become lost tracks.
# - Lost tracks. These are sensor track updates that are reported once, if in
# the last n scans, there are no measurements that may be associated with the
# sensor track. The value of n is typically a sensor parameter that is managed by
# the service "Manage subsystem parameters".
#
# Some sensors are not capable of reporting lost and/or dead-reckoned tracks.
# The sensor may also provide single sensor tracks periodically or on event.
# The service ends with success when:
#
# - if the service does provide registration capabilities: the service "Register
# interest" has completed successfully for a deregistration request, or
# - if the service does not provide registration capabilities: the sensor is
# shutdown using service "Shut down".
#
# Covariance of just the diagonal elements (i.e. the variance of the coordinate
# estimates).
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type DiagonalCovarianceMatrixType {
xxVariance: Float!
yyVariance: Float!
zzVariance: Float!
vxvxVariance: Float!
vyvyVariance: Float!
vzvzVariance: Float!
}
# Covariance of just the diagonal elements (i.e. the variance of the coordinate
# estimates).
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input DiagonalCovarianceMatrixInputType {
xxVariance: Float!
yyVariance: Float!
zzVariance: Float!
vxvxVariance: Float!
vyvyVariance: Float!
vzvzVariance: Float!
}
# Triangular representation of a full covariance matrix (which is by definition
# symmetric).
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type FullCovarianceMatrixType {
xxVariance: Float!
xyVariance: Float!
xzVariance: Float!
xvxVariance: Float!
xvyVariance: Float!
xvzVariance: Float!
yyVariance: Float!
yzVariance: Float!
yvxVariance: Float!
yvyVariance: Float!
yvzVariance: Float!
zzVariance: Float!
zvxVariance: Float!
zvyVariance: Float!
zvzVariance: Float!
vxvxVariance: Float!
vxvyVariance: Float!
vxvzVariance: Float!
vyvyVariance: Float!
vyvzVariance: Float!
vzvzVariance: Float!
}
# Triangular representation of a full covariance matrix (which is by definition
# symmetric).
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input FullCovarianceMatrixInputType {
xxVariance: Float!
xyVariance: Float!
xzVariance: Float!
xvxVariance: Float!
xvyVariance: Float!
xvzVariance: Float!
yyVariance: Float!
yzVariance: Float!
yvxVariance: Float!
yvyVariance: Float!
yvzVariance: Float!
zzVariance: Float!
zvxVariance: Float!
zvyVariance: Float!
zvzVariance: Float!
vxvxVariance: Float!
vxvyVariance: Float!
vxvzVariance: Float!
vyvyVariance: Float!
vyvzVariance: Float!
vzvzVariance: Float!
}
# The full covariance terms (in triangular form as necessarily a symmetric matrix)
# for reports in just the x and y dimensions.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type Full2dCovarianceMatrixType {
xxVariance: Float!
xyVariance: Float!
xvxVariance: Float!
xvyVariance: Float!
yyVariance: Float!
yvxVariance: Float!
yvyVariance: Float!
vxvxVariance: Float!
vxvyVariance: Float!
vyvyVariance: Float!
}
# The full covariance terms (in triangular form as necessarily a symmetric matrix)
# for reports in just the x and y dimensions.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input Full2dCovarianceMatrixInputType {
xxVariance: Float!
xyVariance: Float!
xvxVariance: Float!
xvyVariance: Float!
yyVariance: Float!
yvxVariance: Float!
yvyVariance: Float!
vxvxVariance: Float!
vxvyVariance: Float!
vyvyVariance: Float!
}
# This class represents a covariance matrix for coordinate estimates and their time
# derivatives through a choice of formats.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union CovarianceMatrixType = DiagonalCovarianceMatrixType | FullCovarianceMatrixType | Full2dCovarianceMatrixType
# This class represents a covariance matrix for coordinate estimates and their time
# derivatives through a choice of formats.
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input CovarianceMatrixInputType {
diagonalCovarianceMatrix: DiagonalCovarianceMatrixInputType
fullCovarianceMatrix: FullCovarianceMatrixInputType
full2dCovarianceMatrix: Full2dCovarianceMatrixInputType
}
# The sensor tracking environment
enum EnvironmentType {
AIR
LAND
SURFACE
SUBSURFACE
SPACE
}
# Type of track initiation
enum InitiationModeType {
# Automatic track initiation mode
AUTOMATIC
# Track initiation on external request (e.g. from CMS)
EXTERNAL_REQUEST
}
enum CoordinateKindType {
CARTESIAN
POLAR
WGS84
}
# Coordinates in a Cartesian reference frame as described by a coordinate
# specification object
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type CartesianPositionType {
xCoordinate: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zCoordinate: Float
yCoordinate: Float!
}
# Coordinates in a Cartesian reference frame as described by a coordinate
# specification object
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input CartesianPositionInputType {
xCoordinate: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zCoordinate: Float
yCoordinate: Float!
}
# Coordinate in the WGS84 reference system.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type Wgs84PositionType {
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
heightCoordinate: Float
latitudeCoordinate: Float!
longitudeCoordinate: Float!
}
# Coordinate in the WGS84 reference system.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input Wgs84PositionInputType {
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
heightCoordinate: Float
latitudeCoordinate: Float!
longitudeCoordinate: Float!
}
# Coordinates in a polar reference frame as a described by a coordinate
# specification object
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type PolarPositionType {
azimuthCoordinate: Float!
# Optional as some sensors provide no elevation information
elevationCoordinate: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeCoordinate: Float
# Specifies the origin from which to interpret the polar position. This attribute
# is optional as the origin can be implicitly specified according to the value of
# the applicable coordinate specification enumeration.
origin: Wgs84PositionType
}
# Coordinates in a polar reference frame as a described by a coordinate
# specification object
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input PolarPositionInputType {
azimuthCoordinate: Float!
# Optional as some sensors provide no elevation information
elevationCoordinate: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeCoordinate: Float
# Specifies the origin from which to interpret the polar position. This attribute
# is optional as the origin can be implicitly specified according to the value of
# the applicable coordinate specification enumeration.
origin: Wgs84PositionInputType
}
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union PositionCoordinateType = CartesianPositionType | PolarPositionType | Wgs84PositionType
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input PositionCoordinateInputType {
: CoordinateKindType!
cartesianPosition: CartesianPositionInputType
polarPosition: PolarPositionInputType
wgs84Position: Wgs84PositionInputType
}
# The accuracy of the components of Cartesian position
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type CartesianPositionAccuracyType {
xCoordinateAccuracy: Float!
yCoordinateAccuracy: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zCoordinateAccuracy: Float
}
# The accuracy of the components of Cartesian position
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input CartesianPositionAccuracyInputType {
xCoordinateAccuracy: Float!
yCoordinateAccuracy: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zCoordinateAccuracy: Float
}
# The accuracy of the components of a WGS84 position
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type Wgs84PositionAccuracyType {
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
heightAccuracy: Float
latitudeAccuracy: Float!
longitudeAccuracy: Float!
}
# The accuracy of the components of a WGS84 position
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input Wgs84PositionAccuracyInputType {
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
heightAccuracy: Float
latitudeAccuracy: Float!
longitudeAccuracy: Float!
}
# The accuracy of the components of polar position
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type PolarPositionAccuracyType {
azimuthAccuracy: Float!
# Optional as some sensors provide no elevation information
elevationAccuracy: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeAccuracy: Float
# Specifies the accuracy of the origin from which to interpret the polar position.
# This attribute is optional as the origin can be implicitly specified according to
# the value of the applicable coordinate specification enumeration.
origin: Wgs84PositionAccuracyType
}
# The accuracy of the components of polar position
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input PolarPositionAccuracyInputType {
azimuthAccuracy: Float!
# Optional as some sensors provide no elevation information
elevationAccuracy: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeAccuracy: Float
# Specifies the accuracy of the origin from which to interpret the polar position.
# This attribute is optional as the origin can be implicitly specified according to
# the value of the applicable coordinate specification enumeration.
origin: Wgs84PositionAccuracyInputType
}
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union PositionAccuracyCoordinateType = CartesianPositionAccuracyType | PolarPositionAccuracyType | Wgs84PositionAccuracyType
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input PositionAccuracyCoordinateInputType {
cartesianPositionAccuracy: CartesianPositionAccuracyInputType
polarPositionAccuracy: PolarPositionAccuracyInputType
wgs84PositionAccuracy: Wgs84PositionAccuracyInputType
}
# This enumeration defines the set of coordinate systems, which compliant
# implementations may use. A compliant implementation may not fully support all of
# these coordinate systems.
enum CoordinateOrientationType {
# Valid for Polar Coordinate Kind
# Azimuth has origin (0.0) at North, positive clockwise, measured in the horizontal
# plane
# Elevation has origin (0.0) at the Horizontal, positive up, measured in the
# vertical plane.
NORTH_HORIZONTAL
# Valid for Polar Coordinate Kind
# Azimuth has origin (0.0) at North, clockwise positive, measured in the horizontal
# plane
# Elevation has origin (0.0) when pointing directly down, and 180.0 degrees when
# pointing directly up, measured in the vertical plane.
NORTH_DOWN
# Valid for Cartesian coordinate type
# x is positive to the East
# y is positive to the North
# z is positive up
EAST_NORTH_UP
# Valid for Cartesian coordinate type
# x is positive to the East
# y is positive to the North
# z is positive down
EAST_NORTH_DOWN
# Valid for Cartesian coordinate type
# x is positive to the North
# y is positive to the East
# z is positive up
NORTH_EAST_UP
# Valid for Cartesian coordinate type
# x is positive to the North
# y is positive to the East
# z is positive down
NORTH_EAST_DOWN
# Cartesian system with origin at centre of the Earth (absolute reference point)
# x positive through Greenwich meridian
# y positive through 90 degrees east (of Greenwich meridian)
# z positive through north pole
# x & y are in the equatorial plane
EARTH_CENTRED
# WGS84 has unique well-defined orientation (NIMA Technical Report TR8350.2)
LAT_LONG_HEIGHT
# Valid for Polar Coordinate Kind
# This is a platform orientation relative frame
# Azimuth has origin (0.0) in line with the ship's stern (heading), measured
# anti-clockwise
# Elevation has origin (0.0) when pointing directly down to the keel (perpendicular
# to the current inclination of the deck-level, not necessarily to the Earth's
# surface)
STERN_KEEL
# Valid for Polar Coordinate Kind
# This is a platform orientation relative frame
# Azimuth has origin (0.0) in line with the ship's stern (heading), measured
# anti-clockwise
# Elevation has origin (0.0) when pointing parallel to the deck-level (not
# necessarily parallel to the Earth's surface)
STERN_DECK_LEVEL
# Valid for Cartesian coordinate type
# This is a platform orientation relative frame
# x is positive towards the stern (negative to bow)
# y is positive to starboard (negative to port)
# z is positive towards the mast (negative to keel)
STERN_STARBOARD_MAST
# Valid for Cartesian coordinate type
# This is a platform orientation relative frame
# x is positive towards the stern (negative to bow)
# y is positive to starboard (negative to port)
# z is positive towards the keel (negative to mast)
STERN_STARBOARD_KEEL
}
enum CoordinateOriginType {
# The origin of the coordinate system is 'well known' reference point for the
# platform (on which the CMS and subsystem reside)
PLATFORM_REFERENCE_POINT
# The origin for the coordinate system is the 'well known' reference/datum point
# for the sensor, which is interacting using the interface.
SENSOR_REFERENCE_POINT
# The origin for the coordinate system is a fixed point in Earth (WGS84)
# coordinates. This point is known to the CMS and Subsystems using the interface by
# means beyond the scope of the interface.
ABSOLUTE_REFERENCE_POINT
# This value signifies that the origin for the coordinate system is well-defined
# with respect to the Earth by the coordinate system. E.g. centre of the Earth for
# Earth-Centred Earth-Fixed or the WGS84 spheroid for WGS84
EARTH_REFERENCED
# This value signifies that the origin is explicitly specified within the data
# model by the producer of the data.
EXPLICITLY_SPECIFIED
}
# Specifies the interpretation of position_coordinate_type and
# velocity_coordinate_type.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type CoordinateSpecificationType {
kind: CoordinateKindType!
orientation: CoordinateOrientationType!
origin: CoordinateOriginType!
}
# Specifies the interpretation of position_coordinate_type and
# velocity_coordinate_type.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input CoordinateSpecificationInputType {
kind: CoordinateKindType!
orientation: CoordinateOrientationType!
origin: CoordinateOriginType!
}
# Identity according to STANAG 5516.
enum IdentityType {
PENDING
UNKNOWN
ASSUMED_FRIEND
FRIEND
NEUTRAL
SUSPECT
HOSTILE
}
# The detection lifecycle phase of the track
enum TrackPhaseType {
# Track provided based on extrapolated position (dead-reckoned)
DEAD_RECKONED
# Track has been deleted.
DELETED
# Track has been lost
LOST
# Regular update of new and existing track
TRACKED
# No new measurements were available to contribute to this track at the last
# opportunity to do so. It is expected that should such measurements be made at the
# next opportunity, these will successfully update the track.
INACTIVE
}
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type CartesianVelocityType {
xDot: Float!
yDot: Float!
zDot: Float
}
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input CartesianVelocityInputType {
xDot: Float!
yDot: Float!
zDot: Float
}
# Velocity defined in a polar reference frame as a described by a coordinate
# specification object
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type PolarVelocityType {
azimuthRate: Float!
# Optional as some sensors provide no elevation information
elevationRate: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeRate: Float
}
# Velocity defined in a polar reference frame as a described by a coordinate
# specification object
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input PolarVelocityInputType {
azimuthRate: Float!
# Optional as some sensors provide no elevation information
elevationRate: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeRate: Float
}
# Velocity defined in the WGS84 grid system from the viewpoint of the object in
# terms of course and speed with optional angle of climb for changes in height.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type Wgs84VelocityType {
# Relative to North in the WGS84 spheroid.
course: Float!
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
angleOfClimb: Float
# The total speed within the WGS84 spheroid (not speed over ground) in the
# direction of travel including angle of climb when present.
speed: Float!
}
# Velocity defined in the WGS84 grid system from the viewpoint of the object in
# terms of course and speed with optional angle of climb for changes in height.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input Wgs84VelocityInputType {
# Relative to North in the WGS84 spheroid.
course: Float!
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
angleOfClimb: Float
# The total speed within the WGS84 spheroid (not speed over ground) in the
# direction of travel including angle of climb when present.
speed: Float!
}
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant service as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface. Three representations are
# supported: time derivatives within a Cartesian coordinate system; time
# derivatives of a polar coordinate system (range rate, bearing rate etc.); course
# and speed relative to the WGS84 spheroid.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union VelocityCoordinateType = CartesianVelocityType | PolarVelocityType | Wgs84VelocityType
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant service as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface. Three representations are
# supported: time derivatives within a Cartesian coordinate system; time
# derivatives of a polar coordinate system (range rate, bearing rate etc.); course
# and speed relative to the WGS84 spheroid.
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input VelocityCoordinateInputType {
: CoordinateKindType!
cartesianVelocity: CartesianVelocityInputType
polarVelocity: PolarVelocityInputType
wgs84Velocity: Wgs84VelocityInputType
}
# The accuracy of the components of Cartesian velocity
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type CartesianVelocityAccuracyType {
xDotAccuracy: Float!
yDotAccuracy: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zDotAccuracy: Float
}
# The accuracy of the components of Cartesian velocity
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input CartesianVelocityAccuracyInputType {
xDotAccuracy: Float!
yDotAccuracy: Float!
# Optional as some sensors are 2D (horizontal plane or no elevation information)
zDotAccuracy: Float
}
# The accuracy of the components of polar velocity
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type PolarVelocityAccuracyType {
azimuthRateAccuracy: Float!
# Optional as some sensors provide no elevation information
elevationRateAccuracy: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeRateAccuracy: Float
}
# The accuracy of the components of polar velocity
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input PolarVelocityAccuracyInputType {
azimuthRateAccuracy: Float!
# Optional as some sensors provide no elevation information
elevationRateAccuracy: Float
# Optional as some sensor provide no range information (e.g. most passive sensors)
rangeRateAccuracy: Float
}
# The accuracy of the components of a WGS84 velocity
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type Wgs84VelocityAccuracyType {
courseAccuracy: Float!
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
angleOfClimbAccuracy: Float
speedAccuracy: Float!
}
# The accuracy of the components of a WGS84 velocity
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input Wgs84VelocityAccuracyInputType {
courseAccuracy: Float!
# Optional as some sensors as 2D (work in horizontal plane) and some other
# functions do not supply or require this information either.
angleOfClimbAccuracy: Float
speedAccuracy: Float!
}
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union VelocityAccuracyCoordinateType = CartesianVelocityAccuracyType | PolarVelocityAccuracyType | Wgs84VelocityAccuracyType
# To offer flexibility, three variants of coordinate system representation are
# supported - corresponding to the coordinate_kind_type enumerate. An
# implementation should support one kind for each relevant interface as defined by
# the coordinate_specification_type value, and it should only send data of that
# variant and it should check that all data received is of that variant. It should
# not implement conversion of data in an unexpected variant. Receipt of such data
# constitutes an error in the operation of the interface.
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input VelocityAccuracyCoordinateInputType {
cartesianVelocityAccuracy: CartesianVelocityAccuracyInputType
polarVelocityAccuracy: PolarVelocityAccuracyInputType
wgs84VelocityAccuracy: Wgs84VelocityAccuracyInputType
}
# Encapsulation of a sensor track
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type SensorTrackType {
# Additional, vendor-specific information
additionalInformation: AnonymousBlobType!
# The number of elements in the covariance matrix is dependent on the sensor. When
# present, the position_accuracy and velocity_accuracy attributes should not be
# present.
covarianceMatrix: CovarianceMatrixType
# Environment of the track (air, surface etc)
environment: EnvironmentType
# Initiation mode of track (automatic or externally initiated)
initiationMode: InitiationModeType
# Indication whether or not a track is jamming.
jammerIndication: Boolean!
# Maximal range for a bearing track
maxRangeLimit: Float
# The location of the track as calculated in the sensor's chosen coordinate system
# at the stated time.
position: PositionCoordinateType!
# The sensor's stated accuracy for its calculated position.
# When present, the covariance_matrix attribute should not be present.
positionAccuracy: PositionAccuracyCoordinateType
# The coordinate system chosen by the sensor for reporting accuracy.
positionAccuracyCoordinateSystem: CoordinateSpecificationType
# The coordinate system chosen by the sensor.
positionCoordinateSystem: CoordinateSpecificationType!
# The sensor's unique identifying reference for the track. Sensors may reuse
# identifiers after they have deleted the corresponding track. The scheme used for
# identifier reallocation is system dependent.
sensorTrackId: Int!
# Identification information for the sensor track (if available)
sensorTrackPreIdentification: IdentityType
# Recognition information for the sensor track (if available)
sensorTrackPreRecognition: Int
# Whether the CMS should process the track as having been synthetically generated
# as opposed to corresponding to an actual detection in the real world.
simulated: Boolean!
# The time at which the information in this object is valid, in particular its
# position.
timeOfInformation: Int!
# The time at which the sensor first determined the existence of this track.
timeOfInitiation: Int
# Track phase (e.g. TRACKED, DELETED, LOST)
trackPhase: TrackPhaseType!
# The velocity of the track as calculated in the sensor's chosen coordinate system
# at the stated time.
velocity: VelocityCoordinateType!
# The sensor's stated accuracy for its calculated velocity.
# When present, the covariance_matrix attribute should not be present.
velocityAccuracy: VelocityAccuracyCoordinateType
# The coordinate system chosen by the sensor for reporting accuracy.
velocityAccuracyCoordinateSystem: CoordinateSpecificationType
# The coordinate system chosen by the sensor.
velocityCoordinateSystem: CoordinateSpecificationType!
# The sensor specific quality of this track in comparison to its typical tracks.
trackQuality: Float
# The time at which the sensor first made measurements leading to the detection of
# the existence of this track (as opposed to the time of initiation when there was
# sufficient confidence in one or more detection to initiate a track).
timeOfFirstDetection: Int
# The time at which the sensor last detected the existence of this track.
timeOfLastDetection: Int
# The relative priority of a track with regard to the sensor's resources
priority: Int
# The amplitude or strength of the measurement(s) being tracked by the sensor
amplitude: Int
# The sensor's assessment of the activity being undertaken by the real world object
# represented by the sensor track as observed by the sensor.
activityId: Int
# The sensor functions whose processing has contributed to the track's data.
sensorFunctionId: [Int!]
# The sensor's assessment of the function being undertaken by the equipment of real
# world object represented by the sensor track that has been observed by the
# sensor.
observedFunctionId: Int
# The sensor's assessment of the equipment on the real world object represented by
# the sensor track that has been detected by the sensor.
equipmentId: Int
# The sensor's assessment of the name of the platform or class of platform of the
# real world object.
platformId: Int
# The set of plots on which the sensor track is based
basedOnId: [Int!]
}
# Encapsulation of a sensor track
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input SensorTrackInputType {
# Additional, vendor-specific information
additionalInformation: AnonymousBlobInputType!
# The number of elements in the covariance matrix is dependent on the sensor. When
# present, the position_accuracy and velocity_accuracy attributes should not be
# present.
covarianceMatrix: CovarianceMatrixInputType
# Environment of the track (air, surface etc)
environment: EnvironmentType
# Initiation mode of track (automatic or externally initiated)
initiationMode: InitiationModeType
# Indication whether or not a track is jamming.
jammerIndication: Boolean!
# Maximal range for a bearing track
maxRangeLimit: Float
# The location of the track as calculated in the sensor's chosen coordinate system
# at the stated time.
position: PositionCoordinateInputType!
# The sensor's stated accuracy for its calculated position.
# When present, the covariance_matrix attribute should not be present.
positionAccuracy: PositionAccuracyCoordinateInputType
# The coordinate system chosen by the sensor for reporting accuracy.
positionAccuracyCoordinateSystem: CoordinateSpecificationInputType
# The coordinate system chosen by the sensor.
positionCoordinateSystem: CoordinateSpecificationInputType!
# The sensor's unique identifying reference for the track. Sensors may reuse
# identifiers after they have deleted the corresponding track. The scheme used for
# identifier reallocation is system dependent.
sensorTrackId: Int!
# Identification information for the sensor track (if available)
sensorTrackPreIdentification: IdentityType
# Recognition information for the sensor track (if available)
sensorTrackPreRecognition: Int
# Whether the CMS should process the track as having been synthetically generated
# as opposed to corresponding to an actual detection in the real world.
simulated: Boolean!
# The time at which the information in this object is valid, in particular its
# position.
timeOfInformation: Int!
# The time at which the sensor first determined the existence of this track.
timeOfInitiation: Int
# Track phase (e.g. TRACKED, DELETED, LOST)
trackPhase: TrackPhaseType!
# The velocity of the track as calculated in the sensor's chosen coordinate system
# at the stated time.
velocity: VelocityCoordinateInputType!
# The sensor's stated accuracy for its calculated velocity.
# When present, the covariance_matrix attribute should not be present.
velocityAccuracy: VelocityAccuracyCoordinateInputType
# The coordinate system chosen by the sensor for reporting accuracy.
velocityAccuracyCoordinateSystem: CoordinateSpecificationInputType
# The coordinate system chosen by the sensor.
velocityCoordinateSystem: CoordinateSpecificationInputType!
# The sensor specific quality of this track in comparison to its typical tracks.
trackQuality: Float
# The time at which the sensor first made measurements leading to the detection of
# the existence of this track (as opposed to the time of initiation when there was
# sufficient confidence in one or more detection to initiate a track).
timeOfFirstDetection: Int
# The time at which the sensor last detected the existence of this track.
timeOfLastDetection: Int
# The relative priority of a track with regard to the sensor's resources
priority: Int
# The amplitude or strength of the measurement(s) being tracked by the sensor
amplitude: Int
# The sensor's assessment of the activity being undertaken by the real world object
# represented by the sensor track as observed by the sensor.
activityId: Int
# The sensor functions whose processing has contributed to the track's data.
sensorFunctionId: [Int!]
# The sensor's assessment of the function being undertaken by the equipment of real
# world object represented by the sensor track that has been observed by the
# sensor.
observedFunctionId: Int
# The sensor's assessment of the equipment on the real world object represented by
# the sensor track that has been detected by the sensor.
equipmentId: Int
# The sensor's assessment of the name of the platform or class of platform of the
# real world object.
platformId: Int
# The set of plots on which the sensor track is based
basedOnId: [Int!]
}
# A figure_ref_point specifies a reference point for a figure.
# This reference point is a mathematically meaningful point of the figure. For a
# circle it is the centre of the circle, for a polygon it is the centre of gravity
# of the polygon, etc.
# When rotating the figure, the figure_ref_point acts as the rotation point.
# When a figure is not slaved to a track its figure_ref_point shall be mapped on a
# (moving) geo point.
# When the figure is slaved to an object (track, point) its figure_ref_point shall
# be mapped on an offset position which is relative to the master object.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type FigureRefPointType {
position: PositionCoordinateType!
Id: Int!
}
# A figure_ref_point specifies a reference point for a figure.
# This reference point is a mathematically meaningful point of the figure. For a
# circle it is the centre of the circle, for a polygon it is the centre of gravity
# of the polygon, etc.
# When rotating the figure, the figure_ref_point acts as the rotation point.
# When a figure is not slaved to a track its figure_ref_point shall be mapped on a
# (moving) geo point.
# When the figure is slaved to an object (track, point) its figure_ref_point shall
# be mapped on an offset position which is relative to the master object.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input FigureRefPointInputType {
position: PositionCoordinateInputType!
Id: Int!
}
# A sector specifies a 2D area in a horizontal plane by means of its origin, its
# centre bearing with its bearing delta, that together define the sector.
# The origin is the figure reference point of the sector.
# In case the sector is north oriented, the centre bearing is specified with
# respect to true north; otherwise it is specified with respect to the object's
# (own ship/other track, point) heading/course.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type SectorType {
# This attribute specifies the horizontal angle measured clockwise between the
# Y-axis of the relevant coordinate system (true north, heading/course) and the
# centre bearing line of the sector.
centreBearing: Float!
# This attribute specifies the bearing delta on each side of a specified centre
# bearing line.
deltaBearing: Float!
origin: FigureRefPointType
}
# A sector specifies a 2D area in a horizontal plane by means of its origin, its
# centre bearing with its bearing delta, that together define the sector.
# The origin is the figure reference point of the sector.
# In case the sector is north oriented, the centre bearing is specified with
# respect to true north; otherwise it is specified with respect to the object's
# (own ship/other track, point) heading/course.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input SectorInputType {
# This attribute specifies the horizontal angle measured clockwise between the
# Y-axis of the relevant coordinate system (true north, heading/course) and the
# centre bearing line of the sector.
centreBearing: Float!
# This attribute specifies the bearing delta on each side of a specified centre
# bearing line.
deltaBearing: Float!
origin: FigureRefPointInputType
}
# A geographically defined rectangle in the environment
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type RectangleType {
# distance along angle of orientation from the ref point to the next corner
length: Float!
# distance perpendicular to angle of orientation (clockwise) from ref point to the
# next corner
width: Float!
# angle of azimuth of the length sides of the rectangle
orientation: Float!
}
# A geographically defined rectangle in the environment
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input RectangleInputType {
# distance along angle of orientation from the ref point to the next corner
length: Float!
# distance perpendicular to angle of orientation (clockwise) from ref point to the
# next corner
width: Float!
# angle of azimuth of the length sides of the rectangle
orientation: Float!
}
# A geographically defined general area
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type PolygonType {
point: [PositionCoordinateType!]
}
# A geographically defined general area
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input PolygonInputType {
point: [PositionCoordinateInputType!]
}
# A truncated_sector specifies a 2D area in a horizontal plane by means of its
# origin, its centre bearing with its bearing delta, and its inner range and outer
# range, that together define the truncated sector.
# The origin is the figure reference point of the truncated sector.
# In case the truncated sector is north oriented, the centre bearing is specified
# with respect to true north; otherwise (object oriented) it is specified with
# respect to the object's (own ship/other track, point) heading/course.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type TruncatedSectorType {
# This attribute specifies the horizontal angle measured clockwise between the
# Y-axis of the relevant coordinate system (true north, heading/course) and the
# centre bearing line of the truncated sector.
centreBearing: Float!
# This attribute specifies the bearing delta on each side of a centre bearing line.
deltaBearing: Float!
# This attribute specifies the range that limits a truncated sector; i.e. the
# minimum distance from the truncated sector's origin.
innerRange: Float!
# This attribute specifies the range that limits a truncated sector; i.e. the
# maximum distance from the truncated sector's origin.
outerRange: Float!
origin: FigureRefPointType
}
# A truncated_sector specifies a 2D area in a horizontal plane by means of its
# origin, its centre bearing with its bearing delta, and its inner range and outer
# range, that together define the truncated sector.
# The origin is the figure reference point of the truncated sector.
# In case the truncated sector is north oriented, the centre bearing is specified
# with respect to true north; otherwise (object oriented) it is specified with
# respect to the object's (own ship/other track, point) heading/course.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input TruncatedSectorInputType {
# This attribute specifies the horizontal angle measured clockwise between the
# Y-axis of the relevant coordinate system (true north, heading/course) and the
# centre bearing line of the truncated sector.
centreBearing: Float!
# This attribute specifies the bearing delta on each side of a centre bearing line.
deltaBearing: Float!
# This attribute specifies the range that limits a truncated sector; i.e. the
# minimum distance from the truncated sector's origin.
innerRange: Float!
# This attribute specifies the range that limits a truncated sector; i.e. the
# maximum distance from the truncated sector's origin.
outerRange: Float!
origin: FigureRefPointInputType
}
# An area for the sensor to keep under surveillance
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
union Area2dType = SectorType | RectangleType | PolygonType | TruncatedSectorType
# An area for the sensor to keep under surveillance
# Exactly one of the optional attributes is to be supplied in each input object.
# This type has the same semantics as the corresponding query object type.
# Input objects with zero or more than one attributes present are erroneous and should be rejected.
input Area2dInputType {
sector: SectorInputType
rectangle: RectangleInputType
polygon: PolygonInputType
truncatedSector: TruncatedSectorInputType
}
# The method represents a write of a single sensor track (air, land, space or
# surface) to the CMS.
# The write may be periodic or not.
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type WriteSensorTrackType {
theSensorTrack(sensorTrackId: ID,
environment: EnvironmentType,
insideArea: Area2dInputType): [SensorTrackType!]
# The elements of subsystem name list should correspond to those in the set of operations.
subsystemName: [ID!]
}
# The method represents a write of a single sensor track (air, land, space or
# surface) to the CMS.
# The write may be periodic or not.
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input WriteSensorTrackInputType {
theSensorTrack: [SensorTrackInputType!]
# The elements of subsystem name list should correspond to those in the set of operations.
subsystemName: [ID!]
}
# A set of sensor tracks (to enable batch reporting)
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type SensorTrackSetType {
element: [SensorTrackType!]
}
# A set of sensor tracks (to enable batch reporting)
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input SensorTrackSetInputType {
element: [SensorTrackInputType!]
}
# The method represents a single write of a set of sensor tracks to the CMS. The
# write may be:
# - periodic or not
# - include all tracks observed during a sensor scan
# - be an update of just one track (a set of 1) if this is how the sensor works
# The query type for retrieving operations on interface Provide_Sensor_Tracks_CMS
type WriteSensorTrackSetType {
theTrackSet(environment: EnvironmentType,
insideArea: Area2dInputType): [SensorTrackSetType!]
# The elements of subsystem name list should correspond to those in the set of operations.
subsystemName: [ID!]
}
# The method represents a single write of a set of sensor tracks to the CMS. The
# write may be:
# - periodic or not
# - include all tracks observed during a sensor scan
# - be an update of just one track (a set of 1) if this is how the sensor works
# The corresponding input type for invoking operations on interface Provide_Sensor_Tracks_CMS
input WriteSensorTrackSetInputType {
theTrackSet: [SensorTrackSetInputType!]
# The elements of subsystem name list should correspond to those in the set of operations.
subsystemName: [ID!]
}
# Union of all operations for retrieval on the Provide_Sensor_Tracks_CMS interface.
union ProvideSensorTracksCmsUnionType = WriteSensorTrackType | WriteSensorTrackSetType
# Set of all operations for invocation on the Provide_Sensor_Tracks_CMS interface.
# Exactly one attribute option to be supplied per object; a mutation can contain multiple objects.
# To supply zero or more than one option is erroneous and should be rejected.
input ProvideSensorTracksCmsMutationOptionsType {
writeSensorTrack: WriteSensorTrackInputType
writeSensorTrackSet: WriteSensorTrackSetInputType
}
# Data for all operations that can be retrieved on the Provide_Sensor_Tracks_CMS interface.
type ProvideSensorTracksCmsObjectType {
data(subsystemName: ID,
simulated: Boolean): [ProvideSensorTracksCmsUnionType!]
}
# Data to invoke operations on the Provide_Sensor_Tracks_CMS interface.
type ProvideSensorTracksCmsMutationType{
ProvideSensorTracksCms(
data: [ProvideSensorTracksCmsMutationOptionsType!]
): Boolean
}
# Schema to define the entry points for the Provide_Sensor_Tracks_CMS interface.
schema ProvideSensorTracksCms {
# Query to retrieve all operations on the Provide_Sensor_Tracks_CMS interface.
query: ProvideSensorTracksCmsObjectType
# Mutation to invoke all operations on the Provide_Sensor_Tracks_CMS interface.
mutation: ProvideSensorTracksCmsMutationType
# Subscription to be informed of all operations on the Provide_Sensor_Tracks_CMS interface.
subscription: ProvideSensorTracksCmsObjectType
}