L’OSDM è stato sviluppato per scambiare informazioni tariffarie e consentire prenotazioni tra ferrovie internazionali. Il file mostra anche il funzionamento di OSDM. Se siete interessati a questo set di dati, potrebbe essere necessario contattarci all’indirizzo opendata@sbb.ch.
(URL slug: osdm-offline)
Descrizione tecnica
NOVA calcola le tariffe dei trasporti pubblici in Svizzera. Alcuni percorsi sono precalcolati per gli scambi con le principali ferrovie (ad es. Spiez – Thun, Spiez – Berna, Spiez – Olten, ecc.). Questi prezzi vengono scambiati nel file OSDM offline. Il file contiene solo i dati che NOVA considera rilevanti per le vendite di biglietti internazionali. Il trasporto locale non è quindi incluso, o lo è solo in misura molto limitata.
Poiché la dimensione del file cresce di un fattore n^2 con il numero di fermate, non è così facile completare il file.
Importante: i dati disponibili non sono una condizione sufficiente per la vendita di biglietti da parte di terzi.
Aspetti tecnici
OSDM è uno standard basato su JSON. Con il file offline, stiamo solo grattando la superficie di ciò che OSDM può fare. OSDM è uno standard sviluppato in collaborazione con le FFS.
L’esempio è quello di Buchs-Zurich.
{ "delivery": { "fareProvider": "1185", "deliveryId": "1", "optionalDelivery": false, "version": "1.2", "acceptedVersion": "1.2" }, "fareStructure": { "calendars": [ { "id": "calendar-1", "fromDate": "2020-09-12 23:00:00 +0000", "untilDate": "2021-09-12 23:00:00 +0000", "utcOffset": 120 } ], "serviceClassDefinitions": [ { "id": "serviceClass-1", "textRef": "", "text": "Erste Klasse", "comfortClass": "FIRST" }, { "id": "serviceClass-2", "textRef": "", "text": "Zweite Klasse", "comfortClass": "SECOND" } ], "serviceLevelDefinition": null, "texts": [ { "id": "text-1", "textUTF8": "1. Klasse", "text": "1. Klasse", "shortTextUtf8": "1. Klasse", "shortText": "1. Klasse" }, { "id": "text-2", "textUTF8": "2. Klasse", "text": "2. Klasse", "shortTextUtf8": "2. Klasse", "shortText": "2. Klasse" }, { "id": "text-3", "textUtf8": "Halbtax 1. Klasse", "text": "Halbtax 1. Klasse", "shortTextUtf": "Halbtax 1. Klasse", "shortText": "Halbtax 1. Klasse" }, { "id": "text-4", "textUtf8": "Halbtax 2. Klasse", "text": "Halbtax 2. Klasse", "shortTextUtf": "Halbtax 2. Klasse", "shortText": "Halbtax 2. Klasse" }, { "id": "text-6", "textUtf8": "FIP", "text": "FIP", "shortTextUtf": "FIP", "shortText": "FIP" }, { "id": "text-6", "textUtf8": "FIP", "text": "FIP", "shortTextUtf": "FIP", "shortText": "FIP" }, { "id": "text-10", "textUtf8": "Erwachsener", "text": "Erwachsener", "shortTextUtf": "Erwachsener", "shortText": "Erwachsener" }, { "id": "text-11", "textUtf8": "Kind", "text": "Kind", "shortTextUtf": "Kind", "shortText": "Kind" }, { "id": "text-20", "textUtf8": "Normalpreis", "text": "Kind", "shortTextUtf": "Kind", "shortText": "Kind" } ], "fareResourceLocation": { "carrierLocations": null, "trainLocations": null, "stationLocations": null }, "prices": [ { "id": "price-1", "price": [ { "currency": "EUR", "amount": 3140 } ] }, { "id": "price-2", "price": [ { "currency": "EUR", "amount": 6280 } ] } ], "regionalConstraints": [ { "id": "regionalConstraint-1", "entryConnectionPointId": "8509404", "exitConnectionPointId": "8503000", "regionalValidity": { "seqNb": 1, "viaStations": { "carrier": "1185", "route": [ { "fareReferenceStationSet": { "carrier": "1185", "code": "8509411", "name": "Sargans" } } ] } }, "distance": 113 } ], "serviceConstraints": [ { "id": "serviceConstraint-1", "includedServiceBrands": [ 51 ] } ], "carrierConstraints": [ { "id": "carrierConstraint-1", "includedCarrier": [ "1185" ] } ], "passengerConstraints": [ { "id": "passengerConstraint-1", "passengerType": "ADULT", "nameRef": "text-5", "lowerAgeLimit": "6", "upperAgeLimit": "15.99", "ageLimitToTravelAlone": 0, "ageLimitForReservation": 0, "combinationConstraint": [ { "maxNumber": 10, "minNumber": 0, "passengerTypeRef": "DOG" } ], "includedFreePassenger": [ { "number": 4, "passengerTypeRef": "FAMILY_CHILD" }, { "number": 10, "passengerTypeRef": "YOUNG_CHILD" }, { "number": 1, "passengerTypeRef": "ACCOMP_DOG" }, { "number": 1, "passengerTypeRef": "ACCOMP_PRM" } ], "passengerWeight": 1 } ], "fareConstraintBundles": [ { "id": "fareConstraintBundle-1", "combinationConstraintRef": "combinationConstraint-1", "salesAvailabilityConstraintRef": "salesAvailabilityConstraint-1", "travelValidityConstraintRef": "travelValidityConstraint-1", "fullfilmentConstraintRef": "fulfillmentConstraint-1", "passengerCombinationRef": "passengerCombinationConstraint-1" } ], "passengerCombinationConstraints": [ { "id": "passengerCombinationConstraint-1", "maxWeightedPassengers": 5, "minWeightedPassengers": 1 } ], "fares": [ { "id": "00000-03914", "bundleRef": "fareConstraintBundle-1", "fareType": "ADMISSION", "nameRef": "text-20", "priceRef": "price-1", "regionalConstraintRef": "regionalConstraint-1", "carrierConstraintRef": "carrierConstraint-1", "regulatoryConditions": [ "CIV" ], "serviceClassRef": "serviceClass-1", "passengerConstraintRef": "passengerConstraint-1", "legacyAccountingIdentifier": { "serialId": 1, "addId": 1, "tariffId": 0 } }, { "id": "00001-03914", "bundleRef": "fareConstraintBundle-1", "fareType": "ADMISSION", "nameRef": "text-20", "priceRef": "price-2", "regionalConstraintRef": "regionalConstraint-1", "carrierConstraintRef": "carrierConstraint-1", "regulatoryConditions": [ "CIV" ], "serviceClassRef": "serviceClass-2", "passengerConstraintRef": "passengerConstraint-1", "legacyAccountingIdentifier": { "serialId": 1, "addId": 1, "tariffId": 0 } }, { "id": "00002-03914", "bundleRef": "fareConstraintBundle-1", "fareType": "ADMISSION", "nameRef": "text-20", "priceRef": "price-1", "regionalConstraintRef": "regionalConstraint-1", "carrierConstraintRef": "carrierConstraint-1", "regulatoryConditions": [ "CIV" ], "serviceClassRef": "serviceClass-1", "passengerConstraintRef": "passengerConstraint-2", "legacyAccountingIdentifier": { "serialId": 1, "addId": 1, "tariffId": 0 } }, { "id": "00003-03914", "bundleRef": "fareConstraintBundle-1", "fareType": "ADMISSION", "nameRef": "text-20", "priceRef": "price-2", "regionalConstraintRef": "regionalConstraint-1", "carrierConstraintRef": "carrierConstraint-1", "regulatoryConditions": [ "CIV" ], "serviceClassRef": "serviceClass-2", "passengerConstraintRef": "passengerConstraint-2", "legacyAccountingIdentifier": { "serialId": 1, "addId": 1, "tariffId": 0 } } ], "afterSalesCondition": "todo", "salesAvailabilityConstraint": [ { "id": "salesAvailabilityConstraint-1", "salesRestrictions": [ { "salesDatesRef": "calendar-1" } ] } ], "travelValidityConstraints": [ { "id": "travelValidityConstraint-1", "validityRange": { "timeUnit": "DAYS", "value": 2, "hoursAfterMidnight": 3 }, "numberOfTravelDays": 0 } ], "combinationConstraints": [ { "id": "combinationConstraint-1", "combinationModels": [ { "model": "CLUSTERING", "combinableCarrier": null, "referenceCluster": "FULLFLEX", "allowedClusters": [ "PROMO", "NONFLEX", "SEMIFLEX", "FULLFLEX", "BUSINESS" ], "allowedAllocators": null, "allowedCommonContracts": null } ] } ], "fullfillmentConstraints": [ { "id": "fulfillmentConstraint-1", "acceptedControlSecurityTypes": [ "SID", "SIP", "SIS" ], "acceptedBarCodes": null, "requiredBarCodes": null, "requiredSiS": null, "individualTicketingPermitted": true } ], "reductionConstraints": [ { "id": "reductionConstraint-1", "requiredCards": [ { "cardValue": "reductionCard-2", "cardName": "Halbtax 2. Klasse", "issuer": "1185" } ] } ], "reductionCards": [ { "id": "reductionCard-1", "issuer": "1185", "nameRef": "Halbtax", "serviceClasses": [ "HIGH", "BASIC" ] }, { "id": "reductionCard-2", "issuer": "1185", "nameRef": "GA 2.Klasse", "serviceClasses": [ "BASIC" ] }, { "id": "reductionCard-3", "issuer": "1185", "nameRef": "GA 1.Klasse", "serviceClasses": [ "HIGH" ] }, { "id": "reductionCard-4", "issuer": "1185", "nameRef": "FIP", "serviceClasses": [ "HIGH", "BASIC" ] }, { "id": "reductionCard-5", "issuer": "1185", "nameRef": "RailPlus", "serviceClasses": [ "HIGH", "BASIC" ] } ], "personalDataConstraints": null, "reservationParameters": null, "connectionPoints": [ { "id": "connectionPoint-1", "legacyBorderPointCode": "271", "stationSets": [ [ { "code": "8509404", "country": "CH" } ], [ { "code": "8101244", "country": "DE" } ] ] } ], "stationNames": null, "fareReferenceStationSetDefinitions": null, "zoneDefinitions": null } }
Strumenti ed esempi sono disponibili alla pagina delle specifiche: https://osdm.io/
Ulteriori indicazioni
- Specifiche: https://osdm.io/
- Record di dati: https://data.opentransportdata.swiss/it/dataset/osdm-offline