Object positioning in the network: Difference between revisions

From railTOPOMODEL® Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(2nd try to edit this page by Regina Klimmek)
(Änderung Navi)
(7 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Overview|text=The RailTopoModel allows for all railway-related physical or logical objects an exact and unique positioning on the network. The generic class EntityLocation holds the necessary positioning information and serves as a connection to the network.}}<br />
{{Overview|text=The {{rtm}} allows for all railway-related physical or logical objects an exact and unique positioning on the network. The generic class EntityLocation holds the necessary positioning information and serves as a connection to the network.}}<br />
The RailTopoModel data structure is organized around the network. The '''Network''' is used as the main reference system for positioning of arbitrary information objects. This layer allows the user to project objects and entities on the topology, by referencing topology elements.  
The {{rtm}} data structure is organized around the network. The '''Network''' is used as the main reference system for positioning of arbitrary information objects. This layer allows the user to project objects and entities on the topology, by referencing topology elements.  
* The network is built of '''NetElements'''
* The network is built of '''NetElements'''
* Objects can be located on the network as '''NetEntities'''
* Objects like infrastructure assets can be located on the network as '''NetEntities'''




== Net Entities and Entity Locations ==
== Net Entities and Entity Locations ==
To define all types of entity, a generic class is defined: '''NetEntity'''. This class defines a general relation with a shared location to define the position on the network. The location of each entity on the network is defined using the intrinsic reference of NetElement.  
To define all types of entity, a generic class is defined: '''NetEntity'''. This class defines a general relation with a shared location to define the position on the network. The location of each entity on the network is defined using the intrinsic position of NetElement.  
NetEntities, specialised as LocatedNetEntities, are located by assigning  '''EntityLocations''' to them. An EntityLocation connects an Entity to the Network via one or more '''PositioningNetElement'''s.
NetEntities, specialised as '''LocatedNetEntities''', are located by assigning  '''EntityLocations''' to them. An EntityLocation connects an Entity to the Network via one or more '''PositioningNetElement'''s.
 
The figure below shows different examples of infrastructure assets that are located in the railway topology network as net entities.


<gallery>
<gallery>
Line 13: Line 15:
</gallery>
</gallery>


[[File:LocationsLU.png|thumbnail|Locations (Language Unit)]]
Each '''NetEntity''' instance possesses an unspecified number of '''EntityLocation''' instances. Each EntityLocation instance is specialised as one of three types used to locate different types of NetEntities on the network:  
Each “NetEntity” instance possesses an unspecified number of “EntityLocation” instances. Each EntityLocation instance is specialised as one of three types used to locate different types of NetEntities on the network:  
# '''SpotLocation''': used for information objects happening at a point (e.g.: signals, buffer stops, ETCS balise, etc. - see number 1 in previous example)
# SpotLocation: used for information objects happening at a point (e.g.: signals, buffer stops, ETCS balise, etc.)
# '''LinearLocation''': used for information objects happening along a path (e.g.: platform, speed limit, ballast renewal, etc. - see number 2 in previous example)
# LinearLocation: used for information objects happening along a path (e.g.: platform, speed limit, ballast renewal, etc.)
# '''AreaLocation''': used for information objects happening on a sub network (e.g.: catenary cases, track circuits zones, switches, stations, tunnels, bridges, etc. - see number 3 in previous example)
# AreaLocation: used for information objects happening on a sub network (e.g.: catenary cases, track circuits zones, switches, stations, tunnels, bridges, etc.)
The following figure shows the {{rtm}} class model for net entity locations.
<br />
 
<br />
<gallery>
File:LocationsLU.png|NetEntity Locations (Language Unit)
</gallery>


