GraphQL-rajapinnat

Oulunliikenteen GraphQL-rajapinnat

Yleiskuvaus julkisista GraphQL-rajapinnoista

Oulunliikenteen julkiset GraphQL-rajapinnat tarjoavat dataa Oulun seudun liikennetilanteesta ja palauttavat JSON-muotoista dataa vastauksena.

GraphQL on hakupohjainen rajapintakieli sekä rajapinnan ajoympäristö, joka pystyy suorittamaan hakuja ja palauttamaan haluttuja tietomalleja. GraphQL on Facebookin aloittama avoimen lähdekoodin projekti.

Rajapintojen sisältöä päivitetään noin kerran minuutissa.

Kaikki aikaleimat ovat UTC ajassa ja ilmoitetaan ISO 8601 standardin mukaisessa formaatissa.

Kaikki koordinaattitiedot ilmoitetaan GeoJSON standardin mukaisessa formaatissa.

Käytössä olevat GraphQL-rajapinnat

Alla on kuvattu kaikki Oulun liikennedatan julkiset GraphQL-rajapinnat.

Avoimet rajapinnat

Osoite:

https://api.oulunliikenne.fi/proxy/graphql

Käyttö:

GraphQL on suunniteltu käytettävän siihen tarkoitetuilla ohjelmistokehityspaketeilla jotka sisältävät toimintoja kuten kutsujen validointia sekä kutsujen niputtamista. Hakuja voi myös tehdä suoraan HTTP POST kutsuilla, milloin itse haku liitetään kutsun body kenttään.

Yleisesti käytetyt GraphQL-ohjelmistokehityspaketit:

Rajapinta tukee myös selaimessa aukeavaa graafista käyttöliittymää, joka on tarkoitettu testikäyttöön hakujen sekä vastauksien tarkasteluun. Käyttöliittymässä pystyy näkemään kaikki tietomallit sekä haut mitä rajapinta mahdollistaa. Alla olevat esimerkkihaut ovat myös suoraan kopioitavissa käyttöliittymään. Avataaksesi käyttöliittymää selaimessasi, klikkaa ylhäällä listattua rajapintaosoitetta.

Kenttäkohtaiset selitteet alla olevista esimerkkikyselyistä löytyvät rajapinnan käyttöliittymästä.

Kamerakuvat

Rajapinnasta on ladattavissa Oulun kaupungin liikennekameroiden sekä Liikenneviraston Oulun alueen kuvat. Oulun kaupungin 12 liikennekameraa näyttävät tuoreita kuvia liikenteestä niin monesta eri suunnasta kuin liikennetolpissa on kameroita.

Yksittäinen kuva päivittyy 5-15 minuutin välein.

Esimerkkikysely:

query GetAllCameras { 
  cameras {
    cameraId
    name
    lat
    lon
    presets {
      presetId
      presentationName
      imageUrl
      measuredTime
    }
  }
}

LAM-pisteiden mittaustiedot

Oulun seudun liikenteen automaattiset mittauspisteet (LAM-pisteet). LAM-pisteet ovat tienpintaan sijoitettuja mittauspisteitä, jotka keräävät seurantatietoja liikenteestä. Oulun alueella pisteitä on 29 kappaletta, ja niistä saadaan tiedot liikenteen keskinopeuksista sekä liikennemääristä. Liikenteen automaattisten mittausasemien tiedot kerää Traffic Management Finland. 

Esimerkkikysely:

query GetAllTmsStations { 
  tmsStations {
    tmsStationId
    name
    lat
    lon
    collectionStatus
    measuredTime
    sensorValues {
      roadStationId
      name
      sensorValue
      sensorUnit
    }
  }
}

Pysäköintitalojen tilatiedot

Oulun alueen pysäköintitalot ja ajantasaiset tilatiedot. Oulun kaupungin 16 pysäköintitalosta on saatavilla tiedot pysäköintipaikkojen määristä sekä vapaina olevista paikoista. Tämän lisäksi osasta pysäköintitaloista löytyy tiedot pysäköintihinnoista.

