mattritchey commited on
Commit
8321a79
·
1 Parent(s): 5ca731a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -29
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
- def get_values(date_time, variable, level):
23
- date, time = date_time
24
- path = f"hrrrzarr/sfc/{date}/{date}_{time[-2:]}z_anl.zarr/{level}/{variable}"
25
- ds = xr.open_mfdataset([lookup(path), lookup(f"{path}/{level}")],
26
- engine="zarr")
27
  return ds[variable].values
28
 
29
-
30
- def get_hrrr_values(date, variable, level):
31
- times = [f'0{t}'[-2:] for t in range(0, 24)]
32
- date_times = [(date, t) for t in times]
33
- results = Parallel(n_jobs=24, prefer="threads")(
34
- delayed(get_values)(i, variable, level) for i in date_times)
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", placeholder='GUST')
43
- level = gr.Textbox(label="Level", placeholder='surface')
44
  greet_btn = gr.Button("Get Max")
45
- # input_vars=[date, variable, level]
46
  output = gr.Numpy(label="Max")
47
- greet_btn.click(fn=get_hrrr_values,
48
- inputs=[date, variable, level],
49
  outputs=output,api_name="addition")
50
 
51
 
52
- # demo = gr.Interface(fn=get_hrrr_values,
53
- # inputs=["text","text","text"],
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()