Skip to content

Commit 0a9149b

Browse files
committed
Add weather data.
1 parent e92b025 commit 0a9149b

1 file changed

Lines changed: 42 additions & 17 deletions

File tree

app/controllers/csv.js

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,19 @@ function tryParse(value) {
4949

5050
function createEntitiesFromRows(rows) {
5151
const allEntities = [];
52+
const unitCode = {
53+
atmosphericPressure: 'PAL',
54+
illuminance: 'CDL',
55+
precipitation: 'MMT',
56+
windSpeed: 'MTS',
57+
relativeHumidity: 'C68',
58+
precipitationProbability: 'C68',
59+
heartRate: '5K',
60+
humidity: 'P1',
61+
temperature: 'CEL',
62+
weight: 'KGM',
63+
batteryLevel: 'C68'
64+
};
5265
const timestamp = new Date().toISOString();
5366

5467
rows.forEach((row) => {
@@ -61,53 +74,62 @@ function createEntitiesFromRows(rows) {
6174
const value = row[key];
6275
if (value !== '') {
6376
switch (key) {
77+
case 'agroVocConcept':
6478
case 'alternateName':
6579
case 'birthdate':
6680
case 'comment':
6781
case 'controlledProperty':
82+
case 'dataProvider':
83+
case 'dateIssued':
84+
case 'dateObserved':
85+
case 'dateRetrieved':
86+
case 'dayMaximum':
87+
case 'dayMinimum':
6888
case 'description':
6989
case 'deviceState':
7090
case 'fedWith':
91+
case 'feelsLikeTemperature':
7192
case 'givenName':
7293
case 'legalId':
7394
case 'name':
95+
case 'pressureTendency':
7496
case 'species':
7597
case 'soilTextureType':
7698
case 'status':
99+
case 'streamGauge':
100+
case 'source':
77101
case 'supportedProtocol':
78-
case 'agroVocConcept':
102+
case 'uVIndexMax':
103+
case 'validFrom':
104+
case 'validTo':
105+
case 'validity':
106+
case 'weatherType':
107+
case 'windDirection':
79108
entity[key] = { value: tryParse(value), type: 'Property' };
80109
break;
81110

82-
case 'temperature':
111+
case 'atmosphericPressure':
112+
case 'illuminance':
113+
case 'precipitation':
114+
case 'windSpeed':
115+
case 'relativeHumidity':
116+
case 'precipitationProbability':
117+
case 'batteryLevel':
83118
entity[key] = {
84119
value: Number(value),
85-
type: 'Property',
86-
unitCode: 'CEL',
87-
observedAt: timestamp
120+
type: 'Property'
88121
};
89122
break;
90123
case 'heartRate':
91-
entity[key] = { value: Number(value), type: 'Property', unitCode: '5K', observedAt: timestamp };
92-
break;
93124
case 'humidity':
94-
entity[key] = { value: Number(value), type: 'Property', unitCode: 'P1', observedAt: timestamp };
95-
break;
125+
case 'temperature':
96126
case 'weight':
97127
entity[key] = {
98128
value: Number(value),
99129
type: 'Property',
100-
unitCode: 'KGM',
101130
observedAt: timestamp
102131
};
103132
break;
104-
case 'batteryLevel':
105-
entity[key] = {
106-
value: Number(value),
107-
type: 'Property',
108-
unitCode: 'C62'
109-
};
110-
break;
111133

112134
case 'jobTitle_name':
113135
entity.jobTitle = {
@@ -187,6 +209,9 @@ function createEntitiesFromRows(rows) {
187209
}
188210
break;
189211
}
212+
if (unitCode[key]) {
213+
entity[key].unitCode = unitCode[key];
214+
}
190215
}
191216
});
192217

0 commit comments

Comments
 (0)