A NetEntity can have more than one EntityLocation in the Network, For example:
A NetEntity can have more than one EntityLocation in the Network. Consider the following examples:
* An object can be located by some positioning system, and additionally by intrinsic positioning. See later explanations
* An object can be located in the railway network via a positioning system, and additionally via an intrinsic positioning. See later explanations
* A level crossing of two tracks is located on each of those tracks by (at least) one SpotLocation.
* A level crossing of two tracks is located on each of those tracks by (at least) one SpotLocation.
* A switch has an AreaLocation (see picture), but can as well be located at its branching point by a SpotLocation
* A switch has an AreaLocation (see picture), but can as well be located at its branching point by a SpotLocation
* A station on the micro level of the network is represented by an ArealLocation. On the macro level it is condensed as operational point to a single topological node (NonLinear NetElement) and therefore is assigned a SpotLocation
* A station on the micro level of the network is represented by an AreaLocation. On the macro level it is condensed as operational point to a single topological node (nonlinear NetElement) and therefore is assigned a SpotLocation.
The last two examples show that a stringent  classification of  NetEntities into three types, Spot Entity, Linear Entity and Areal Entity is not always possible.  
The last two examples show that a consequent classification of  NetEntities into three types, '''Spot Entity''', '''Linear Entity''' and '''Areal Entity''' is not always possible.  
<br />
 
<br />


== Relating EntityLocations to the Network ==
== Relating EntityLocations to the Network ==


The three types of EntityLocations are related in different ways to the network. Using an “AreaLocation” instance for connecting to network means that the “NetEntity” in question is related to a subset of “NetElement” instances which together resemble an area or a sub-network. <br/>
The three types of EntityLocations are related in different ways to the network. Using an '''AreaLocation''' instance for connecting to the network means that the "NetEntity" in question is related to a subset of "NetElement" instances which together resemble an area or a sub-network. <br/>
A connection based on a “LinearLocation” instance means that the “NetEntity” in question is a path related to a linear segment of the “Network”.<br/>
A connection based on a '''LinearLocation''' instance means that the "NetEntity" in question is a path related to a linear segment of the network.<br/>
A connection based on a “SpotLocation” means that the “NetEntity” in question is either related to a “nonLinear" NetElement” building block of the “Network” or it is related to a specified position on a "linear" NetElement  
A connection based on a '''SpotLocation''' means that the "NetEntity" in question is either related to a nonlinear NetElement building block of the network or it is related to a specified position on a linear NetElement.
<br />
<br />
{| class="wikitable"
{| class="wikitable"
|-
|-
| '''Note''' that - with reference to ''NetElements'' - the terms ''linear'' or ''nonlinear''  are used for illustration only. In the RTM network, there are only NetElements and Relations. You can imagine a nonlinear NetElement as a "node" and a linear NetElement as an "edge" to get a better understanding, but it will make no difference in the topology or the positioning of NetEntities.
| '''Note''' that - with reference to ''NetElements'' - the terms ''linear'' or ''nonlinear''  are used for illustration only. In the {{rtm}} network, there are only NetElements and Relations. You can imagine a nonlinear NetElement as a "node" and a linear NetElement as an "edge" to get a better understanding, but it will make no difference in the topology or the positioning of NetEntities.
|}
|}
   
   
=== SpotLocation ===
=== SpotLocation ===


A spot entity can be located either at a nonlinear element or along a section of rail/section of line (linear net element) at a certain distance. <br/>
An entity can be located via a ''SpotLocation'' either at a nonlinear element or along a section of rail/section of line (linear element) at a certain distance.<br/>
If it is located at a nonlinear element, it could be that happens “in” the element (regardless to orientation). In this case, it encompasses the whole nonlinear element. Otherwise it happens with respect to some relation of the nonlinear element (exit or entry via another net element, for example from an adjacent track edge X). It should then be described as track edge X at 0 (or 100%), meaning it happens at the nonlinear elements centroid, but only on this particular track edge.  
If it is located at a nonlinear element, it can be interpreted as happening "in" the element (regardless the orientation). In this case, it encompasses the whole nonlinear element. Otherwise, it happens with respect to some relation of the nonlinear element (exit or entry via another net element, for example from an adjacent track edge X). It should then be located using a ''SpotLocation'' on the adjacent linear net element.<br/>
The following figure shows an example where a signal is located in the center of the linear net element A via a ''SpotLocation''.
<gallery>
<gallery>
File:SpotLocationModified.PNG|SpotLocation Example (© InfraBel, DB Netz)
File:SpotLocationModified.PNG|SpotLocation Example (© InfraBel, DB Netz)
</gallery>
</gallery>


