Skip to content

NeTEx rrrr‐profile

Stefan de Konink edited this page Mar 22, 2024 · 2 revisions

Introduction

Historically rrrr uses a proprietary column store database format for performance reasons and the ability to memory map the file. The binary database is generated from a source file or database via a Python script. NeTEx (Network Timetable Exchange) is a standard which allows exchanging complex timetable information in a standardised fashion. Within a NeTEx profile a subset of elements and attributes is selected that is used to produce and exchange data. Hereby we are making an attempt to describe how rrrr stores it data internally and which properties can be used as attributes. The format is virtually analogous to the structures used internally, one key difference is that rrrr uses a variant of a generic TimeDemandType, which substracts the departure time from all passing times, and shares these relative times over any JourneyPattern matching those relative times.

The export below gives an impression what attributes are currently defined and how data should be made available. A Python script to export a timetable4.dat using the format below is being created.

NeTEx-example

<?xml version="1.0" encoding="UTF-8"?>
<PublicationDelivery xmlns="http://www.netex.org.uk/netex" xmlns:gml="http://www.opengis.net/gml/3.2" version="ntx:1.1">
  <PublicationTimestamp>2024-03-22T22:29:52.722393</PublicationTimestamp>
  <ParticipantRef>rrrr</ParticipantRef>
  <dataObjects>
    <CompositeFrame id="1" version="1">
      <frames>
        <ResourceFrame id="1" version="1">
          <organisations>
            <Operator id="MMRI" version="1">
              <Name>Multimodale Reisinformatie</Name>
              <ContactDetails>
                <Url>http://1313.nl/</Url>
              </ContactDetails>
            </Operator>
          </organisations>
        </ResourceFrame>
        <SiteFrame id="1" version="1">
          <stopPlaces>
            <StopPlace id="1a1p" version="1">
              <Name>Name</Name>
              <Centroid>
                <Location>
                  <Longitude>2.0</Longitude>
                  <Latitude>1.0</Latitude>
                </Location>
              </Centroid>
              <AccessibilityAssessment id="1a1p" version="1">
                <MobilityImpairedAccess>true</MobilityImpairedAccess>
                <suitabilities>
                  <Suitability>
                    <MobilityNeed>wheelchair</MobilityNeed>
                    <Suitable>suitable</Suitable>
                  </Suitability>
                  <Suitability>
                    <PsychosensoryNeed>visualImpairment</PsychosensoryNeed>
                    <Suitable>suitable</Suitable>
                  </Suitability>
                </suitabilities>
              </AccessibilityAssessment>
              <Covered>covered</Covered>
              <Locale>
                <TimeZoneOffset>2.0</TimeZoneOffset>
              </Locale>
              <adjacentSites>
                <ParkingRef version="1" ref="1"/>
                <ParkingRef version="1" ref="2"/>
              </adjacentSites>
              <quays>
                <Quay id="1a1" version="1"/>
                <Quay id="1a3" version="1"/>
                <Quay id="1a5" version="1"/>
              </quays>
            </StopPlace>
            <StopPlace id="1a2p" version="1">
              <Name>Name</Name>
              <Centroid>
                <Location>
                  <Longitude>2.0</Longitude>
                  <Latitude>1.0</Latitude>
                </Location>
              </Centroid>
              <AccessibilityAssessment id="1a2p" version="1">
                <MobilityImpairedAccess>true</MobilityImpairedAccess>
                <suitabilities>
                  <Suitability>
                    <MobilityNeed>wheelchair</MobilityNeed>
                    <Suitable>suitable</Suitable>
                  </Suitability>
                  <Suitability>
                    <PsychosensoryNeed>visualImpairment</PsychosensoryNeed>
                    <Suitable>suitable</Suitable>
                  </Suitability>
                </suitabilities>
              </AccessibilityAssessment>
              <Covered>covered</Covered>
              <Locale>
                <TimeZoneOffset>2.0</TimeZoneOffset>
              </Locale>
              <adjacentSites>
                <ParkingRef version="1" ref="1"/>
                <ParkingRef version="1" ref="2"/>
              </adjacentSites>
              <quays>
                <Quay id="1a2" version="1"/>
                <Quay id="1a4" version="1"/>
                <Quay id="1a6" version="1"/>
              </quays>
            </StopPlace>
          </stopPlaces>
          <parkings>
            <Parking id="1" version="1">
              <ParkingVehicleTypes>car</ParkingVehicleTypes>
            </Parking>
            <Parking id="2" version="1">
              <ParkingVehicleTypes>cycle</ParkingVehicleTypes>
            </Parking>
          </parkings>
          <pathLinks>
            <PathLink id="1" version="1">
              <From>
                <PlaceRef nameOfRefClass="Quay" version="1" ref="1a2"/>
              </From>
              <To>
                <PlaceRef nameOfRefClass="Quay" version="1" ref="1a3"/>
              </To>
              <TransferDuration>
                <DefaultDuration>PT0S</DefaultDuration>
              </TransferDuration>
            </PathLink>
            <PathLink id="2" version="1">
              <From>
                <PlaceRef nameOfRefClass="Quay" version="1" ref="1a4"/>
              </From>
              <To>
                <PlaceRef nameOfRefClass="Quay" version="1" ref="1a5"/>
              </To>
              <TransferDuration>
                <DefaultDuration>PT0S</DefaultDuration>
              </TransferDuration>
            </PathLink>
          </pathLinks>
        </SiteFrame>
        <ServiceFrame id="1" version="1">
          <lines>
            <Line id="1a|bus" version="1">
              <Name>Bus</Name>
              <TransportMode>bus</TransportMode>
              <PublicCode>Code</PublicCode>
              <OperatorRef version="1" ref="MMRI"/>
              <Presentation>
                <BackgroundColour>FFFFFF</BackgroundColour>
                <TextColour>000000</TextColour>
              </Presentation>
            </Line>
            <Line id="1a|ferry" version="1">
              <Name>Ferry</Name>
              <TransportMode>ferry</TransportMode>
              <PublicCode>Code</PublicCode>
              <OperatorRef version="1" ref="MMRI"/>
              <Presentation>
                <BackgroundColour>FFFFFF</BackgroundColour>
                <TextColour>000000</TextColour>
              </Presentation>
            </Line>
            <Line id="1a|rail" version="1">
              <Name>Rail</Name>
              <TransportMode>rail</TransportMode>
              <PublicCode>Code</PublicCode>
              <OperatorRef version="1" ref="MMRI"/>
              <Presentation>
                <BackgroundColour>FFFFFF</BackgroundColour>
                <TextColour>000000</TextColour>
              </Presentation>
            </Line>
          </lines>
          <scheduledStopPoints>
            <ScheduledStopPoint id="1a1" version="1">
              <Name>Stop 1a1</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.101</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
            <ScheduledStopPoint id="1a2" version="1">
              <Name>Stop 1a2</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.102</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
            <ScheduledStopPoint id="1a3" version="1">
              <Name>Stop 1a3</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.103</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
            <ScheduledStopPoint id="1a4" version="1">
              <Name>Stop 1a4</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.104</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
            <ScheduledStopPoint id="1a5" version="1">
              <Name>Stop 1a5</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.105</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
            <ScheduledStopPoint id="1a6" version="1">
              <Name>Stop 1a6</Name>
              <Location>
                <Longitude>1.1</Longitude>
                <Latitude>1.106</Latitude>
              </Location>
              <PublicCode/>
            </ScheduledStopPoint>
          </scheduledStopPoints>
          <stopAssignments>
            <PassengerStopAssignment id="1a1" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a1"/>
              <QuayRef version="1" ref="1a1"/>
            </PassengerStopAssignment>
            <PassengerStopAssignment id="1a3" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a3"/>
              <QuayRef version="1" ref="1a3"/>
            </PassengerStopAssignment>
            <PassengerStopAssignment id="1a5" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a5"/>
              <QuayRef version="1" ref="1a5"/>
            </PassengerStopAssignment>
            <PassengerStopAssignment id="1a2" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a2"/>
              <QuayRef version="1" ref="1a2"/>
            </PassengerStopAssignment>
            <PassengerStopAssignment id="1a4" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a4"/>
              <QuayRef version="1" ref="1a4"/>
            </PassengerStopAssignment>
            <PassengerStopAssignment id="1a6" version="1" order="1">
              <ScheduledStopPointRef version="1" ref="1a6"/>
              <QuayRef version="1" ref="1a6"/>
            </PassengerStopAssignment>
          </stopAssignments>
          <journeyPatterns>
            <ServiceJourneyPattern id="1a|bus" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|bus" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <RouteView>
                <LineRef version="1" ref="1a|bus"/>
              </RouteView>
              <pointsInSequence>
                <StopPointInJourneyPattern id="1a|bus" version="1" order="1">
                  <ScheduledStopPointRef version="1" ref="1a1"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>false</ForAlighting>
                  <ForBoarding>true</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|bus</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
                <StopPointInJourneyPattern id="1a|bus" version="1" order="2">
                  <ScheduledStopPointRef version="1" ref="1a2"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>true</ForAlighting>
                  <ForBoarding>false</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|bus</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
              </pointsInSequence>
            </ServiceJourneyPattern>
            <ServiceJourneyPattern id="1a|ferry" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|ferry" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <RouteView>
                <LineRef version="1" ref="1a|ferry"/>
              </RouteView>
              <pointsInSequence>
                <StopPointInJourneyPattern id="1a|ferry" version="1" order="1">
                  <ScheduledStopPointRef version="1" ref="1a3"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>false</ForAlighting>
                  <ForBoarding>true</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|ferry</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
                <StopPointInJourneyPattern id="1a|ferry" version="1" order="2">
                  <ScheduledStopPointRef version="1" ref="1a4"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>true</ForAlighting>
                  <ForBoarding>false</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|ferry</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
              </pointsInSequence>
            </ServiceJourneyPattern>
            <ServiceJourneyPattern id="1a|rail" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|rail" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <RouteView>
                <LineRef version="1" ref="1a|rail"/>
              </RouteView>
              <pointsInSequence>
                <StopPointInJourneyPattern id="1a|rail" version="1" order="1">
                  <ScheduledStopPointRef version="1" ref="1a5"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>false</ForAlighting>
                  <ForBoarding>true</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|rail</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
                <StopPointInJourneyPattern id="1a|rail" version="1" order="2">
                  <ScheduledStopPointRef version="1" ref="1a6"/>
                  <IsWaitPoint>false</IsWaitPoint>
                  <ForAlighting>true</ForAlighting>
                  <ForBoarding>false</ForBoarding>
                  <DestinationDisplayView>
                    <FrontText>1a|rail</FrontText>
                  </DestinationDisplayView>
                </StopPointInJourneyPattern>
              </pointsInSequence>
            </ServiceJourneyPattern>
          </journeyPatterns>
        </ServiceFrame>
        <TimetableFrame id="1" version="1">
          <vehicleJourneys>
            <ServiceJourney id="1a|bus|1" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|bus|1" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <TransportSubmode>
                <BusSubmode>schoolBus</BusSubmode>
              </TransportSubmode>
              <ServiceJourneyPatternRef version="1" ref="1a|bus"/>
              <passingTimes>
                <TimetabledPassingTime id="1a|bus|1.1" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|bus" order="1"/>
                  <ArrivalTime>00:01:00</ArrivalTime>
                  <DepartureTime>00:01:00</DepartureTime>
                </TimetabledPassingTime>
                <TimetabledPassingTime id="1a|bus|1.2" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|bus" order="2"/>
                  <ArrivalTime>00:02:00</ArrivalTime>
                  <DepartureTime>00:02:00</DepartureTime>
                </TimetabledPassingTime>
              </passingTimes>
              <facilities>
                <ServiceFacilitySet id="1a|bus|1" version="1">
                  <MobilityFacilityList>suitableForWheelchairs</MobilityFacilityList>
                  <PassengerCommsFacilityList>freeWifi</PassengerCommsFacilityList>
                  <PassengerInformationFacilityList>passengerInformationDisplay stopAnnouncements</PassengerInformationFacilityList>
                </ServiceFacilitySet>
              </facilities>
              <FlexibleServiceProperties>
                <FlexibleServiceType>fixedPassingTimes</FlexibleServiceType>
              </FlexibleServiceProperties>
            </ServiceJourney>
            <ServiceJourney id="1a|ferry|1" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|ferry|1" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <ServiceJourneyPatternRef version="1" ref="1a|ferry"/>
              <passingTimes>
                <TimetabledPassingTime id="1a|ferry|1.1" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|ferry" order="1"/>
                  <ArrivalTime>00:03:00</ArrivalTime>
                  <DepartureTime>00:03:00</DepartureTime>
                </TimetabledPassingTime>
                <TimetabledPassingTime id="1a|ferry|1.2" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|ferry" order="2"/>
                  <ArrivalTime>00:04:00</ArrivalTime>
                  <DepartureTime>00:04:00</DepartureTime>
                </TimetabledPassingTime>
              </passingTimes>
              <facilities>
                <ServiceFacilitySet id="1a|ferry|1" version="1">
                  <AssistanceFacilityList>boardingAssistance</AssistanceFacilityList>
                  <MobilityFacilityList>suitableForWheelchairs</MobilityFacilityList>
                  <PassengerCommsFacilityList>freeWifi</PassengerCommsFacilityList>
                  <PassengerInformationFacilityList>passengerInformationDisplay stopAnnouncements</PassengerInformationFacilityList>
                  <SanitaryFacilityList>toilet</SanitaryFacilityList>
                  <LuggageCarriageFacilityList>cyclesAllowed</LuggageCarriageFacilityList>
                </ServiceFacilitySet>
              </facilities>
              <FlexibleServiceProperties>
                <FlexibleServiceType>notFlexible</FlexibleServiceType>
              </FlexibleServiceProperties>
            </ServiceJourney>
            <ServiceJourney id="1a|rail|1" version="1">
              <validityConditions>
                <AvailabilityCondition id="1a|rail|1" version="1">
                  <FromDate>2014-01-01T00:00:00</FromDate>
                  <ToDate>2014-01-01T00:00:00</ToDate>
                  <ValidDayBits>1</ValidDayBits>
                </AvailabilityCondition>
              </validityConditions>
              <ServiceJourneyPatternRef version="1" ref="1a|rail"/>
              <passingTimes>
                <TimetabledPassingTime id="1a|rail|1.1" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|rail" order="1"/>
                  <ArrivalTime>00:05:00</ArrivalTime>
                  <DepartureTime>00:05:00</DepartureTime>
                </TimetabledPassingTime>
                <TimetabledPassingTime id="1a|rail|1.2" version="1">
                  <StopPointInJourneyPatternRef version="1" ref="1a|rail" order="2"/>
                  <ArrivalTime>00:06:00</ArrivalTime>
                  <DepartureTime>00:06:00</DepartureTime>
                </TimetabledPassingTime>
              </passingTimes>
              <facilities>
                <ServiceFacilitySet id="1a|rail|1" version="1">
                  <AssistanceFacilityList>boardingAssistance</AssistanceFacilityList>
                  <MobilityFacilityList>suitableForWheelchairs</MobilityFacilityList>
                  <PassengerCommsFacilityList>freeWifi</PassengerCommsFacilityList>
                  <PassengerInformationFacilityList>passengerInformationDisplay stopAnnouncements</PassengerInformationFacilityList>
                  <SanitaryFacilityList>toilet</SanitaryFacilityList>
                  <LuggageCarriageFacilityList>cyclesAllowed</LuggageCarriageFacilityList>
                  <ServiceReservationFacilityList>reservationsCompulsory</ServiceReservationFacilityList>
                </ServiceFacilitySet>
              </facilities>
              <FlexibleServiceProperties>
                <FlexibleServiceType>notFlexible</FlexibleServiceType>
              </FlexibleServiceProperties>
            </ServiceJourney>
          </vehicleJourneys>
        </TimetableFrame>
      </frames>
    </CompositeFrame>
  </dataObjects>
</PublicationDelivery>
Clone this wiki locally