@golemio/microclimate 1.2.8-dev.1384166512 → 1.2.8-dev.1561229684

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,184 +1,184 @@
1
- CREATE OR REPLACE VIEW analytic.v_microclimate_measurements_daily
2
- AS WITH calendar AS (
3
- SELECT calendar_1.date,
4
- sensors_1.sensor_id
5
- FROM ( SELECT generate_series('2022-08-02 00:00:00+02'::timestamp with time zone, CURRENT_DATE::timestamp with time zone, '1 day'::interval)::date AS date) calendar_1
6
- CROSS JOIN ( SELECT DISTINCT sensor_devices_import.sensor_id
7
- FROM microclimate.sensor_devices_import) sensors_1
8
- ), first_measurement_per_hour AS (
9
- SELECT DISTINCT ON (m.sensor_id, (timezone('CET'::text, m.measured_at)::date), (date_part('hour'::text, timezone('CET'::text, m.measured_at)))) m.sensor_id,
10
- timezone('CET'::text, m.measured_at) AS measured_at,
11
- timezone('CET'::text, m.measured_at)::date AS date,
12
- date_part('hour'::text, timezone('CET'::text, m.measured_at)) AS hour,
13
- m.air_temp,
14
- m.air_hum,
15
- m.pressure,
16
- m.wind_speed,
17
- m.water_pot,
18
- m.soil_temp
19
- FROM microclimate.measurements m
20
- WHERE date_part('hour'::text, timezone('CET'::text, m.measured_at)) = ANY (ARRAY[7::double precision, 14::double precision, 21::double precision])
21
- ORDER BY m.sensor_id, (timezone('CET'::text, m.measured_at)::date), (date_part('hour'::text, timezone('CET'::text, m.measured_at))), m.measured_at
22
- ), seven AS (
23
- SELECT first_measurement_per_hour.sensor_id,
24
- first_measurement_per_hour.measured_at,
25
- first_measurement_per_hour.date,
26
- first_measurement_per_hour.hour,
27
- first_measurement_per_hour.air_temp,
28
- first_measurement_per_hour.air_hum,
29
- first_measurement_per_hour.pressure,
30
- first_measurement_per_hour.wind_speed,
31
- first_measurement_per_hour.water_pot,
32
- first_measurement_per_hour.soil_temp
33
- FROM first_measurement_per_hour
34
- WHERE first_measurement_per_hour.hour = 7::double precision
35
- ), two AS (
36
- SELECT first_measurement_per_hour.sensor_id,
37
- first_measurement_per_hour.measured_at,
38
- first_measurement_per_hour.date,
39
- first_measurement_per_hour.hour,
40
- first_measurement_per_hour.air_temp,
41
- first_measurement_per_hour.air_hum,
42
- first_measurement_per_hour.pressure,
43
- first_measurement_per_hour.wind_speed,
44
- first_measurement_per_hour.water_pot,
45
- first_measurement_per_hour.soil_temp
46
- FROM first_measurement_per_hour
47
- WHERE first_measurement_per_hour.hour = 14::double precision
48
- ), nine AS (
49
- SELECT first_measurement_per_hour.sensor_id,
50
- first_measurement_per_hour.measured_at,
51
- first_measurement_per_hour.date,
52
- first_measurement_per_hour.hour,
53
- first_measurement_per_hour.air_temp,
54
- first_measurement_per_hour.air_hum,
55
- first_measurement_per_hour.pressure,
56
- first_measurement_per_hour.wind_speed,
57
- first_measurement_per_hour.water_pot,
58
- first_measurement_per_hour.soil_temp
59
- FROM first_measurement_per_hour
60
- WHERE first_measurement_per_hour.hour = 21::double precision
61
- ), wind AS (
62
- SELECT DISTINCT ON (m.sensor_id, (timezone('CET'::text, m.measured_at)::date)) m.sensor_id,
63
- timezone('CET'::text, m.measured_at)::date AS date,
64
- m.wind_speed AS max_wind_speed,
65
- CASE
66
- WHEN m.wind_dir::text = 'N'::text THEN 0
67
- WHEN m.wind_dir::text = 'S'::text THEN 180
68
- WHEN m.wind_dir::text = 'E'::text THEN 90
69
- WHEN m.wind_dir::text = 'W'::text THEN 270
70
- WHEN m.wind_dir::text = 'SW'::text THEN 200
71
- WHEN m.wind_dir::text = 'NW'::text THEN 320
72
- WHEN m.wind_dir::text = 'NE'::text THEN 45
73
- ELSE NULL::integer
74
- END AS wind_dir_at_max_speed
75
- FROM microclimate.measurements m
76
- ORDER BY m.sensor_id, (timezone('CET'::text, m.measured_at)::date), m.wind_speed DESC
77
- ), min_max_daily_temp AS (
78
- SELECT m.sensor_id,
79
- timezone('-04'::text, m.measured_at)::date AS date,
80
- max(m.air_temp) AS max_temperature,
81
- min(m.air_temp) AS min_temperature
82
- FROM microclimate.measurements m
83
- GROUP BY m.sensor_id, (timezone('-04'::text, m.measured_at)::date)
84
- ORDER BY m.sensor_id, (timezone('-04'::text, m.measured_at)::date)
85
- ), precip AS (
86
- SELECT m.sensor_id,
87
- timezone('-08'::text, m.measured_at)::date AS date,
88
- sum(m.precip) AS sum_precip
89
- FROM microclimate.measurements m
90
- GROUP BY m.sensor_id, (timezone('-08'::text, m.measured_at)::date)
91
- ORDER BY m.sensor_id, (timezone('-08'::text, m.measured_at)::date)
92
- ), calc AS (
93
- SELECT sensors.address,
94
- sensors.sensor_position_detail,
95
- sensors.point_id,
96
- sensors.air_temp,
97
- sensors.air_hum,
98
- sensors.pressure,
99
- sensors.precip,
100
- sensors.wind_dir,
101
- sensors.wind_impact,
102
- sensors.wind_speed,
103
- sensors.sun_irr,
104
- sensors.soil_temp,
105
- sensors.water_pot,
106
- sensors.dendro_circ,
107
- sensors.dendro_gain,
108
- calendar.date,
109
- calendar.sensor_id,
110
- (seven.air_temp + two.air_temp + 2::double precision * nine.air_temp) / 4::double precision AS avg_temperature,
111
- (seven.air_hum + two.air_hum + nine.air_hum) / 3::double precision AS avg_air_hum,
112
- (seven.pressure + two.pressure + nine.pressure) / 3 / 100 AS avg_pressure,
113
- (seven.wind_speed + two.wind_speed + nine.wind_speed) / 3::double precision AS avg_wind_speed,
114
- (seven.water_pot + two.water_pot + nine.water_pot) / 3::double precision AS avg_water_pot,
115
- (seven.soil_temp + two.soil_temp + nine.soil_temp) / 3::double precision AS avg_soil_temp,
116
- wind.max_wind_speed,
117
- wind.wind_dir_at_max_speed,
118
- min_max_daily_temp.max_temperature,
119
- min_max_daily_temp.min_temperature,
120
- precip.sum_precip
121
- FROM calendar
122
- LEFT JOIN seven ON calendar.sensor_id::text = seven.sensor_id::text AND calendar.date = seven.date
123
- LEFT JOIN two ON calendar.sensor_id::text = two.sensor_id::text AND calendar.date = two.date
124
- LEFT JOIN nine ON calendar.sensor_id::text = nine.sensor_id::text AND calendar.date = nine.date
125
- LEFT JOIN wind ON calendar.sensor_id::text = wind.sensor_id::text AND calendar.date = wind.date
126
- LEFT JOIN min_max_daily_temp ON calendar.sensor_id::text = min_max_daily_temp.sensor_id::text AND calendar.date = min_max_daily_temp.date
127
- LEFT JOIN precip ON calendar.sensor_id::text = precip.sensor_id::text AND calendar.date = precip.date
128
- LEFT JOIN microclimate.sensor_devices_import sensors ON calendar.sensor_id::text = sensors.sensor_id::text
129
- )
130
- SELECT calc.address,
131
- calc.sensor_position_detail,
132
- calc.date,
133
- calc.sensor_id,
134
- calc.point_id,
135
- unpivot.metrika,
136
- unpivot.value
137
- FROM calc,
138
- LATERAL ( VALUES ('avg_temperature'::text,calc.avg_temperature), ('avg_air_hum'::text,calc.avg_air_hum), ('avg_pressure'::text,calc.avg_pressure), ('avg_wind_speed'::text,calc.avg_wind_speed), ('avg_water_pot'::text,calc.avg_water_pot), ('avg_soil_temp'::text,calc.avg_soil_temp), ('max_wind_speed'::text,calc.max_wind_speed), ('max_temperature'::text,calc.max_temperature), ('min_temperature'::text,calc.min_temperature), ('sum_precip'::text,calc.sum_precip), ('wind_dir_at_max_speed'::text,calc.wind_dir_at_max_speed)) unpivot(metrika, value)
139
- WHERE unpivot.value IS NOT NULL;
140
-
141
- CREATE OR REPLACE VIEW analytic.v_microclimate_measurements_daily_w_hights
142
- AS SELECT m.date,
143
- m.sensor_id,
144
- m.address,
145
- m.sensor_position_detail,
146
- h.measure,
147
- m.value,
148
- h.hight_cm,
149
- CASE
150
- WHEN h.measure = 'wind_dir_at_max_speed'::text THEN 'Směr maximální rychlosti větru'::text
151
- WHEN h.measure = 'sum_precip'::text THEN 'Denní úhrn srážek'::text
152
- WHEN h.measure = 'avg_temperature'::text THEN 'Průměrná denní teplota vzduchu'::text
153
- WHEN h.measure = 'max_wind_speed'::text THEN 'Maximální rychlost větru'::text
154
- WHEN h.measure = 'avg_water_pot'::text THEN 'Průměrná denní vlhkost půdy'::text
155
- WHEN h.measure = 'avg_wind_speed'::text THEN 'Průměrná denní rychlost větru'::text
156
- WHEN h.measure = 'avg_air_hum'::text THEN 'Průměrná denní relativní vlhkost vzduchu'::text
157
- WHEN h.measure = 'avg_pressure'::text THEN 'Průměrný denní tlak vzduchu'::text
158
- WHEN h.measure = 'max_temperature'::text THEN 'Maximální denní teplota vzduchu'::text
159
- WHEN h.measure = 'avg_soil_temp'::text THEN 'Průměrná denní teplota půdy'::text
160
- WHEN h.measure = 'min_temperature'::text THEN 'Minimální denní teplota vzduchu'::text
161
- ELSE NULL::text
162
- END AS measure_cz,
163
- CASE
164
- WHEN h.measure = 'wind_dir_at_max_speed'::text THEN 'm/s'::text
165
- WHEN h.measure = 'sum_precip'::text THEN 'mm'::text
166
- WHEN h.measure = 'avg_temperature'::text THEN '°C'::text
167
- WHEN h.measure = 'max_wind_speed'::text THEN 'm/s'::text
168
- WHEN h.measure = 'avg_water_pot'::text THEN 'kPa'::text
169
- WHEN h.measure = 'avg_wind_speed'::text THEN 'm/s'::text
170
- WHEN h.measure = 'avg_air_hum'::text THEN '%'::text
171
- WHEN h.measure = 'avg_pressure'::text THEN 'hPa'::text
172
- WHEN h.measure = 'max_temperature'::text THEN '°C'::text
173
- WHEN h.measure = 'avg_soil_temp'::text THEN '°C'::text
174
- WHEN h.measure = 'min_temperature'::text THEN '°C'::text
175
- ELSE NULL::text
176
- END AS unit
177
- FROM analytic.v_microclimate_measurements_daily m
178
- LEFT JOIN analytic.v_microclimate_measurement_hights h ON m.sensor_id::text = h.sensor_id::text AND m.metrika = h.measure
179
- ORDER BY m.sensor_id, m.date;
180
-
181
- DROP VIEW analytic.v_microclimate_wind_dir_at_max_speed;
182
-
183
-
184
-
1
+ CREATE OR REPLACE VIEW analytic.v_microclimate_measurements_daily
2
+ AS WITH calendar AS (
3
+ SELECT calendar_1.date,
4
+ sensors_1.sensor_id
5
+ FROM ( SELECT generate_series('2022-08-02 00:00:00+02'::timestamp with time zone, CURRENT_DATE::timestamp with time zone, '1 day'::interval)::date AS date) calendar_1
6
+ CROSS JOIN ( SELECT DISTINCT sensor_devices_import.sensor_id
7
+ FROM microclimate.sensor_devices_import) sensors_1
8
+ ), first_measurement_per_hour AS (
9
+ SELECT DISTINCT ON (m.sensor_id, (timezone('CET'::text, m.measured_at)::date), (date_part('hour'::text, timezone('CET'::text, m.measured_at)))) m.sensor_id,
10
+ timezone('CET'::text, m.measured_at) AS measured_at,
11
+ timezone('CET'::text, m.measured_at)::date AS date,
12
+ date_part('hour'::text, timezone('CET'::text, m.measured_at)) AS hour,
13
+ m.air_temp,
14
+ m.air_hum,
15
+ m.pressure,
16
+ m.wind_speed,
17
+ m.water_pot,
18
+ m.soil_temp
19
+ FROM microclimate.measurements m
20
+ WHERE date_part('hour'::text, timezone('CET'::text, m.measured_at)) = ANY (ARRAY[7::double precision, 14::double precision, 21::double precision])
21
+ ORDER BY m.sensor_id, (timezone('CET'::text, m.measured_at)::date), (date_part('hour'::text, timezone('CET'::text, m.measured_at))), m.measured_at
22
+ ), seven AS (
23
+ SELECT first_measurement_per_hour.sensor_id,
24
+ first_measurement_per_hour.measured_at,
25
+ first_measurement_per_hour.date,
26
+ first_measurement_per_hour.hour,
27
+ first_measurement_per_hour.air_temp,
28
+ first_measurement_per_hour.air_hum,
29
+ first_measurement_per_hour.pressure,
30
+ first_measurement_per_hour.wind_speed,
31
+ first_measurement_per_hour.water_pot,
32
+ first_measurement_per_hour.soil_temp
33
+ FROM first_measurement_per_hour
34
+ WHERE first_measurement_per_hour.hour = 7::double precision
35
+ ), two AS (
36
+ SELECT first_measurement_per_hour.sensor_id,
37
+ first_measurement_per_hour.measured_at,
38
+ first_measurement_per_hour.date,
39
+ first_measurement_per_hour.hour,
40
+ first_measurement_per_hour.air_temp,
41
+ first_measurement_per_hour.air_hum,
42
+ first_measurement_per_hour.pressure,
43
+ first_measurement_per_hour.wind_speed,
44
+ first_measurement_per_hour.water_pot,
45
+ first_measurement_per_hour.soil_temp
46
+ FROM first_measurement_per_hour
47
+ WHERE first_measurement_per_hour.hour = 14::double precision
48
+ ), nine AS (
49
+ SELECT first_measurement_per_hour.sensor_id,
50
+ first_measurement_per_hour.measured_at,
51
+ first_measurement_per_hour.date,
52
+ first_measurement_per_hour.hour,
53
+ first_measurement_per_hour.air_temp,
54
+ first_measurement_per_hour.air_hum,
55
+ first_measurement_per_hour.pressure,
56
+ first_measurement_per_hour.wind_speed,
57
+ first_measurement_per_hour.water_pot,
58
+ first_measurement_per_hour.soil_temp
59
+ FROM first_measurement_per_hour
60
+ WHERE first_measurement_per_hour.hour = 21::double precision
61
+ ), wind AS (
62
+ SELECT DISTINCT ON (m.sensor_id, (timezone('CET'::text, m.measured_at)::date)) m.sensor_id,
63
+ timezone('CET'::text, m.measured_at)::date AS date,
64
+ m.wind_speed AS max_wind_speed,
65
+ CASE
66
+ WHEN m.wind_dir::text = 'N'::text THEN 0
67
+ WHEN m.wind_dir::text = 'S'::text THEN 180
68
+ WHEN m.wind_dir::text = 'E'::text THEN 90
69
+ WHEN m.wind_dir::text = 'W'::text THEN 270
70
+ WHEN m.wind_dir::text = 'SW'::text THEN 200
71
+ WHEN m.wind_dir::text = 'NW'::text THEN 320
72
+ WHEN m.wind_dir::text = 'NE'::text THEN 45
73
+ ELSE NULL::integer
74
+ END AS wind_dir_at_max_speed
75
+ FROM microclimate.measurements m
76
+ ORDER BY m.sensor_id, (timezone('CET'::text, m.measured_at)::date), m.wind_speed DESC
77
+ ), min_max_daily_temp AS (
78
+ SELECT m.sensor_id,
79
+ timezone('-04'::text, m.measured_at)::date AS date,
80
+ max(m.air_temp) AS max_temperature,
81
+ min(m.air_temp) AS min_temperature
82
+ FROM microclimate.measurements m
83
+ GROUP BY m.sensor_id, (timezone('-04'::text, m.measured_at)::date)
84
+ ORDER BY m.sensor_id, (timezone('-04'::text, m.measured_at)::date)
85
+ ), precip AS (
86
+ SELECT m.sensor_id,
87
+ timezone('-08'::text, m.measured_at)::date AS date,
88
+ sum(m.precip) AS sum_precip
89
+ FROM microclimate.measurements m
90
+ GROUP BY m.sensor_id, (timezone('-08'::text, m.measured_at)::date)
91
+ ORDER BY m.sensor_id, (timezone('-08'::text, m.measured_at)::date)
92
+ ), calc AS (
93
+ SELECT sensors.address,
94
+ sensors.sensor_position_detail,
95
+ sensors.point_id,
96
+ sensors.air_temp,
97
+ sensors.air_hum,
98
+ sensors.pressure,
99
+ sensors.precip,
100
+ sensors.wind_dir,
101
+ sensors.wind_impact,
102
+ sensors.wind_speed,
103
+ sensors.sun_irr,
104
+ sensors.soil_temp,
105
+ sensors.water_pot,
106
+ sensors.dendro_circ,
107
+ sensors.dendro_gain,
108
+ calendar.date,
109
+ calendar.sensor_id,
110
+ (seven.air_temp + two.air_temp + 2::double precision * nine.air_temp) / 4::double precision AS avg_temperature,
111
+ (seven.air_hum + two.air_hum + nine.air_hum) / 3::double precision AS avg_air_hum,
112
+ (seven.pressure + two.pressure + nine.pressure) / 3 / 100 AS avg_pressure,
113
+ (seven.wind_speed + two.wind_speed + nine.wind_speed) / 3::double precision AS avg_wind_speed,
114
+ (seven.water_pot + two.water_pot + nine.water_pot) / 3::double precision AS avg_water_pot,
115
+ (seven.soil_temp + two.soil_temp + nine.soil_temp) / 3::double precision AS avg_soil_temp,
116
+ wind.max_wind_speed,
117
+ wind.wind_dir_at_max_speed,
118
+ min_max_daily_temp.max_temperature,
119
+ min_max_daily_temp.min_temperature,
120
+ precip.sum_precip
121
+ FROM calendar
122
+ LEFT JOIN seven ON calendar.sensor_id::text = seven.sensor_id::text AND calendar.date = seven.date
123
+ LEFT JOIN two ON calendar.sensor_id::text = two.sensor_id::text AND calendar.date = two.date
124
+ LEFT JOIN nine ON calendar.sensor_id::text = nine.sensor_id::text AND calendar.date = nine.date
125
+ LEFT JOIN wind ON calendar.sensor_id::text = wind.sensor_id::text AND calendar.date = wind.date
126
+ LEFT JOIN min_max_daily_temp ON calendar.sensor_id::text = min_max_daily_temp.sensor_id::text AND calendar.date = min_max_daily_temp.date
127
+ LEFT JOIN precip ON calendar.sensor_id::text = precip.sensor_id::text AND calendar.date = precip.date
128
+ LEFT JOIN microclimate.sensor_devices_import sensors ON calendar.sensor_id::text = sensors.sensor_id::text
129
+ )
130
+ SELECT calc.address,
131
+ calc.sensor_position_detail,
132
+ calc.date,
133
+ calc.sensor_id,
134
+ calc.point_id,
135
+ unpivot.metrika,
136
+ unpivot.value
137
+ FROM calc,
138
+ LATERAL ( VALUES ('avg_temperature'::text,calc.avg_temperature), ('avg_air_hum'::text,calc.avg_air_hum), ('avg_pressure'::text,calc.avg_pressure), ('avg_wind_speed'::text,calc.avg_wind_speed), ('avg_water_pot'::text,calc.avg_water_pot), ('avg_soil_temp'::text,calc.avg_soil_temp), ('max_wind_speed'::text,calc.max_wind_speed), ('max_temperature'::text,calc.max_temperature), ('min_temperature'::text,calc.min_temperature), ('sum_precip'::text,calc.sum_precip), ('wind_dir_at_max_speed'::text,calc.wind_dir_at_max_speed)) unpivot(metrika, value)
139
+ WHERE unpivot.value IS NOT NULL;
140
+
141
+ CREATE OR REPLACE VIEW analytic.v_microclimate_measurements_daily_w_hights
142
+ AS SELECT m.date,
143
+ m.sensor_id,
144
+ m.address,
145
+ m.sensor_position_detail,
146
+ h.measure,
147
+ m.value,
148
+ h.hight_cm,
149
+ CASE
150
+ WHEN h.measure = 'wind_dir_at_max_speed'::text THEN 'Směr maximální rychlosti větru'::text
151
+ WHEN h.measure = 'sum_precip'::text THEN 'Denní úhrn srážek'::text
152
+ WHEN h.measure = 'avg_temperature'::text THEN 'Průměrná denní teplota vzduchu'::text
153
+ WHEN h.measure = 'max_wind_speed'::text THEN 'Maximální rychlost větru'::text
154
+ WHEN h.measure = 'avg_water_pot'::text THEN 'Průměrná denní vlhkost půdy'::text
155
+ WHEN h.measure = 'avg_wind_speed'::text THEN 'Průměrná denní rychlost větru'::text
156
+ WHEN h.measure = 'avg_air_hum'::text THEN 'Průměrná denní relativní vlhkost vzduchu'::text
157
+ WHEN h.measure = 'avg_pressure'::text THEN 'Průměrný denní tlak vzduchu'::text
158
+ WHEN h.measure = 'max_temperature'::text THEN 'Maximální denní teplota vzduchu'::text
159
+ WHEN h.measure = 'avg_soil_temp'::text THEN 'Průměrná denní teplota půdy'::text
160
+ WHEN h.measure = 'min_temperature'::text THEN 'Minimální denní teplota vzduchu'::text
161
+ ELSE NULL::text
162
+ END AS measure_cz,
163
+ CASE
164
+ WHEN h.measure = 'wind_dir_at_max_speed'::text THEN 'm/s'::text
165
+ WHEN h.measure = 'sum_precip'::text THEN 'mm'::text
166
+ WHEN h.measure = 'avg_temperature'::text THEN '°C'::text
167
+ WHEN h.measure = 'max_wind_speed'::text THEN 'm/s'::text
168
+ WHEN h.measure = 'avg_water_pot'::text THEN 'kPa'::text
169
+ WHEN h.measure = 'avg_wind_speed'::text THEN 'm/s'::text
170
+ WHEN h.measure = 'avg_air_hum'::text THEN '%'::text
171
+ WHEN h.measure = 'avg_pressure'::text THEN 'hPa'::text
172
+ WHEN h.measure = 'max_temperature'::text THEN '°C'::text
173
+ WHEN h.measure = 'avg_soil_temp'::text THEN '°C'::text
174
+ WHEN h.measure = 'min_temperature'::text THEN '°C'::text
175
+ ELSE NULL::text
176
+ END AS unit
177
+ FROM analytic.v_microclimate_measurements_daily m
178
+ LEFT JOIN analytic.v_microclimate_measurement_hights h ON m.sensor_id::text = h.sensor_id::text AND m.metrika = h.measure
179
+ ORDER BY m.sensor_id, m.date;
180
+
181
+ DROP VIEW analytic.v_microclimate_wind_dir_at_max_speed;
182
+
183
+
184
+