""" This class represents a duration fixed to an absolute point in time. """ type absoluteDurationType { start: timeType! stop: timeType! } """ For positive values, height above coordinate system ellipsoid, for negative values, depth below; measured in metres. See diagram note on choice of SI units """ type altitudeCoordinateType { value: double! } """ The angle representing the direction of travel relative to the horizontal. Up is positive. """ type angleOfClimbType { value: double! } """ Axis in the azimuth direction, i.e. horizontal angle from the associated coordinate system reference. Radians, positive clockwise from above. See diagram note on choice of SI units """ type azimuthCoordinateType { value: double! } """ """ type azimuthIntervalType { start: azimuthCoordinateType! stop: azimuthCoordinateType! } """ Qualifies a measurement with attributes of accuracy and, if possible, variability. """ type azimuthQualificationType { """ The accuracy of the measurement; equal to one standard deviation of uncertainty. """ accuracy: azimuthCoordinateType! """ The spread of the measurement. The combined measures of spread should encompass the full extent of the plot. This attribute is optional. Not all sensors are capable of measuring it. """ spread: azimuthCoordinateType } """ radians per second """ type azimuthRateType { value: double! } """ See diagram note on choice of SI units """ type cartesianCoordinateType { value: double! } """ """ type cartesianIntervalType { start: cartesianCoordinateType! stop: cartesianCoordinateType! } """ The accuracy of the components of Cartesian position """ type cartesianPositionAccuracyType { xCoordinateAccuracy: cartesianCoordinateType! yCoordinateAccuracy: cartesianCoordinateType! """ Optional as some sensors are 2D (horizontal plane or no elevation information) """ zCoordinateAccuracy: cartesianCoordinateType } """ Coordinates in a Cartesian reference frame as described by a coordinate specification object """ type cartesianPositionType { xCoordinate: cartesianCoordinateType! yCoordinate: cartesianCoordinateType! """ Optional as some sensors are 2D (horizontal plane or no elevation information) """ zCoordinate: cartesianCoordinateType } """ The accuracy of the components of Cartesian velocity """ type cartesianVelocityAccuracyType { xDotAccuracy: cartesianVelocityComponentType! yDotAccuracy: cartesianVelocityComponentType! """ Optional as some sensors are 2D (horizontal plane or no elevation information) """ zDotAccuracy: cartesianVelocityComponentType } """ """ type cartesianVelocityComponentType { value: double! } """ """ type cartesianVelocityType { xDot: cartesianVelocityComponentType! yDot: cartesianVelocityComponentType! zDot: cartesianVelocityComponentType } """ """ enum coordinateKindType { CARTESIAN POLAR WGS84 } """ 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 { """ 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 """ 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 East y is positive to the North z is positive up """ EAST_NORTH_UP """ WGS84 has unique well-defined orientation (NIMA Technical Report TR8350.2) """ LAT_LONG_HEIGHT """ 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 North y is positive to the East z is positive down """ NORTH_EAST_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 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 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 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 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 """ 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 } """ """ enum coordinateOriginType { """ 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 """ 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 } """ Specifies the interpretation of position_coordinate_type and velocity_coordinate_type. Each attribute may be fixed by the standard to a particular value, or set to NEGOTIATED. Negotiation means that the CMS and Subsystem are configured to use a particular value on a platform instantiation basis. This is verified by both CMS and Subsystem software as part of service availability verification. """ type coordinateSpecificationType { kind: coordinateKindType! orientation: coordinateOrientationType! origin: coordinateOriginType! } """ The angle representing the direction of travel relative to North in the horizontal plane. Clockwise (facing down) is positive. """ type courseType { value: double! } """ """ union covarianceMatrixType = diagonalCovarianceMatrixType | fullCovarianceMatrixType """ """ type diagonalCovarianceMatrixType { vxvxVariance: Float! vyvyVariance: Float! vzvzVariance: Float! xxVariance: Float! yyVariance: Float! zzVariance: Float! } """ The length of a time interval (not fixed to an absolute point in time). unit: 100 nano seconds """ type durationType { value: unsigned long long! } """ Axis in the direction of elevation, i.e. vertical angle from the associated coordinate system datum, radians, positive up. See diagram note on choice of SI units """ type elevationCoordinateType { value: double! } """ """ type elevationIntervalType { start: elevationCoordinateType! stop: elevationCoordinateType! } """ Qualifies a measurement with attributes of accuracy and, if possible, variability. """ type elevationQualificationType { """ The accuracy of the measurement; equal to one standard deviation of uncertainty. """ accuracy: elevationCoordinateType! """ The spread of the measurement. The combined measures of spread should encompass the full extent of the plot. This attribute is optional. Not all sensors are capable of measuring it. """ spread: elevationCoordinateType } """ radians per second """ type elevationRateType { value: double! } """ Full covariance matrix """ type fullCovarianceMatrixType { vxvxVariance: Float! vxvyVariance: Float! vxvzVariance: Float! vyvyVariance: Float! vyvzVariance: Float! vzvzVariance: Float! xvxVariance: Float! xvyVariance: Float! xvzVariance: Float! xxVariance: Float! xyVariance: Float! xzVariance: Float! yvxVariance: Float! yvyVariance: Float! yvzVariance: Float! yyVariance: Float! yzVariance: Float! zvxVariance: Float! zvyVariance: Float! zvzVariance: Float! zzVariance: Float! } """ """ type heightIntervalType { start: altitudeCoordinateType! stop: altitudeCoordinateType! } """ Degrees north (positive), south (negative) relative to coordinate system datum. See diagram note on choice of SI units """ type latitudeCoordinateType { value: double! } """ """ type latitudeIntervalType { start: latitudeCoordinateType! stop: latitudeCoordinateType! } """ Degrees east (positive), west (negative) relative to coordinate system datum. See diagram note on choice of SI units """ type longitudeCoordinateType { value: double! } """ """ type longitudeIntervalType { start: longitudeCoordinateType! stop: longitudeCoordinateType! } """ The accuracy of the components of polar position """ type polarPositionAccuracyType { azimuthAccuracy: azimuthCoordinateType! "Optional as some sensors provide no elevation information" elevationAccuracy: elevationCoordinateType """ Optional as some sensor provide no range information (e.g. most passive sensors) """ rangeAccuracy: rangeCoordinateType } """ Coordinates in a polar reference frame as a described by a coordinate specification object """ type polarPositionType { azimuthCoordinate: azimuthCoordinateType! "Optional as some sensors provide no elevation information" elevationCoordinate: elevationCoordinateType """ Optional as some sensor provide no range information (e.g. most passive sensors) """ rangeCoordinate: rangeCoordinateType } """ The accuracy of the components of polar velocity """ type polarVelocityAccuracyType { azimuthRateAccuracy: azimuthRateType! "Optional as some sensors provide no elevation information" elevationRateAccuracy: elevationRateType """ Optional as some sensor provide no range information (e.g. most passive sensors) """ rangeRateAccuracy: rangeRateType } """ Velocity defined in a polar reference frame as a described by a coordinate specification object """ type polarVelocityType { azimuthRate: azimuthRateType! "Optional as some sensors provide no elevation information" elevationRate: elevationRateType """ Optional as some sensor provide no range information (e.g. most passive sensors) """ rangeRate: rangeRateType } """ 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. """ 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. """ union positionCoordinateType = cartesianPositionType | polarPositionType | wgs84PositionType """ Axis in range, i.e. linear distance from the coordinate system datum. Metres. See diagram note on choice of SI units """ type rangeCoordinateType { value: double! } """ """ type rangeIntervalType { start: rangeCoordinateType! stop: rangeCoordinateType! } """ Qualifies a measurement with attributes of accuracy and, if possible, variability. """ type rangeQualificationType { """ The accuracy of the measurement; equal to one standard deviation of uncertainty. """ accuracy: rangeCoordinateType! """ The spread of the measurement. The combined measures of spread should encompass the full extent of the plot. This attribute is optional. Not all sensors are capable of measuring it. """ spread: rangeCoordinateType } """ metres per second """ type rangeRateType { value: double! } """ This class represents a range of speeds. """ type speedIntervalType { "The maximum speed." max: speedType! "The minimum speed." min: speedType! } """ metres per second """ type speedType { value: double! } """ 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. """ 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 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. """ union velocityCoordinateType = cartesianVelocityType | polarVelocityType | wgs84VelocityType """ The accuracy of the components of a WGS84 position """ type wgs84PositionAccuracyType { """ Optional as some sensors as 2D (work in horizontal plane) and some other functions do not supply or require this information either. """ altitudeAccuracy: altitudeCoordinateType latitudeAccuracy: latitudeCoordinateType! longitudeAccuracy: longitudeCoordinateType! } """ Coordinate in the WGS84 reference system. """ type wgs84PositionType { """ Optional as some sensors as 2D (work in horizontal plane) and some other functions do not supply or require this information either. """ altitudeCoordinate: altitudeCoordinateType latitudeCoordinate: latitudeCoordinateType! longitudeCoordinate: longitudeCoordinateType! } """ The accuracy of the components of a WGS84 velocity """ type wgs84VelocityAccuracyType { """ Optional as some sensors as 2D (work in horizontal plane) and some other functions do not supply or require this information either. """ angleOfClimbAccuracy: angleOfClimbType courseAccuracy: courseType! speedAccuracy: speedType! } """ Velocity defined in the WGS84 grid system """ type wgs84VelocityType { """ Optional as some sensors as 2D (work in horizontal plane) and some other functions do not supply or require this information either. """ angleOfClimb: angleOfClimbType course: courseType! speed: speedType! }