Tampere electric bus pilot
Measurements collected from few electric buses piloted in Tampere. Includes measurements such as speed, location, power and state of charge. See the CityIoT project for general information about how the measurements are stored and can be used.
Data was collected from 4 electric buses and one hybrid bus operating on the same bus line. The line was line 2 operating between Pyynikintori and Rauhamiemi which took about 20 minutes. Overall 18 different measurements are available. Measurements collected include speed, location as latitude and longitude, battery charge state percent, power, energy consumed, brace air pressure and door status. However not all measurements are available for all buses most notably only speed and location are available from the hybrid bus. The update interval for the measurements varies. Some measurements such as charge state and door status are updated about every 5 seconds while some others such as location and speed are updated about every second. Measurements are available from the beginning of 2019 until the 10th of June 2021.
Data Model
The data model is based on the official FIWARE Vehicle data model with some custom attributes added. First attributes used fromt he official model with original descriptions are listed here with some additional notes. Then attributes added to the model are described.
Vehicle attributes
-
id
: Entity's unique identifier.- Notes: The form used here is Vehicle:name.
-
type
: Entity type. It must be equal toVehicle
. -
source
: A sequence of characters giving the source of the entity data.- Attribute type: Text or URL
- Notes: IoT-Ticket REST API URI for the site representing the bus.
- Optional
-
name
: Name given to this vehicle.- Normative References: https://schema.org/name
- Notes: same as fleetVehicleId
- Optional
-
vehicleType
: Type of vehicle from the point of view of its structural characteristics. This is different than the vehicle category (see below).- Attribute type: Text
- Allowed Values: The following values defined by VehicleTypeEnum and
VehicleTypeEnum2,
DATEX 2 version 2.3:
- (
agriculturalVehicle
,bicycle
,bus
,minibus
,car
,caravan
,tram
,tanker
,carWithCaravan
,carWithTrailer
,lorry
,moped
,tanker
,motorcycle
,motorcycleWithSideCar
,motorscooter
,trailer
,van
,caravan
,constructionOrMaintenanceVehicle
) - (
trolley
,binTrolley
,sweepingMachine
,cleaningTrolley
)
- (
- Notes: Here value is always bus
- Mandatory
-
category
: Vehicle category(ies) from an external point of view. This is different than the vehicle type (car, lorry, etc.) represented by thevehicleType
property.- Attribute type: List of Text
- Allowed values:
- (
public
,private
,municipalServices
,specialUsage
). - (
tracked
,nonTracked
). Tracked vehicles are those vehicles which position is permanently tracked by a remote system. - Or any other needed by an application They incorporate a GPS receiver together with a network connection to periodically update a reported position (location, speed, heading ...).
- (
- Notes: Value is always list with public and tracked
- Mandatory
-
location
: Vehicle's last known location represented by a GeoJSON Point. Such point may contain the vehicle's altitude as the third component of thecoordinates
array.- Attribute type:
geo:json
. - Normative References: https://tools.ietf.org/html/rfc7946
- Attribute metadata:
timestamp
: Timestamp which captures when the vehicle was at that location. This value can also appear as a FIWARE TimeInstant- Type: DateTime or
ISO8601
(legacy). - Mandatory
- Mandatory only if
category
containstracked
. - Notes: Altitude is not included here.
- Attribute type:
-
speed
: Denotes the magnitude of the horizontal component of the vehicle's current velocity and is specified in Kilometers per Hour. If provided, the value of the speed attribute must be a non-negative real number.null
MAY be used ifspeed
is transiently unknown for some reason.- Attribute type: Number
- Default unit: Kilometers per hour
- Attribute metadata:
timestamp
: Timestamp which captures when the vehicle was moving at that speed. This value can also appear as a FIWARE TimeInstant- Type: DateTime or
ISO8601
(legacy). - Mandatory
- Mandatory only if
category
containstracked
.
-
fleetVehicleId
: The identifier of the vehicle in the context of the fleet of vehicles to which it belongs.- Attribute Type: Text
- Notes: These are of the form TKLxxx where xxx is a number e.g. TKL16
- Mandatory if neither
vehiclePlateIdentifier
norvehicleIdentificationNumber
is defined.
-
mileageFromOdometer
: The total distance travelled by the particular vehicle since its initial production, as read from its odometer.- Normative References: https://schema.org/mileageFromOdometer
- Attribute metadata:
timestamp
: Timestamp associated to this measurement. This value can also appear as a FIWARE TimeInstant- Type: DateTime or
ISO8601
(legacy). - Mandatory
- Type: DateTime or
- Optional
- Notes: unit is kilometers
-
serviceProvided
: Service(s) the vehicle is capable of providing or it is assigned to.- Attribute type: List of Text
- Allowed values: (
garbageCollection
,parksAndGardens
,construction
,streetLighting
,roadSignalling
,cargoTransport
,urbanTransit
,maintenance
,streetCleaning
,wasteContainerCleaning
,auxiliaryServices
goodsSelling
,fairground
,specialTransport
) or any other value needed by an specific application. - Optional
- Notes: value is list containing urbanTransit
-
dateModified
: Last update timestamp of this entity.- Attribute type: DateTime
- Read-Only. Automatically generated.
-
dateCreated
: Creation timestamp of this entity.- Attribute type: DateTime
- Read-Only. Automatically generated.
The following vehicle attributes are not used:
- dataProvider
- description
- previousLocation
- heading
- cargoWeight
- vehicleIdentificationNumber
- vehiclePlateIdentifier
- dateVehicleFirstRegistered
- dateFirstUsed
- purchaseDate
- vehicleConfiguration
- color
- owner
- feature
- vehicleSpecialUsage
- refVehicleModel
- areaServed
- serviceStatus
Custom attributes
-
airTemperature
: Air temperature outside the bus. -
power
: Power used from the bus battery. If this is negative the bus is charging either from the grid or from braking. -
chargeState
: State of bus battery charge as percents from the maximum charge. -
powerMoving
: Same as power except measured only when the bus is moving. -
powerStopped
: Same as power except measured only when the bus is stopped. -
gear
: Selected drive mode. -
doorStatus
: State of the bus doors. -
energyConsumed
: Energy consumed since the bus was last started. Possibily sinceuptime
´hours. -
parkingBrakeEngaged
: Is the parking brake in use. -
satellites
: Number of GPS satellites in use by the positioning system. -
serviceBrakeAirPressure1
: Air pressure of a brake. -
serviceBrakeAirPressure2
: Air pressure of a brake. -
uptime
: Uptime of the measurement device (Wapice WRM 247+). Note only full hours are reported i.e. these are allways integers. -
isMoving
: Is the bus moving.
Examples
Normalized Example
Normalized NGSI response
{
"id": "Vehicle:TKL16",
"type": "Vehicle",
"source": {
"value": "https://iot-ticket.tamk.cloud/rest/v1/sites/1911"
},
"category": {
"value": ["public", "tracked"]
},
"vehicleType": {
"value": "bus"
},
"name": {
"value": "TKL16"
},
"fleetVehicleId": {
"value": "TKL16"
},
"location": {
"type": "geo:json",
"value": {
"type": "Point",
"coordinates": [23.769203333333333, 61.49531666666667]
},
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:18.192881Z"
}
}
},
"speed": {
"value": 34.5,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:19.867419Z"
}
}
},
"mileageFromOdometer": {
"value": 99829.875,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:18.527938Z"
}
}
},
"serviceProvided": {
"value": ["urbanTransit"]
},
"airTemperature": {
"value": 10.9062,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:18.578853Z"
}
}
},
"power": {
"value": 75.70000000000027,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:20.218114Z"
}
}
},
"chargeState": {
"value": 87,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:16.938936Z"
}
}
},
"powerMoving": {
"value": 75.70000000000027,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:19.817713Z"
}
}
},
"powerStopped": {
"value": 223.4000000000001,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:16.318142Z"
}
}
},
"gear": {
"value": "drive",
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:15.293451Z"
}
}
},
"doorStatus": {
"value": "closed",
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:19.419983Z"
}
}
},
"energyConsumed": {
"value": 1.9000000000000001,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:16.417363Z"
}
}
},
"parkingBrakeEngaged": {
"value": false,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:18.200178Z"
}
}
},
"serviceBrakeAirPressure1": {
"value": 776,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:16.757913Z"
}
}
},
"serviceBrakeAirPressure2": {
"value": 776,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:16.757913Z"
}
}
},
"uptime": {
"value": 10,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:17.109580Z"
}
}
},
"isMoving": {
"value": true,
"metadata": {
"timestamp": {
"type": "DateTime",
"value": "2019-04-03T14:52:19.867419Z"
}
}
}
}
Accessing the data
The measurements are stored in the Tampere University CityIoT FIWARe platform: The used FIWARE service is public_transport and all bus entities are under the /tampere/electric_bus service path.
Example requests
A few example curl commands for getting the data. Replace your_apikey with a api key that has at least read access to public_transport service.
Get all bus entities with their attributes from Orion:
curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' "https://tlt-cityiot.rd.tuni.fi/orion/v2/entities"
Get the power and speed of bus with id Vehicle:TKL15 from Orion:
curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' "https://tlt-cityiot.rd.tuni.fi/orion/v2/entities/Vehicle:TKL15?attrs=speed,power"
Get all values for power and speed for TKL15 between 14:01 and 14:02 on 28th of October 2019 from quantumleap:
curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' "https://tlt-cityiot.rd.tuni.fi/quantumleap/v2/entities/Vehicle:TKL15?attrs=speed,power&&fromDate=2019-10-28T12:01:00&&toDate=2019-10-28T12:02:00"
Note: times above are UTC time.
Data and Resources
-
electric_bus_spec.mdtext/markdown
Describes details about the used FIWARE data model and orther details about...
-
Electric bus data collector
The code used to transfer the data from the original source, Wapice...
Additional Info
Field | Value |
---|---|
Maintainer | Otto Hylli |
Data owner | Tampere |
Temporal resolution | 1 second |
Measurement start date | 2019-01-01 |
Measurement end date | 2021-06-10 |
Last Updated | February 21, 2024, 18:20 (+0200) |
Created | October 17, 2022, 10:20 (+0300) |