If it happens along a track edge at a certain distance from the start, it is necessary to define whether this entity happens directly on the track edge, or alongside the track edge; and if the entity occurs in both directions or only in one. These types of entities are located on the network by the type of class: SpotLocation. It is possible to have more than one location for a punctual entity:  
If a ''NetEntity'' is situated somewhere along a track edge (linear net element) at a certain distance from the start, it is further necessary to define the lateral offset and the application direction. In particular, it has to be clarified whether the entity happens directly on the track edge, or somewhere left or right of the track edge with respect to its orientation; and if the entity occurs in both directions or only in one. For example: a conventional railway signal is located either left of right of (or above) the track and it is valid for only one direction of travel.  
# Multiple location (on multi-track) on the network for the same level (micro,).
 
# Multiple location because the entity is located on different levels.
Further, it is possible to have more than one ''SpotLocation'' for some spot entities:  
# Multiple location (on multi-track) on the network for the same hierarchical level (micro, macro, etc.).
# Multiple location, because the entity is located on different levels.
The following example may show the location of a clearing post. While the position of the clearing post is somewhere in the middle between the two tracks (not depicted), its application points exist on both tracks (linear elements E and F) that are going to join in the nonlinear net element D. Thus, the clearing post element has two spot locations on the same hierarchical level.
 
<gallery>
<gallery>
File:MultipleSpotLocation.png|Example multiple spot location (© InfraBel)
File:MultipleSpotLocation.png|Example multiple spot location (© InfraBel)
</gallery>
</gallery>


[[File:SpotLocationLU.png|thumbnail|SpotLocation (Language Unit)]]
In terms of {{rtm}}, a ''SpotLocation'' is related to exactly one ''PositioningNetElement'', which could be either nonlinear or linear. This means that the ''NetEntity'' in question is located on this ''NetElement'' and its applicationDirection refers to the NetElement’s orientation. The exact localization of the SpotLocation is given depending which of two types it belongs to:
In terms of RTM, a SpotLocation is related to exactly one PositioningNetElement, which could be either nonlinear or linear. This means that the NetEntity in question is located on this NetElement and its applicationDirection refers to the NetElement’s orientation. In case the NetElement is linear, the exact place of the SpotLocation remains is specified depending the SpotLocations type:
 
<gallery>
File:SpotLocationLU.png|SpotLocation (Language Unit)
</gallery>


===== SpotLocationCoordinate =====
===== SpotLocationCoordinate =====
A SpotLocation of this type is related to a PositioningSystemCoordinate which refers to a specific PositioningSystem. This is either a LinearPositioningSystem or a GeometricPositioningSystem. The PositioningSystemCoordinate provides the exact localization of the SpotLocation
A ''SpotLocation'' of this type is related to a ''PositioningSystemCoordinate'' that refers to a specific ''PositioningSystem''. This is either a ''LinearPositioningSystem'' or a ''GeometricPositioningSystem''. The ''PositioningSystemCoordinate'' provides the exact position of the ''SpotLocation'' in the referenced coordinate system.


===== SpotLocationIntrinsic =====
===== SpotLocationIntrinsic =====
A SpotLocationIntrinsic carries the intrinsicCoordinate in reference to the chosen PositioningNetElement, as a value between 0 and 1.
A ''SpotLocationIntrinsic'' carries the intrinsicCoordinate in reference to the chosen ''PositioningNetElement'', as a value between 0 and 1.
<br/>
In the spot location example from the begin of the chapter, we see a ''SpotLocation'' for a railway signal on linear ''NetElement'' A. The applicationDirection in this case is "reverse", since the signal is valid in direction 1 to 0 on A. The ''NetEntity'' of the signal "happens" at a certain distance left from the endpoint A1. As a ''SpotLocationIntrinsic'' its intrinsicCoord is 0.5. As a ''SpotLocationCoordinate'' its external coordinate is X in a referenced positioning system.
<br/>
<br/>
In the example spot location on the image above, we see a SpotLocation for a SpotEntity (signal), on netElement A, which is a linear element. The applicationDirection in this case is “reverse”, since the signal is valid in direction 1 to 0 on A.
 
<br/><br/>The NetEntity "happens" at a certain distance left from A. As a SpotLocationIntrinsic, its intrinsicCoord is 0.5. As a SpotLocationCoordinate, its external coordinate is X.
<br/><br/>
=== LinearLocation ===
=== LinearLocation ===