Tilatietoja päivitetään 5-20 minuutin välein pysäköintitalosta riippuen.

Esimerkkikysely:

query GetAllCarParks {
  carParks {
    carParkId
    name
    lat
    lon
    maxCapacity
    spacesAvailable
  }
}

Tiesääasemat

Oulun seudun tiesääasemat. Pääliikenneväylillä olevien tiesääasemien tiedoista on saatavilla erilaisia kelitietoja, kuten esimerkiksi ilman ja tien lämpötilat sekä sadetilanne. Tiesääasemien tiedot kerää Traffic Management Finland.

Anturitietojen (sensorValues) tietueet:

  • roadStationId = tiesääaseman id
  • name = mitattavan suureen nimi
  • sensorValue = mittausarvo
  • sensorUnit = mittayksikkö

Kuvaus mitattavista anturitiedoista Traffic Management Finlandin Digitraffic-rajapinnan dokumentaatiossa: https://tie.digitraffic.fi/api/v3/metadata/weather-sensors

Esimerkkikysely:

query GetAllWeatherStations { 
  weatherStations {
    weatherStationId
    name
    lat
    lon
    collectionStatus
    measuredTime
    sensorValues {
      roadStationId
      name
      sensorValue
      sensorUnit
    }
  }
}

Tietyöt

Oulun seudun tietyöt.

Esimerkkikysely:

query GetAllRoadworks { 
  roadworks {
    id
    roadworkId
    severity
    status
    startTime
    endTime
    description {
      fi
    }
    geojson
  }
}

Kunnossapitotiedot

Oulunliikenne.fi-palvelu tarjoaa reaaliaikaiset kunnossapitotiedot autoväylille seuraaville työtehtäville:

  • Auraus
  • Liukkauden torjunta
  • Tasaus
  • Harjaus
  • Muu

Palvelun rajapinnasta voi hakea kaikki suoritetut työtehtävät halutulle ajanjaksolle joka voi olla maksimissaan 7 vuorokauden pituinen. Suoritetut työtehtävät haetaan väylätyypin perusteella:

  • MOTORISED (autoväylät)
  • NON_MOTORISED (kevyenliikenteen väylät)

Toteutuneet kunnossapitotyöt:

query GetMaintenanceVehicleRouteEvents {
     maintenanceVehicleRouteEvents(routeType:MOTORISED) {
       id
       routeEventId
       routeType
       measuredTime
       contractId
       jobIds
       geometryId
       geojson
     }
 }

Rajapinta tarjoaa myös mahdollisuuden hakea kunnossapitoajoneuvojen sijaintitietoja halutulle ajanjaksolle joka voi myös olla maksimissaan 7 vuorokauden pituinen. Sijaintitiedot haetaan työsopimus ID-arvon perusteella:

  • 1250 (ELYn verkko)
  • 1255 (Oulun pääpyörätieverkko)

Kunnossapitoajoneuvojen sijaintitiedot:

query GetMaintenanceVehicleObservations {
   maintenanceVehicleObservations(contractId:1250) {
     vehicleNumber
     vehicleType
     timestamp
     contractId
     direction
     jobIds
     lat
     lon
   }
 }

Häiriötiedotteet

Oulun kaupungin häiriötiedotteet:

query GetAllTrafficAnnouncements { 
   trafficAnnouncements {
     id
     announcementId
     version
     publishedVersion
     title {
       fi
       sv
       en
     }
     description {
       fi
       sv
       en
     }
     severity
     status
     startTime
     endTime
     geojson
     modesOfTransport
     class {
       class
       subclass
     }
     trafficDirectionFreeText {
       fi
       sv
       en
     }
     temporarySpeedLimit
     duration
     additionalInfo
     detour
     oversizeLoad
     vehicleSizeLimit
     url
     imageUrls
   }
}

