Rautatieliikenne

Junien aikataulut, toteumatiedot, sijainnit ja kokoonpanot.

RATA.DIGITRAFFIC.FI

Tämän avoimen rajapinnan tarkoituksena on jakaa tietoa Suomen rataverkolla kulkevien junien aikatauluista, sijainneista, kokoonpanoista sekä täsmällisyystiedoista. Palvelun omistaa Liikennevirasto ja tietolähteenä toimii Liikenneviraston ratakapasiteetin ja liikenteenohjauksen Liike-perheen sovellukset sekä matkustajainformaatiojärjestelmä MIKU.

LIIKE REAALI LOKI

Rajapinnasta saatavien tietojen avulla on mahdollista vastata esimerkiksi seuraaviin kysymyksiin:

  • Onko junani aikataulussa?
  • Missä junani sijaitsee tällä hetkellä?
  • Millä junalla voin matkustaa paikasta A paikkaan B ajanhetkenä C?
  • Mitkä junat lähtevät ja saapuvat asemalta seuraavaksi?
  • Mistä vaunuista junani koostuu?
  • Mitä palveluita vaunut tarjoavat?
  • Oliko juna aikataulussa esimerkiksi kaksi kuukautta sitten?

Saatavilla on myös Swagger-dokumentaatio

Rajapinnasta saatavien tietojen käyttölupa on Creative Commons Nimeä 4.0.

Sisältö

  1. Yleistä
    1. Palvelun kehittäjäyhteisö
    2. Suunnittellut ominaisuudet
    3. Toteutetut ominaisuudet
    4. HTTPS
    5. Dataa tukevat rajapinnat
  2. Rajapinnat
    1. Junien tiedot (/trains)
    2. Aktiivisten junien seuranta (/live-trains)
    3. Junien GPS-sijainnit
    4. Tarkempi seuranta kulkutietoviestien avulla (/train-tracking)
    5. Kokoonpanotiedot (/compositions)
    6. Metatiedot (/metadata)
    7. GraphQL
  3. Vastaustyypit
    1. Junat
    2. Kokoonpanot
    3. GPS-sijainnit
    4. Kulkutietoviestit
    5. Liikennepaikat
    6. Operaattorit
    7. Syyluokat
    8. Syykoodit
    9. Kolmannen tason syykoodit
    10. Junatyypit
    11. Raideosuudet
    12. Herätepisteet
  4. Versionumeroiden käyttö
  5. Avoimen datan käyttölupa

Yleistä

Palvelun kehittäjäyhteisö

Jos sinulla on kysymyksiä tietosisällöstä, kehitysehdotuksia tai tarvitset apua rajapinnan käyttöön, palvelulle on perustettu julkinen rata.digitraffic.fi Google-ryhmä.

Suunnittellut ominaisuudet

Listassa ensimmäisenä oleva pyritään toteuttamaan ensimmäisenä. Ominaisuuksia saatetaan vielä hyllyttää esim. operaattorien liikesalaisuussyistä tai odottamattomien teknisten vaikeuksien takia.

Otamme mielellämme vastaan kehitysehdotuksia rata.digitraffic.fi -keskusteluryhmässä

Suunnitteilla olevat ominaisuudet:

  • Siri-sanomat
    • Sisältävät asemakuulutusten kaltaista tietoa. Esimerkiksi “Raide 5 on remontissa Pasilassa”.
  • Routeset-sanomat
    • Kun juna varaa edestään rataosia kuljettavaksi, tästä syntyy Routeset-sanomia. Myös TrackSet- ja TrackConfirm-sanomat pyritään julkaisemaan.

Toteutetut ominaisuudet

  • 12.9.2018
    • Vanhat GPS-sijainnit zip-paketteina
  • 13.8.2018
    • Junan “myöhässä”-toiminallisuus
  • 21.5.2018
    • Junan sijaintihistorian haku (/train-locations/<departure_date>/<train_number>)
  • 12.2.2018
    • Kokoonpanojen haku versionumeron avulla
  • 5.2.2018
    • GraphQL. Tapa filtteröidä, rajoittaa ja yhdistellä vastauksia
  • 1.2.2018
    • Uusi tyyli etusivulle
    • Vanhat junat ja kokoonpanot zip-paketteina
  • 12.12.2017
    • Junien GPS-sijainnit
  • 03.10.2017
    • Junien tiedot GTFS-muodossa
  • 22.08.2017
    • Swagger-dokumentaatio
  • 20.06.2017
    • MIKU-järjestelmän käsiennusteet (Etelä-Suomen junien tarkemmat ennusteet)
  • 18.05.2017
    • Säännöllisen ja tulevaisuuden kiireellisen kapasiteetin jakaminen
  • 30.03.2017
    • Syytietojen (eli myöhästymissyyn) kolmas taso
  • 24.02.2017
    • Junan lähtövalmiusilmoitus (trainReady).
  • 31.01.2017
    • Junan aikataulun hyväksymishetki (timeTableAcceptanceDate).
  • 24.01.2017
    • Rajapinta, joka palauttaa kaikki muuttuneet junat (/trains?version).
  • 11.01.2017
    • Julkaistu junan aikataulun ratakapasiteettihakemuksen tyyppi.
  • 02.01.2017
    • Syyluokkiin ja -koodeihin viitataan id:llä.
  • 25.11.2016
    • Rajoitettu aikataulurajapinnan käyttöä. Lue alhaalta rajapintakuvauksesta lisätietoa.
  • 23.11.2016
    • Uusi algoritmi ennusteiden tuottamiseen
  • 15.06.2016
    • Kulkutietoviestit asemapaikoittain ja raideosuuksittain
  • 16.03.2016
    • Mahdollisuus kuunnella junia websocketilla
    • Herätepisteet
  • 29.12.2015
    • Toteumatiedon haku aikavälirajoituksin
  • 18.11.2015
    • Aikatauluttomien junien kulkutietoviestit
  • 08.10.2015
    • Raideosuudet
    • Kulkutietoviestit
    • Liikennepaikkaluetteloon lisää tietoja
  • 05.03.2015
    • Operaattoriluettelo junanumeroavaruuksilla
    • Liikennepaikkaluettelo
    • Rajoitetun kokokoonpanotietojen julkaiseminen.
    • Reaaliaikaisen liikennetilanteen ja toteumatiedon julkaiseminen.
    • Voimassa olevan kapasiteetin julkaiseminen.

HTTPS

Rajapinta tukee sekä HTTP- että HTTPS-muotoa. Suosittelemme HTTPS:n käyttöä.

Dataa tukevat rajapinnat

Rajapinnat

Avoimen datan rajapinta tarjoaa sekä on REST- että WebSocket-rajapinnat, joiden vastaukset ovat JSON-formaattia. Rajapinnan tulokset tallennetaan välimuistiin, jossa säilytysaika riippuu tehdystä kyselystä ja muodostetusta vastauksesta, esimerkiksi asematiedot pidetään välimuistissa pidempään kuin reaaliaikaiset kulkutiedot.

Rajapinta on jaettu kuuteen osaan:

Palvelussa on junien aikataulu- ja toteumatiedot noin 720 päivää taaksepäin. Tulevaisuuteen tiedot ovat saatavilla niin pitkälle kuin rataviranomainen on hyväksynyt operaattoreiden aikatauluhakemukset. Rajapinnasta saatavat aikataulut voivat muuttua aikataulujen muutosajankohdissa, joita on noin kolmen kuukauden välein. Tämä koskee erityisesti tavaraliikennettä, mutta myös henkilöliikenteeseen voi tulla muutoksia näissä ajankohdissa. Tämän vuoksi sellaisten junien aikatauluihin, joiden lähtöpäivä on seuraavan muutosajankohdan jälkeen, ei voi täydellä varmuudella luottaa.