[[File:LinearLocationLU.png|thumbnail|LinearLocation (Language unit)]]
Many ''NetEntity'' instances can be seen as paths. For example, a platform edge is a linear infrastructure asset, and also track circuits or axle-counting circuits can be seen as linear installations in the railway track network. The following figure may show the axle-counting circuit example.


Many “NetEntity” instances can be seen as paths.
<gallery>
<gallery>
File:LinearLocationExample.png|LinearLocation Example (© InfraBel)
File:LinearLocationExample.png|LinearLocation Example (© InfraBel)
</gallery>
</gallery>


To describe a path or linear location, a start point, an end point and an ordered list of every encompassed element, is needed. <br/><br/>
To describe a path or linear location, a start point, an end point and an ordered list of every encompassed element, is needed.<br/>
The start and end points are point locations, thus either a nonlinear element or a point along a linear element (track edge). The path should be a topological path, meaning that at each nonlinear element only one exit direction can be taken. If the start- or end point is a nonlinear element, this element is fully encompassed within the path.<br/><br/>
The start and end points are point locations, thus either a nonlinear element or a point along a linear element (track edge). The path should be a topological path, meaning that at each nonlinear element only one exit direction can be taken. If the start- or end point is a nonlinear element, this element is fully encompassed within the path.<br/>
The correct ordering of the list should be checked against the topology definition of the network. This could be the task of a validator. The orientation of the path on each track edge can be deduced from the order of the crossed nonlinear elements.
The correct ordering of the list should be checked against the topology definition of the network. This could be the task of a validator. The orientation of the path on each track edge can be deduced from the order of the crossed nonlinear elements.
Path locations in RTM are located by the type of class: LinearLocation.  
Path locations in {{rtm}} are located by instances of the class type ''LinearLocation''.


[[File:OrderedAssociatedNetElement.png|thumbnail|class diagram OrderedAssociatedNetElement]]
<gallery>
File:LinearLocationLU.png|LinearLocation (Language unit)
File:OrderedAssociatedNetElement.png|class diagram OrderedAssociatedNetElement
</gallery>
   
   
<br/><br/>
A ''LinearLocation'' is defined by an ordered sequence of '''AssociatedNetElements'''. Each ''AssociatedNetElement'' refers to a linear or nonlinear ''PositionedNetElement''. It either encompasses the whole ''NetElement'' or a section at the beginning or end of the linear ''NetElement'' (or an arbitrary section in case there is only one AssociatedNetElement) <br/>
A LinearLocation is defined by an ordered sequence of '''AssociatedNetElements'''. Each AssociatedNetElement refers to a linear or nonlinear PositionedNetElement. It either encompasses the whole NetElement or a section at the beginning or end of the linear NetElement (or an arbitrary section in case there is only one AssociatedNetElement) <br/><br/>
The beginning and end of the sections of ''AssociatedNetElements'' are given in intrinsic coordinates (between 0 and 1) with respect to the related ''PositioningNetElement''. The parameter keepsOrientation defines if the ''AssociatedNetElement'' is oriented along the direction of the NetElement or in reverse direction.<br/>
The beginning and end of the sections of AssociatedNetElements are given in intrinsic coordinates (between 0 and 1) with respect to the related PositioningNetElement. The parameter keepsOrientation defines if the AssociatedNetElement is oriented along the direction of the NetElement or in reverse direction. <br/><br/>
The ''AssociatedNetElements'' have to be oriented all in the same direction, from the start to the end of the sequence. They form a connected path in the network without gaps or branches. <br/>
The AssociatedNetElements have to be oriented all in the same direction, from the start to the end of the sequence. They form a connected path in the network without gaps or branches. <br/><br/>
 
The position of the ''LinearLocation'' instance within the network itself is now complete. Additionally, more positioning systems can be used for the respective entity. If the ''LinearLocation'' is a ''LinearLocationCoordinate'', it can be assigned a position with respect to an external – linear or geometric – PositioningSystem.<br/>
The following figure shows how the intrinsic coordinates are used to reference begin and end coordinates of the linear element.


