44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from io import BytesIO
|
|
from quart import Blueprint, request, send_file
|
|
from matplotlib import pyplot as plt
|
|
|
|
from cosmic.single import SingleCosmicWavePlot
|
|
from cosmic.temp_render import temp_render
|
|
from quart.utils import run_sync
|
|
|
|
|
|
cosmic_module = Blueprint("Cosmic", __name__)
|
|
|
|
@cosmic_module.route('/metadata')
|
|
def get_meta():
|
|
return []
|
|
|
|
@cosmic_module.route('/temp_render')
|
|
async def render():
|
|
T = request.args.get("T", 16)
|
|
await run_sync(temp_render)(T=int(T))
|
|
buf = BytesIO()
|
|
|
|
plt.savefig(buf, format="png")
|
|
buf.seek(0)
|
|
return await send_file(buf, mimetype="image/png")
|
|
|
|
@cosmic_module.route('/render/single')
|
|
async def single_render():
|
|
year = request.args.get("year", 2008)
|
|
day = request.args.get("day", 1)
|
|
mode = request.args.get("mode", "mean_ktemp_Nz")
|
|
|
|
p :SingleCosmicWavePlot = await run_sync(SingleCosmicWavePlot)(year=int(year), day=int(day))
|
|
if mode == "mean_ktemp_Nz":
|
|
await run_sync(p.plot_results_mean_ktemp_Nz)()
|
|
elif mode == "mean_ktemp_Ptz":
|
|
await run_sync(p.plot_results_mean_ktemp_Ptz)()
|
|
else :
|
|
raise ValueError("Invalid mode")
|
|
|
|
buf = BytesIO()
|
|
plt.savefig(buf, format="png")
|
|
buf.seek(0)
|
|
|
|
return await send_file(buf, mimetype="image/png") |