Jos kentässä ”modesOfTransport” löytyy arvo ”CAR” niin tiedote liittyy autoliikenteeseen.

Liikenteen sujuvuustiedot

Oulunliikenne.fi-palvelu tarjoaa reaaliaikaista liikenteen sujuvuusanalyysiä, ts. Liikenneruuhkia koskevia tietoja Oulun alueen tärkeimmälle tie- ja katuverkolle. Tiedot ovat saatavana oulunliikenne.fi -sivulta värillisinä geometrisina viivoina, jotka on piirretty tieverkkoa seuraavan kartan päälle. Eri värit esittävät liikenteen sujuvuuden tilaa juuri nyt.

Analyysi perustuu sekä liikenteenhallinnan ylläpitämän valtakunnallisen liikenteenvalvontajärjestelmän (TMS) että Oulun kaupungin ja Pohjois-Pohjanmaan ELY-keskuksen ylläpitämään alueelliseen liikenteen suorituskyvyn seurantajärjestelmään (TPM).

Liikenteen sujuvuusanalyysi tehdään keskiarvojen perusteella, jotka on kerätty 5 minuutin välein molemmista tietolähteistä. Analyysin tulos on GeoJSON-tietorakenne, joka sisältää kaikki tieverkkogeometriat.

TMS-pohjainen liikenteen sujuvuuslaskelma perustuu keskimääräiseen nopeuteen, jota TMS-asema mittaa tien osaan, ja nopeusrajoitukseen. Liikenteen sujuvuudessa on 4 tilaa:

  • Vihreä – normaalit olosuhteet – keskimääräinen nopeus on vähemmän tai yhtä suuri kuin 9 km / h nopeusrajoituksen alapuolella
  • Keltainen – kevyt liikenneruuhka – keskimääräinen nopeus on vähintään 10 km / h ja enintään tai yhtä suuri kuin 24 km / h nopeuden rajan alapuolella
  • Punainen – raskas liikenneruuhka – keskimääräinen nopeus on vähintään 25 km / h nopeusrajoituksen alapuolella
  • Harmaa – tuntematon olosuhde – keskimääräistä nopeutta ei voitu määrittää

TPM-pohjainen liikenteen sujuvuuden laskenta perustuu kahteen suorituskykyindikaattorin (KPI) arvoon, ohjausviiveen ja maksimimäärän odotusjaksoon, mitattu liikennevalolaitteilla. Liikenteen sujuvuudessa on 4 tilaa, jotka määrittelee heikompi kahdesta tässä määritellystä KPI-arvosta:

  • Vihreä – normaalit olosuhteet – ohjausviive on alle 60 sekuntia tai enimmäis odotusjaksot ovat nollat
  • Keltainen – kevyt liikenneruuhka – ohjausviive on vähintään 60 sekuntia ja pienempi tai yhtä suuri kuin 120 sekuntia tai enimmäisodotussyklit ovat 1
  • Punainen – raskas liikenneruuhka – ohjausviive on yli 120 sekuntia tai enimmäisodotussykli suurempi kuin 1
  • Harmaa – tuntematon olosuhde – KPI: tä ei voitu määrittää

Esimerkkikysely:

query GetTrafficFluencyFeatureCollection {
   trafficFluencyFeatureCollection {
     type
     features {
       type
       geometry
       properties {
         id
         type
         measuredTime
         trafficFlow
         name
         trafficDirection
         trafficDirectionName
         speedLimit
         averageSpeed
         detName
         giveWayDelay
         maxWaitCycles
       }
     }
   }
 }

Yksittäinen sujuvuustietue.

Esimerkkikysely:

query GetTrafficFluencyFeature {
   trafficFluencyFeature(id:"24244") {
     type
     geometry
     properties {
       id
       type
       measuredTime
       trafficFlow
       name
       trafficDirection
       trafficDirectionName
       speedLimit
       averageSpeed
       detName
       giveWayDelay
       maxWaitCycles
     }
   }
 }