Changes
On March 25, 2024 at 5:21:41 PM +0200, hylli:
-
Added tag tampere to Tampere bus passenger analytics pilot
f | 1 | { | f | 1 | { |
2 | "author": "", | 2 | "author": "", | ||
3 | "author_email": "", | 3 | "author_email": "", | ||
4 | "creator_user_id": "c028eea2-1878-47b8-843b-aa298066c249", | 4 | "creator_user_id": "c028eea2-1878-47b8-843b-aa298066c249", | ||
5 | "data_owner": "Tampere", | 5 | "data_owner": "Tampere", | ||
n | 6 | "groups": [], | n | 6 | "groups": [ |
7 | { | ||||
8 | "description": "This group collects together data related to the | ||||
9 | city of Tampere.", | ||||
10 | "display_name": "Tampere", | ||||
11 | "id": "07adac22-b527-4417-82b9-41c7c24e6f4c", | ||||
12 | "image_display_url": "", | ||||
13 | "name": "tampere", | ||||
14 | "title": "Tampere" | ||||
15 | } | ||||
16 | ], | ||||
7 | "id": "c24a59a7-62eb-4807-ae97-e00bf5b698db", | 17 | "id": "c24a59a7-62eb-4807-ae97-e00bf5b698db", | ||
8 | "isopen": false, | 18 | "isopen": false, | ||
9 | "license_id": "internal", | 19 | "license_id": "internal", | ||
10 | "license_title": "For internal research and education use", | 20 | "license_title": "For internal research and education use", | ||
11 | "maintainer": "Otto Hylli", | 21 | "maintainer": "Otto Hylli", | ||
12 | "maintainer_email": "otto.hylli@tuni.fi", | 22 | "maintainer_email": "otto.hylli@tuni.fi", | ||
13 | "metadata_created": "2024-03-25T13:06:08.677152", | 23 | "metadata_created": "2024-03-25T13:06:08.677152", | ||
n | 14 | "metadata_modified": "2024-03-25T13:09:47.640849", | n | 24 | "metadata_modified": "2024-03-25T15:21:41.570191", |
15 | "name": "tampere-bus-passenger-analytics-pilot", | 25 | "name": "tampere-bus-passenger-analytics-pilot", | ||
16 | "notes": "Bus passenger analytics data from a small city of Tampere | 26 | "notes": "Bus passenger analytics data from a small city of Tampere | ||
17 | pilot project. The\r\ntechnology including the original backend system | 27 | pilot project. The\r\ntechnology including the original backend system | ||
18 | was by the Spanish company\r\n[Counterest](https://counterest.net/). | 28 | was by the Spanish company\r\n[Counterest](https://counterest.net/). | ||
19 | In the pilot 3D character recognition\r\nsensors were installed to one | 29 | In the pilot 3D character recognition\r\nsensors were installed to one | ||
20 | bus operating on a single line between\r\nPyynikintori and Rauhaniemi. | 30 | bus operating on a single line between\r\nPyynikintori and Rauhaniemi. | ||
21 | The sensors were\r\nused to count people entering and leaving the bus. | 31 | The sensors were\r\nused to count people entering and leaving the bus. | ||
22 | This sensor data together\r\nwith location and bus route information | 32 | This sensor data together\r\nwith location and bus route information | ||
23 | was then used to create various\r\nanalytics in the system backend. | 33 | was then used to create various\r\nanalytics in the system backend. | ||
24 | These include line level statistics, stop level\r\nstatistics, | 34 | These include line level statistics, stop level\r\nstatistics, | ||
25 | statistics for travels between specific stops on a line | 35 | statistics for travels between specific stops on a line | ||
26 | and\r\nstatistics showing passenger amounts for each hour during | 36 | and\r\nstatistics showing passenger amounts for each hour during | ||
27 | different weekdays.\r\nThe data could be inspected with a web | 37 | different weekdays.\r\nThe data could be inspected with a web | ||
28 | dashboard. The data was collected between\r\nFebruary and April 2019. | 38 | dashboard. The data was collected between\r\nFebruary and April 2019. | ||
29 | During this period there were some occasional | 39 | During this period there were some occasional | ||
30 | technical\r\ndifficulties so not all possible data was collected. A | 40 | technical\r\ndifficulties so not all possible data was collected. A | ||
31 | subset of this data was\r\ntransfered into the Tampere University | 41 | subset of this data was\r\ntransfered into the Tampere University | ||
32 | FIWARE platform and is the only part of\r\nthe data that is currently | 42 | FIWARE platform and is the only part of\r\nthe data that is currently | ||
33 | available. See | 43 | available. See | ||
34 | \r\n[CityIoT](https://ckan.energydata.rd.tuni.fi/organization/cityiot) | 44 | \r\n[CityIoT](https://ckan.energydata.rd.tuni.fi/organization/cityiot) | ||
35 | project for\r\ngeneral information about how the measurements are | 45 | project for\r\ngeneral information about how the measurements are | ||
36 | stored and can be used.\r\n\r\n## Data model\r\n\r\nThe data model is | 46 | stored and can be used.\r\n\r\n## Data model\r\n\r\nThe data model is | ||
37 | based on the official FIWARe | 47 | based on the official FIWARe | ||
38 | dels.readthedocs.io/en/latest/UrbanMobility/doc/introduction.html)\r\n | 48 | dels.readthedocs.io/en/latest/UrbanMobility/doc/introduction.html)\r\n | ||
39 | data model which in turn is based on the [General Transit Feed | 49 | data model which in turn is based on the [General Transit Feed | ||
40 | Specification](https://gtfs.org/).\r\nThe General Transit Feed | 50 | Specification](https://gtfs.org/).\r\nThe General Transit Feed | ||
41 | Specification (GTFS), also known as GTFS static or\r\nstatic transit, | 51 | Specification (GTFS), also known as GTFS static or\r\nstatic transit, | ||
42 | defines a common format for public transportation schedules | 52 | defines a common format for public transportation schedules | ||
43 | and\r\nassociated geographic information. GTFS \"feeds\" let public | 53 | and\r\nassociated geographic information. GTFS \"feeds\" let public | ||
44 | transit agencies\r\npublish their transit data and developers write | 54 | transit agencies\r\npublish their transit data and developers write | ||
45 | applications that consume that\r\ndata in an interoperable | 55 | applications that consume that\r\ndata in an interoperable | ||
46 | way.\r\n\r\nHowever this data model does not contain schedule | 56 | way.\r\n\r\nHowever this data model does not contain schedule | ||
47 | information and thus is not fully compatible with the Urban Transport | 57 | information and thus is not fully compatible with the Urban Transport | ||
48 | data model. Attributes for passenger amounts have been added and some | 58 | data model. Attributes for passenger amounts have been added and some | ||
49 | mandatory attributes such as arrival and departure times are not used | 59 | mandatory attributes such as arrival and departure times are not used | ||
50 | since that information is not available from the original data | 60 | since that information is not available from the original data | ||
51 | source.\r\n\r\nThe model consists of the following entity | 61 | source.\r\n\r\nThe model consists of the following entity | ||
52 | types:\r\n\r\n- GtfsRoute): Represents a bus route or line that | 62 | types:\r\n\r\n- GtfsRoute): Represents a bus route or line that | ||
53 | consists of trips.\r\n- GtfsTrip: Concrete implementations of the | 63 | consists of trips.\r\n- GtfsTrip: Concrete implementations of the | ||
54 | route with for example two trips representing the route to both | 64 | route with for example two trips representing the route to both | ||
55 | directions.\r\n- GtfsShape: GtfsShapes describe the physical path that | 65 | directions.\r\n- GtfsShape: GtfsShapes describe the physical path that | ||
56 | a vehicle takes. Shapes are associated with individual trips.\r\n- | 66 | a vehicle takes. Shapes are associated with individual trips.\r\n- | ||
57 | GtfsStop: Represents a bus stop i.e a location where buses pick up and | 67 | GtfsStop: Represents a bus stop i.e a location where buses pick up and | ||
58 | drop off passengers. \r\n- GtfsStopTime: Represents the bus stopping | 68 | drop off passengers. \r\n- GtfsStopTime: Represents the bus stopping | ||
59 | on a stop as a part of a trip. In other words these tell what stops a | 69 | on a stop as a part of a trip. In other words these tell what stops a | ||
60 | trip consists of.\r\n\r\nSee the attached documentation for detailed | 70 | trip consists of.\r\n\r\nSee the attached documentation for detailed | ||
61 | descriptions of the data model\r\nincluding used attributes.\r\n\r\n## | 71 | descriptions of the data model\r\nincluding used attributes.\r\n\r\n## | ||
62 | Notes about the data\r\n\r\nThe data is quite limited. It was | 72 | Notes about the data\r\n\r\nThe data is quite limited. It was | ||
63 | collected only from one line (GtfsRoute) and\r\nonly from one vehicle | 73 | collected only from one line (GtfsRoute) and\r\nonly from one vehicle | ||
64 | on that route. There were also some technical difficulties\r\nduring | 74 | on that route. There were also some technical difficulties\r\nduring | ||
65 | the data collection period so there is some missing data.\r\n\r\n## | 75 | the data collection period so there is some missing data.\r\n\r\n## | ||
66 | Accessing the data\r\n\r\nThe data is stored in the Tampere University | 76 | Accessing the data\r\n\r\nThe data is stored in the Tampere University | ||
67 | CityIoT platform. The used FIWARR\r\nservice is public_transport and | 77 | CityIoT platform. The used FIWARR\r\nservice is public_transport and | ||
68 | all entities there are under the service | 78 | all entities there are under the service | ||
69 | path\r\n/Tampere/passenger_analytics.\r\n\r\n### Example | 79 | path\r\n/Tampere/passenger_analytics.\r\n\r\n### Example | ||
70 | requests\r\n\r\nA few example curl commands for getting the data. | 80 | requests\r\n\r\nA few example curl commands for getting the data. | ||
71 | Replace your_apikey with a api key that has at least read access to | 81 | Replace your_apikey with a api key that has at least read access to | ||
72 | public_transport service.\r\n\r\nGet all GtfsTrip entities i.e. | 82 | public_transport service.\r\n\r\nGet all GtfsTrip entities i.e. | ||
73 | information about the route for both directions from Orion:\r\n\r\n | 83 | information about the route for both directions from Orion:\r\n\r\n | ||
74 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | 84 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | ||
75 | /Tampere/passenger_analytics' -H 'apikey: your_apikey' | 85 | /Tampere/passenger_analytics' -H 'apikey: your_apikey' | ||
76 | ://tlt-cityiot.rd.tuni.fi/orion/v2/entities?type=GtfsTrip\"\r\n\r\nGet | 86 | ://tlt-cityiot.rd.tuni.fi/orion/v2/entities?type=GtfsTrip\"\r\n\r\nGet | ||
77 | daily passenger statistics for the trip from Pyynikintori to | 87 | daily passenger statistics for the trip from Pyynikintori to | ||
78 | Rauhaniemi from Quantumleap for the 10 most recent days:\r\n\r\n | 88 | Rauhaniemi from Quantumleap for the 10 most recent days:\r\n\r\n | ||
79 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | 89 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | ||
80 | /Tampere/passenger_analytics' -H 'apikey: your_apikey' | 90 | /Tampere/passenger_analytics' -H 'apikey: your_apikey' | ||
81 | 2/entities/urn:ngsi-ld:GtfsTrip:1:2?lastN=10&attrs=dailyPassengers\"", | 91 | 2/entities/urn:ngsi-ld:GtfsTrip:1:2?lastN=10&attrs=dailyPassengers\"", | ||
82 | "num_resources": 1, | 92 | "num_resources": 1, | ||
n | 83 | "num_tags": 1, | n | 93 | "num_tags": 2, |
84 | "organization": { | 94 | "organization": { | ||
85 | "approval_status": "approved", | 95 | "approval_status": "approved", | ||
86 | "created": "2022-10-17T09:15:18.177419", | 96 | "created": "2022-10-17T09:15:18.177419", | ||
87 | "description": "The [CityIoT project](https://www.cityiot.fi/) | 97 | "description": "The [CityIoT project](https://www.cityiot.fi/) | ||
88 | collected smart city related data\r\nin Tampere about street lights, | 98 | collected smart city related data\r\nin Tampere about street lights, | ||
89 | electric buses and bus passenger analytics. This\r\ndata is stored in | 99 | electric buses and bus passenger analytics. This\r\ndata is stored in | ||
90 | a [FIWARE](https://www.fiware.org/) based platform. FIWARE is\r\na | 100 | a [FIWARE](https://www.fiware.org/) based platform. FIWARE is\r\na | ||
91 | collection of standards and components for creating smart solutions. | 101 | collection of standards and components for creating smart solutions. | ||
92 | The\r\nplatform is available at the URL | 102 | The\r\nplatform is available at the URL | ||
93 | https://tlt-cityiot.rd.tuni.fi/. The data is\r\navailable via the HTTP | 103 | https://tlt-cityiot.rd.tuni.fi/. The data is\r\navailable via the HTTP | ||
94 | based APIs offered by the platform. To access any of the\r\ndata sets | 104 | based APIs offered by the platform. To access any of the\r\ndata sets | ||
95 | an API key is required. If you are interested in using any of | 105 | an API key is required. If you are interested in using any of | ||
96 | the\r\nCityIoT data sets, contact the person marked as the maintainer | 106 | the\r\nCityIoT data sets, contact the person marked as the maintainer | ||
97 | of the data set. \r\n\r\nIn order to get the data and make use of it | 107 | of the data set. \r\n\r\nIn order to get the data and make use of it | ||
98 | some understanding is required about\r\nthe following 3 aspects of the | 108 | some understanding is required about\r\nthe following 3 aspects of the | ||
99 | CityIoT platform:\r\n\r\n1. The [NGSI v2 | 109 | CityIoT platform:\r\n\r\n1. The [NGSI v2 | ||
100 | pecification](https://fiware.github.io/specifications/ngsiv2/stable/): | 110 | pecification](https://fiware.github.io/specifications/ngsiv2/stable/): | ||
101 | defines the API used by the main FIWARE component\r\nthe Orion context | 111 | defines the API used by the main FIWARE component\r\nthe Orion context | ||
102 | broker and also the entity based data model used by all | 112 | broker and also the entity based data model used by all | ||
103 | FIWARE\r\ncomponents.\r\n2. The [Orion context | 113 | FIWARE\r\ncomponents.\r\n2. The [Orion context | ||
104 | broker](https://fiware-orion.readthedocs.io/en/master/): Has the most | 114 | broker](https://fiware-orion.readthedocs.io/en/master/): Has the most | ||
105 | recent version of the data i.e. NGSI v2\r\nentities. This data can be | 115 | recent version of the data i.e. NGSI v2\r\nentities. This data can be | ||
106 | queried or subscribed to so that you get notified\r\nwhen the data | 116 | queried or subscribed to so that you get notified\r\nwhen the data | ||
107 | changes.\r\n3. | 117 | changes.\r\n3. | ||
108 | [QuantumLeap](https://quantumleap.readthedocs.io/en/latest/): Stores | 118 | [QuantumLeap](https://quantumleap.readthedocs.io/en/latest/): Stores | ||
109 | NGSI v2 entity data into a timeseries data base. It allows\r\nthen the | 119 | NGSI v2 entity data into a timeseries data base. It allows\r\nthen the | ||
110 | querying of this historic data via an HTTP API.\r\n\r\nSo in short, | 120 | querying of this historic data via an HTTP API.\r\n\r\nSo in short, | ||
111 | understand the NGSI v2 data model so you know what kind of | 121 | understand the NGSI v2 data model so you know what kind of | ||
112 | data\r\nstructures you are dealing with. Use Orion if you want a | 122 | data\r\nstructures you are dealing with. Use Orion if you want a | ||
113 | programmatic way to\r\nlist all available data entities, query their | 123 | programmatic way to\r\nlist all available data entities, query their | ||
114 | current state or subscribe to\r\nchanges in their state. Use | 124 | current state or subscribe to\r\nchanges in their state. Use | ||
115 | QuantumLeap if you want to explore how the entities\r\nhave changed | 125 | QuantumLeap if you want to explore how the entities\r\nhave changed | ||
116 | over time.\r\n\r\n## The data model\r\n\r\nIn FIWARe NGSI v2 data is | 126 | over time.\r\n\r\n## The data model\r\n\r\nIn FIWARe NGSI v2 data is | ||
117 | modelled as context entities. Entities can represent\r\nlogical of | 127 | modelled as context entities. Entities can represent\r\nlogical of | ||
118 | physical things such as a sensor, a person or a weather | 128 | physical things such as a sensor, a person or a weather | ||
119 | observation.\r\nEntities have a id and a type indicating what the | 129 | observation.\r\nEntities have a id and a type indicating what the | ||
120 | entity represents. Entities\r\nthen can have various attributes | 130 | entity represents. Entities\r\nthen can have various attributes | ||
121 | providing information about them. The entity\r\ntype determines what | 131 | providing information about them. The entity\r\ntype determines what | ||
122 | attributes an entity should have. This way domain specific\r\ndata | 132 | attributes an entity should have. This way domain specific\r\ndata | ||
123 | models can be created by defining the needed entity types and | 133 | models can be created by defining the needed entity types and | ||
124 | their\r\nattributes. For example weather observation could have | 134 | their\r\nattributes. For example weather observation could have | ||
125 | attributes for\r\ntemperature, humidity and the location for the | 135 | attributes for\r\ntemperature, humidity and the location for the | ||
126 | observation. An attribute has a\r\nname and a value including data | 136 | observation. An attribute has a\r\nname and a value including data | ||
127 | type for the value. An attribute can also have\r\nmetadata such as | 137 | type for the value. An attribute can also have\r\nmetadata such as | ||
128 | timestamp for when the value was acquired or what is | 138 | timestamp for when the value was acquired or what is | ||
129 | the\r\nmeasurement accuracy for the value. The documentation for each | 139 | the\r\nmeasurement accuracy for the value. The documentation for each | ||
130 | CityIoT data set\r\nexplains what entity types the data consists of | 140 | CityIoT data set\r\nexplains what entity types the data consists of | ||
131 | and what attributes the entities have.\r\n\r\nThe entities are | 141 | and what attributes the entities have.\r\n\r\nThe entities are | ||
132 | represented as JSON. For example an entity representing an\r\nelectric | 142 | represented as JSON. For example an entity representing an\r\nelectric | ||
133 | bus from one of the CityIoT data sets looks like this with only part | 143 | bus from one of the CityIoT data sets looks like this with only part | ||
134 | of\r\nthe attributes included:\r\n\r\n {\r\n \"id\": | 144 | of\r\nthe attributes included:\r\n\r\n {\r\n \"id\": | ||
135 | \"Vehicle:TKL16\",\r\n \"type\": \"Vehicle\",\r\n | 145 | \"Vehicle:TKL16\",\r\n \"type\": \"Vehicle\",\r\n | ||
136 | \"vehicleType\": {\r\n \"value\": \"bus\"\r\n },\r\n | 146 | \"vehicleType\": {\r\n \"value\": \"bus\"\r\n },\r\n | ||
137 | \"name\": {\r\n \"value\": \"TKL16\"\r\n },\r\n | 147 | \"name\": {\r\n \"value\": \"TKL16\"\r\n },\r\n | ||
138 | \"location\": {\r\n \"type\": \"geo:json\",\r\n | 148 | \"location\": {\r\n \"type\": \"geo:json\",\r\n | ||
139 | \"value\": {\r\n \"type\": \"Point\",\r\n | 149 | \"value\": {\r\n \"type\": \"Point\",\r\n | ||
140 | \"coordinates\": [23.769203333333333, 61.49531666666667]\r\n | 150 | \"coordinates\": [23.769203333333333, 61.49531666666667]\r\n | ||
141 | },\r\n \"metadata\": {\r\n \"timestamp\": | 151 | },\r\n \"metadata\": {\r\n \"timestamp\": | ||
142 | {\r\n \"type\": \"DateTime\",\r\n | 152 | {\r\n \"type\": \"DateTime\",\r\n | ||
143 | \"value\": \"2019-04-03T14:52:18.192881Z\"\r\n }\r\n | 153 | \"value\": \"2019-04-03T14:52:18.192881Z\"\r\n }\r\n | ||
144 | }\r\n },\r\n \"speed\": {\r\n \"value\": | 154 | }\r\n },\r\n \"speed\": {\r\n \"value\": | ||
145 | 34.5,\r\n \"metadata\": {\r\n \"timestamp\": | 155 | 34.5,\r\n \"metadata\": {\r\n \"timestamp\": | ||
146 | {\r\n \"type\": \"DateTime\",\r\n | 156 | {\r\n \"type\": \"DateTime\",\r\n | ||
147 | \"value\": \"2019-04-03T14:52:19.867419Z\"\r\n }\r\n | 157 | \"value\": \"2019-04-03T14:52:19.867419Z\"\r\n }\r\n | ||
148 | }\r\n }, \r\n \"power\": {\r\n | 158 | }\r\n }, \r\n \"power\": {\r\n | ||
149 | \"value\": 75.70000000000027,\r\n \"metadata\": {\r\n | 159 | \"value\": 75.70000000000027,\r\n \"metadata\": {\r\n | ||
150 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | 160 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | ||
151 | \"value\": \"2019-04-03T14:52:20.218114Z\"\r\n }\r\n | 161 | \"value\": \"2019-04-03T14:52:20.218114Z\"\r\n }\r\n | ||
152 | }\r\n },\r\n \"chargeState\": {\r\n | 162 | }\r\n },\r\n \"chargeState\": {\r\n | ||
153 | \"value\": 87,\r\n \"metadata\": {\r\n | 163 | \"value\": 87,\r\n \"metadata\": {\r\n | ||
154 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | 164 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | ||
155 | \"value\": \"2019-04-03T14:52:16.938936Z\"\r\n }\r\n | 165 | \"value\": \"2019-04-03T14:52:16.938936Z\"\r\n }\r\n | ||
156 | }\r\n }\r\n }\r\n\r\n\r\n## The Orion context | 166 | }\r\n }\r\n }\r\n\r\n\r\n## The Orion context | ||
157 | broker\r\n\r\nThe Orion context broker stores the latest versions of | 167 | broker\r\n\r\nThe Orion context broker stores the latest versions of | ||
158 | all entities. Its API is\r\nused to query information about the | 168 | all entities. Its API is\r\nused to query information about the | ||
159 | entities or subscribe to changes in their\r\nattributes. The Tampere | 169 | entities or subscribe to changes in their\r\nattributes. The Tampere | ||
160 | CityIoT Orion API is available at the | 170 | CityIoT Orion API is available at the | ||
161 | URL\r\nhttps://tlt-cityiot.rd.tuni.fi/orion/\r\n\r\nTo separate the | 171 | URL\r\nhttps://tlt-cityiot.rd.tuni.fi/orion/\r\n\r\nTo separate the | ||
162 | entities of the different data sets, Orions multi tenancy\r\nfeature | 172 | entities of the different data sets, Orions multi tenancy\r\nfeature | ||
163 | is used. Data is separated into different services and under a | 173 | is used. Data is separated into different services and under a | ||
164 | service\r\nhierarchical service paths can be used for more | 174 | service\r\nhierarchical service paths can be used for more | ||
165 | fine-grained data organization.\r\nIn API calls the service and | 175 | fine-grained data organization.\r\nIn API calls the service and | ||
166 | service path are given in HTTP headers:\r\n`Fiware-Service` for the | 176 | service path are given in HTTP headers:\r\n`Fiware-Service` for the | ||
167 | service and `Fiware-ServicePath` for the service path. For\r\naccess | 177 | service and `Fiware-ServicePath` for the service path. For\r\naccess | ||
168 | control API keys are used. The API key is given in the `apikey` HTTP | 178 | control API keys are used. The API key is given in the `apikey` HTTP | ||
169 | header.\r\nDocumentation for each data set tells what service is used | 179 | header.\r\nDocumentation for each data set tells what service is used | ||
170 | and how service paths\r\nare used. You can get an API key by | 180 | and how service paths\r\nare used. You can get an API key by | ||
171 | requesting access to a data set from the\r\nmaintainer of the data | 181 | requesting access to a data set from the\r\nmaintainer of the data | ||
172 | set. As an example how all this works in practice, the\r\n[Tampere | 182 | set. As an example how all this works in practice, the\r\n[Tampere | ||
173 | electric | 183 | electric | ||
174 | ckan.energydata.rd.tuni.fi/dataset/tampere-electric-bus-pilot)\r\ndata | 184 | ckan.energydata.rd.tuni.fi/dataset/tampere-electric-bus-pilot)\r\ndata | ||
175 | set has entities representing electric buses in service | 185 | set has entities representing electric buses in service | ||
176 | public_transport\r\nunder the service path /Tampere/electric_bus. | 186 | public_transport\r\nunder the service path /Tampere/electric_bus. | ||
177 | Using the command line HTTP client\r\ncurl, this is how to get all the | 187 | Using the command line HTTP client\r\ncurl, this is how to get all the | ||
178 | electric bus entities and their attributes from\r\nOrion:\r\n\r\n | 188 | electric bus entities and their attributes from\r\nOrion:\r\n\r\n | ||
179 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | 189 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | ||
180 | /Tampere/electric_bus' -H 'apikey: your_apikey' | 190 | /Tampere/electric_bus' -H 'apikey: your_apikey' | ||
181 | \"https://tlt-cityiot.rd.tuni.fi/orion/v2/entities\"\r\n\r\n## | 191 | \"https://tlt-cityiot.rd.tuni.fi/orion/v2/entities\"\r\n\r\n## | ||
182 | QuantumLeap\r\n\r\nQuantumLeap stores the change history of the | 192 | QuantumLeap\r\n\r\nQuantumLeap stores the change history of the | ||
183 | entities in a timeseries database.\r\nThis can then be queried via its | 193 | entities in a timeseries database.\r\nThis can then be queried via its | ||
184 | API. The Tampere CityIoT QuantumLeap is\r\navailable at the URL: | 194 | API. The Tampere CityIoT QuantumLeap is\r\navailable at the URL: | ||
185 | https://tlt-cityiot.rd.tuni.fi/quantumleap/\r\n\r\nIt uses the same | 195 | https://tlt-cityiot.rd.tuni.fi/quantumleap/\r\n\r\nIt uses the same | ||
186 | service and service path\r\nsystem to organize entities as Orion. The | 196 | service and service path\r\nsystem to organize entities as Orion. The | ||
187 | same API key based authentication\r\nsystem is also used. See the | 197 | same API key based authentication\r\nsystem is also used. See the | ||
188 | Orion section for more details. For example to Get\r\nall values for | 198 | Orion section for more details. For example to Get\r\nall values for | ||
189 | power and speed for electric bus entity TKL15 between 14:01 and 14:02 | 199 | power and speed for electric bus entity TKL15 between 14:01 and 14:02 | ||
190 | on\r\n28th of October 2019 with curl the following command would be | 200 | on\r\n28th of October 2019 with curl the following command would be | ||
191 | used:\r\n\r\n curl -H 'Fiware-Service: public_transport' -H | 201 | used:\r\n\r\n curl -H 'Fiware-Service: public_transport' -H | ||
192 | 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' | 202 | 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' | ||
193 | ed,power&&fromDate=2019-10-28T12:01:00&&toDate=2019-10-28T12:02:00\"", | 203 | ed,power&&fromDate=2019-10-28T12:01:00&&toDate=2019-10-28T12:02:00\"", | ||
194 | "id": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | 204 | "id": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | ||
195 | "image_url": "", | 205 | "image_url": "", | ||
196 | "is_organization": true, | 206 | "is_organization": true, | ||
197 | "name": "cityiot", | 207 | "name": "cityiot", | ||
198 | "state": "active", | 208 | "state": "active", | ||
199 | "title": "CityIoT", | 209 | "title": "CityIoT", | ||
200 | "type": "organization" | 210 | "type": "organization" | ||
201 | }, | 211 | }, | ||
202 | "owner_org": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | 212 | "owner_org": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | ||
203 | "private": false, | 213 | "private": false, | ||
204 | "relationships_as_object": [], | 214 | "relationships_as_object": [], | ||
205 | "relationships_as_subject": [], | 215 | "relationships_as_subject": [], | ||
206 | "resources": [ | 216 | "resources": [ | ||
207 | { | 217 | { | ||
208 | "cache_last_updated": null, | 218 | "cache_last_updated": null, | ||
209 | "cache_url": null, | 219 | "cache_url": null, | ||
210 | "created": "2024-03-25T13:09:47.207549", | 220 | "created": "2024-03-25T13:09:47.207549", | ||
211 | "datastore_active": false, | 221 | "datastore_active": false, | ||
212 | "description": "Detailed data model documentation. Includes | 222 | "description": "Detailed data model documentation. Includes | ||
213 | documentation for each entity and their attributes.", | 223 | documentation for each entity and their attributes.", | ||
214 | "format": "ZIP", | 224 | "format": "ZIP", | ||
215 | "hash": "", | 225 | "hash": "", | ||
216 | "id": "a4dae937-291a-409e-9e5a-eb329cb2de5b", | 226 | "id": "a4dae937-291a-409e-9e5a-eb329cb2de5b", | ||
217 | "last_modified": "2024-03-25T13:09:47.186023", | 227 | "last_modified": "2024-03-25T13:09:47.186023", | ||
218 | "metadata_modified": "2024-03-25T13:09:47.645711", | 228 | "metadata_modified": "2024-03-25T13:09:47.645711", | ||
219 | "mimetype": "application/zip", | 229 | "mimetype": "application/zip", | ||
220 | "mimetype_inner": null, | 230 | "mimetype_inner": null, | ||
221 | "name": "data model documentation", | 231 | "name": "data model documentation", | ||
222 | "package_id": "c24a59a7-62eb-4807-ae97-e00bf5b698db", | 232 | "package_id": "c24a59a7-62eb-4807-ae97-e00bf5b698db", | ||
223 | "position": 0, | 233 | "position": 0, | ||
224 | "resource_type": null, | 234 | "resource_type": null, | ||
225 | "size": 175429, | 235 | "size": 175429, | ||
226 | "state": "active", | 236 | "state": "active", | ||
227 | "url": | 237 | "url": | ||
228 | 91a-409e-9e5a-eb329cb2de5b/download/passengeranalytics_datamodel.zip", | 238 | 91a-409e-9e5a-eb329cb2de5b/download/passengeranalytics_datamodel.zip", | ||
229 | "url_type": "upload" | 239 | "url_type": "upload" | ||
230 | } | 240 | } | ||
231 | ], | 241 | ], | ||
232 | "state": "active", | 242 | "state": "active", | ||
233 | "tags": [ | 243 | "tags": [ | ||
234 | { | 244 | { | ||
235 | "display_name": "public transport", | 245 | "display_name": "public transport", | ||
236 | "id": "d10aeaed-4911-4ce7-be2f-dc8858a4c02c", | 246 | "id": "d10aeaed-4911-4ce7-be2f-dc8858a4c02c", | ||
237 | "name": "public transport", | 247 | "name": "public transport", | ||
238 | "state": "active", | 248 | "state": "active", | ||
239 | "vocabulary_id": null | 249 | "vocabulary_id": null | ||
t | t | 250 | }, | ||
251 | { | ||||
252 | "display_name": "tampere", | ||||
253 | "id": "c4067e38-120f-428f-8175-6e7196e617b8", | ||||
254 | "name": "tampere", | ||||
255 | "state": "active", | ||||
256 | "vocabulary_id": null | ||||
240 | } | 257 | } | ||
241 | ], | 258 | ], | ||
242 | "temporal_end": "2019-04-30", | 259 | "temporal_end": "2019-04-30", | ||
243 | "temporal_resolution": "1 day", | 260 | "temporal_resolution": "1 day", | ||
244 | "temporal_start": "2019-02-20", | 261 | "temporal_start": "2019-02-20", | ||
245 | "title": "Tampere bus passenger analytics pilot", | 262 | "title": "Tampere bus passenger analytics pilot", | ||
246 | "type": "dataset", | 263 | "type": "dataset", | ||
247 | "url": "", | 264 | "url": "", | ||
248 | "version": "" | 265 | "version": "" | ||
249 | } | 266 | } |