Home » railML newsgroups » railML.infrastructure » [railML3] LevelCrossing Best Practice Example
[railML3] LevelCrossing Best Practice Example [message #2994] Mon, 04 April 2022 18:25 Go to previous message
Heidrun Jost is currently offline  Heidrun Jost
Messages: 25
Registered: September 2006
Junior Member
Dear all,

Thales wanted to give another example for the modeling of a level
crossing. We discussed Georg's example, which used the infrastructure.

Here is an example with the infrastructure in combination with the
interlocking layer. While the infrastructure layer maps the objects on a
graph (netElements) and there are few possibilities to create
associations between different infrastructure objects, interlocking
layer often offers this possibility. The linking of the elements follows
here the business logic. This is the reason that a level crossing (IL)
is connected to tracks (IL) and these tracks (IS) are then mapped onto
"netElements".

Example for a level crossing over two track in the railML3 file:
<!--infrastructure layer -->
<infrastructure>
    ...
     <levelCrossingIS id="uvAn5AZZsL7flbwHdRjDkca">
         <name name="GRM LX_3GRM" language="en"/>
         <designator register="costId" entry="LevelCrossing:BGS_GRM_LX_3"/>
         <designator register="sci_cc" entry="NO_A29_GRMLCSLX_3___"/>
     </levelCrossingIS>
    ...
    <track id="GBQBJs3oZDo85PZD8zlOl9g8" type="other:levelCrossingTrack">
         <name name="GRM LX_3_1GRM" language="en"/>
         <linearLocation id="LL_GBQBJs3oZDo85PZD8zlOl9g8">
            <associatedNetElement 
netElementRef="ZHiQjsi8DUialCTNQdA3yWb" intrinsicCoordBegin="0.625003" 
intrinsicCoordEnd="0.832348" keepsOrientation="true"/>
         </linearLocation>
         <designator register="sci_cc" entry="NO_A29_GRMLCTLX_3_1_"/>
         <designator register="costId" 
entry="TrackSection:LCT_BGS_GRM_LX_3_1"/>
     </track>
     ...
     <track id="Le4nO6kfrraNS2HpJnZHk1b" type=" other:levelCrossingTrack ">
         <name name="GRM LX_3_2GRM" language="en"/>
         <linearLocation id="LL_Le4nO6kfrraNS2HpJnZHk1b">
             <associatedNetElement 
netElementRef="xs4TeJZDctCaMRt47ZZVpYJ8" intrinsicCoordBegin="0.518872" 
intrinsicCoordEnd="0.642698" keepsOrientation="true"/>
         </linearLocation>
         <designator register="sci_cc" entry="NO_A29_GRMLCTLX_3_2_"/>
         <designator register="costId" 
entry="TrackSection:LCT_BGS_GRM_LX_3_2"/>
     </track>
     ...
</infrastructure>

<!--Interlocking layer - ->
<interlocking>
    ....
     <trackIL id="IL_GBQBJs3oZDo85PZD8zlOl9g8" >
         <designator register="station" entry="GRM"/>
         <belongsToOperationalPoint ref="iv4E2FZDsZDyaVN89pt39wx9"/>
         <hasCommand ref="Z4mQSBWmchOeaRCiy06j7ba"/>
         ...
         <refersTo ref="GBQBJs3oZDo85PZD8zlOl9g8"/>
         <hasTvdSection ref="TVD_OoA0orA5Rj3qNI03sc3oZZa"/>
     </trackIL>
     ...
     <trackIL id="IL_Le4nO6kfrraNS2HpJnZHk1b">
        <designator register="station" entry="GRM"/>
        <belongsToOperationalPoint ref="iv4E2FZDsZDyaVN89pt39wx9"/>
        <hasCommand ref="Z4mQSBWmchOeaRCiy06j7ba"/>
           ...
        <refersTo ref="Le4nO6kfrraNS2HpJnZHk1b"/>
        <hasTvdSection ref="TVD_VSQ5ZDtBJ9D7sokZDJzh1Ee8"/>
     </trackIL>
    ...
     <levelCrossingIL id="IL_uvAn5AZZsL7flbwHdRjDkca" 
typicalTimeToClose="PT0S">
         <designator register="station" entry="GRM"/>
         <hasCommand ref="Z8PQrlSVKRb5MGOYTiZDFRfb"/>
         ...
         <isLevelCrossingType ref="lcr_type5"/>
         <refersTo ref="uvAn5AZZsL7flbwHdRjDkca"/>
         <hasLevelCrossingTrack ref="IL_GBQBJs3oZDo85PZD8zlOl9g8"/>
         <hasLevelCrossingTrack ref="IL_Le4nO6kfrraNS2HpJnZHk1b"/>
     </levelCrossingIL>
     ...
     <specificInfrastructureManager ref="infrastructure_01">
         <usesTypes>
             ...
             <hasLevelCrossingType id="lcr_type5" 
controlType="fullControlled" hasBarrier="true" hasTrafficWarning="true"/>
     </specificInfrastructureManager>
    ...
</interlocking>
For this solution we have a wish: If a track only exists (gets an extra
name) because it belongs to a level crossing, you should be able to
recognize this via the 'type' attribute at <track>. We would want to use
the value 'levelCrossingTrack' for that attribute or have the
possibility to use our own extensions with "other:levelCrossingTrack".

Would it be possible to add an "other" extension in railML 3.2 to the
attribute "type" of the track in order to be able to define your own types?

Best regards,
--
Heidrun Jost
Data Manager TMS Norway
Transportation Systems
Thales Deutschland GmbH

Phone: +49 (0) 30 688306 423
Schützenstr. 25 10117 Berlin Germany

[Updated on: Tue, 05 April 2022 16:18] by Moderator

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Previous Topic: Clustering of location information
Next Topic: [railML3] Proposal for removing "any" elements
Goto Forum:
  


Current Time: Sat Apr 27 04:42:15 CEST 2024