The position of the LinearLocation within the network itself is now complete. Additionally, more positioning systems can be used for the respective entity. If the LinearLocation is a LinearLocationCoordinate, it can be assigned a position with respect to an external – linear or geometric – PositioningSystem.   
<gallery>
<gallery>
File:LinearLocationModified.png|AssociatedNetElements for linear location (© InfraBel, DB Netz)
File:LinearLocationModified.png|AssociatedNetElements for linear location (© InfraBel, DB Netz)
</gallery>
</gallery>
The example shows the LinearLocation and its AssociateNetElements with respect to the underlying NetElements. The sequence looks as follows:  
 
In particular, the example shows the ''LinearLocation'' and its ''AssociateNetElements'' with respect to the underlying ''NetElements''. When writing this sequence as ordered list of NetElement segments, the results looks as follows:  


{| class="wikitable"
{| class="wikitable"
Line 101: Line 118:
| 1 || A' || A || 0.7 || 1 || true
| 1 || A' || A || 0.7 || 1 || true
|-
|-
| 2 || B' || B || n/a (nonlinear) || n/a || n/a (nonlinear)
| 2 || B' || B || 0 || 0 || n/a (nonlinear)
|-
|-
| 3 || C' || C || 0 || 1 || true
| 3 || C' || C || 0 || 1 || true
|-
|-
| 4 || D' || D || n/a || n/a || n/a  
| 4 || D' || D || 0 || 0 || n/a (nonlinear)
|-
|-
| 5 || E' || E || 0 || 0.8 || true
| 5 || E' || E || 0 || 0.8 || true
|}
|}


'''Remark:''' In this example, all the underlying linear NetElements are oriented in the same direction, as can be seen by the positions of their intrinsic coordinates 0 and 1. In case that a linear NetElement, say E, were oriented in the other direction, the AssociatedNetElement E’ would have to be defined by intrinsicCoordBegin = 0.2, intrinsicCoordEnd = 1 and keepsOrientation = false.  
'''Remark:''' In this example, all the underlying linear ''NetElements'' are oriented in the same direction, as can be seen by the positions of their intrinsic coordinates 0 and 1. In case that a linear ''NetElement'' instance, say E, were oriented in the other direction, the ''AssociatedNetElement'' instance E’ would have to be defined by intrinsicCoordBegin = 0.2, intrinsicCoordEnd = 1 and keepsOrientation = false.  


=== AreaLocation (SubNetwork) ===
=== AreaLocation (SubNetwork) ===
[[File:AreaLocationLU.png|thumbnail|AreaLocation (Language Unit)]]
 
An area location can be seen as aggregated location that comprises spot locations and several linear locations in an unordered sequence. The example shown in the following figure may be a more realistic representation of an axle-counting circuit.


<gallery>
<gallery>
Line 119: Line 137:
</gallery>
</gallery>


An areal object is an object represented by a subgraph (a continuous fraction of the network), that is comprehended as an object. The name areal object was chosen because most practical examples resemble an area. The respective AreaLocation is this subgraph or sub-network. Example: the track network belonging to an organisational unit such as a station. <br/>
An areal object is an object represented by a subgraph (a continuous fraction of the network), that is comprehended as an object. The name "areal object" indicates that most practical examples resemble an area in reality. The respective ''AreaLocation'' is this subgraph or sub-network. Another example for an area location is the track network belonging to a station or a shunting yard.<br/>
It is defined analogously to spot- and linear entities, by listing the AssociatedNetElements of the location, with a pair of positions (beginning and end in intrinsic reference on the respective PositionedNetElement) for all AssociatedNetElements<br/><br/>
The difference to LinearLocation is that the set of AssociatedNetElements does not have to be ordered and can have different orientations. Further there can be branches within the subgraph


<br/><br/>
<gallery>
File:AreaLocationLU.png|AreaLocation (Language Unit)
</gallery>
 
An ''AreaLocation'' is defined analogously to spot- and linear entity locations, by listing the ''AssociatedNetElement'' instances of the location, with a pair of positions (beginning and end in intrinsic reference on the respective ''PositionedNetElement'' instance) for all ''AssociatedNetElements''.<br/>
The difference to ''LinearLocation'' is that the set of ''AssociatedNetElements'' does not have to be ordered and can have different orientations. Further there can be branches within the subgraph
 
