Dev:Double and single switch crossing
This page was requested by [tickets 1]. A railway crossing is a point where two tracks cross each other and either enable trains to move from one track to the other or not.
In railML® 3 <switchIS> element is used to describe “switchable” railway crossings, e.g. single and double switch crossings, see Figure 1. They enable trains to move from one track to the other.
Simple crossings do not enable trains to move from one track to the other. They are described with <crossing> element of railML® 3.
As single element
Below you can see a source code of a double switch crossing description.
1 <infrastructure id="is_01"> 2 <topology> 3 <netElements> 4 <netElement id="ne21"> 5 <relation ref="nr_ne21ne79_dsw317"/> 6 <relation ref="nr_ne21ne77_dsw317"/> 7 <relation ref="nr_ne21ne94_dsw317"/> 8 <associatedPositioningSystem id="ne21_aps01"> 9 <intrinsicCoordinate id="ne21_aps01_ic01" 10 intrinsicCoord="0"> 11 <geometricCoordinate positioningSystemRef="gps01" 12 x="2760.000" 13 y="-150.000"/> 14 </intrinsicCoordinate> 15 <intrinsicCoordinate id="ne21_aps01_ic02" 16 intrinsicCoord="1"> 17 <geometricCoordinate positioningSystemRef="gps01" 18 x="3870.000" 19 y="-150.000"/> 20 <linearCoordinate positioningSystemRef="loc-1" 21 measure="5.15"/> 22 </intrinsicCoordinate> 23 </associatedPositioningSystem> 24 </netElement> 25 <netElement id="ne77"> 26 <relation ref="nr_ne21ne77_dsw317"/> 27 <relation ref="nr_ne77ne79_dsw317"/> 28 <relation ref="nr_ne77ne94_dsw317"/> 29 <associatedPositioningSystem id="ne77_aps01"> 30 <intrinsicCoordinate id="ne77_aps01_ic01" 31 intrinsicCoord="0"> 32 <geometricCoordinate positioningSystemRef="gps01" 33 x="2760.000" 34 y="0.000"/> 35 </intrinsicCoordinate> 36 <intrinsicCoordinate id="ne77_aps01_ic02" 37 intrinsicCoord="0.5"> 38 <geometricCoordinate positioningSystemRef="gps01" 39 x="3720.000" 40 y="-0.000"/> 41 </intrinsicCoordinate> 42 <intrinsicCoordinate id="ne77_aps01_ic03" 43 intrinsicCoord="1"> 44 <geometricCoordinate positioningSystemRef="gps01" 45 x="3870.000" 46 y="-150.000"/> 47 <linearCoordinate positioningSystemRef="loc-1" 48 measure="5.15"/> 49 </intrinsicCoordinate> 50 </associatedPositioningSystem> 51 </netElement> 52 <netElement id="ne79"> 53 <relation ref="nr_ne21ne79_dsw317"/> 54 <relation ref="nr_ne77ne79_dsw317"/> 55 <relation ref="nr_ne79ne94_dsw317"/> 56 <associatedPositioningSystem id="ne79_aps01"> 57 <intrinsicCoordinate id="ne79_aps01_ic01" 58 intrinsicCoord="0"> 59 <geometricCoordinate positioningSystemRef="gps01" 60 x="3870.000" 61 y="-150.000"/> 62 <linearCoordinate positioningSystemRef="loc-1" 63 measure="5.15"/> 64 </intrinsicCoordinate> 65 <intrinsicCoordinate id="ne79_aps01_ic02" 66 intrinsicCoord="1"> 67 <geometricCoordinate positioningSystemRef="gps01" 68 x="4020.000" 69 y="-300.000"/> 70 <linearCoordinate positioningSystemRef="loc-1" 71 measure="5.25"/> 72 </intrinsicCoordinate> 73 </associatedPositioningSystem> 74 </netElement> 75 <netElement id="ne94"> 76 <relation ref="nr_ne21ne94_dsw317"/> 77 <relation ref="nr_ne77ne94_dsw317"/> 78 <relation ref="nr_ne79ne94_dsw317"/> 79 <associatedPositioningSystem id="ne94_aps01"> 80 <intrinsicCoordinate id="ne94_aps01_ic01" 81 intrinsicCoord="0"> 82 <geometricCoordinate positioningSystemRef="gps01" 83 x="4465.730" 84 y="-150.000"/> 85 </intrinsicCoordinate> 86 <intrinsicCoordinate id="ne94_aps01_ic02" 87 intrinsicCoord="1"> 88 <geometricCoordinate positioningSystemRef="gps01" 89 x="3870.000" 90 y="-150.000"/> 91 <linearCoordinate positioningSystemRef="loc-1" 92 measure="5.15"/> 93 </intrinsicCoordinate> 94 </associatedPositioningSystem> 95 </netElement> 96 </netElements> 97 <netRelations> 98 <netRelation id="nr_ne21ne79_dsw317" 99 positionOnA="1" 100 positionOnB="0" 101 navigability="Both"> 102 <elementA ref="ne21"/> 103 <elementB ref="ne79"/> 104 </netRelation> 105 <netRelation id="nr_ne21ne77_dsw317" 106 positionOnA="1" 107 positionOnB="1" 108 navigability="None"> 109 <elementA ref="ne21"/> 110 <elementB ref="ne77"/> 111 </netRelation> 112 <netRelation id="nr_ne21ne94_dsw317" 113 positionOnA="1" 114 positionOnB="1" 115 navigability="Both"> 116 <elementA ref="ne21"/> 117 <elementB ref="ne94"/> 118 </netRelation> 119 <netRelation id="nr_ne77ne79_dsw317" 120 positionOnA="1" 121 positionOnB="0" 122 navigability="Both"> 123 <elementA ref="ne77"/> 124 <elementB ref="ne79"/> 125 </netRelation> 126 <netRelation id="nr_ne77ne94_dsw317" 127 positionOnA="1" 128 positionOnB="1" 129 navigability="Both"> 130 <elementA ref="ne77"/> 131 <elementB ref="ne94"/> 132 </netRelation> 133 <netRelation id="nr_ne79ne94_dsw317" 134 positionOnA="0" 135 positionOnB="1" 136 navigability="None"> 137 <elementA ref="ne79"/> 138 <elementB ref="ne94"/> 139 </netRelation> 140 </netRelations> 141 </topology> 142 <functionalInfrastructure> 143 <tracks> 144 <track id="trk3" 145 mainDirection="both" 146 type="mainTrack" 147 infrastructureManagerRef="ou_01"> 148 <name name="track3" 149 language="en"/> 150 <linearLocation id="trk3_lloc01" 151 applicationDirection="both"> 152 <associatedNetElement keepsOrientation="true" 153 netElementRef="ne94"/> 154 </linearLocation> 155 <designator register="_Example" 156 entry="TRACK track3"/> 157 <length value="7.855" 158 type="physical"/> 159 <trackBegin ref="bus5"/> 160 <trackEnd ref="dsw317"/> 161 </track> 162 <track id="trk27" 163 mainDirection="both" 164 type="mainTrack" 165 infrastructureManagerRef="ou_01"> 166 <name name="track27" 167 language="en"/> 168 <linearLocation id="trk27_lloc01" 169 applicationDirection="both"> 170 <associatedNetElement keepsOrientation="true" 171 netElementRef="ne77"/> 172 </linearLocation> 173 <designator register="_Example" 174 entry="TRACK track27"/> 175 <length value="1172.132" 176 type="physical"/> 177 <trackBegin ref="swi55"/> 178 <trackEnd ref="dsw317"/> 179 </track> 180 <track id="trk30" 181 mainDirection="both" 182 type="mainTrack" 183 infrastructureManagerRef="ou_01"> 184 <name name="track30" 185 language="en"/> 186 <linearLocation id="trk30_lloc01" 187 applicationDirection="both"> 188 <associatedNetElement keepsOrientation="true" 189 netElementRef="ne21"/> 190 </linearLocation> 191 <designator register="_Example" 192 entry="TRACK track30"/> 193 <length value="1110.000" 194 type="physical"/> 195 <trackBegin ref="swi312"/> 196 <trackEnd ref="dsw317"/> 197 </track> 198 <track id="trk33" 199 mainDirection="both" 200 type="mainTrack" 201 infrastructureManagerRef="ou_01"> 202 <name name="track33" 203 language="en"/> 204 <linearLocation id="trk33_lloc01" 205 applicationDirection="both"> 206 <associatedNetElement keepsOrientation="false" 207 netElementRef="ne79"/> 208 </linearLocation> 209 <designator register="_Example" 210 entry="TRACK track33"/> 211 <length value="0.100" 212 type="physical"/> 213 <trackBegin ref="swi316"/> 214 <trackEnd ref="dsw317"/> 215 </track> 216 </tracks> 217 <switchesIS> 218 <switchIS id="dsw317" 219 type="doubleSwitchCrossing"> 220 <name name="Sw07" 221 language="en"/> 222 <spotLocation id="dsw317_loc-1" 223 netElementRef="ne79" 224 applicationDirection="reverse" 225 intrinsicCoord="0.0000"> 226 <linearCoordinate positioningSystemRef="loc-1" 227 lateralSide="both" 228 measure="5.15"/> 229 </spotLocation> 230 <designator register="_Example" 231 entry="SLIP SWITCH Sw07"/> 232 <straightBranch netRelationRef="nr_ne77ne79_dsw317" 233 radius="0"/> 234 <straightBranch netRelationRef="nr_ne21ne94_dsw317" 235 radius="0"/> 236 <turningBranch netRelationRef="nr_ne21ne79_dsw317" 237 branchingSpeed="60" 238 joiningSpeed="60" 239 radius="500"/> 240 <turningBranch netRelationRef="nr_ne77ne94_dsw317" 241 branchingSpeed="60" 242 joiningSpeed="60" 243 radius="500"/> 244 </switchIS> 245 </switchesIS> 246 </functionalInfrastructure> 247</infrastructure>
Topological layer of a “switchable” crossing
To describe a double switch crossing at the topological level, at least four net elements must be defined (ellipses) to go through the crossing in a “turning” branch ‒ from track 27 to track 3 and from track 30 to track 33 ‒ and “straight” one ‒ from track 27 to track 33 and from track 30 to track 3. Please note that railway switch description makes use of only branching and continue branches for its description, while the switchable crossing makes use of only straight and turning branches.
The condensed relations matrix for this case is presented in Table 1.
Table 1 Condensed relations matrix for a double switch crossing
{
Single switch crossing
The above description of a double switch crossing was presented. However, railML® 3 also allows for the description of a single switch one.
Single switch crossing is a combination of a simple crossing, switch and connecting tracks used to guide a train from one straight track to another as well as going straight across. It allows going in 6 directions. The only change needed in the source code is to switch the navigability of one of the relations referred from <turningBranch> to “None”.
Comparison with railML2
According to [1] in the railML® 2 wiki, there are three ways to describe a crossing: with 4, 3 or 2 tracks. In railML3 it is also possible to merge let's say ne21 and ne94 into one track. Yet the topology layer remains the same.
Furthermore, in railML® 2 the crossing would belong to track 30 or there would be two crossings defined for track 30 and 27. In this example, the crossing is located at track 33. But it is also possible to locate the crossing at tracks 30 and 27 in railML® 3.
According to [1] in the railML® 2 wiki, the navigability of straight branches is described implicitly with the combination of “incoming” and “outgoing” attributes. In railML3 navigability is defined explicitly by a corresponding attribute.
Scope
In railML® 2 <crossing> is used to describe double, single switch crossings as well as simple crossings.
In railML® 3 <switchIS> is used to describe double, single switch crossings. <crossing> is only used for simple crossings.
As a combination of switches and crossing
The purpose of this example is twofold. It shall teach newcomers the principles of modelling topologies with railML3. As for the proficient users, this tutorial aims to provide a common way to describe switchable railway crossings, e.g. for certification purposes.
A railway crossing is a point where two tracks cross each other and either enable trains to move from one track to the other or not.
In railML® 3 the element <switchIS> is used to describe “switchable” railway crossings, e.g. single and double switch crossings, see Figure 1. They enable trains to move from one track to the other.
Simple crossings do not enable trains to move from one track to the other. They are described with the <crossing> element of railML® 3.
Below you can see the source code of a double switch crossing. Please refer to “Example data” of railML.org website for an example of a linear positioning system definition. Below code snippet below deliberately misses these, as well as some other references for the sake of space reasons (this section is already very-very long).
1 <infrastructure id="is_01"> 2 <topology> 3 <netElements> 4 <netElement id="ne30"> 5 <associatedPositioningSystem id="ne30_aps01"> 6 <intrinsicCoordinate id="ne30_aps01_ic01" 7 intrinsicCoord="0"/> 8 <intrinsicCoordinate id="ne30_aps01_ic02" 9 intrinsicCoord="1"> 10 <linearCoordinate positioningSystemRef="loc-1" 11 measure="5.15"/> 12 </intrinsicCoordinate> 13 </associatedPositioningSystem> 14 </netElement> 15 <netElement id="ne27"> 16 <associatedPositioningSystem id="ne27_aps01"> 17 <intrinsicCoordinate id="ne27_aps01_ic01" 18 intrinsicCoord="0"/> 19 <intrinsicCoordinate id="ne27_aps01_ic03" 20 intrinsicCoord="1"> 21 <linearCoordinate positioningSystemRef="loc-1" 22 measure="5.15"/> 23 </intrinsicCoordinate> 24 </associatedPositioningSystem> 25 </netElement> 26 <netElement id="ne33"> 27 <associatedPositioningSystem id="ne33_aps01"> 28 <intrinsicCoordinate id="ne33_aps01_ic01" 29 intrinsicCoord="0"> 30 <linearCoordinate positioningSystemRef="loc-1" 31 measure="5.15"/> 32 </intrinsicCoordinate> 33 <intrinsicCoordinate id="ne33_aps01_ic02" 34 intrinsicCoord="1"> 35 <linearCoordinate positioningSystemRef="loc-1" 36 measure="5.25"/> 37 </intrinsicCoordinate> 38 </associatedPositioningSystem> 39 </netElement> 40 <netElement id="ne3"> 41 <associatedPositioningSystem id="ne3_aps01"> 42 <intrinsicCoordinate id="ne3_aps01_ic01" 43 intrinsicCoord="0"/> 44 <intrinsicCoordinate id="ne3_aps01_ic02" 45 intrinsicCoord="1"> 46 <linearCoordinate positioningSystemRef="loc-1" 47 measure="5.15"/> 48 </intrinsicCoordinate> 49 </associatedPositioningSystem> 50 </netElement> 51 </netElements> 52 <netRelations> 53 <netRelation id="nr_ne30ne33_dsw317" 54 positionOnA="1" 55 positionOnB="0" 56 navigability="Both"> 57 <elementA ref="ne30"/> 58 <elementB ref="ne33"/> 59 </netRelation> 60 <netRelation id="nr_ne30ne27_dsw317" 61 positionOnA="1" 62 positionOnB="1" 63 navigability="None"> 64 <elementA ref="ne30"/> 65 <elementB ref="ne27"/> 66 </netRelation> 67 <netRelation id="nr_ne30ne3_dsw317" 68 positionOnA="1" 69 positionOnB="1" 70 navigability="Both"> 71 <elementA ref="ne30"/> 72 <elementB ref="ne3"/> 73 </netRelation> 74 <netRelation id="nr_ne27ne33_dsw317" 75 positionOnA="1" 76 positionOnB="0" 77 navigability="Both"> 78 <elementA ref="ne27"/> 79 <elementB ref="ne33"/> 80 </netRelation> 81 <netRelation id="nr_ne27ne3_dsw317" 82 positionOnA="1" 83 positionOnB="1" 84 navigability="Both"> 85 <elementA ref="ne27"/> 86 <elementB ref="ne3"/> 87 </netRelation> 88 <netRelation id="nr_ne33ne3_dsw317" 89 positionOnA="0" 90 positionOnB="1" 91 navigability="None"> 92 <elementA ref="ne33"/> 93 <elementB ref="ne3"/> 94 </netRelation> 95 </netRelations> 96 </topology> 97 <functionalInfrastructure> 98 <switchesIS> 99 <switchIS id="dsw317" 100 type="doubleSwitchCrossing"> 101 <name name="Sw07" 102 language="en"/> 103 <spotLocation id="dsw317_loc-1" netElementRef="ne3"> 104 <linearCoordinate positioningSystemRef="loc-1" 105 measure="5.15"/> 106 </spotLocation> 107 <spotLocation id="111"netElementRef="ne30"> 108 <linearCoordinate positioningSystemRef="loc-1" 109 measure="5.15"/> 110 </spotLocation> 111 <designator register="_Example" 112 entry="SLIP SWITCH Sw07"/> 113 <straightBranch netRelationRef="nr_ne27ne33_dsw317" 114 radius="0"/> 115 <straightBranch netRelationRef="nr_ne30ne3_dsw317" 116 radius="0"/> 117 <turningBranch netRelationRef="nr_ne30ne33_dsw317" 118 branchingSpeed="60" 119 joiningSpeed="60" 120 radius="500"/> 121 <turningBranch netRelationRef="nr_ne27ne3_dsw317" 122 branchingSpeed="60" 123 joiningSpeed="60" 124 radius="500"/> 125 </switchIS> 126 <switchIS id="sw317a" 127 continueCourse="left" 128 branchCourse="right" 129 type="switchCrossingPart" 130 belongsToarent="dsw317"> 131 <name name="sw317a" 132 language="en"/> 133 <spotLocation id="sw317a_sloc01" 134 netElementRef="ne30" 135 applicationDirection="reverse" 136 intrinsicCoord="0.0000"> 137 <linearCoordinate positioningSystemRef="loc-1" 138 measure="5.15"/> 139 </spotLocation> 140 <leftBranch netRelationRef="nr_ne30ne3_dsw317" 141 branchingSpeed="60" 142 joiningSpeed="40" 143 radius="0"/> 144 <rightBranch netRelationRef="nr_ne30ne33_dsw317" 145 branchingSpeed="40" 146 joiningSpeed="40" 147 radius="500"/> 148 </switchIS> 149 <switchIS id="sw317b" 150 continueCourse="left" 151 branchCourse="right" 152 type="switchCrossingPart" 153 belongsToarent="dsw317"> 154 <name name="sw317b" 155 language="en"/> 156 <spotLocation id="swi312_sloc01" 157 netElementRef="ne30" 158 applicationDirection="normal" 159 intrinsicCoord="0.0000"> 160 <linearCoordinate positioningSystemRef="loc-1" 161 measure="5.15"/> 162 </spotLocation> 163 <leftBranch netRelationRef="nr_ne27ne3_dsw317" 164 branchingSpeed="60" 165 joiningSpeed="60" 166 radius="-500"/> 167 <rightBranch netRelationRef="nr_ne30ne3_dsw317" 168 branchingSpeed="60" 169 joiningSpeed="60" 170 radius="0"/> 171 </switchIS> 172 </switchesIS> 173 <tracks> 174 <track id="trk3" 175 mainDirection="both" 176 type="mainTrack" 177 infrastructureManagerRef="ou_01"> 178 <name name="track3" 179 language="en"/> 180 <linearLocation id="trk3_lloc01" 181 applicationDirection="both"> 182 <associatedNetElement keepsOrientation="true" 183 netElementRef="ne3"/> 184 </linearLocation> 185 <designator register="_Example" 186 entry="TRACK track3"/> 187 <length value="7.855" 188 type="physical"/> 189 <trackBegin ref="bus5"/> 190 <trackEnd ref="dsw317"/> 191 </track> 192 <track id="trk27" 193 mainDirection="both" 194 type="mainTrack" 195 infrastructureManagerRef="ou_01"> 196 <name name="track27" 197 language="en"/> 198 <linearLocation id="trk27_lloc01" 199 applicationDirection="both"> 200 <associatedNetElement keepsOrientation="true" 201 netElementRef="ne27"/> 202 </linearLocation> 203 <designator register="_Example" 204 entry="TRACK track27"/> 205 <length value="1172.132" 206 type="physical"/> 207 <trackBegin ref="swi55"/> 208 <trackEnd ref="dsw317"/> 209 </track> 210 <track id="trk30" 211 mainDirection="both" 212 type="mainTrack" 213 infrastructureManagerRef="ou_01"> 214 <name name="track30" 215 language="en"/> 216 <linearLocation id="trk30_lloc01" 217 applicationDirection="both"> 218 <associatedNetElement keepsOrientation="true" 219 netElementRef="ne30"/> 220 </linearLocation> 221 <designator register="_Example" 222 entry="TRACK track30"/> 223 <length value="1110.000" 224 type="physical"/> 225 <trackBegin ref="swi312"/> 226 <trackEnd ref="dsw317"/> 227 </track> 228 <track id="trk33" 229 mainDirection="both" 230 type="mainTrack" 231 infrastructureManagerRef="ou_01"> 232 <name name="track33" 233 language="en"/> 234 <linearLocation id="trk33_lloc01" 235 applicationDirection="both"> 236 <associatedNetElement keepsOrientation="false" 237 netElementRef="ne33"/> 238 </linearLocation> 239 <designator register="_Example" 240 entry="TRACK track33"/> 241 <length value="0.100" 242 type="physical"/> 243 <trackBegin ref="swi316"/> 244 <trackEnd ref="dsw317"/> 245 </track> 246 </tracks> 247 </functionalInfrastructure> 248</infrastructure>
Topological layer of a switchable crossing
To describe a “switchable” railway crossing at the topological level, at least four net elements must be defined (ellipses) to go through the crossing in a “turning” direction ‒ from track 27 to track 3 and from track 30 to track 33 ‒ and “direct” one ‒ from track 27 to track 33 and from track 30 to track 3.
Functional layer of switchable crossing
The functional layer consists of three elements linked by hierarchical relation @belongsToParent and @branchCourse. To describe the orientation of a crossing user should define two additional switches referencing from <*branch> children with the same relations as the crossing.
The application direction of a crossing is “both”. For a crossing @continueCourse and @branchCourse attributes should not be used. However additional switches compensate for this limitation.
As was stated before switches should have a spot location at the net element of a switch beginning. In this case, sw317a is located at ne3, and sw317b is located at ne30.
Crossing then should be located with two spot locations so that both ne3 and ne30 are covered.
On the other hand, if the crossing is located with one spot location then the recommendation “switches should have spot location at the net element of a switch beginning” is violated.
Single switch crossing
Single switch crossing is a combination of a simple crossing, switch and connecting tracks used to guide a train from one straight track to another as well as going straight across. It allows going in 6 directions. The required changes are as follows:
‒ switch the navigability of one of the relations referred from <turningBranch> to “None”;
‒ <turningBranch> definition needs to be removed
‒ one of the additional <switchIS> needs to be removed
Comparison with railML2
According to [1] in the railML® 2 wiki, there are three ways to describe a crossing: with 4, 3 or 2 tracks. In railML3 it is also possible to merge let's say the netElements ne30 and ne3 into one track. Yet the topology layer remains the same. This is done by referencing both netElements when defining the linearLocation of the track.
According to [1] in the railML® 2 wiki, the navigability of branches is described implicitly (@passable=” true” is not defined) with the combination of “incoming” and “outgoing” attributes. In railML® 3 navigability is defined explicitly by additional relation element.
Scope
In railML® 2 <crossing> is used to describe double, single switch crossings as well as simple crossings. In railML® 3 <switchIS> is used to describe double, single switch crossings. <crossing> element is only used for simple crossings.
References
- ↑ 1.0 1.1 1.2 1.3 Article Dev:Connection_between_tracks#Double_Switch_Crossing in the railML® 2 Wiki