get_rainviewer_data.py
2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import sys
import os
import time
import datetime
import json
import jsonpickle
import importlib
import urllib.request
from imageio import imread
import redis
import requests
import dateutil.parser
time_result = None
try:
time_url = 'https://tilecache.rainviewer.com/api/maps.json'
time_result = json.load(urllib.request.urlopen(time_url))
except Exception as e:
print("ERROR::{er}".format(er=e))
exit()
if time_result is None or len(time_result) < 1:
print("time result is empty")
exit()
itime = time_result[0]
last_number = len(time_result) - 1
last = 0
for in_dt in time_result:
dt_value = datetime.datetime.fromtimestamp(in_dt)
print("{}-{}".format(in_dt, dt_value))
print("DELTA = {}".format(in_dt - last))
last = in_dt
dt_value = datetime.datetime.fromtimestamp(time_result[last_number])
print("Текущий - {} -> {}".format(time_result[last_number], dt_value))
# Определяем текущий тайм-слот
_datetime = datetime.datetime.now()
cur_min = (_datetime.minute // 10) * 10
current_ts = datetime.datetime(_datetime.year, _datetime.month, _datetime.day, _datetime.hour, cur_min, 0, 0)
current_ts_ts = current_ts.timestamp()
last_ts = int(current_ts.timestamp()) + 600
'''
while datetime.datetime.now().timestamp() < last_ts:
time_result = None
time_url = 'https://tilecache.rainviewer.com/api/maps.json'
time_result = json.load(urllib.request.urlopen(time_url))
if time_result is None or len(time_result) < 1 or current_ts_ts not in time_result:
print("{} No data...".format(datetime.datetime.now()))
time.sleep(30)
continue
png_data_url = 'https://tilecache.rainviewer.com/v2/radar/{time}/256/10/{lan}/{lon}/0/0_0.png'.format(time=itime,
lan="44.417242",
lon="38.72287")
img = imread(png_data_url)
'''
url_ocm = r'http://10.110.0.37:8888/monitoring/rest/precipitation-measurements/33ce9a80-27df-41dd-8dbe-cf3ec918b4c2?time-from=2020-03-20 10:00:00&time-to=2020-03-20 16:00:00'
ocm_data = requests.get(url_ocm)
print(ocm_data.json())
data = ocm_data.json()
for data_item in data:
print("value = time-{}, sum - {}".format(data_item["time"], data_item["sum"]))
#cur_cs = datetime.datetime.fromisoformat(data_item["time"])
str = data_item["time"]
cur_cs = datetime.datetime.strptime(data_item["time"], '%Y-%m-%dT%H:%M:%SZ')
cs2 = dateutil.parser.parse(str, ignoretz=False)
cs3 = cs2.replace(tzinfo=datetime.timezone.utc).astimezone(tz=None)
cs4 = dateutil.parser.parse(str, ignoretz=False).replace(tzinfo=datetime.timezone.utc).astimezone(tz=None)
#dateutil.parser.parse(data_item["time"])
print(cur_cs)
print(cs2)
print(cs3)
print(cs4)