zephyr-backend/radar/__init__.py
2025-01-08 12:53:55 +08:00

62 lines
1.4 KiB
Python

import asyncio
import glob
from flask import Blueprint, request, send_file
from radar.plot_original import final_plot_v1, ALL_MODEL_NAMES
from radar.plot_prod import final_plot_v2
import threading
plot_v1 = final_plot_v1
plot_v2 = final_plot_v2
all_model_names = ALL_MODEL_NAMES
globed_all_files = glob.glob("./radar/data/**/**.txt", recursive=True)
radar_module = Blueprint("Radar", __name__)
@radar_module.route("/metadata")
def get_all_files():
return globed_all_files
@radar_module.route("/metadata/models")
def get_all_models():
return all_model_names
@radar_module.route('/render/v1')
def render_v1():
"""
wind_type: Any,
year: Any,
H: Any,
model_name: Any
"""
wind_type = request.args.get('wind_type')
year = request.args.get('year')
H = request.args.get('H')
model_name = request.args.get('model_name')
station = request.args.get('station')
buf = plot_v1(wind_type, int(year), int(H), model_name, station)
return send_file(buf, mimetype='image/png')
@radar_module.route('/render/v2')
def render_v2():
"""
year: Any,
station: Any,
model_name: Any
"""
year = request.args.get('year')
station = request.args.get('station')
model_name = request.args.get('model_name')
# async_plot_v2 = asyncio.coroutine(plot_v2)
buffer = plot_v2(int(year), station, model_name)
return send_file(buffer, mimetype='image/png')