get_rainviewer_data.py 2.75 KB
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)