-
Tor-Einar Skog authoredTor-Einar Skog authored
app.py 1.58 KiB
from flask import Flask
from flask import request
from flask import render_template
import json
import os
from ipmd_weatherdata import WeatherData, weatherdata_utils
app = Flask(__name__)
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
@app.route("/")
def index():
return render_template("usage.html")
@app.route("/weather_data")
def get_weather_data():
longitude = request.args.get("longitude", None) # WGS84
latitude = request.args.get("latitude", None) # WGS84
parameters = request.args.get("parameters", None) # Comma separated list
try:
parameters = None if parameters == None else [int(i) for i in parameters.split(",")]
except ValueError as e:
return "BAD REQUEST: Error in specified weather parameters: %s" % e, 403
interval = int(request.args.get("interval", 3600))
time_start = request.args.get("timeStart", "2021-01-01")
time_end = request.args.get("timeEnd", "2021-12-31")
# Input check
if longitude is None or latitude is None:
return "BAD REQUEST: longitude (%s) and/or latitude (%s) is not set" % (longitude, latitude), 403
wd_file = open(SITE_ROOT + "/data_files/2021_apelsvoll_redigert.json")
weather_data = WeatherData(**json.load(wd_file))
wd_file.close()
# FILTER THE DATA
# Period first
weather_data = weatherdata_utils.filter_period(weather_data,time_start,time_end)
# Parameters next
if parameters is not None:
weather_data = weatherdata_utils.filter_params(weather_data, parameters)
# Aggregation?
return weather_data.as_dict()
#return "<p>Hello, World!</p>"