As in the case of ''LinearLocations'', if a nonlinear element is included in the collection of ''AssociatedNetElements'', then the whole element is included. The collection can include sections of linear elements, defined by their intrinsic begin and end coordinate.  It must be checked that the objects included in the areal location form a connected subgraph (no independent parts) and that no object is listed twice. <br/>


As in the case of LinearLocations, if a nonlinear element is included in the collection of AssociatedNetElements, then the whole element is included. The collection can include sections of linear elements, defined by their intrinsic begin and end coordinate.  It must be checked that the objects included in the areal location form a connected subgraph (no independent parts) and that no object is listed twice. <br/><br/>
<gallery>
<gallery>
File:AreaLocationModified.PNG|AssociatedNetElements for the above AreaLocation (© InfraBel, DB Netz)
File:AreaLocationModified.PNG|AssociatedNetElements for the above AreaLocation (© InfraBel, DB Netz)
</gallery>
</gallery>
The AreaLocation in the example contains 8 AssociatedNetElements. Note that element E is fully included in E’, but not the adjacent  nonlinear NetElement (node) in the network. The track edges A and G are oriented reverse to each other, which does not matter in an AreaLocation.


{| class="wikitable"
The ''AreaLocation'' in the example contains 8 ''AssociatedNetElement'' instances. Note that element E is fully included in E’, but not the adjacent  nonlinear NetElement (node) in the network. The track edges A and G are oriented reverse to each other, which does not matter in an ''AreaLocation''. <br/>
|-
 
| '''What you should have learned'''<br />
{{navi
|lessin=<br>
You should be able to
You should be able to
* identify spot-, linear and areal objects in your network and chose the appropriate EntityLocation type (s) for them
* identify spot-, linear and areal objects in your network and chose the appropriate EntityLocation type(s) for them
* understand the connection of EntityLocations to the network
* understand the connection of EntityLocations to the network via intrinsic positioning
* ...at last answer the question "where is...?" for every object related to your railway network
* ...at last answer the question "where is...?" for every object related to a position in your railway network.
|}
|chapter={{RTM}} modelling concepts
 
|chapterlink=RTM modelling concepts
 
|prev=Positioning
{| class="wikitable"
|pchapter={{rtm}} Quick Start
|-
|pchapterlink=RTM Quick Start
! Back To !! Previous Chapter !! Next Chapter
|nchapter={{rtm}} External References
|-
|nchapterlink=RTM External References
| [[RTM Modelling Concepts]] || [[Positioning]] || -
}}
|}

Revision as of 14:03, 13 March 2017

Overview
The railTOPOMODEL® allows for all railway-related physical or logical objects an exact and unique positioning on the network. The generic class EntityLocation holds the necessary positioning information and serves as a connection to the network.


The railTOPOMODEL® data structure is organized around the network. The Network is used as the main reference system for positioning of arbitrary information objects. This layer allows the user to project objects and entities on the topology, by referencing topology elements.

  • The network is built of NetElements
  • Objects like infrastructure assets can be located on the network as NetEntities


Net Entities and Entity Locations

To define all types of entity, a generic class is defined: NetEntity. This class defines a general relation with a shared location to define the position on the network. The location of each entity on the network is defined using the intrinsic position of NetElement. NetEntities, specialised as LocatedNetEntities, are located by assigning EntityLocations to them. An EntityLocation connects an Entity to the Network via one or more PositioningNetElements.

The figure below shows different examples of infrastructure assets that are located in the railway topology network as net entities.

Each NetEntity instance possesses an unspecified number of EntityLocation instances. Each EntityLocation instance is specialised as one of three types used to locate different types of NetEntities on the network:

  1. SpotLocation: used for information objects happening at a point (e.g.: signals, buffer stops, ETCS balise, etc. - see number 1 in previous example)
  2. LinearLocation: used for information objects happening along a path (e.g.: platform, speed limit, ballast renewal, etc. - see number 2 in previous example)
  3. AreaLocation: used for information objects happening on a sub network (e.g.: catenary cases, track circuits zones, switches, stations, tunnels, bridges, etc. - see number 3 in previous example)

The following figure shows the railTOPOMODEL® class model for net entity locations.

