Spaces:
Sleeping
Sleeping
File size: 1,941 Bytes
c840faa 9b33ada adcc894 9b33ada f75cf1f adcc894 c840faa f75cf1f adcc894 9b33ada c840faa 6f62e72 c840faa f75cf1f c840faa 9b33ada |
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 |
# -*- coding: utf-8 -*-
"""
Created on Fri Jun 9 09:12:15 2023
@author: mritchey
"""
import gradio as gr
from joblib import Parallel, delayed
import pandas as pd
import rioxarray
import xarray as xr
import numpy as np
from tqdm import tqdm
def get_rtma_data(date_time,var='GUST'):
dt=date_time.strftime('%Y%m%d%H%M')
date=dt[:8]
year,month,day,time=dt[:4],dt[4:6],dt[6:8],dt[8:]
url=f'https://mtarchive.geol.iastate.edu/{year}/{month}/{day}/grib2/ncep/RTMA/{date}{time}_{var}.grib2'
try:
ds_values = xr.open_rasterio(url).values
except:
ds_values=url
return ds_values
def get_rtma_values(date,time,days_head,variable):
start_date=pd.to_datetime(date+time)
end_date = start_date + pd.DateOffset(days=int(days_head))
hourly_range = pd.date_range(start=start_date, end=end_date, freq='H')
mat=Parallel(n_jobs=16)(delayed(get_rtma_data)(date_time,variable) for date_time in tqdm(hourly_range[:2]))
mat = [x[0] for x in mat if isinstance(x, np.ndarray)]
mat=np.array(mat)
mat_max=np.max(mat,axis=0)
# mat_min=np.min(mat,axis=0)
# mat_mean=np.mean(mat,axis=0)
# mat_std=np.std(mat,axis=0)
# return mat
# return [mat_max,mat_min,mat_mean,mat_std]
return mat_max
with gr.Blocks(show_api=True) as demo:
date = gr.Textbox(label="Date",placeholder='20220927')
time = gr.Textbox(label="Time",placeholder='1200')
days_head = gr.Textbox(label="Days Ahead" ,placeholder='1')
variable = gr.Textbox(label="Variable",placeholder='GUST')
greet_btn = gr.Button("Get Matrix")
output = gr.Numpy(label="Matrix")
greet_btn.click(fn=get_rtma_values,
inputs=[date, time, days_head, variable],
outputs=output,
api_name="rtma range")
demo.launch()
# date='20220927'
# time='1200'
# days_head=1
# variable='GUST'
# # get_rtma_values(date,time,days_head,variable) |