Spaces:
Sleeping
Sleeping
Commit
·
8321a79
1
Parent(s):
5ca731a
Update app.py
Browse files
app.py
CHANGED
@@ -5,52 +5,48 @@ Created on Tue Feb 21 11:44:34 2023
|
|
5 |
@author: mritchey
|
6 |
"""
|
7 |
|
8 |
-
#HRRR Zarr
|
9 |
import gradio as gr
|
10 |
from joblib import Parallel, delayed
|
11 |
-
import s3fs
|
12 |
-
import xarray as xr
|
13 |
import numpy as np
|
14 |
|
15 |
s3 = s3fs.S3FileSystem(anon=True)
|
16 |
|
17 |
-
|
18 |
def lookup(path):
|
19 |
return s3fs.S3Map(path, s3=s3)
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
date
|
24 |
-
|
25 |
-
|
26 |
-
engine="zarr")
|
27 |
return ds[variable].values
|
28 |
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
ds_all = np.stack(results)
|
36 |
-
ds_max = ds_all.max(axis=0)
|
37 |
return ds_max
|
38 |
|
|
|
|
|
|
|
|
|
|
|
39 |
|
40 |
-
with gr.Blocks() as demo:
|
41 |
date = gr.Textbox(label="Date")
|
42 |
-
variable = gr.Textbox(label="Variable",
|
43 |
-
level = gr.Textbox(label="Level",
|
44 |
greet_btn = gr.Button("Get Max")
|
45 |
-
# input_vars=[date, variable, level]
|
46 |
output = gr.Numpy(label="Max")
|
47 |
-
greet_btn.click(fn=
|
48 |
-
inputs=[date, variable, level],
|
49 |
outputs=output,api_name="addition")
|
50 |
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
# outputs="text",
|
55 |
-
# show_api=True)
|
56 |
-
demo.launch()
|
|
|
5 |
@author: mritchey
|
6 |
"""
|
7 |
|
|
|
8 |
import gradio as gr
|
9 |
from joblib import Parallel, delayed
|
10 |
+
import s3fs
|
11 |
+
import xarray as xr
|
12 |
import numpy as np
|
13 |
|
14 |
s3 = s3fs.S3FileSystem(anon=True)
|
15 |
|
|
|
16 |
def lookup(path):
|
17 |
return s3fs.S3Map(path, s3=s3)
|
18 |
|
19 |
+
def get_values(date_time,variable,level):
|
20 |
+
date,time=date_time
|
21 |
+
path = f"hrrrzarr/sfc/{date}/{date}_{time[-2:]}z_anl.zarr/{level}/{variable}"
|
22 |
+
ds = xr.open_mfdataset([lookup(path), lookup(f"{path}/{level}")],
|
23 |
+
engine="zarr")
|
|
|
24 |
return ds[variable].values
|
25 |
|
26 |
+
def get_hrrr_values(date,variable,level):
|
27 |
+
times=[f'0{t}'[-2:] for t in range(0,24)]
|
28 |
+
date_times=[(date,t) for t in times]
|
29 |
+
results=Parallel(n_jobs=24, prefer="threads")(delayed(get_values)(i,variable,level) for i in date_times)
|
30 |
+
ds_all=np.stack(results)
|
31 |
+
ds_max=ds_all.max(axis=0)
|
|
|
|
|
32 |
return ds_max
|
33 |
|
34 |
+
def multiple_dates(dates,variable,level):
|
35 |
+
dates=dates.split(";")
|
36 |
+
results=Parallel(n_jobs=6)(delayed(get_hrrr_values)(i,variable,level) for i in dates)
|
37 |
+
return results
|
38 |
+
|
39 |
|
40 |
+
with gr.Blocks(show_api=True) as demo:
|
41 |
date = gr.Textbox(label="Date")
|
42 |
+
variable = gr.Textbox(label="Variable",placeholder='GUST')
|
43 |
+
level = gr.Textbox(label="Level",placeholder='surface')
|
44 |
greet_btn = gr.Button("Get Max")
|
|
|
45 |
output = gr.Numpy(label="Max")
|
46 |
+
greet_btn.click(fn=multiple_dates,
|
47 |
+
inputs=[date, variable, level],
|
48 |
outputs=output,api_name="addition")
|
49 |
|
50 |
|
51 |
+
|
52 |
+
demo.launch()
|
|
|
|
|
|