A NetEntity can have more than one EntityLocation in the Network. Consider the following examples:

  • An object can be located in the railway network via a positioning system, and additionally via an intrinsic positioning. See later explanations
  • A level crossing of two tracks is located on each of those tracks by (at least) one SpotLocation.
  • A switch has an AreaLocation (see picture), but can as well be located at its branching point by a SpotLocation
  • A station on the micro level of the network is represented by an AreaLocation. On the macro level it is condensed as operational point to a single topological node (nonlinear NetElement) and therefore is assigned a SpotLocation.

The last two examples show that a consequent classification of NetEntities into three types, Spot Entity, Linear Entity and Areal Entity is not always possible.


Relating EntityLocations to the Network

The three types of EntityLocations are related in different ways to the network. Using an AreaLocation instance for connecting to the network means that the "NetEntity" in question is related to a subset of "NetElement" instances which together resemble an area or a sub-network.
A connection based on a LinearLocation instance means that the "NetEntity" in question is a path related to a linear segment of the network.
A connection based on a SpotLocation means that the "NetEntity" in question is either related to a nonlinear NetElement building block of the network or it is related to a specified position on a linear NetElement.

Note that - with reference to NetElements - the terms linear or nonlinear are used for illustration only. In the railTOPOMODEL® network, there are only NetElements and Relations. You can imagine a nonlinear NetElement as a "node" and a linear NetElement as an "edge" to get a better understanding, but it will make no difference in the topology or the positioning of NetEntities.

SpotLocation

An entity can be located via a SpotLocation either at a nonlinear element or along a section of rail/section of line (linear element) at a certain distance.
If it is located at a nonlinear element, it can be interpreted as happening "in" the element (regardless the orientation). In this case, it encompasses the whole nonlinear element. Otherwise, it happens with respect to some relation of the nonlinear element (exit or entry via another net element, for example from an adjacent track edge X). It should then be located using a SpotLocation on the adjacent linear net element.
The following figure shows an example where a signal is located in the center of the linear net element A via a SpotLocation.

If a NetEntity is situated somewhere along a track edge (linear net element) at a certain distance from the start, it is further necessary to define the lateral offset and the application direction. In particular, it has to be clarified whether the entity happens directly on the track edge, or somewhere left or right of the track edge with respect to its orientation; and if the entity occurs in both directions or only in one. For example: a conventional railway signal is located either left of right of (or above) the track and it is valid for only one direction of travel.

Further, it is possible to have more than one SpotLocation for some spot entities:

  1. Multiple location (on multi-track) on the network for the same hierarchical level (micro, macro, etc.).
  2. Multiple location, because the entity is located on different levels.

The following example may show the location of a clearing post. While the position of the clearing post is somewhere in the middle between the two tracks (not depicted), its application points exist on both tracks (linear elements E and F) that are going to join in the nonlinear net element D. Thus, the clearing post element has two spot locations on the same hierarchical level.

In terms of railTOPOMODEL®, a SpotLocation is related to exactly one PositioningNetElement, which could be either nonlinear or linear. This means that the NetEntity in question is located on this NetElement and its applicationDirection refers to the NetElement’s orientation. The exact localization of the SpotLocation is given depending which of two types it belongs to:

SpotLocationCoordinate

A SpotLocation of this type is related to a PositioningSystemCoordinate that refers to a specific PositioningSystem. This is either a LinearPositioningSystem or a GeometricPositioningSystem. The PositioningSystemCoordinate provides the exact position of the SpotLocation in the referenced coordinate system.

SpotLocationIntrinsic

A SpotLocationIntrinsic carries the intrinsicCoordinate in reference to the chosen PositioningNetElement, as a value between 0 and 1.
In the spot location example from the begin of the chapter, we see a SpotLocation for a railway signal on linear NetElement A. The applicationDirection in this case is "reverse", since the signal is valid in direction 1 to 0 on A. The NetEntity of the signal "happens" at a certain distance left from the endpoint A1. As a SpotLocationIntrinsic its intrinsicCoord is 0.5. As a SpotLocationCoordinate its external coordinate is X in a referenced positioning system.

LinearLocation