Käytettävä versio rajapinnasta kerrotaan osoitteessa. Esimerkiksi http://rata.digitraffic.fi/api/v1/trains/latest/1, jossa v1 on rajapinnan versiotunnus.

Kaikki aikaleimat ovat ISO-8601:n mukaisia (esimerkiksi 2018-03-28T04:35:00.000Z). Huomaa, että aikaleimoissa aikavyökkeenä on Z eli ne ovat UTC-aikaa, eivät Suomen aikaa.

Rajapinnan käytössä on yhtäaikaiseen käyttöön liittyviä rajoituksia. Yhdestä ip-osoitteesta voi olla maksimissaan kaksi yhtäaikaista yhteyttä ja tehdä viisi pyyntöä sekunnissa. Rajoituksen ylittyessä palvelu viivästyttää pyyntöjä tai antaa HTTP 429 -virheen.

Palvelun tilaa voi seurata osoitteessa https://nodeping.com/reports/statusevents/Q8FN33750I.

Junien tiedot (/trains)

Tämän rajapinnan kautta voidaan kysyä junien aikataulutietoja. Erilaisia tapoja kysyä junien tietoja ovat: junanumero, lähtöpäivämäärä, asema ja versio.

Toteumatiedoista osa perustuu liikenteenohjauksen tekemiin käsikirjauksiin, jonka vuoksi osa toteumakirjauksista tehdään tapahtumahetkeä 0-5 minuuttia myöhemmin (siis historiaan). Esimerkiksi Tampereen ja Seinäjoen liikennepaikoilla ei saada automaattisia toteumatietoja, vaan kaikki toteumat perustuvat käsikirjauksiin.

Automaattinen ennusteen laskeminen perustuu toteutuneisiin toteumiin. Historiasta voidaan laskea keskinopeus kuinka nopeasti juna on ajanut liikennepaikkavälin tietyllä kalustolla ja tätä keskinopeutta käytetään ennustenopeutena.

Yhden junan tiedot

URL: /trains/<train_number>?departure_date=<departure_date>&version=<version>

Esimerkkejä

Kuvaus

