Example
Netex_gtfs_fares_Example_3_flatFare_90mTransfer.xml
standards/gtfs/Netex_gtfs_fares_Example_3_flatFare_90mTransfer.xml
Element names link to their declarations.
<?xml version="1.0" encoding="UTF-8"?>
<!-- ==== Gtfs to NeTEx Example: Flat Fare, 90m Transfers ======
This Example provides an example of mapping of a GTFS FareRule.txt file to NeTEx
http://code.google.com/p/googletransitdatafeed/wiki/FareExamples
September 2011
================
Example 3: All trips have the same fare, transfers allowed
Suppose Demo Transit Agency has the following fare structure:
* riders pay $1 on boarding (price='1.00', currency='USD', payment_method='0')
* unlimited transfers are allowed within 90 minutes (transfers='',transfer_duration='5400')
1.1 Example Data
Since all trips have the same fare, Demo Transit can omit fare_rules.txt.
fare_rules.txt¶
fare_id,route_id,origin_id,destination_id,contains_id
fare_attributes.txt¶
fare_id price currency_type payment_method transfers transfer_duration
nly_fare 1.00 USD 0 5400
1.2 Calculating an adult fare
The trip planner calculates a fare of $1 for each leg of the itinerary that includes a change of vehicle. Then it calculates the time for the itinerary. If the itinerary time is less than 90 minutes, the fare is $1.
2. MAPPING TO NETEX
Mapping is complex depending on fare structure. (E.g. different for flat fare, point-to-point fare, etc
NeTEx may be augmented with further distinctions not covered by GTFS
Overall
A GTFS Fare_Attribute maps to a NeTEx FARE PRICE of some specific sort (FARE PRODUCT PRICE, TIME INTERVAL PRICE, DISTANCE MATRIX ELEMENT PRICE, etc)
A GTFS FareRule maps to a NeTEx FARE PRODUCT + VALIDABLE ELEMENT + TARIFF + FARE STRUCTURE ELEMENTs
2.1 Fare Rules
GTFS NeTEx
fare_id, <PreassignedFareProduct #fare_id >
route_id, <PreassignedFareProduct #fare_id> <accessRightsInProduct> <AcccessRightInProduct #fare_id> <ValidibleElement #fare_id>
==> <PreassignedFareProduct #fare_id><validableElements><ValidityParameter #fare_id> <fareStructureElements>
==><Tariff #fare_id><FareStructureElement #fare_id@access"> <GenericParameterAssignment #fare_id@access_details> <validityParameters>
<LineRef #route_id>
origin_id, -
destination_id, -
contains_id , -
2.2 Fare Attributes
GTFS NeTEx
fare_id, <PriceGroup><members><FarePrice #fare_id >
price, <FarePrice #fare_id><Amount>
currency_type, <FarePrice #fare_id><Currency>
payment_method, <Tariff><FareStructureElement id="#fare_id@conditions_of_travel"> <GenericParameterAssignment #fare_id@conditions_of_travel> <limitations>
0 =Pay on Boarding <PurchaseWindow #fare_id><PurchaseMoment> (#onBoarding)
1 = Fare must be paid before boarding <PurchaseWindow #fare_id><PurchaseMoment> (#beforeBoarding)
transfers, <PreassignedFareProduct #fare_id> <accessRightsInProduct> <AcccessRightInProduct #fare_id> <ValidibleElement #fare_id>
==> <PreassignedFareProduct #fare_id><validableElements><ValidityParameter #fare_id> <fareStructureElements>
==><Tariff><FareStructureElement id="#fare_id@conditions_of_travel"> <GenericParameterAssignment #fare_id@conditions_of_travel> <limitations>
<Interchanging #fare_id@conditions_of_travel@interchanging><MaximumNumberOfInterchanges>1</MaximumNumberOfInterchanges>
<FrequencyOfUse #fare_id@conditions_of_travel@frequency><FrequencyOfUseType>unlimited | none | single
transfer_duration <PreassignedFareProduct #fare_id> <accessRightsInProduct> <AcccessRightInProduct #fare_id> <ValidibleElement #fare_id>
==> <PreassignedFareProduct #fare_id><validableElements><ValidityParameter #fare_id> <fareStructureElements>
==><Tariff><FareStructureElement id="#fare_id@conditions_of_travel"> <GenericParameterAssignment #fare_id@conditions_of_travel> <limitations>
<UsageValidityPeriod #fare_id@conditions_of_travel@validity><StandardDuration>
<UsageValidityPeriod #fare_id@conditions_of_travel@validity> <UsageEnd> endoOfDay | endOfRide |endOfPeriod |etc
GTFS Data copyright Google Inc
v1.1 Revised to use Tarifff
NeTEx (C) CEN Copyright 2010-2019
-->
<PublicationDelivery xmlns="http://www.netex.org.uk/netex" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://www.netex.org.uk/netex ../../../xsd/NeTEx_publication.xsd">
<PublicationTimestamp>2001-12-17T09:30:47.0Z</PublicationTimestamp>
<ParticipantRef>SYS001</ParticipantRef>
<!--- ======WHAT WAS REQUESTED ========== -->
<PublicationRefreshInterval>P3M</PublicationRefreshInterval>
<Description>Example 3 of GTFS Agency data</Description>
<!--- =============== RESULTS =========== -->
<dataObjects>
<CompositeFrame version="1" id="mygtfsxm:DTA">
<validityConditions>
<ValidBetween>
<FromDate>2011-12-30T00:00:00Z</FromDate>
</ValidBetween>
</validityConditions>
<Name>GTFS Example 3 : Flat Fare,90m Transfers</Name>
<TypeOfFrameRef version="gtfs:1.5" ref="gtfs:GTFS_profile@composite"/>
<!--- ======= CODESPACEs======== -->
<codespaces>
<Codespace id="mygtfsxm">
<Xmlns>mygtfsxm</Xmlns>
<XmlnsUrl>http://www.demoagency.com/</XmlnsUrl>
<Description>Demo Agency</Description>
</Codespace>
</codespaces>
<!--- =======FRAME DEFAULTS======== -->
<FrameDefaults>
<DefaultCodespaceRef ref="mygtfsxm"/>
<DefaultCurrency>USD</DefaultCurrency>
</FrameDefaults>
<frames>
<!--- =============== FAREs =========== -->
<FareFrame version="any" id="mygtfsxm:only_fare">
<AuthorityRef version="any" ref="mygtfsxm:DTA"/>
<!--- ====Fare USAGE PARAMETERS======= -->
<tariffs>
<Tariff version="any" id="mygtfsxm:only_fare">
<TypeOfTariffRef version="gtfs:1.5" ref="gtfs:flat"/>
<fareStructureElements>
<FareStructureElement version="any" id="mygtfsxm:only_fare@access">
<GenericParameterAssignment order="1" id="mygtfsxm:only_fare@access" version="any">
<TypeOfAccessRightAssignmentRef versionRef="ntx:v1.0" ref="ntx:can_access"/>
<ValidityParameterGroupingType>AND</ValidityParameterGroupingType>
<validityParameters>
<VehicleModes>bus</VehicleModes>
<AuthorityRef ref="mygtfsxm:DTA"/>
</validityParameters>
</GenericParameterAssignment>
</FareStructureElement>
<FareStructureElement version="any" id="mygtfsxm:only_fare@conditions_of_travel">
<Name>Conditions of travel</Name>
<GenericParameterAssignment version="any" order="1" id="mygtfsxm:only_fare@conditions_of_travel">
<Name>Conditions of travel</Name>
<TypeOfAccessRightAssignmentRef versionRef="ntx:v1.0" ref="ntx:condition_of_use"/>
<LimitationGroupingType>AND</LimitationGroupingType>
<limitations>
<UsageValidityPeriod version="any" id="mygtfsxm:only_fare@conditions_of_travel@validity">
<UsageEnd>standardDuration</UsageEnd>
<StandardDuration>PT80M</StandardDuration>
</UsageValidityPeriod>
<FrequencyOfUse version="any" id="mygtfsxm:only_fare@conditions_of_travel@frequency">
<FrequencyOfUseType>single</FrequencyOfUseType>
</FrequencyOfUse>
<Interchanging version="any" id="mygtfsxm:only_fare@conditions_of_travel@interchanging">
<CanInterchange>true</CanInterchange>
<MaximumTimeToMakeATransfer>PT90M</MaximumTimeToMakeATransfer>
</Interchanging>
<PurchaseWindow version="any" id="mygtfsxm:only_fare@purchase">
<PurchaseMoment>beforeBoarding</PurchaseMoment>
</PurchaseWindow>
</limitations>
</GenericParameterAssignment>
</FareStructureElement>
</fareStructureElements>
<priceGroups>
<PriceGroupRef version="any" ref="mygtfsxm:only_fare"/>
</priceGroups>
</Tariff>
</tariffs>
<!--- ====Fare Product======= -->
<fareProducts>
<PreassignedFareProduct version="any" id="mygtfsxm:only_fare">
<Name>Single flat fare to ride as long as you like on the DTA</Name>
<ChargingMomentRef version="1.5" ref="gtfs:0"/>
<!--- ====VALIDABLE ELEMENTs====== -->
<validableElements>
<ValidableElement version="any" id="mygtfsxm:only_fare">
<fareStructureElements>
<FareStructureElementRef version="any" ref="mygtfsxm:only_fare@access"/>
<FareStructureElementRef version="any" ref="mygtfsxm:only_fare@conditions_of_travel"/>
</fareStructureElements>
</ValidableElement>
</validableElements>
<!--- ====ACCESS RIGHTS======= -->
<accessRightsInProduct>
<AccessRightInProduct order="1" version="any" id="mygtfsxm:only_fare">
<ValidableElementRef version="any" ref="mygtfsxm:only_fare"/>
</AccessRightInProduct>
</accessRightsInProduct>
</PreassignedFareProduct>
</fareProducts>
<!--- ====PRICEs====== only_fare 1.00 USD 0 5400 -->
<priceGroups>
<PriceGroup version="any" id="mygtfsxm:only_fare">
<members>
<FareProductPrice version="any" id="mygtfsxm:only_fare">
<Amount>1.0</Amount>
<Currency>USD</Currency>
<PreassignedFareProductRef version="any" ref="mygtfsxm:only_fare"/>
</FareProductPrice>
</members>
</PriceGroup>
</priceGroups>
</FareFrame>
<ResourceFrame version="any" id="mygtfsxm:DTA">
<organisations>
<!--- =====Agency========= -->
<Authority version="any" id="mygtfsxm:DTA">
<Name>Demo Transit Authority</Name>
<ContactDetails>
<Url>http://code.google.com/p/googletransitdatafeed/wiki/FareExamples</Url>
</ContactDetails>
</Authority>
</organisations>
</ResourceFrame>
<ResourceFrame version="any" id="gtfs:GTFS">
<Name>Built-in GTFS Code Values</Name>
<!--- ======= CODESPACEs======== -->
<codespaces>
<Codespace id="gtfs">
<Xmlns>gtfs</Xmlns>
<XmlnsUrl>http://www.google.com/transit/gtfs</XmlnsUrl>
<Description>GTFS code values</Description>
</Codespace>
</codespaces>
<!--- =======FRAME DEFAULTS======== -->
<FrameDefaults>
<DefaultCodespaceRef ref="gtfs"/>
</FrameDefaults>
<typesOfValue>
<ValueSet version="1.5" id="gtfs:Charging_Moments" classOfValues="ChargingMoment">
<Name>GTFS Built in Charging Methods: FareAttribute@payment_method</Name>
<values>
<!--- ====Charging method========= -->
<ChargingMoment version="1.5" id="gtfs:0">
<Name>Pay on Boarding</Name>
</ChargingMoment>
<ChargingMoment version="1.5" id="gtfs:1">
<Name>Fare must be paid before boarding</Name>
</ChargingMoment>
</values>
</ValueSet>
<ValueSet version="gtfs:1.5" id="gtfs:GTFS_Types_of_Frame" classOfValues="TypeOfFrame">
<Name>GTFS Built in Types of Frame</Name>
<values>
<TypeOfFrame version="gtfs:1.5" changed="2011-01-20T00:00:00" id="gtfs:GTFS_profile@composite">
<Name>GTFS Built in Types of Frame - flat fare structure</Name>
</TypeOfFrame>
</values>
</ValueSet>
<ValueSet version="gtfs:1.5" id="gtfs:GTFS_Types_of_Tariff" classOfValues="TypeOfTariff">
<Name>GTFS Built in Types of Frame</Name>
<values>
<TypeOfTariff version="gtfs:1.5" changed="2011-01-20T00:00:00" id="gtfs:flat">
<Name>GTFS Built in Types of Tariff - flat fare </Name>
</TypeOfTariff>
<TypeOfTariff version="gtfs:1.5" changed="2011-01-20T00:00:00" id="gtfs:point_to_point">
<Name>GTFS Built in Types of Tariff - fpoint to point</Name>
</TypeOfTariff>
<TypeOfTariff version="gtfs:1.5" changed="2011-01-20T00:00:00" id="gtfs:zone_sequence">
<Name>GTFS Built in Types of Tariff - zone sequence </Name>
</TypeOfTariff>
</values>
</ValueSet>
</typesOfValue>
</ResourceFrame>
</frames>
</CompositeFrame>
</dataObjects>
</PublicationDelivery>