Our products have been updated with the releases associated to this Sprint 103:
Ara on
Chouette Convert on
New features for Chouette will be released with Sprint 104
Chouette
These new features for Chouette will be released with Sprint 104
Create Dataset on NeTEx import
When the user imports a NeTEx file, Chouette creates a Dataset according defined lines and overall period defined by NeTEx DayTypeAssignment
and OperatingPeriod
resources.
With this example:
<Line id="1"> <Name>Line 1</Name> </Line> <Line id="2"> <Name>Line 2</Name> </Line> <DayTypeAssignment id="date-included" version="any" order="0"> <Date>2030-01-01</Date> <isAvailable>true</isAvailable> </DayTypeAssignment> <OperatingPeriod id="period" version="any"> <FromDate>2030-05-05T00:00:00+0200</FromDate> <ToDate>2030-05-10T00:00:00+0200</ToDate> </OperatingPeriod>
Chouette creates a Dataset on Line 1 and Line 2 with a period from 2030-01-01
to 2030-05-10
.
Create TimeTables from NeTEx resources
The NeTEx import creates a Chouette TimeTable for each DayType
according to associated DayTypeAssignment
and OperatingPeriod
resources.
With this example:
<DayType id="daytype-1"> <Name>Sample</Name> <properties> <PropertyOfDay> <DaysOfWeek>Tuesday Friday</DaysOfWeek> </PropertyOfDay> </properties> </DayType> <DayTypeAssignment id="assigment-1"> <OperatingPeriodRef ref="period-1"/> <DayTypeRef ref="daytype-1"/> </DayTypeAssignment> <DayTypeAssignment id="assigment-2"> <Date>2030-01-15</Date> <DayTypeRef ref="daytype-1"/> <isAvailable>true</isAvailable> </DayTypeAssignment> <OperatingPeriod id="period-1"> <FromDate>2030-01-01T00:00:00</FromDate> <ToDate>2030-01-10T00:00:00</ToDate> </OperatingPeriod>
Chouette creates a Timetable like this one:
Create Routes from NeTEx resources
The NeTEx import creates a Chouette Route for each NeTEx Route
defined in the NeTEx file:
<Route id="1"> <Name>Tveita - Solfjellet - Larsbråten - Tveita</Name> <LineRef ref="Line:0061"/> <DirectionType>outbound</DirectionType> <DirectionRef ref="Direction:1" version="any"/> <pointsInSequence> <PointOnRoute version="1" id="PointOnRoute:0061101001-0" order="1"> <RoutePointRef ref="RoutePoint:0061101A0A0061101001"/> </PointOnRoute> <PointOnRoute version="1" id="PointOnRoute:0061101003-2" order="2"> <RoutePointRef ref="RoutePoint:0061101A2A0061101003"/> </PointOnRoute> <PointOnRoute id="PointOnRoute:0061101004-3" order="3"> <RoutePointRef ref="RoutePoint:0061101A3A0061101004"/> </PointOnRoute> <PointOnRoute id="PointOnRoute:0061101007-6" order="4"> <RoutePointRef ref="RoutePoint:0061101A6A0061101007"/> </PointOnRoute> </pointsInSequence> </Route> <RoutePoint id="RoutePoint:0061101A0A0061101001"> <projections> <PointProjection id="PointProjection:0061101A0A0061101001"> <ProjectToPointRef ref="ScheduledStopPoint:0061101001"/> </PointProjection> </projections> </RoutePoint> <Direction version="any" id="Direction:1"> <Name>Rosny-sous-Bois RER</Name> </Direction>
The following NeTEx attributes are supported:
Route
Name
,Route
DirectionType
outbound/inboundRoute
Direction
name
Route PointOnRoutes
are optional. The NeTEx import creates automatically the needed Route Stop Points according defined Route PointOnRoutes
and related Journey Pattern Stop Points.
Create Journey Patterns from NeTEx resources
The NeTEx import creates a Chouette Journey Pattern for each NeTEx ServiceJourneyPattern
(or JourneyPattern
) defined in the NeTEx file:
<ServiceJourneyPattern id="1" version="any"> <Name>to Bullfrog</Name> <RouteRef ref="1"/> <DestinationDisplayRef ref="destinationdisplay-1"/> <pointsInSequence> <StopPointInJourneyPattern id="StopPointInJourneyPattern:0061101002" order="1"> <ScheduledStopPointRef ref="ScheduledStopPoint:0061101001"/> </StopPointInJourneyPattern> <!-- ... --> <StopPointInJourneyPattern id="StopPointInJourneyPattern:0061101002" order="12"> <ScheduledStopPointRef ref="ScheduledStopPoint:0061101002"/> </StopPointInJourneyPattern> </pointsInSequence> </ServiceJourneyPattern> <DestinationDisplay id="destinationdisplay-1"> <FrontText>Destination Sample</FrontText> </DestinationDisplay>
The following NeTEx attributes are supported:
Journey Pattern
Name
,StopPointInJourneyPattern
resources which define Journey Pattern stop points,a
DestinationDisplay
FronText
(used a Chouette Journey Pattern destination name)
Create Vehicle Journeys from NeTEx resources
The NeTEx import creates a Chouette Vehicle Journeys for each NeTEx ServiceJourney
defined in the NeTEx file:
<ServiceJourney id="AAMV1"> <Name>AAMV1</Name> <dayTypes> <DayTypeRef ref="daytype-1"/> </dayTypes> <JourneyPatternRef ref="journeypattern-1"/> <passingTimes> <TimetabledPassingTime> <DepartureTime>23:50:00</DepartureTime> </TimetabledPassingTime> <TimetabledPassingTime> <ArrivalTime>23:59:00</ArrivalTime> <ArrivalDayOffset>0</ArrivalDayOffset> <DepartureTime>00:01:00</DepartureTime> <DepartureDayOffset>1</DepartureDayOffset> </TimetabledPassingTime> <TimetabledPassingTime> <ArrivalTime>00:15:00</ArrivalTime> <ArrivalDayOffset>1</ArrivalDayOffset> </TimetabledPassingTime> </passingTimes> </ServiceJourney>
For the moment, StopPointInJourneyPatternRef
attributes are ignored.
Calendar templates as Workbench resources
The user can manage https://enroute.atlassian.net/wiki/spaces/PUBLIC/pages/1890123791/Timetables#Calendar-templates into each Workbench resources:
Timetables can be created/updated in the Workbench Datasets using these Calendar templates.
Ara
Collect using SIRI Situation Exchange requests
When the user adds SIRI SituationExchange Request Collector (siri-situation-exchange-request-collector
) to a Partner, Ara collects Situations by using SIRI Situation Exchange requests.
In this setup, Ara performs periodically a request for each known Line and Stop Area with the flag CollectGeneralMessages
.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <ws:GetSituationExchange xmlns:siri="http://www.siri.org.uk/siri" xmlns:ws="http://wsdl.siri.org.uk"> <ServiceRequestInfo> <siri:RequestTimestamp>2030-01-01T12:00:00.000Z</siri:RequestTimestamp> <siri:RequestorRef>siri-client</siri:RequestorRef> </ServiceRequestInfo> <Request> <siri:RequestTimestamp>2030-01-01T12:00:00.000Z</siri:RequestTimestamp> <siri:MessageIdentifier>request-33170d7c-35e3-11ee-8a32-7f95f59ec38f</siri:MessageIdentifier> <siri:LineRef>52</siri:LineRef> </Request> <RequestExtension/> </ws:GetSituationExchange> </soap:Body> </soap:Envelope>
SIRI Situation Exchange request example
Simplify General Message ↔︎ Situation mapping for MessageText
We’ve simplified the mapping between GM Mesage Type and Message Text and Situation associated attributes. The previous mapping (which includes the text length in the criteria) was changing the message type between a collected and a broadcasted GM. This behavior isn’t expected by most of GM consumers.
| When a Situation is created from a GM: According to
Any HTML tag is sanitized (= removed) When a GM is created from a Situation:
|
The Mapping between Situation and General Message "France" document has been updated accordingly.
Support SIRI raw in Lines Discovery collector
When the user defines a Partner with the setting siri.envelope
with the value raw
, the Lines Discovery Request collector sends a request with this format:
<?xml version="1.0" encoding="UTF-8"?> <Siri xmlns="http://www.siri.org.uk/siri" version="2.0"> <LinesRequest> <RequestTimestamp>2030-01-01T10:00:00-05:00</RequestTimestamp> <RequestorRef>Ara</RequestorRef> <MessageIdentifier>5d52c588-9810-11ee-bd68-b7f91294f877</MessageIdentifier> </LinesRequest> </Siri>
and processes this kind of response:
<?xml version="1.0" encoding="utf-8"?> <Siri xmlns="http://www.siri.org.uk/siri"> <LinesDelivery version="2.0"> <ResponseTimestamp>2004-12-17T09:30:47-05:00</ResponseTimestamp> <Status>true</Status> <AnnotatedLineRef> <LineRef>Line564</LineRef> <LineName xml:lang="EN">564</LineName> <Monitored>true</Monitored> </AnnotatedLineRef> <AnnotatedLineRef> <LineRef>LineOther</LineRef> <LineName>Other</LineName> <Monitored>true</Monitored> </AnnotatedLineRef> </LinesDelivery> </Siri>
Support SIRI raw in Estimated Timetable Subscription collector
When the user defines a Partner with the setting siri.envelope
with the value raw
, the Estimated Timetable Subscription collector sends a subscription request with this format:
<?xml version="1.0" encoding="UTF-8"?> <Siri xmlns="http://www.siri.org.uk/siri"> <SubscriptionRequest> <RequestTimestamp>2030-01-01T10:00:00-05:00</RequestTimestamp> <RequestorRef>Ara</RequestorRef> <EstimatedTimetableSubscriptionRequest> <SubscriberRef>Ara</SubscriberRef> <SubscriptionIdentifier>000765</SubscriptionIdentifier> <InitialTerminationTime>2030-01-02T10:00:00-05:00</InitialTerminationTime> <EstimatedTimetableRequest> <RequestTimestamp>2030-01-01T10:00:00-05:00</RequestTimestamp> <Lines> <LineDirection> <LineRef>123</LineRef> </LineDirection> </Lines> </EstimatedTimetableRequest> </EstimatedTimetableSubscriptionRequest> </SubscriptionRequest> </Siri>
And it processes this kind of notification payload:
<?xml version='1.0' encoding='utf-8'?> <Siri xmlns='http://www.siri.org.uk/siri'> <ServiceDelivery> <ResponseTimestamp>2004-12-17T09:30:46-05:00</ResponseTimestamp> <ProducerRef>test</ProducerRef> <ResponseMessageIdentifier>6ba7b814-9dad-11d1-8-00c04fd430c8</ResponseMessageIdentifier> <EstimatedTimetableDelivery> <ResponseTimestamp>2030-01-01T10:00:00-05:00</ResponseTimestamp> <SubscriberRef>subscriber</SubscriberRef> <SubscriptionRef>subscription1</SubscriptionRef> <Status>true</Status> <EstimatedJourneyVersionFrame> <RecordedAtTime>2030-01-01T10:00:00-05:00</RecordedAtTime> <EstimatedVehicleJourney> <!-- ... --> </EstimatedVehicleJourney> <EstimatedVehicleJourney> <!-- ... --> </EstimatedVehicleJourney> </EstimatedJourneyVersionFrame> </EstimatedTimetableDelivery> <EstimatedTimetableDelivery> <ResponseTimestamp>2030-01-01T10:00:00-05:00</ResponseTimestamp> <SubscriberRef>subscriber</SubscriberRef> <SubscriptionRef>subscription2</SubscriptionRef> <Status>true</Status> <EstimatedJourneyVersionFrame> <RecordedAtTime>2030-01-01T10:00:00-05:00</RecordedAtTime> <EstimatedVehicleJourney> <!-- ... --> </EstimatedVehicleJourney> </EstimatedJourneyVersionFrame> </EstimatedTimetableDelivery> </ServiceDelivery> </Siri>
Support SIRI raw in Vehicle Monitoring Subscription collector
When the user defines a Partner with the setting siri.envelope
with the value raw
, the Vehicle Monitoring Subscription collector sends a subscription request with this format:
<?xml version="1.0" encoding="UTF-8"?> <Siri xmlns="http://www.siri.org.uk/siri"> <SubscriptionRequest> <RequestTimestamp>2030-01-01T10:00:00-05:00</RequestTimestamp> <RequestorRef>Ara</RequestorRef> <VehicleMonitoringSubscriptionRequest> <SubscriberRef>Ara</SubscriberRef> <SubscriptionIdentifier>000765</SubscriptionIdentifier> <InitialTerminationTime>2030-01-02T10:00:00-05:00</InitialTerminationTime> <VehicleMonitoringRequest> <RequestTimestamp>2030-01-01T10:00:00-05:00</RequestTimestamp> <Lines> <LineDirection> <LineRef>123</LineRef> </LineDirection> </Lines> </VehicleMonitoringRequest> </VehicleMonitoringSubscriptionRequest> </SubscriptionRequest> </Siri>
And it processes this kind of notification payload:
<?xml version='1.0' encoding='utf-8'?> <Siri xmlns='http://www.siri.org.uk/siri'> <ServiceDelivery> <ResponseTimestamp>2017-01-01T12:00:20.000Z</ResponseTimestamp> <ProducerRef>NINOXE:default</ProducerRef> <ResponseMessageIdentifier>RATPDev:ResponseMessage::6ba7b814-9dad-11d1-9-00c04fd430c8:LOC</ResponseMessageIdentifier> <VehicleMonitoringDelivery> <ResponseTimestamp>2022-06-25T15:08:14.940+02:00</ResponseTimestamp> <SubscriberRef>subscriber</SubscriberRef> <SubscriptionRef>6ba7b814-9dad-11d1-4-00c04fd430c8</SubscriptionRef> <Status>true</Status> <VehicleActivity> <RecordedAtTime>2022-06-25T15:08:14.928+02:00</RecordedAtTime> <ItemIdentifier>108</ItemIdentifier> <ValidUntilTime>2022-06-25T16:08:14.928+02:00</ValidUntilTime> <VehicleMonitoringRef>108</VehicleMonitoringRef> <!-- ... --> </VehicleActivity> <VehicleActivity> <!-- ... --> </VehicleActivity> </VehicleMonitoringDelivery> <VehicleMonitoringDelivery> <!-- ... --> </VehicleMonitoringDelivery> </ServiceDelivery> </Siri>
Support OAuth Scope
The user can use the setting remote_authentication.oauth.scopes
to define the https://oauth.net/2/scope/ used by the SIRI Client for this Partner to perform requests.
Chouette Convert
NeTEx Scheduled Stop Points are associated to a Line
The GTFS to NeTEx Convertion creates Netex::ScheduledStopPoint
with an associated Line. Indeed several profiles (IDFM Profiles, French Profiles, etc) expect that a Scheduled Stop Point is associated to a Line.
This Scheduled Stop Point line specific constraint requires to duplicate all Scheduled Stop Points to have a NeTEx resource for each line / GTFS Route id.