Palauttaa yhden junan tiedot

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinentrain_number1-999991, 3402Junan numero. Esimerkiksi junan “IC 59” junanumero on 59.
vapaaehtoinendeparture_datedate(yyyy-mm-dd)2017-01-01Junan ensimmäisen lähdön päivämäärä. Jos parametriksi annetaan “latest”, pyritään päättelemään juna joka on lähinnä nykyhetkeä. Päättely tehdään siten, että haetaan kaikki junanumeron junat lähipäiviltä ja etsitään nykyhetkeä lähinnä oleva aikataulurivi (rajauksella 4 tuntia taaksepäin, 16 tuntia eteenpäin. Vertailussa käytetään aikataulurivien suunnitteltuja aikoja.
vapaaehtoinenversionpositive integer159123295871Versiorajoitus. Jos juna ei ole muuttunut sitten määritellyn version, palautetaan tyhjä tulos.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat -tyyppisen vastauksen.

Päivän junien tiedot

URL: /trains/<departure_date>

Esimerkki: /trains/2017-11-09

Kuvaus

Palauttaa kaikki junat halutulta lähtöpäivämäärältä.

Hakuehdot

    NimiFormaattiEsimerkki
pakollinendeparture_datedate (yyyy-mm-dd)2017-01-01

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Kaikkien junien tiedot

URL: /trains?version/<version>

Esimerkki: /trains?version=1234567891234

Kuvaus

Palauttaa kaikkien junien tiedot, jotka ovat muuttuneet sitten annetun versionumeron. Vastaus rajoitettu 2500 junaan.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
vapaaehtoinenversionpositive integer159123295871Versiorajoitus. Palauttaa kaikki junat, jotka ovat muuttuneet sitten version-version. Jos versionumeroa ei anneta, palautetaan uusimmalla versionumerolla muuttuneet junat.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Kaikkien junien tiedot (WebSocket)

Esimerkki: esimerkki

Kuvaus

Websockettiin pistetään kaikki junat sitä mukaa kun ne muuttuvat.

Paluuarvo

Palauttaa junat-tyyppisiä vastauksia.

Liikennepaikan tiedot (WebSocket)

Esimerkki: esimerkki

Kuvaus

Websockettiin pistetään muuttunut juna, jos sillä on lähtö tai saapuminen parametrina annetulla liikennepaikalla.

Paluuarvo

Palauttaa junat-tyyppisiä vastauksia.

Yhden junan tiedot (WebSocket)

Esimerkkejä:

Kuvaus

Websockettiin pistetään yhden junan juna-tyyppiset tiedot.

Paluuarvo

Palauttaa junat-tyyppisiä vastauksia.

GTFS

URL:t

Kuvaus

Junien tiedot saa myös GTFS-muodossa (General Transit Feed Specification). Paketti gtfs-all.zip sisältää kaikki junat ja gtfs-passenger.zip sisältää vain matkustajajunat.

Paketti generoidaan uusiksi päivittäin noin klo 5:00. Se sisältää kaikki tulevaisuuden junat ja menneisyyden junat viimeiseltä seitsemältä päivältä.

Paluuarvo

Palauttaa GTFS-muodossa olevan zip-paketin

Vanhat junat zip-paketteina

Vanhojen junien tiedot löytyvät zip-paketteina osoittesta /api/v1/trains/dumps/list.html

Paketin sisältämä json on saman muotoista kuin muutkin juna-vastaukset.

Uusi paketti luodaan joka kuun viides päivä.

Aktiivisten junien seuranta (/live-trains)

Liikennepaikan saapuvat ja lähtevät junat (lukumäärärajoitus)

URL: /live-trains/station/<station_shortcode>?arrived_trains=arrived_trains>&arriving_trains=arriving_trains> &departed_trains=<departed_trains>&departing_trains=<departing_trains>&version=<change_number>

Esimerkkejä:

Kuvaus

Palauttaa asemalla pysähtyvistä junista viimeksi lähteneet tai saapuneet, tai seuraavaksi lähtevät tai saapuvat.

Parametreillä voidaan rajoittaa palautettavien junien määrää. Junien kokonaismäärän rajoitus on 1000. Rajoitusparametrien yhteenlaskettu summa ei siis voi olla tätä suurempi.

Haku tehdään aikatauluaikojen perusteella taakse ja eteenpäin 24 tuntia. Tämä tarkoittaa, että harvaan liikennöidyllä liikennepaikkalla junien määrä saattaa olla pieni.

warning Koska sama juna voi kuulua useampaan joukkoon (esim. saapunut juna voi olla yhtäaikaisesti myös lähtevä), palautettava kokonaismäärä on yleensä pienempi kuin parametrien summa.

Oletuksena haulla palautetaan vain junat, jotka pysähtyvät asemalle. Parametrin “include_nonstopping” avulla voidaan palauttaa myös junat, jotka ajavat aseman ohi pysähtymättä.

Versionumerohaulla ei palauteta junasta tietoa, mikäli junan tiedot eivät ole muuttuneet kyselyiden välillä. Tämä tarkoittaa, että tulosjoukon koko voi olla tällöin pienempi.

 NimiFormaattiOletusarvoEsimerkkiSelitys
pakollinenstationstring “HKI”Aseman lyhenne. Esimerkiksi HKL, TPE, PSL. Lista lyhenteistä löytyy täältä.
vapaaehtoinenarrived_trainspositive integer, 1-600520Kuinka monta saapunutta junaa palautetaan maksimissaan.
vapaaehtoinenarriving_trainspositive integer, 1-600520Kuinka monta saapuvaa junaa palautetaan maksimissaan.
vapaaehtoinendeparted_trainspositive integer, 1-600520Kuinka monta lähtenyttä junaa palautetaan maksimissaan.
vapaaehtoinendeparting_trainspositive integer, 1-600520Kuinka monta lähtevää junaa palautetaan maksimissaan.
vapaaehtoineninclude_nonstoppingtrue/falsefalsetruePalautetaanko aseman ohi pysähtymättä ajavat junat.
vapaaehtoinenversionpositive integer 159123295871Versiorajoitus. Palauttaa kaikki junat, jotka ovat muuttuneet sitten version-version. Jos versionumeroa ei anneta, palautetaan uusimmat tiedot.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Liikennepaikan saapuvat ja lähtevät junat (aikavälirajoitus)

URL: /live-trains/station/<station_shortcode>?minutes_before_departure=<minutes_before_departure>&minutes_after_departure=<minutes_after_departure>&minutes_before_arrival=<minutes_before_arrival>&minutes_after_arrival=<minutes_after_arrival>&version=<change_number>&includeNonstopping=<includeNonstopping

Esimerkiksi: /live-trains/station/HKI?minutes_before_departure=15&minutes_after_departure=15&minutes_before_arrival=15&minutes_after_arrival=15

Kuvaus

Palauttaa asemalla pysähtyvistä junista viimeksi lähteneet tai saapuneet, tai seuraavaksi lähtevät tai saapuvat.

Parametreillä voidaan rajoittaa lähteviä ja saapuvia junia aikamääreiden avulla.

Aikavälirajoituksen maksimikoko on 24 tuntia. Tämä tarkoittaa, että harvaan liikennöidyllä liikennepaikkalla junien määrä saattaa olla pieni.

Oletuksena haulla palautetaan vain junat, jotka pysähtyvät asemalle. Parametrin “include_nonstopping” avulla voidaan palauttaa myös junat, jotka ajavat aseman ohi pysähtymättä.

Versionumerorajoituksen avulla voidaan suodattaa pois junat, jotka eivät ole muuttuneet sitten annetun versionumeron.

Hakuehdot

    NimiFormaattiOletusarvoEsimerkkiSelitys
pakollinenstationstring “HKI”Aseman lyhenne. Esimerkiksi HKL, TPE, PSL. Lista lyhenteistä löytyy täältä.
pakollinenminutes_before_departurepositive integer, 0-1440 20Kuinka monta minuuttia juna näytetään ennen sen lähtöä.
pakollinenminutes_after_departurepositive integer, 0-1440 20Kuinka monta minuuttia juna näytetään sen lähdön jälkeen.
pakollinenminutes_before_arrivalpositive integer, 0-1440 20Kuinka monta minuuttia juna näytetään ennen sen saapumista.
pakollinenminutes_after_arrivalpositive integer, 0-1440 20Kuinka monta minuuttia juna näytetään sen saapumisen jälkeen.
vapaaehtoineninclude_nonstoppingtrue/falsefalsetruePalautetaanko aseman ohi pysähtymättä ajavat junat.
vapaaehtoinenversionpositive integer 159123295871Versiorajoitus. Palauttaa kaikki junat, jotka ovat muuttuneet sitten version-version. Jos versionumeroa ei anneta, palautetaan uusimmat tiedot.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Reittiperusteinen haku

URL: /live-trains/station/<departure_station_code>/<arrival_station_code>?departure_date=<departure_date>&startDate=<startDate>&endDate=<endDate>&limit=<limit>

Esimerkki: /live-trains/station/HKI/TPE

Kuvaus

Palauttaa junat, jotka kulkevat departure_station_code- ja arrival_station_code-asemien kautta ja pysähtyvät asemilla.

Haku palauttaa vain suorat junayhteydet.. Hakutulos ei siis sisällä operaattorin tarjoamia reittivaihtoehtoja, joissa matkustaja joutuu esimerkiksi vaihtamaan junaa. Päivämääräväli rajattu maksimissaan kahteen päivään.

Oletuksena haulla palautetaan vain junat, jotka pysähtyvät asemallilla. Parametrin “include_nonstopping” avulla voidaan palauttaa myös junat, jotka ajavat asemien ohi pysähtymättä.

Hakuehdot

    NimiFormaattiEsimerkkiSelite
pakollinendeparture_stationstring“HKI”Lähtöaseman lyhenne. Lyhennekoodit löytyvät täältä.
pakollinenarrival_stationstring“RI”Määränpääaseman lyhenne. Lyhennekoodit löytyvät täältä.
vapaaehtoinendeparture_datedate(yyyy-mm-dd)2017-01-01Päivämäärä jolta junia haetaan. Jos lähtöpäivämäärä on tyhjä, etsitään seuraavan 24 tunnin aikana lähteviä junia.
vapaaehtoinenstartDatedatetime(ISO 8601)2017-01-01T23:28:59.564Zdeparture_date päivämäärän sijasta voidaan määritellä aikaväli, jolta junia haetaan. Tämä parametri määrittelee aikavälin alun. Päivämääräväliä verrataan junan aikataulun mukaisen lähtöaikaan reittihaun lähtöasemalta.
vapaaehtoinenendDatedatetime(ISO 8601)2017-01-01T23:28:59.564ZTämä parametri määrittelee aikavälin lopun. Jos tämä parametri jätetään tyhjäksi, haetaan junia seuraavalle 24 tunnille asti.
vapaaehtoinenlimitpositive integer15Rajaa palautettavien junien määrää. Oletusarvo on 1000.
vapaaehtoineninclude_nonstoppingtrue/falsefalsePalautetaanko aseman ohi pysähtymättä ajavat junat.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Kohta lähtevien tai saapuvien junien seuranta

URL: /live-trains?version=<version>

Esimerkkejä:

Kuvaus

Palauttaa kaikkien lähiaikoina kulussa olevien junien tiedot.

Kulussa oleva juna määritellään siten, että junan aikataulutapahtuman (suunniteltu, ennuste tai toteuma reitin jollain liikennepaikalla) hetkestä on kulunut alle 4 tuntia nykyhetkeen verrattuna.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinenversionpositive integer6403053026Versiorajoitus. Palauttaa kaikki junat, jotka ovat muuttuneet sitten version-version. Jos versionumeroa ei anneta, palautetaan uusimmat tiedot.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa junat-tyyppisen vastauksen.

Junan GPS-sijainnit (/train-locations)

Tämän rajapinnan kautta voidaan lukea junan GPS:n tuottamaa sijaintitietoa. Kaikissa junissa ei ole GPS:ää käytössä. Jos näiden junien tarkka sijainti kiinnostaa, voidaan seuraamiseen käyttää käyttää esimerkiksi kulkutietoviestejä.

Junan GPS-laite toimittaa sijainnin tällä hetkellä 15 sekunnin välein. Sijainnit saapuvat kuitenkin eri aikoihin, joten kyselyiden cache-aika on yksi sekunti.

GPS-datan tuotto kytkeytyy päälle ja pois veturin kuljettajan toimesta, joten on mahdollista, että juna tuottaa GPS-dataa vaikka se ei olekaan ajossa. Yli 500 metriä lähimmästä radasta sijaitsevat GPS-sijainnit suodatetaan pois.

Kehittäjien kannattaa huomioida junien sijaintitietojen puutteet sovelluksissaan ja kertoa rajoitteista selkeästi myös sovellusten loppukäyttäjille. Puutteiden ja virheiden vuoksi tietojen käyttöä turvallisuuteen liittyvissä sovelluksissa kannattaa harkita tarkkaan.

Kaikkien junien sijainnit

URL: /train-locations/latest?bbox=<points>

Kuvaus

Palauttaa kaikkien junien GPS-tiedot, jotka ovat olleet aktiivisia viimeisen 15 minuutin sisällä. Historiatietojen kysely tulossa myöhemmin.

    NimiFormaattiEsimerkkiSelitys
vapaaehtoinenbbox4 numeroa1,1,70,70Maantieteellinen rajaus WSG84-koordinaateilla. Kahdesta ensimmäisestä ja kahdesta viimeisestä numerosta muodostetaan rajausneliön määrittelevät pisteet

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa GPS-sijainnit -tyyppisen vastauksen.

Yhden junan sijainti

URL: /train-locations/<departure_date>/<train_number>?bbox=<points>

Esimerkkejä:

Kuvaus

Palauttaa junan GPS-sijainnit lähtöpäivänä.

Mikäli lähtöpäivänä käytetään arvoa “latest” palautetaan GPS-sijainti, joka on päivittynyt viimeisen 15 minuutin sisällä.

    NimiFormaattiEsimerkkiSelitys
pakollinentrain_number1-999991Junan numero. Esimerkiksi junan “IC 59” junanumero on 59.
pakollinendeparture_datedate(yyyy-mm-dd)2017-01-01Junan ensimmäisen lähdön päivämäärä. Jos arvo on “latest” (esim. train-locations/latest/1), palautetaan uusin, vähintään 15 minuutin sisällä päivittynyt GPS-sijainti.
vapaaehtoinenbbox4 numeroa1,1,70,70Maantieteellinen rajaus WSG84-koordinaateilla. Kahdesta ensimmäisestä ja kahdesta viimeisestä numerosta muodostetaan rajausneliön määrittelevät pisteet

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa GPS-sijainnit -tyyppisen vastauksen.

Sijainnit (MQTT)

Topic: train-locations/<departure_date>/<train_number>/

Osia topic:sta voidaan korvata wildcard-merkeillä “#” ja “+”. Esimerkiksi voidaan kuunnella topic:a “train-locations/#”. Lisätietoa täältä

Aiemmista Websocket-toteutuksista poiketen GPS-sijainnit jaetaan MQTT:lla. MQTT-palvelin löytyy osoitteesta rata-mqtt.digitraffic.fi:9001. Myös ei-Websocket -yhteys on mahdollinen (portti 1883).

Esimerkkitoteutus Websocketilla löytyy osoitteesta http://jsfiddle.net/k8sfd4an/53/

Paluuarvo

Palauttaa GPS-sijainnit -tyyppisen vastauksen.

Vanhat sijainnit zip-paketteina

Vanhat sijainnit löytyvät zip-paketteina osoitteesta /api/v1/train-locations/dumps/list.html

Paketin sisältämä json on saman muotoista kuin muutkin GPS-sijainti-vastaukset.

Uusi paketti luodaan joka päivä noin kello 15:30. Paketin sisältö on kaksi päivää vanhaa. Esimerkiksi 11.9.2018 15:30 luodaan päivän 9.9. junat.

Tarkempi seuranta kulkutietoviestien avulla (/train-tracking)

Liikennepaikkakohtaisten toteumien ja ennusteiden lisäksi junaa voidaan seurata ja paikantaa raideosuustarkkuudella kulkutietoviestien avulla

Kun juna saapuu raideosuudelle, aktivoituu raideosuuden anturi ja raideosuus varautuu kyseiselle junalle. Varatumisesta muodostuu “OCCUPY”-tyyppinen kulkutietoviesti. Junan poistuessa raideosuudelta syntyy puolestaan “RELEASE”-tyyppinen kulkutietoviesti. Kulkutietoviestit kertovat siis mitä raideosuuksia juna on varannut itselleen kuljettavaksi.

Kulkutietoviestejä voi seurata kahdella tapaa. Perinteisellä REST-rajapinalla (eli kuten esimerkiksi “live-trains”-liittymää) tai WebSocketeilla (STOMP-protokolla, versiot 1.0 - 1.2).

Kulkutietoviestejä kertyy päivittäin yli 300 000. On siis hyvä miettiä halutaanko hyödyntää kulkutietoviestejä vai luvussa 1.1 kuvattuja liikennepaikkakohtaisia toteumia ja ennusteita.

warning Datan laatu ei ole aina optimaalista. Tunnettuja välillä esiintyviä vikoja:

  • Seuraavan ja edellisen aseman/raideosuuden puuttuvat
  • Junan lähtöpäivämäärä tyhjä
  • Viestejä esiintyy tuplana (samat tiedot, eri id)

Kulkutietoviestit välitetään avoimen datan rajapintaan käytännössä sellaisena kuin ne saadaan kauko-ohjausjärjestelmistä. Virheellisiä viestejä lähettäviä kauko-ohjausjärjestelmiä pyritään korjaamaan jatkuvasti palautteen avulla.

Kaikkien junien seuranta

URL: /train-tracking?version=<version>

Esimerkiksi: /train-tracking?version=65403053026

Kuvaus

Palauttaa kaikki kulkutietoviestit, joiden versionumero on suurempi kuin parametrina annettuna versio.

Maksimissaan palautetaan 2500 kulkutietoviestiä.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinenversionpositive integer6403053026Versionumero, jota uudemmat kulkutietoviestit palautetaan.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisen vastauksen.

Yhden junan seuranta

URL: /train-tracking/<departure_date>/<train_number>?version=<version>

Esimerkki: /train-tracking/2017-01-01/1?version=1000

Kuvaus

Palauttaa halutun yhden junan kulkutietoviestit.

warning Kyselyyn otetaan mukaan myös kulkutietoviestit, joilla ei ole lähtöpäivämäärää (departureDate) edellisen ja seuraavan vuorokauden rajauksella. Tällöin saattaa palautua “eilisen” kulkutietoviestejä.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinentrain_number1-999991, 3402Junan numero. Esimerkiksi junan “IC 59” junanumero on 59.
pakollinendeparture_datedate(yyyy-mm-dd)2017-01-01Junan ensimmäisen lähdön päivämäärä. Jos arvo on “latest” (esim. train-tracking/latest/1) , palauttaa uusimman lähdön kulkutietoviestejä. Palauttaa lisäksi kulkutietoviestit ilman lähtöpäivämäärää +1..-1 päivän rajauksella.
vapaaehtoinenversionpositive integer159123295871Versiorajoitus. Jos juna ei ole muuttunut sitten määritellyn version, palautetaan tyhjä tulos. Jos tyhjä, ei tehdä versiorajoitusta.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisen vastauksen.

Liikennepaikan seuranta

URL: /train-tracking/station/<station>/<departure_date>

Esimerkki: /train-tracking/station/JY/2017-08-01

Kuvaus

Palauttaa liikennepaikan kulkutietoviestit.

warning Kyselyyn otetaan mukaan myös kulkutietoviestit, joilla ei ole lähtöpäivämäärää (departureDate) edellisen ja seuraavan vuorokauden rajauksella. Tällöin saattaa palautua “eilisen” kulkutietoviestejä.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinenstationstring“HKI”Liikennepaikan lyhenne. Lyhennekoodit löytyvät täältä
pakollinendeparture_datedate(yyyy-mm-dd)2017-01-01Junan ensimmäisen lähdön päivämäärä. Palauttaa lisäksi kulkutietoviestit ilman lähtöpäivämäärää hakuparametria seuraavalta päivältä kello 16:00 asti.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisen vastauksen.

Raideosuuden seuranta

URL: /train-tracking/station/<station>/<departure_date>/<track_section>

Esimerkkejä:

Kuvaus

Palauttaa liikennepaikan raideosuuden kulkutietoviestit.

warning Kyselyyn otetaan mukaan myös kulkutietoviestit, joilla ei ole lähtöpäivämäärää (departureDate) edellisen ja seuraavan vuorokauden rajauksella. Tällöin saattaa palautua “eilisen” kulkutietoviestejä.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinenstationstring“HKI”Liikennepaikan lyhenne. Lyhennekoodit löytyvät täältä
pakollinentrack_sectionstring“001”Liikennepaikan raideosuuden lyhenne. Lyhennekoodit löytyvät täältä
pakollinendeparture_datedate (yyyy-mm-dd)2017-01-01Kulkutietoviestiin liittyvän junan ensimmäisen lähdön päivämäärä. Palauttaa lisäksi kulkutietoviestit ilman lähtöpäivämäärää hakuparametria seuraavalta päivältä kello 16:00 asti. Jos arvo on “latest”, palautetaan uusimpia kulkutietoviestejä.
vapaaehtoinenlimitpositive integer100Kuinka monta uusinta kulkutietoviestiä kyselyssä palautetaan. Maksimiarvo 1000. Tämä rajaus poissulkee departure_date-rajauksen. Jos departure_date- tai limit-rajoitusta ei anneta, käytetään limit-rajoitusta.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisen vastauksen.

Kaikkien junien seuranta (WebSocket)

Esimerkki: esimerkki

Kuvaus

Websockettiin pistetään kaikkien junien kulkutietoviestit.

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisiä vastauksia.

Yhden junan seuranta (WebSocket)

Esimerkkejä:

Kuvaus

WebSockettiin pistetään yhden tietyn junan kulkutietoviestit. Jos departure_date jätetään tyhjäksi, ei tehdä departure_date-rajoitusta.

Paluuarvo

Palauttaa Kulkutietoviestit-tyyppisiä vastauksia.

Kokoonpanotiedot (/compositions)

Kokoonpanotietoja tulee junille 0-5 tuntia ennen junan lähtö tai pysähdystä, jossa kokoonpano muuttuu.

warning Moottorivaunut (esimerkiksi tyypit Sm3, Sm4, Sm5) on yleisesti ilmoitettu kokoonpanoissa vaunuina.

Junan kokoonpanohaku

URL: /compositions/<departure_date>/<train_number>

Esimerkki: /compositions/2017-01-01/1

Kuvaus

Palauttaa yksittäisen junan kokoonpanotiedot tiettynä päivämääränä.

Hakuehdot

    NimiFormaattiSelitys 
pakollinentrain_number1-999991Junan numero. Esimerkiksi junan “IC 59” junanumero on 59.
pakollinendeparture_datedate(yyyy-mm-dd)2017-01-01Lähtöpäivämäärä

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kokoonpanot-tyyppisen vastauksen.

Junien kokoonpanohaku

URL: /compositions/<departure_date>

Esimerkki: /compositions/2017-01-01

Kuvaus

Palauttaa junien kokoonpanotiedot halutulta vuorokaudelta.

Hakuehdot

    NimiFormaattiEsimerkki
pakollinendeparture_datedate(yyyy-mm-dd)2017-01-01

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Paluuarvo

Palauttaa Kokoonpanot-tyyppisen vastauksen.

Kaikkien kokoonpanojen seuranta

URL: /compositions?version=<version>

Esimerkki: /compositions?version=12349873459128375

Kuvaus

Palauttaa kaikki kokoonpanot, jotka ovat uudempia kuin version

Paluuarvo

Palauttaa Kokoonpanot-tyyppisen vastauksen.

Hakuehdot

    NimiFormaattiEsimerkkiSelitys
pakollinenversionpositive integer6403053026Versiorajoitus. Palauttaa kaikki kokoonpanot, jotka ovat muuttuneet sitten version. Jos versionumeroa ei anneta, palautetaan uusin kokoonpano.

pakollinen Pakollinen vapaaehtoinen Vapaaehtoinen

Vanhat kokoonpanot zip-paketteina

Vanhat kokoonpanot löytyvät zip-paketteina osoittesta /api/v1/compositions/dumps/list.html

Paketin sisältämä json on saman muotoista kuin muutkin kokoonpano-vastaukset.

Uusi paketti luodaan joka kuun viides päivä.

Metatiedot (/metadata)

Palvelun metatietojen hakurajapinta.

Liikennepaikkatiedot

URL: metadata/stations

Kuvaus

Palauttaa palvelun liikennepaikkojen tiedot. Tiedot päivittyvät lähdejärjestelmästä päivittäin n. klo 1:00.

Paluuarvo

Palauttaa Liikennepaikat-tyyppisen vastauksen.

Operaattoritiedot

URL: metadata/operators

Kuvaus

Palauttaa palvelun operaattoreiden tiedot. Tiedot päivittyvät lähdejärjestelmästä päivittäin n. klo 1:00.

Paluuarvo

Palauttaa Operaattorit-tyyppisen vastauksen.

Syyluokat

URL: metadata/cause-category-codes

Kuvaus

Palauttaa listan palvelussa aktiivisesti käytössä olevista syyluokista. Syyluokat ovat yleisiä kategorioita syytiedoille. Kaikki syyluokat julkaistaan AvoinData-palvelun kautta. Jos haluat listaukseen mukaan käytöstä poistuneet tai käyttöön lisättävät syyluokat, lisää osoitteeseen parametri show_inactive=true.

Paluuarvo

Palauttaa Palauttaa Syyluokat-tyyppisen vastauksen.-tyyppisen vastauksen.

Syykoodit

URL: metadata/detailed-cause-category-codes

Kuvaus

Palauttaa listan palvelussa käytössä olevista syykoodeista. Jokainen syyluokka on jaettu syykoodeihin eli syykoodi on syyluokan alempi taso. Kaikkia syykoodeja ei julkaista. Jos haluat listaukseen mukaan käytöstä poistuneet tai käyttöön lisättävät syykoodit, lisää osoitteeseen parametri show_inactive=true.

Paluuarvo

Palauttaa Syykoodit-tyyppisen vastauksen.

Kolmannen tason syykoodit

URL: metadata /third-cause-category-codes

Kuvaus

Palauttaa listan palvelussa käytössä olevista kolmannen tason syykoodeista. Kolmannen tason syykoodi on syykoodin alempi taso. Kaikkia kolmannen tason syykoodeja ei julkaista. Jos haluat listaukseen mukaan käytöstä poistuneet tai käyttöön lisättävät kolmannen tason syykoodit, lisää osoitteeseen parametri show_inactive=true.

Paluuarvo

Palauttaa Kolmannen tason syykoodit-tyyppisen vastauksen.

Junatyypit

URL: metadata/train-types

Kuvaus

Palauttaa listan palvelussa käytössä olevista junatyypeista (esim. IC, P, P). Jokaisella junatyypillä on yläkäsitteenä junalaji (esim. lähijuna, kaukojuna, tavarajuna).

Paluuarvo

Palauttaa Junatyypit-tyyppisen vastauksen.

Raideosuudet

URL: metadata/track-sections

Kuvaus

Palauttaa listan raideosuuksista. Raideosuus on pienin osuus raiteesta, jonka yksittäinen juna voi varata käyttöönsä ja näin muodostaa turvallisen kulkureitin. Raideosuudella voi siis sijaita maksimissaan yksi juna.

Lista ei kata kaikkia kulkutietoviesteissä esiintyviä raideosuuksia. Datan laatua pyritään parantamaan.

Paluuarvo

Palauttaa Raideosuudet-tyyppisen vastauksen.

Herätepisteet

URL: metadata/train-running-message-rules

Kuvaus

Herätepiste kuvaa miten kulkutietoviesti muunnetaan aikataulurivin toteumaksi taustajärjestelmässä.

Esimerkiksi kun saadaan kulkutietoviesti, joka vastaa herätepisteessä määriteltyä liikennepaikkaa, raideosuutta, varautumisen tyyppiä ja seuraavaa liikennepaikkaa, haetaan kulkutietoviestissä määritellyn junan aikataulurivi, joka vastaa herätepisteessä määritelty liikennepaikkaa ja aikataulurivityyppiä. Aikatauluriville kirjataan toteuma, joka on kulkutietoviestin aikaleima lisättynä offset-arvolla.

Paluuarvo

Palauttaa Herätepisteet-tyyppisen vastauksen.

GraphQL

GraphQL voidaan käyttää vastausten rajoittamiseen, filtteröintiin ja yhdistelyyn. GraphQL:än avulla voidaan esimerkiksi rajata mukaan vain tietyt json-kentät tai filtteröidä vastausta käyttäen mitä tahansa vastauksesta löytyvää json-kenttää.

GraphQL-kyselyitä voi kokeilla ja kirjoitella GraphiQL-työkalulla osoitteessa https://rata.digitraffic.fi/api/v1/graphql/graphiql

Jokaista kyselyä voidaan filtteröidä where-parametrillä, joka on json-query -tyyppinen string.

Esimerkkejä

Vain tiettyjen kenttien (junanumero ja operaattori) poiminta vastaukseen: kokeile

{
  viewer {
    getStationsTrainsUsingGET(station: "HKI") {
      trainNumber
      operatorShortCode
    }
  }
}

Sisällön filtteröinti (vain U-junat): kokeile

{
  viewer {
    getStationsTrainsUsingGET(station: "HKI", where:"[*commuterLineID=U]") {
      trainNumber
      commuterLineID
    }
  }
}

Ensimmäisen alkion poiminta: kokeile

{
  viewer {
    getStationsTrainsUsingGET(station: "HKI", where:"[*][0]") {
      trainNumber
      operatorShortCode
    }
  }
}

Kyselyiden yhdistäminen (junan aikataulu ja kokoonpano samassa kyselyssä): kokeile

{
  viewer {
    getTrainByTrainNumberUsingGET_1(train_number: "1", departure_date: "2017-12-28") {
      departureDate
      trainNumber
      trainType
    }
    getCompositionByTrainNumberAndDepartureDateUsingGET(train_number: "1", departure_date: "2017-12-28") {
      departureDate
      trainNumber
    }
  }
}

GraphQL-kysely omassa sovelluksessa

GraphQL-kysely on POST-tyyppinen pyyntö osoitteeseen https://rata.digitraffic.fi/api/v1/graphql/?.

HTTP-pyyntöön tulee lisätä otsikko Content-Type: application/json

Itse kysely on jsonia POST:n bodyssä. Esimerkiksi:

{"query":"{  viewer  {    getCompositionsByDepartureDateUsingGET(departure_date:\"2017-12-26\", where:\"[*trainType=S]\"){      trainType trainNumber    }  } }"}

Kokonaisuudessaan homma näyttää REST-pluginissa tältä:

GraphQL Postmanissa

Vastaustyypit

Kaikki vastaukset ovat JSON-formaattia. Eri vastaustyypit ovat kuvattu alla.

Jokainen tyypin kenttä on kuvattu ikonilla, jotka tarkoittavat:

Required Ei voi olla tyhjä Optional Voi olla tyhjä Info Komentti, jos tarpeen

Junat

Järjestetty kenttien departureDate ja trainNumber mukaisesti nousevaan järjestykseen.

  • Required trainNumber: 1-99999 Info Junan numero. Esim junan “IC 59” junanumero on 59
  • Required departureDate: date Info Junan ensimmäisen lähdön päivämäärä
  • Required operatorUICCode: 1-9999 Info Junan operoiman operaattorin UIC-koodi
  • Required operatorShortCode: vr, vr-track, destia, … Info Lista operaattoreista löytyy täältä.
  • Required trainType: IC, P, S, …
  • Required trainCategory: lähiliikenne, kaukoliikenne, tavaraliikenne, …
  • Optional commuterLineID: Z, K, N….
  • Required runningCurrently: true/false Info Onko juna tällä hetkellä kulussa
  • Required cancelled: true/false Info Totta, jos junan peruminen on tehty 10 vuorokauden sisällä. Yli 10 vuorokautta sitten peruttuja junia ei palauteta rajapinnassa laisinkaan.
  • Required version: positive integer Info Versionumero, jossa juna on viimeksi muuttunut
  • Required timetableType: REGULAR tai ADHOC. Info Kertoo onko junan aikataulu haettu säännöllisenä (REGULAR) vai kiireellisenä yksittäistä päivää koskevana (ADHOC).
  • Required timetableAcceptanceDate: datetime. Info Ajanhetki jolloin viranomainen on hyväksynyt junan aikataulun.
  • Optional deleted: true,false Info Vain /trains/version -rajapinnassa käytetty attribuutti, joka kertoo onko juna poistettu eli peruttu yli kymmenen päivää ennen lähtöä.
  • Required timeTableRows Info Kuvaa saapumisia ja lähtöjä liikennepaikoilta. Järjestetty reitin mukaiseen järjestykseen.
    • Required trainStopping true,false Info Pysähtyykö juna liikennepaikalla
    • Required stationShortCode: string Info Aseman lyhennekoodi
    • Required stationcUICCode: 1-9999 Info Aseman UIC-koodi
    • Required countryCode: “FI”, “RU”
    • Required type: “ARRIVAL” tai “DEPARTURE” Info Pysähdyksen tyyppi
    • Optional commercialStop: boolean Info Onko pysähdys kaupallinen. Annettu vain pysähdyksille, ei läpiajoille. Mikäli junalla on osaväliperumisia, saattaa viimeinen perumista edeltävä pysähdys jäädä virheellisesti ei-kaupalliseksi.
    • Optional commercialTrack: string Info Suunniteltu raidenumero, jolla juna pysähtyy tai jolta se lähtee. Raidenumeroa ei saada junille, joiden lähtöön on vielä yli 10 päivää. Operatiivisissa häiriötilanteissa raide voi olla muu.
    • Required cancelled: true/false Info Totta, jos lähtö tai saapuminen on peruttu
    • Required scheduledTime: datetime Info Aikataulun mukainen pysähtymis- tai lähtöaika
    • Optional liveEstimateTime: datetime Info Ennuste. Tyhjä jos juna ei ole matkalla
    • Optional estimateSource: datetime Info Ennusteen lähde. Lisätietoa lähteistä täältä.
    • Optional unknownDelay: boolean Info Jos ennustetta ei voida antaa luotettavasti, liikenteenohjaaja voi kytkeä unknownDelay-bitin päälle. Bitti tarkoittaa, että juna on myöhässä, mutta ei osata kertoa kuinka paljon. Lisätietoa: https://www.liikennevirasto.fi/-/juna-myohassa-eika-arviota-lahtoajasta-asemien-nayttotaulut-kertovat-taman-pian-uudella-tavalla
    • Optional actualTime: datetime Info Aika jolloin juna saapui tai lähti asemalta
    • Optional differenceInMinutes: integer Info Vertaa aikataulun mukaista aikaa ennusteeseen tai toteutuneeseen aikaan ja kertoo erotuksen minuutteina
    • Required causes Info Syytiedot. Kuvaavat syitä miksi juna oli myöhässä tai etuajassa pysähdyksellä. Kaikkia syyluokkia ja -tietoja ei julkaista.
      • Required categoryCodeId Info Yleisen syyluokan yksilöivä tunnus. Lista syyluokista löytyy osoitteesta metadata/cause-category-codes
      • Required categoryCode Info Yleisen syyluokan koodi. Huom. ei yksilöivä.
      • Optional detailedCategoryCodeId Info Tarkemman syykoodin yksilöivä tunnus. Lista syykoodeista löytyy osoitteesta täältä
      • Optional detailedCategoryCode Info Tarkempi syykoodin koodi. Huom. ei yksilöivä
      • Optional thirdCategoryCodeId Info Kolmannen tason syykoodin tunnus.
      • Optional thirdCategoryCode Info Kolmannen tason syykoodin koodi. Huom. ei yksilöivä
    • Optional trainReady Info Junan lähtövalmius. Operaattorin tulee tehdä lähtövalmiusilmoitus liikenteenohjaajalle aina kun junan kokoonpanovaihtuu tai se lähtee ensimmäiseltä pysäkiltään.
      • Required source Info Tapa, jolla lähtövalmiusilmoitus on tehty.
      • Required accepted Info Onko lähtövalmiusilmoitus hyväksytty.
      • Required timestamp Info Aika jolloin lähtövalmiusilmoitus on päätetty.

Kokoonpanot

Järjestetty kenttien departureDate ja trainNumber mukaisesti nousevaan järjestykseen.

  • Required trainNumber: 1-99999 Info Junan numero. Esim junan “IC 59” junanumero on 59
  • Required departureDate: date Info Junan ensimmäisen lähdön päivämäärä
  • Required operatorUICCode: 1-9999 Info Junan operoiman operaattorin UIC-koodi
  • Required operatorShortCode: vr, vr-track, destia, … Info Lista operaattoreista löytyy täältä.
  • Required trainCategory: lähiliikenne, kaukoliikenne, tavaraliikenne
  • Required trainType: P, S, IC, IC2, MUS, etc.
  • Required version: positive integer Info Versionumero, jossa juna on viimeksi muuttunut
  • Required journeySections Info Kuvaa junan yhtä matkaosuutta, joka ajetaan samalla kokoonpanolla
    • Required beginTimeTableRow Info Aloitus
      • Required stationShortCode: string Info Aseman lyhennekoodi
      • Required stationcUICCode: 1-9999 Info Aseman UIC-koodi
      • Required countryCode: “FI” or “RU”
      • Required type: “ARRIVAL” tai “DEPARTURE” Info Pysähdyksen tyyppi
      • Required scheduledTime: datetime Info Aikataulun mukainen pysähtymis- tai lähtöaika
    • Required endTimeTableRow Info Lopetus
      • Required stationShortCode: string Info Aseman lyhennekoodi
      • Required stationcUICCode: 1-9999 Info Aseman UIC-koodi
      • Required countryCode: “FI” tai “RU”
      • Required type: “ARRIVAL” tai “DEPARTURE” Info Pysähdyksen tyyppi
      • Required scheduledTime: datetime Info Aikataulun mukainen pysähtymis- tai lähtöaika
    • Required locomotives Info Kokoonpanon veturit
      • Required location: positive integer Info Veturin paikka kokoonpanossa. Pienin numero on junan kärjessä
      • Required locomotiveType: SR1, SR2, … Info Veturin tyyppi
      • Required powerType: Diesel, Sähkö, … Info Veturin vetovoimalaji
    • Optional wagons Info Kokoonpanon vaunut
      • Requiredlocation: integer Info Vaunun paikka kokoonpanossa. Pienin numero on junan kärjessä
      • RequiredsalesNumber: 0-99 Info Vaunun myyntinumero. Lukee esimerkiksi matkustajan junalipussa. 0 jos ei tiedossa.
      • Optionallength: positive integer Info Vaunun pituus senttimetreinä
      • Optionalplayground : true Info Onko vaunussa leikkipaikka
      • Optionalpet: true Info Onko vaunussa lemmikkivaunu
      • Optionalcatering : true Info Onko vaunussa ravintolavaunu
      • Optionalvideo : true Info Onko vaunussa videonäyttömahdollisuus
      • Optionalluggage : true Info Onko vaunussa matkatavarasäilytysmahdollisuus
      • Optionalsmoking : true Info Saako vaunussa tupakoida
      • Optionaldisabled : true Info Onko vaunussa invalidiystävällinen
      • OptionalwagonType Info Suomalainen sarjatunnus vaunulle. Ilmaisee vaunun tyypin sekä vaunun palvelut. Kaikille vaunuille ei välttämättä löydy sarjatunnusta. Lisätietoa http://fi.wikipedia.org/wiki/Sarjatunnus
    • Required totalLength: positive integer Info Junan kokonaispituus metreissä
    • Required maximumSpeed: positive integer Info Junan kokoonpanolle ilmoitettu maksiminopeus kilometreina tunnissa

GPS-sijainnit

  • Required trainNumber: string Info Junan numero. Esim junan “IC 59” junanumero on 59
  • Required departureDate: date Info Junan ensimmäisen lähdön päivämäärä. Voi olla tyhjä tapauksissa, jossa junan aikataulua ei tunneta.
  • Required timestamp: datetime Info Aikaleima jolloin sijainti on luettu
  • Required location: geojson Info Sijainti GeoJSON-muodossa
  • Required speed: number Info Junan nopeus

Kulkutietoviestit

  • Required id: positive integer Info Kulkutietoviestin yksilöivä numero.
  • Required version: positive integer Info Versionumero, jossa kulkutietoviesti on viimeksi muuttunut
  • Required trainNumber: string Info Junan numero. Esim junan “IC 59” junanumero on 59
  • Required departureDate: date Info Junan ensimmäisen lähdön päivämäärä. Voi olla tyhjä tapauksissa, jossa junan aikataulua ei tunneta.
  • Required timestamp: date Info Tapahtuman ajanhetki
  • Required trackSection: string Info Tapahtuman raideosuuden tunniste. Lista raideosuuksista löytyy täältä.
  • Optional nextTrackSection: string Info Seuraava raideosuuden tunniste, jolle juna ajaa.
  • Optional previousTrackSection: string Info Raideosuuden tunniste, jolta juna tuli.
  • Required station: string Info Liikennepaikan tunniste, jonka alueella raideosuus on. Lista liikennepaikoista löytyy täältä.
  • Optional nextStation: string Info Liikennepaikan tunniste, jonka alueella juna aiemmin oli.
  • Optional previousStation: string Info Liikennepaikan tunniste, jonka alueelle juna ajaa seuraavaksi.
  • Required type: string Info Tapahtuman tyyppi. OCCUPY tarkoittaa, että juna varasi raideosuuden. RELEASE tarkoittaa, että juna vapautti raideosuuden.

Liikennepaikat

  • Required passengerTraffic: boolean Info Onko liikennepaikalla kaupallista matkustajaliikennettä
  • Required countryCode: string Info Liikennepaikan maatunnus
  • Required stationName: string Info Liikennepaikan nimi
  • Required stationShortCode: string Info Liikennepaikan lyhenne
  • Required stationUICCode: 1-9999 Info Liikennepaikan maakohtainen UIC-koodi
  • Required latitude: decimal Info Liikennepaikan latitude “WGS 84”-muodossa
  • Required longitude: decimal Info Liikennepaikan longitudi “WGS 84”-muodossa
  • Required type: string Info Liikennepaikan tyyppi. STATION = asema, STOPPING_POINT = seisake, TURNOUT_IN_THE_OPEN_LINE = linjavaihde

Operaattorit

  • Required id: positive integer Info Operaattorin yksilöivä tunnus
  • Required operatorName: string Info Operaattorin nimi
  • Required operatorShortCode: string Info Operaattorin lyhenne
  • Required operatorUICCode: 1-9999 Info Operaattorin UIC-koodi
  • Optional trainNumbers Info Operaattorin käytössäolevat junanumeroavaruudet.
    • Required id: positive integer Info Junanumeroavaruuden yksilöivä tunnus
    • Required bottomLimit: 1-99999 Info Junanumeroiden alaraja
    • Required topLimit: 1-99999 Info Junanumeroiden yläraja
    • Required trainCategory: string Info Junalaji

Syyluokat

  • Required id: positive integer Info Syyluokan yksilöivä tunnus
  • Required categoryCode: string Info Syyluokan tunnus
  • Required categoryName: string Info Syyluokan suomenkielinen nimi
  • Required validFrom: string Info Ajanhetki jolloin syyluokka astuu voimaan. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional validTo: string Info Ajanhetki jolloin syyluokka poistuu voimasta. Voi olla tyhjä, jolloin syyluokka on toistaiseksi voimassa. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional passengerTerm Info Matkustajatiedotustermi. Matkustajaläheinen kuvaus syyluokasta
    • Required fi: string Info Suomenkielinen käännös
    • Required en: string Info Englanninkielinen käännös
    • Required sv: string Info Ruotsinkielinen käännös

Syykoodit

  • Required id: positive integer Info Syykoodin yksilöivä tunnus
  • Required detailedCategoryCode: string Info Syykoodin tunnus
  • Required detailedCategoryName: string Info Syykoodin suomenkielinen nimi
  • Required validFrom: string Info Ajanhetki jolloin syykoodi astuu voimaan. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional validTo: string Info Ajanhetki jolloin syykoodi poistuu voimasta. Voi olla tyhjä, jolloin syykoodi on toistaiseksi voimassa. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional passengerTerm Info Matkustajatiedotustermi. Matkustajaläheinen kuvaus syykoodista
    • Required fi: string Info Suomenkielinen käännös
    • Required en: string Info Englanninkielinen käännös
    • Required sv: string Info Ruotsinkielinen käännös

Kolmannen tason syykoodit

  • Required id: positive integer Info Kolmannen tason syykoodin yksilöivä tunnus
  • Required thirdCategoryCode: string Info Kolmannen tason syykoodin tunnus
  • Required thirdCategoryName: string Info Kolmannen tason syykoodin suomenkielinen nimi
  • Required validFrom: string Info Ajanhetki jolloin kolmannen tason syykoodin astuu voimaan. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional validTo: string Info Ajanhetki jolloin kolmannen tason syykoodin astuu poistuu voimasta. Voi olla tyhjä, jolloin kolmannen tason syykoodin astuu on toistaiseksi voimassa. Ajanhetki viittaa junan lähtöpäivämäärään.
  • Optional passengerTerm Info Matkustajatiedotustermi. Matkustajaläheinen kuvaus kolmannen tason syykoodista
    • Required fi: string Info Suomenkielinen käännös
    • Required en: string Info Englanninkielinen käännös
    • Required sv: string Info Ruotsinkielinen käännös

Junatyypit

  • Required name: string Info Junatyypin nimi
  • Required trainCategory Info Junalaji
    • Required name: string Info Junalajin nimi

Raideosuudet

  • Required station Info Raideosuuden liikennepaikan lyhenne. Lista liikennepaikoista löytyy täältä.
  • Required trackSectionCode Info Raideosuuden tunnus. Yksilöivä tieto.
  • Required ranges Info Raideosuuden sijainnit. Raideosuudella voi olla monta sijaintia, jos se sijaitsee usealla eri ratanumerolla.
    • Required id : positive integer Info Sijainnin yksilöivä numero
    • Required startLocation Info Sijainnin alkukohta
      • Required track Info Ratanumero
      • Required kilometres Info Sijainnin kilometri-komponentti. Sijainti kilometreina rataverkon nollapisteestä.
      • Required metres Info Sijainnin metri-komponentti. Eli ylijäävä osuus kilometreistä.
    • Required endLocation Info Sijainnin loppukohta
      • Required track Info Ratanumero
      • Required kilometres Info Sijainnin kilometri-komponentti. Sijainti kilometreina radan alkuosasta
      • Required metres Info Sijainnin metri-komponentti. Eli ylijäävä osuus kilometreistä.

Herätepisteet

  • Required id Info Herätepisteen yksilöivä numero.
  • Required trainRunningMessageTrackSection Info Kulkutietoviestin raideosuus
  • Required trainRunningMessageStationShortCode Info Kulkutietoviestin liikennepaikka
  • Required trainRunningMessageNextStationShortCode Info Kulkutietoviestin seuraava liikennepaikka
  • Required trainRunningMessageType Info Kulkutietoviestin tyyppi
  • Required timeTableRowStationShortCode Info Aikataulurivin liikennepaikka
  • Required timeTableRowType Info Aikataulurivin tyyppi
  • Required offset Info Kuinka paljon aikaa sekunteina kulkutietoviestin aikaleimaan lisätään, jotta saadaan aikataulurivin toteuma

Versionumeroiden käyttö

Useissa rajapinnan pyynnöissä parametrina on mukana version, joka rajaa vastauksesta pois junat, jotka eivät ole päivittyneet sitten version määrittelemän versionumeron.

Esimerkiksi kysely /live-trains/station/HKI?arrived_trains=5 saattaisi palauttaa seuraavan vastauksen:

[
   {
      "trainNumber":44,
      "departureDate":"2017-01-01",
      "operatorUICCode":10,
      "operatorShortCode":"vr",
      "trainType":"S",
      "trainCategory":"Long-distance",
      "runningCurrently":true,
      "cancelled":false,
      "version":3657782905,
      "timeTableRows":...

Jos kyselyyn lisättäisiin versionumero /live-trains/station/HKI?arrived_trains=5&version=3657782905, ei junaa 44 palautettaisi vastauksessa ennenkuin se on muuttunut.

Vastaanottajan on siis parsittava vastauksesta suurin versionumero ja käytettävä sitä seuraavassa kyselyssä parametrina.

Avoimen datan käyttölupa

Rajapinnasta saatavien tietojen käyttölupa on Creative Commons Nimeä 4.0.

Käyttöehdot -sivulla on lisätietoja käyttöluvasta ja ohjeita lähteen nimeämiseen.

Liikenneviraston avoimen datan sivustolla on lisätietoja käyttöluvasta ja ohjeita lähteen nimeämiseen.

bug_reportLöysitkö virheen? Auta meitä parantamaan tätä sivua.