Changes
On March 5, 2024 at 10:43:53 AM +0200, hylli:
-
Set maintainer of Tampere street lights to Ville Heikkilä
-
Set maintainer email of Tampere street lights to ville.heikkila@tuni.fi
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", | ||
n | 5 | "extras": [], | n | 5 | "data_owner": "Tampere", |
6 | "groups": [ | 6 | "groups": [ | ||
7 | { | 7 | { | ||
8 | "description": "This group collects together data related to the | 8 | "description": "This group collects together data related to the | ||
9 | city of Tampere.", | 9 | city of Tampere.", | ||
10 | "display_name": "Tampere", | 10 | "display_name": "Tampere", | ||
11 | "id": "07adac22-b527-4417-82b9-41c7c24e6f4c", | 11 | "id": "07adac22-b527-4417-82b9-41c7c24e6f4c", | ||
12 | "image_display_url": "", | 12 | "image_display_url": "", | ||
13 | "name": "tampere", | 13 | "name": "tampere", | ||
14 | "title": "Tampere" | 14 | "title": "Tampere" | ||
15 | } | 15 | } | ||
16 | ], | 16 | ], | ||
17 | "id": "73444995-4438-4443-9402-b11cf84a7060", | 17 | "id": "73444995-4438-4443-9402-b11cf84a7060", | ||
18 | "isopen": false, | 18 | "isopen": false, | ||
19 | "license_id": "internal", | 19 | "license_id": "internal", | ||
20 | "license_title": "For internal research and education use", | 20 | "license_title": "For internal research and education use", | ||
n | 21 | "maintainer": "", | n | 21 | "maintainer": "Ville Heikkil\u00e4", |
22 | "maintainer_email": "", | 22 | "maintainer_email": "ville.heikkila@tuni.fi", | ||
23 | "metadata_created": "2022-10-17T08:24:38.547680", | 23 | "metadata_created": "2022-10-17T08:24:38.547680", | ||
n | 24 | "metadata_modified": "2022-11-17T17:29:05.041925", | n | 24 | "metadata_modified": "2024-03-05T08:43:53.365681", |
25 | "name": "tampere-street-lights", | 25 | "name": "tampere-street-lights", | ||
26 | "notes": "Data from the street lights in Tampere including | 26 | "notes": "Data from the street lights in Tampere including | ||
27 | electrical measurements. See the | 27 | electrical measurements. See the | ||
28 | [CityIoT](https://ckan.energydata.rd.tuni.fi/organization/cityiot) | 28 | [CityIoT](https://ckan.energydata.rd.tuni.fi/organization/cityiot) | ||
29 | project for general information about how the measurements are stored | 29 | project for general information about how the measurements are stored | ||
30 | and can be used. ", | 30 | and can be used. ", | ||
31 | "num_resources": 1, | 31 | "num_resources": 1, | ||
32 | "num_tags": 3, | 32 | "num_tags": 3, | ||
33 | "organization": { | 33 | "organization": { | ||
34 | "approval_status": "approved", | 34 | "approval_status": "approved", | ||
35 | "created": "2022-10-17T09:15:18.177419", | 35 | "created": "2022-10-17T09:15:18.177419", | ||
n | 36 | "description": "The CityIoT project collected smart city related | n | 36 | "description": "The [CityIoT project](https://www.cityiot.fi/) |
37 | data in Tampere about street lights, electric buses and bus passenger | 37 | collected smart city related data\r\nin Tampere about street lights, | ||
38 | analytics. This data is stored in a [FIWARE](https://www.fiware.org/) | 38 | electric buses and bus passenger analytics. This\r\ndata is stored in | ||
39 | based platform. Then explain a bit about FIWARE and offer links to | 39 | a [FIWARE](https://www.fiware.org/) based platform. FIWARE is\r\na | ||
40 | more information such as APIs and data model. Describe also the | 40 | collection of standards and components for creating smart solutions. | ||
41 | CityIoT FIWARe platform and explain how it can be accessed.", | 41 | The\r\nplatform is available at the URL | ||
42 | https://tlt-cityiot.rd.tuni.fi/. The data is\r\navailable via the HTTP | ||||
43 | based APIs offered by the platform. To access any of the\r\ndata sets | ||||
44 | an API key is required. If you are interested in using any of | ||||
45 | the\r\nCityIoT data sets, contact the person marked as the maintainer | ||||
46 | of the data set. \r\n\r\nIn order to get the data and make use of it | ||||
47 | some understanding is required about\r\nthe following 3 aspects of the | ||||
48 | CityIoT platform:\r\n\r\n1. The [NGSI v2 | ||||
49 | pecification](https://fiware.github.io/specifications/ngsiv2/stable/): | ||||
50 | defines the API used by the main FIWARE component\r\nthe Orion context | ||||
51 | broker and also the entity based data model used by all | ||||
52 | FIWARE\r\ncomponents.\r\n2. The [Orion context | ||||
53 | broker](https://fiware-orion.readthedocs.io/en/master/): Has the most | ||||
54 | recent version of the data i.e. NGSI v2\r\nentities. This data can be | ||||
55 | queried or subscribed to so that you get notified\r\nwhen the data | ||||
56 | changes.\r\n3. | ||||
57 | [QuantumLeap](https://quantumleap.readthedocs.io/en/latest/): Stores | ||||
58 | NGSI v2 entity data into a timeseries data base. It allows\r\nthen the | ||||
59 | querying of this historic data via an HTTP API.\r\n\r\nSo in short, | ||||
60 | understand the NGSI v2 data model so you know what kind of | ||||
61 | data\r\nstructures you are dealing with. Use Orion if you want a | ||||
62 | programmatic way to\r\nlist all available data entities, query their | ||||
63 | current state or subscribe to\r\nchanges in their state. Use | ||||
64 | QuantumLeap if you want to explore how the entities\r\nhave changed | ||||
65 | over time.\r\n\r\n## The data model\r\n\r\nIn FIWARe NGSI v2 data is | ||||
66 | modelled as context entities. Entities can represent\r\nlogical of | ||||
67 | physical things such as a sensor, a person or a weather | ||||
68 | observation.\r\nEntities have a id and a type indicating what the | ||||
69 | entity represents. Entities\r\nthen can have various attributes | ||||
70 | providing information about them. The entity\r\ntype determines what | ||||
71 | attributes an entity should have. This way domain specific\r\ndata | ||||
72 | models can be created by defining the needed entity types and | ||||
73 | their\r\nattributes. For example weather observation could have | ||||
74 | attributes for\r\ntemperature, humidity and the location for the | ||||
75 | observation. An attribute has a\r\nname and a value including data | ||||
76 | type for the value. An attribute can also have\r\nmetadata such as | ||||
77 | timestamp for when the value was acquired or what is | ||||
78 | the\r\nmeasurement accuracy for the value. The documentation for each | ||||
79 | CityIoT data set\r\nexplains what entity types the data consists of | ||||
80 | and what attributes the entities have.\r\n\r\nThe entities are | ||||
81 | represented as JSON. For example an entity representing an\r\nelectric | ||||
82 | bus from one of the CityIoT data sets looks like this with only part | ||||
83 | of\r\nthe attributes included:\r\n\r\n {\r\n \"id\": | ||||
84 | \"Vehicle:TKL16\",\r\n \"type\": \"Vehicle\",\r\n | ||||
85 | \"vehicleType\": {\r\n \"value\": \"bus\"\r\n },\r\n | ||||
86 | \"name\": {\r\n \"value\": \"TKL16\"\r\n },\r\n | ||||
87 | \"location\": {\r\n \"type\": \"geo:json\",\r\n | ||||
88 | \"value\": {\r\n \"type\": \"Point\",\r\n | ||||
89 | \"coordinates\": [23.769203333333333, 61.49531666666667]\r\n | ||||
90 | },\r\n \"metadata\": {\r\n \"timestamp\": | ||||
91 | {\r\n \"type\": \"DateTime\",\r\n | ||||
92 | \"value\": \"2019-04-03T14:52:18.192881Z\"\r\n }\r\n | ||||
93 | }\r\n },\r\n \"speed\": {\r\n \"value\": | ||||
94 | 34.5,\r\n \"metadata\": {\r\n \"timestamp\": | ||||
95 | {\r\n \"type\": \"DateTime\",\r\n | ||||
96 | \"value\": \"2019-04-03T14:52:19.867419Z\"\r\n }\r\n | ||||
97 | }\r\n }, \r\n \"power\": {\r\n | ||||
98 | \"value\": 75.70000000000027,\r\n \"metadata\": {\r\n | ||||
99 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | ||||
100 | \"value\": \"2019-04-03T14:52:20.218114Z\"\r\n }\r\n | ||||
101 | }\r\n },\r\n \"chargeState\": {\r\n | ||||
102 | \"value\": 87,\r\n \"metadata\": {\r\n | ||||
103 | \"timestamp\": {\r\n \"type\": \"DateTime\",\r\n | ||||
104 | \"value\": \"2019-04-03T14:52:16.938936Z\"\r\n }\r\n | ||||
105 | }\r\n }\r\n }\r\n\r\n\r\n## The Orion context | ||||
106 | broker\r\n\r\nThe Orion context broker stores the latest versions of | ||||
107 | all entities. Its API is\r\nused to query information about the | ||||
108 | entities or subscribe to changes in their\r\nattributes. The Tampere | ||||
109 | CityIoT Orion API is available at the | ||||
110 | URL\r\nhttps://tlt-cityiot.rd.tuni.fi/orion/\r\n\r\nTo separate the | ||||
111 | entities of the different data sets, Orions multi tenancy\r\nfeature | ||||
112 | is used. Data is separated into different services and under a | ||||
113 | service\r\nhierarchical service paths can be used for more | ||||
114 | fine-grained data organization.\r\nIn API calls the service and | ||||
115 | service path are given in HTTP headers:\r\n`Fiware-Service` for the | ||||
116 | service and `Fiware-ServicePath` for the service path. For\r\naccess | ||||
117 | control API keys are used. The API key is given in the `apikey` HTTP | ||||
118 | header.\r\nDocumentation for each data set tells what service is used | ||||
119 | and how service paths\r\nare used. You can get an API key by | ||||
120 | requesting access to a data set from the\r\nmaintainer of the data | ||||
121 | set. As an example how all this works in practice, the\r\n[Tampere | ||||
122 | electric | ||||
123 | ckan.energydata.rd.tuni.fi/dataset/tampere-electric-bus-pilot)\r\ndata | ||||
124 | set has entities representing electric buses in service | ||||
125 | public_transport\r\nunder the service path /Tampere/electric_bus. | ||||
126 | Using the command line HTTP client\r\ncurl, this is how to get all the | ||||
127 | electric bus entities and their attributes from\r\nOrion:\r\n\r\n | ||||
128 | curl -H 'Fiware-Service: public_transport' -H 'Fiware-ServicePath: | ||||
129 | /Tampere/electric_bus' -H 'apikey: your_apikey' | ||||
130 | \"https://tlt-cityiot.rd.tuni.fi/orion/v2/entities\"\r\n\r\n## | ||||
131 | QuantumLeap\r\n\r\nQuantumLeap stores the change history of the | ||||
132 | entities in a timeseries database.\r\nThis can then be queried via its | ||||
133 | API. The Tampere CityIoT QuantumLeap is\r\navailable at the URL: | ||||
134 | https://tlt-cityiot.rd.tuni.fi/quantumleap/\r\n\r\nIt uses the same | ||||
135 | service and service path\r\nsystem to organize entities as Orion. The | ||||
136 | same API key based authentication\r\nsystem is also used. See the | ||||
137 | Orion section for more details. For example to Get\r\nall values for | ||||
138 | power and speed for electric bus entity TKL15 between 14:01 and 14:02 | ||||
139 | on\r\n28th of October 2019 with curl the following command would be | ||||
140 | used:\r\n\r\n curl -H 'Fiware-Service: public_transport' -H | ||||
141 | 'Fiware-ServicePath: /Tampere/electric_bus' -H 'apikey: your_apikey' | ||||
142 | ed,power&&fromDate=2019-10-28T12:01:00&&toDate=2019-10-28T12:02:00\"", | ||||
42 | "id": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | 143 | "id": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | ||
43 | "image_url": "", | 144 | "image_url": "", | ||
44 | "is_organization": true, | 145 | "is_organization": true, | ||
45 | "name": "cityiot", | 146 | "name": "cityiot", | ||
46 | "state": "active", | 147 | "state": "active", | ||
47 | "title": "CityIoT", | 148 | "title": "CityIoT", | ||
48 | "type": "organization" | 149 | "type": "organization" | ||
49 | }, | 150 | }, | ||
50 | "owner_org": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | 151 | "owner_org": "ede7b870-2dff-4a89-889e-1bb3980ffa6f", | ||
51 | "private": false, | 152 | "private": false, | ||
52 | "relationships_as_object": [], | 153 | "relationships_as_object": [], | ||
53 | "relationships_as_subject": [], | 154 | "relationships_as_subject": [], | ||
54 | "resources": [ | 155 | "resources": [ | ||
55 | { | 156 | { | ||
56 | "cache_last_updated": null, | 157 | "cache_last_updated": null, | ||
57 | "cache_url": null, | 158 | "cache_url": null, | ||
58 | "created": "2022-10-17T08:25:30.444938", | 159 | "created": "2022-10-17T08:25:30.444938", | ||
59 | "datastore_active": false, | 160 | "datastore_active": false, | ||
60 | "description": "Placeholder for the actual documentation.", | 161 | "description": "Placeholder for the actual documentation.", | ||
61 | "format": "text/markdown", | 162 | "format": "text/markdown", | ||
62 | "hash": "", | 163 | "hash": "", | ||
63 | "id": "850611d5-2b4b-4849-8a4c-bcf1e46d1c96", | 164 | "id": "850611d5-2b4b-4849-8a4c-bcf1e46d1c96", | ||
64 | "last_modified": "2022-10-17T08:25:30.411018", | 165 | "last_modified": "2022-10-17T08:25:30.411018", | ||
65 | "metadata_modified": "2022-10-17T08:25:31.107827", | 166 | "metadata_modified": "2022-10-17T08:25:31.107827", | ||
66 | "mimetype": "text/markdown", | 167 | "mimetype": "text/markdown", | ||
67 | "mimetype_inner": null, | 168 | "mimetype_inner": null, | ||
68 | "name": "dummy_spec.md", | 169 | "name": "dummy_spec.md", | ||
69 | "package_id": "73444995-4438-4443-9402-b11cf84a7060", | 170 | "package_id": "73444995-4438-4443-9402-b11cf84a7060", | ||
70 | "position": 0, | 171 | "position": 0, | ||
71 | "resource_type": null, | 172 | "resource_type": null, | ||
72 | "size": 19685, | 173 | "size": 19685, | ||
73 | "state": "active", | 174 | "state": "active", | ||
74 | "url": | 175 | "url": | ||
75 | e/850611d5-2b4b-4849-8a4c-bcf1e46d1c96/download/electric_bus_spec.md", | 176 | e/850611d5-2b4b-4849-8a4c-bcf1e46d1c96/download/electric_bus_spec.md", | ||
76 | "url_type": "upload" | 177 | "url_type": "upload" | ||
77 | } | 178 | } | ||
78 | ], | 179 | ], | ||
79 | "state": "active", | 180 | "state": "active", | ||
80 | "tags": [ | 181 | "tags": [ | ||
81 | { | 182 | { | ||
82 | "display_name": "electricity", | 183 | "display_name": "electricity", | ||
83 | "id": "0c58cb6b-5845-4112-9871-6adda7eaac59", | 184 | "id": "0c58cb6b-5845-4112-9871-6adda7eaac59", | ||
84 | "name": "electricity", | 185 | "name": "electricity", | ||
85 | "state": "active", | 186 | "state": "active", | ||
86 | "vocabulary_id": null | 187 | "vocabulary_id": null | ||
87 | }, | 188 | }, | ||
88 | { | 189 | { | ||
89 | "display_name": "street light", | 190 | "display_name": "street light", | ||
90 | "id": "90cb5931-2582-4ea0-a5dd-c0aa32bea5a4", | 191 | "id": "90cb5931-2582-4ea0-a5dd-c0aa32bea5a4", | ||
91 | "name": "street light", | 192 | "name": "street light", | ||
92 | "state": "active", | 193 | "state": "active", | ||
93 | "vocabulary_id": null | 194 | "vocabulary_id": null | ||
94 | }, | 195 | }, | ||
95 | { | 196 | { | ||
96 | "display_name": "tampere", | 197 | "display_name": "tampere", | ||
97 | "id": "c4067e38-120f-428f-8175-6e7196e617b8", | 198 | "id": "c4067e38-120f-428f-8175-6e7196e617b8", | ||
98 | "name": "tampere", | 199 | "name": "tampere", | ||
99 | "state": "active", | 200 | "state": "active", | ||
100 | "vocabulary_id": null | 201 | "vocabulary_id": null | ||
101 | } | 202 | } | ||
102 | ], | 203 | ], | ||
t | t | 204 | "temporal_end": "2020-05-04", | ||
205 | "temporal_resolution": "", | ||||
206 | "temporal_start": "2018-10-01", | ||||
103 | "title": "Tampere street lights", | 207 | "title": "Tampere street lights", | ||
104 | "type": "dataset", | 208 | "type": "dataset", | ||
105 | "url": "", | 209 | "url": "", | ||
106 | "version": "" | 210 | "version": "" | ||
107 | } | 211 | } |