Skip to content

Commit ef7fa82

Browse files
authored
Merge pull request #3 from rcjackson/inital_repo
Initial repo
2 parents d33db1a + 60fb98d commit ef7fa82

2 files changed

Lines changed: 51 additions & 6 deletions

File tree

examples/bnf_example.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import radclss
2+
import glob
3+
import xradar as xd
4+
import xarray as xr
5+
import matplotlib.pyplot as plt
6+
7+
from dask.distributed import Client, LocalCluster
8+
9+
def main():
10+
date = '20250619'
11+
radar_files = glob.glob(f'/Volumes/Untitled/bnf/bnfcsapr2cmacS3.c1/*{date}*.nc')
12+
volumes = {'date': date,
13+
'radar': radar_files[0:2], # Limit to first 2 files for testing
14+
'sonde': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfsondewnpnM1.b1/*{date}*.cdf'),
15+
'vd_M1': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfvdisquantsM1.c1/*{date}*.nc'),
16+
'met_M1': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfmetM1.b1/*{date}*'),
17+
'met_S20': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfmetS20.b1/*{date}*'),
18+
'met_S30': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfmetS30.b1/*{date}*'),
19+
'met_S40': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfmetS40.b1/*{date}*'),
20+
'wxt_S13': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfmetwxtS13.b1/*{date}*.nc'),
21+
'pluvio_M1': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfwbpluvio2M1.a1/*{date}*.nc'),
22+
'ld_M1': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfldquantsM1.c1/*{date}*.nc'),
23+
'ld_S30': glob.glob(f'/Volumes/Untitled/bnf/in_situ/bnfldquantsS30.c1/*{date}*.nc')}
24+
25+
input_site_dict = {'M1': (34.34525, -87.33842, 293),
26+
'S4': (34.46451, -87.23598, 197),
27+
'S20': (34.65401, -87.29264, 178),
28+
'S30': (34.38501, -86.92757, 183),
29+
'S40': (34.17932, -87.45349, 236),
30+
'S13': (34.343889, -87.350556, 286)}
31+
with Client(LocalCluster(n_workers=2, threads_per_worker=1)) as client:
32+
my_columns = radclss.core.radclss(volumes, input_site_dict, serial=False, verbose=True)
33+
radclss.io.write_radclss_output(my_columns, 'radclss_example.nc', 'csapr2radclss.c2')
34+
35+
for vars in my_columns.data_vars:
36+
print(vars, my_columns[vars].dtype)
37+
fig, ax = radclss.vis.create_radclss_columns('radclss_example.nc')
38+
print(fig)
39+
plt.show()
40+
41+
if __name__ == "__main__":
42+
main()

radclss/core/radclss_core.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from dask.distributed import Client, as_completed
1212

1313
def radclss(volumes, input_site_dict, serial=True, dod_version='', discard_var={}, verbose=False,
14-
base_station="M1"):
14+
base_station="M1", current_client=None):
1515
"""
1616
Extracted Radar Columns and In-Situ Sensors
1717
@@ -50,6 +50,9 @@ def radclss(volumes, input_site_dict, serial=True, dod_version='', discard_var={
5050
Option to print additional information during processing.
5151
base_station : str, Default = "M1"
5252
The base station name to use for time variables.
53+
current_client : Dask Client, Default = None
54+
Option to supply an existing Dask client for parallel processing.
55+
Set to None to use the current active client.
5356
5457
Returns
5558
-------
@@ -65,9 +68,11 @@ def radclss(volumes, input_site_dict, serial=True, dod_version='', discard_var={
6568
# Call Subset Points
6669
columns = []
6770
if serial == False:
68-
current_client = Client.current()
6971
if current_client is None:
70-
raise RuntimeError("No Dask client found. Please start a Dask client before running in parallel mode.")
72+
try:
73+
current_client = Client.current()
74+
except ValueError:
75+
raise RuntimeError("No Dask client found. Please start a Dask client before running in parallel mode.")
7176
results = current_client.map(subset_points, volumes["radar"], sonde=volumes["sonde"], input_site_dict=input_site_dict)
7277
for done_work in as_completed(results, with_results=False):
7378
try:
@@ -147,9 +152,7 @@ def radclss(volumes, input_site_dict, serial=True, dod_version='', discard_var={
147152
# Remove all the unused CMAC variables
148153
# Drop duplicate latitude and longitude
149154
del ds_concat
150-
#except ValueError as e:
151-
# print(f"Error concatenating columns: {e}")
152-
# ds = None
155+
153156

154157
# Free up Memory
155158
del columns

0 commit comments

Comments
 (0)