Many NetEntity instances can be seen as paths. For example, a platform edge is a linear infrastructure asset, and also track circuits or axle-counting circuits can be seen as linear installations in the railway track network. The following figure may show the axle-counting circuit example.

To describe a path or linear location, a start point, an end point and an ordered list of every encompassed element, is needed.
The start and end points are point locations, thus either a nonlinear element or a point along a linear element (track edge). The path should be a topological path, meaning that at each nonlinear element only one exit direction can be taken. If the start- or end point is a nonlinear element, this element is fully encompassed within the path.
The correct ordering of the list should be checked against the topology definition of the network. This could be the task of a validator. The orientation of the path on each track edge can be deduced from the order of the crossed nonlinear elements. Path locations in railTOPOMODEL® are located by instances of the class type LinearLocation.

A LinearLocation is defined by an ordered sequence of AssociatedNetElements. Each AssociatedNetElement refers to a linear or nonlinear PositionedNetElement. It either encompasses the whole NetElement or a section at the beginning or end of the linear NetElement (or an arbitrary section in case there is only one AssociatedNetElement)
The beginning and end of the sections of AssociatedNetElements are given in intrinsic coordinates (between 0 and 1) with respect to the related PositioningNetElement. The parameter keepsOrientation defines if the AssociatedNetElement is oriented along the direction of the NetElement or in reverse direction.
The AssociatedNetElements have to be oriented all in the same direction, from the start to the end of the sequence. They form a connected path in the network without gaps or branches.

The position of the LinearLocation instance within the network itself is now complete. Additionally, more positioning systems can be used for the respective entity. If the LinearLocation is a LinearLocationCoordinate, it can be assigned a position with respect to an external – linear or geometric – PositioningSystem.
The following figure shows how the intrinsic coordinates are used to reference begin and end coordinates of the linear element.

In particular, the example shows the LinearLocation and its AssociateNetElements with respect to the underlying NetElements. When writing this sequence as ordered list of NetElement segments, the results looks as follows:

Nr AssociatedNetElement netElement intrinsicCoordBegin intrinsicCoordEnd keepsOrientation
1 A' A 0.7 1 true
2 B' B 0 0 n/a (nonlinear)
3 C' C 0 1 true
4 D' D 0 0 n/a (nonlinear)
5 E' E 0 0.8 true

Remark: In this example, all the underlying linear NetElements are oriented in the same direction, as can be seen by the positions of their intrinsic coordinates 0 and 1. In case that a linear NetElement instance, say E, were oriented in the other direction, the AssociatedNetElement instance E’ would have to be defined by intrinsicCoordBegin = 0.2, intrinsicCoordEnd = 1 and keepsOrientation = false.

AreaLocation (SubNetwork)

An area location can be seen as aggregated location that comprises spot locations and several linear locations in an unordered sequence. The example shown in the following figure may be a more realistic representation of an axle-counting circuit.

An areal object is an object represented by a subgraph (a continuous fraction of the network), that is comprehended as an object. The name "areal object" indicates that most practical examples resemble an area in reality. The respective AreaLocation is this subgraph or sub-network. Another example for an area location is the track network belonging to a station or a shunting yard.

An AreaLocation is defined analogously to spot- and linear entity locations, by listing the AssociatedNetElement instances of the location, with a pair of positions (beginning and end in intrinsic reference on the respective PositionedNetElement instance) for all AssociatedNetElements.
The difference to LinearLocation is that the set of AssociatedNetElements does not have to be ordered and can have different orientations. Further there can be branches within the subgraph

As in the case of LinearLocations, if a nonlinear element is included in the collection of AssociatedNetElements, then the whole element is included. The collection can include sections of linear elements, defined by their intrinsic begin and end coordinate. It must be checked that the objects included in the areal location form a connected subgraph (no independent parts) and that no object is listed twice.

The AreaLocation in the example contains 8 AssociatedNetElement instances. Note that element E is fully included in E’, but not the adjacent nonlinear NetElement (node) in the network. The track edges A and G are oriented reverse to each other, which does not matter in an AreaLocation.









What you should have learned
Please, enter a summary!
Navigation
Home
Chapter railTOPOMODEL® Quick Start railTOPOMODEL® modelling concepts railTOPOMODEL® External References
Section Positioning Object positioning in the network
Subection