Professional Documents
Culture Documents
Review
Name Organisation
Jens Kristian Jensen DMA
Approval
Name Organisation Signature Date
Per Setterberg SMA
Document History
Version Date Status Initials Description
Revised 8dec 2015 Ok US Language checked
The work group, with its wide range of skills, knowledge and experience, represented
by administrations, academia, industry, service providers and research institutes
gathered the requirements and outlined a proposal through a number of workgroup
sessions autumn 2013 and spring 2014.
The prerequisites for the work was identified and could be summarized as follow:
No International standard existed, detailed description missing in IMO
performance standard and corresponding IEC standards.
Proprietary format is used by manufacturers and service providers
Common standard does not exist for Shore based parts i.e. VTS etc.
With the following obvious drawbacks:
No interoperability between different systems on board
No possibility to exchange information ship to shore in a unified way
Additional workload for crew when route is supposed to be used in different
systems or operations
2 Objectives
The following objectives were agreed upon:
A common route exchange format should be developed, which supports all processes
in the MONALISA 2.0 project i.e. Sea Traffic Management (STM) where the route can
be used:
On board for safe navigation (ECDIS etc.)
On board for route-schedule-speed optimisation
By Pilots
Ashore for Sea Traffic Management services as:
o Flow management
o On route navigational assistance
o Enhanced monitoring
o Route exchange ship-ship
o Port CDM
o Winter navigation
The question was; could it be possible to solve the project needs within the new IEC
standard? Time was short as TC80/MT7 (technical committee 80/meeting 7) was in its
final stage and the CDV (Committee draft for voting) was just a few months away with
the following milestones CDV March 2014 and FDIS March 2015.
4 Result
On the 19th of August 2015, IEC adopted edition 4 of the 61174 standard, where Annex
S contains the route exchange format. This standardised route exchange format
primarily builds on the work in the MONALISA 2.0 project and is divided into three
major blocks
Route General Information
Route Geometry block
Route Schedule block
Each block can contain mandatory and optional information
It should also be possible for manufacturer to add own container of information.
DISCLAIMER
This proposal may differ in some parts from the standard that was later adopted
by IEC. The format described here below MUST NOT be used for any
implementation of the standard. Please refer to www.iec.ch to obtain the IEC
61174 ed. 4 documentation.
5.1 General
This route plan exchange format is intended to be used for many purposes. For
example, it can be used on board for route plan exchange between main and backup
ECDIS, ECDIS and radar, ECDIS and optimisation systems, etc. Another example of
use is between ship and shore where it can be used to inform the shore about the plan
of the vessel; the shore can recommend a route, the shore can optimise a route, etc.
This route plan exchange format is based on standardising a single route plan. The
application level of the sender and receiver is assumed to be able to handle multiple
route plans for use cases which require availability of multiple routes, for example
alternative route plans for the same voyage or route plans for different purposes.
A route plan consists of waypoints. Each waypoint contains information related to the
leg from the previous waypoint. Descriptions of route plans are shown in Figures 5.1
and 5.2. The route exchange format is a file containing an XML coded version of the
route plan. The XML route exchange file uses the extension .rtz. A description of the
RTZ format is given in Clause 5.5. Examples of RTZ format routes are given in
Clauses 5.7 and 5.8.
Clause 5.6 gives an XML schema to be met by RTZ route files so that their structure
and content can be verified.
NOTE 1: This route exchange format has some limitations for applicability due to the simple
geometric mode used. Application for latitudes above 70 may cause significantly different
paths over the earth surface between two systems. Application to long legs such as an ocean
crossing is subject to differences in the exact path over the earth surface.
NOTE 2: It is recommended that the receiver of the route exchange always performs a check
against the chart database and a geometry check before use for navigation purposes.
NOTE 3: Information in addition to the route exchange format will be necessary between third
parties to assure the level of accuracy and repeatability required for Track Control System
purposes.
Radius
4
WP 1 (geographical coordinates)
WP 3 (geographical coordinates)
GM_Point
Geographical Coordinates
WP
Radii
NOTE: The distance between waypoints is from WOL to WOL with zero advance and transfer or
forwarding distance.
<extensions>
<extension manufacturer="Acme" version="2.1"
name="AuxRouteInfo-9674F26E-EAFB-4319-AE24-08D5BA69D895">
<property name="source"
value="http://services.acme.com/auto_route/?id=3e891884e620970e5303fd2399427986"/>
<property name="attachment" value="rtz://assignement-13.04.2013.docx"/>
<property name="attachment" value="rtz://MFD_original.rt3"/>
</extension>
</extensions>
<extensions>
The data that software is not able to recognize (e.g. extensions and options) are written
back into the modified file without modification.
It is assumed that the receiver which understands extensions is able to filter out data
when reading the route and be able to eliminate the data of extensions related to
removed or to non-existent waypoints.
Version is specified as a combination of two figures separated with a dot. The first
figure corresponds to the major version. It shall be changed in the case of significant
modifications to the document structure. Formats with different major versions are
incompatible.
The second figure corresponds to the minor version and indicates format changes that
do not affect compatibility.
1
Comit International Radio-Maritime (CIRM) is the international association for marine electronics
companies.
Start of validity
validityPeriodStart ISO 8601 Option
period
Number of the
vesselVoyage String Option
voyage
Metacentric height of
the ship for intended
vesselGM Metacentric height XX.XX Option voyage.
Unit: metres
Could be fixed
Route is optimised speed, Lowest Fuel
optimisationMethod String Option
to meet KPI Consumption, Fixed
ETA
Ship significant
vesselMaxWave XX.X Option Unit: metres
wave height limit
Ships preferred
Unit: knots, Speed
vesselServiceMin service speed XX.X Option
through water
window_min
Ships preferred
Unit: knots, Speed
vesselServiceMax service speed XX.X Option
through water
window_max
Cause of route
routeChangesHistory change, Originator String Option
and Reason
The order of the Waypoint nodes follows the order of the legs.
For example:
For example:
<Waypoints>
<DefaultWaypoint radius="1.4">
<Leg starboardXTD="0.5" portsizeXTD="0.5" geometryType="0"/>
</DefaultWaypoint>
If the DefaultWaypoint node is provided before the sequence of waypoints, then it shall
contain values for attributes for newly created waypoints.
Leg node contains attributes of the leg associated with the waypoint (see
Figure 5.2).
Attribute Description Format Status Comment
starboardXTD Starboard XTD Real Option Unit: NM with decimal
portsideXTD Portside XTD Real Option Unit: NM with decimal
safetyContour Planned Safety Real Option Unit: metres
If an optional attribute is absent the appropriate parameter will be taken from the
element defaults node. If this parameter is absent in the defaults node, then its value
is set to "zero" or "empty", depending on the type of the parameter. For the case when
geometryType is absent, this attribute should be considered as Loxodrome.
Additionally, the node may contain a child extensions node.
5.5.9.1 Components
Schedule node consists of a sequence of the following child nodes:
Manual node that describes user's preferences for the schedule;
Calculated node that describes schedule calculation results according to
user's preferences.
For example:
If provided, the manufacturer shall include the specification of his extension nodes in
the user manual.
An example that illustrates one of the Acme extensions for GMDSS areas is:
<Extensions>
<Extension manufacturer="acme" name="GMDSS-96CF94DF-6ADB-4B08-B43F-355F939AF5F8"
version="1.3">
<Point id="77" class="A1" range="20.0"/>
<Point id="79" class="A1" range="22.0"/>
<Point id="80" class="A2" range="121.2"/>
</Extension>
</Extensions>
XML schema
Revision 1.0
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.cirm.org/RTZ/1/0"
targetNamespace="http://www.cirm.org/RTZ/1/0"
elementFormDefault="qualified">
<xsd:annotation>
<xsd:documentation>
RTZ schema version 1.0 For more information on RTZ and this schema,
visit http://www.cirm.org/RTZ.
RTZ uses the following conventions: all coordinates are relative to the WGS8
datum.
<!-- -->
<!-- Root element -->
<!-- -->
<xsd:element name="route" type="Route">
<xsd:annotation>
<xsd:documentation>
Route is the root element in the XML RTZ file.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- -->
<!-- Root element type definition -->
<!-- -->
<xsd:complexType name="Route">
<xsd:annotation>
<xsd:documentation>
RTZ files contain a number of waypoints, followed with auxiliary schedules.
You can add your own elements to the extension section of the RTZ document.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="routeInfo" type="RouteInfo" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Generic route information.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="waypoints" type="Waypoints" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
A list of waypoints.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="schedules" type="Schedules" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Optional list of schedules.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="version" type="xsd:string" use="required" fixed="1.0">
<xsd:annotation>
<!-- -->
<!-- "RouteInfo" element type definition -->
<!-- -->
<xsd:complexType name="RouteInfo">
<xsd:sequence>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="routeName" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>The name of the route.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="routeAuthor" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The author of route.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="routeStatus" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Status of route.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="validityPeriodStart" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>
Start of validity period in ISO 8601 format.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="validityPeriodStop" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>
Stop of validity period in ISO 8601 format.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="vesselName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The name of ship.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="vesselMMSI" type="xsd:nonNegativeInteger">
<xsd:annotation>
<!-- -->
<!-- "LengthType" element type definition -->
<!-- -->
<xsd:simpleType name="LengthType">
<xsd:annotation>
<xsd:documentation>Length type.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0.0"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<!-- "SpeedType" element type definition -->
<!-- -->
<xsd:simpleType name="SpeedType">
<xsd:annotation>
<xsd:documentation>Speed type.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0.0"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<!-- Extension point type definition -->
<!-- -->
<xsd:complexType name="Extensions">
<xsd:annotation>
<xsd:documentation>
You can add extend GPX by adding your own elements from another schema here.
</xsd:documentation>
<!-- -->
<!-- "Waypoints" element type definition -->
<!-- -->
<xsd:complexType name="Waypoints">
<xsd:sequence>
<xsd:element name="defaultWaypoint" type="DefaultWaypoint" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Waypoint defaults.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="waypoint" type="Waypoint" minOccurs="2"maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Waypoint details.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- -->
<!-- "DefaultWaypoint" element type definition -->
<!-- -->
<xsd:complexType name="DefaultWaypoint">
<xsd:sequence>
<xsd:element name="leg" type="Leg" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Leg attributes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
<!-- -->
<!-- "RadiusType" element type definition -->
<!-- -->
<xsd:simpleType name="RadiusType">
<xsd:annotation>
<xsd:documentation>Radius type.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="0.0"/>
<xsd:maxExclusive value="10.0"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<!-- "Waypoint" element type definition -->
<!-- -->
<xsd:complexType name="Waypoint">
<xsd:sequence>
<xsd:element name="position" type="GM_Point" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Geographic point.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="leg" type="Leg" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Leg attributes.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:nonNegativeInteger" use="required">
<xsd:annotation>
<xsd:documentation>
Unique waypoint identifier.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="revision" type="xsd:nonNegativeInteger">
<xsd:annotation>
<xsd:documentation>
<!-- -->
<!-- "Leg" element type definition -->
<!-- -->
<xsd:complexType name="Leg">
<xsd:attribute name="starboardXTD" type="XtdType">
<xsd:annotation>
<xsd:documentation>Starboard XTE in NM.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="portsideXTD" type="XtdType">
<xsd:annotation>
<xsd:documentation>Portside XTE in NM.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="safetyContour" type="LengthType">
<xsd:annotation>
<xsd:documentation>Safety contour in metres.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="safetyDepth" type="LengthType">
<xsd:annotation>
<xsd:documentation>Safety depth in metres.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="geometryType" type="GeometryType">
<xsd:annotation>
<xsd:documentation>Geometry type of leg.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="speedMin" type="SpeedType">
<xsd:annotation>
<xsd:documentation>Lowest cruising speed in knots.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="speedMax" type="SpeedType">
<xsd:annotation>
<xsd:documentation>Highest allowed speed in knots.</xsd:documentation>
<!-- -->
<!-- XTD type definition -->
<!-- -->
<xsd:simpleType name="XtdType">
<xsd:annotation>
<xsd:documentation>
XTD of the point. Nautical miles.
<!-- -->
<!-- "geometry/geopoint" element type definition -->
<!-- -->
<xsd:complexType name="GM_Point">
<xsd:attribute name="lat" type="LatitudeType" use="required">
<xsd:annotation>
<xsd:documentation>Latitude in degrees.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lon" type="LongitudeType" use="required">
<xsd:annotation>
<xsd:documentation>Longitude in degrees.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<!-- -->
<!-- RL/GC indicator type definition -->
<!-- -->
<xsd:simpleType name="GeometryType">
<xsd:annotation>
<xsd:documentation>RL/GC indicator.</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Loxodrome"/>
<xsd:enumeration value="Orthodrome"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<!-- Geographical latitude type definition -->
<!-- -->
<xsd:simpleType name="LatitudeType">
<xsd:annotation>
<xsd:documentation>
The latitude of the point. Decimal degrees, WGS84 datum.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:decimal">
<xsd:minInclusive value="-90.0"/>
<xsd:maxInclusive value="90.0"/>
</xsd:restriction>
</xsd:simpleType>
<!-- -->
<!-- Geographical longitude type definition -->
<!-- -->
<xsd:simpleType name="LongitudeType">
<xsd:annotation>
<!-- -->
<!-- "Schedules" element type definition -->
<!-- -->
<xsd:complexType name="Schedules">
<xsd:sequence>
<xsd:element name="schedule" type="Schedule" minOccurs="0"maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Schedule definition.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- -->
<!-- "schedules/schedule" element type definition -->
<!-- -->
<xsd:complexType name="Schedule">
<xsd:annotation>
<xsd:documentation>
Schedule definition.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="manual" type="Manual" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Manual schedule values definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="calculated" type="Calculated" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Calculated schedules.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<!-- -->
<!-- "Manual" element type definition -->
<!-- -->
<xsd:complexType name="Manual">
<xsd:annotation>
<xsd:documentation>User defined schedule parameters.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="sheduleElement" type="ScheduleElement"
minOccurs="1" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
Manual schedule leg definition.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements
from another schema here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- -->
<!-- "Calculated" element type definition -->
<!-- -->
<xsd:complexType name="Calculated">
<xsd:annotation>
<xsd:documentation>
Calculated schedule parameters.
<!-- -->
<!-- "ScheduleElement" element type definition -->
<!-- -->
<xsd:complexType name="ScheduleElement">
<xsd:sequence>
<xsd:element name="extensions" type="Extensions" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
You can add extend RTZ by adding your own elements from another schema
here.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="waypointId" type="xsd:nonNegativeInteger" use="required">
<xsd:annotation>
<xsd:documentation>Unique waypoint identifier.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="etd" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>
UTC estimated departure time in ISO 8601 format.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="etdWindowBefore" type="xsd:time">
<xsd:annotation>
<xsd:documentation>
Describes the uncertainty of the predicted ETD after optimisation.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="etdWindowAfter" type="xsd:time">
<xsd:annotation>
<!-- -->
<!-- Course type definition -->
<!-- -->
</xsd:schema>
1 +waypointId[1] : Integer
0..1 +etd[0..1] : DateTime
0..1 +etdWindowBefore[0..1] : Time
+etdWindowAfter[0..1] : Time
Leg +eta[0..1] : DateTime
+etaWindowBefore[0..1] : Time
+starboardXTD[0..1] : Real Extension
+etaWindowAfter[0..1] : Time
+portsideXTD[0..1] : Real +stay[0..1] : Time +manufacturer[1] : CharacterString
+safetyContour[0..1] : Real +speed[0..1] : Real +name[1] : CharacterString
+safetyDepth[0..1] : Real +speedWindow[0..1] : Real +version[0..1] : CharacterString
+geometryType[0..1] : GeometryType +windSpeed[0..1] : Real
+speedMin[0..1] : Real +windDirection[0..1] : Real 0..*
+speedMax[0..1] : Real +currentSpeed[0..1] : Real
+draught[0..1] : Real 1
+currentDirection[0..1] : Real
+draughtForward[0..1] : Real +windLoss[0..1] : Real
+draughtAft[0..1] : Real +waveLoss[0..1] : Real Extensions
+staticUKC[0..1] : Real +totalLoss[0..1] : Real
+dynamicUKC[0..1] : Real +rpm[0..1] : Real
+masthead[0..1] : Real +pitch[0..1] : Integer
+legReport[0..1] : CharacterString +fuel[0..1] : Real
+legInfo[0..1] : CharacterString +relFuelSave[0..1] : Real
+legNote1[0..1] : CharacterString +absFuelSace[0..1] : Real
+legNote2[0..1] : CharacterString +note[0..1] : CharacterString
+extensions[0..1] : Extensions +extensions[0..1] : Extensions
www.monalisaproject.eu