From e2bb009da01f449f0f8fb691d1c1d3295fd6fb2e Mon Sep 17 00:00:00 2001 From: jrobrien91 Date: Fri, 23 Feb 2024 15:22:27 -0500 Subject: [PATCH 1/4] ADD: Updated CMAC DOD file --- data/meta/sail_cmac_dod_v3.nc | Bin 0 -> 359365 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 data/meta/sail_cmac_dod_v3.nc diff --git a/data/meta/sail_cmac_dod_v3.nc b/data/meta/sail_cmac_dod_v3.nc new file mode 100644 index 0000000000000000000000000000000000000000..64679b666ae9d76f05addeed434014a092030f7f GIT binary patch literal 359365 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 literal 0 HcmV?d00001 From 0471a0339bbf748749e84221cee4296b674b0af8 Mon Sep 17 00:00:00 2001 From: jrobrien91 Date: Fri, 23 Feb 2024 15:23:11 -0500 Subject: [PATCH 2/4] DEL: Removing v2 of the CMAC DOD --- data/meta/sail_cmac_dod_v2.nc | Bin 275171 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 data/meta/sail_cmac_dod_v2.nc diff --git a/data/meta/sail_cmac_dod_v2.nc b/data/meta/sail_cmac_dod_v2.nc deleted file mode 100644 index 366d3820c32fb9cd30585ab0bc6c46469eeb67de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275171 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 Date: Fri, 23 Feb 2024 16:31:16 -0500 Subject: [PATCH 3/4] ENH: refactor of processing script for b1 level glue file creation --- scripts/sail_glue.py | 278 +++++++++++++++++++++++-------------------- 1 file changed, 151 insertions(+), 127 deletions(-) diff --git a/scripts/sail_glue.py b/scripts/sail_glue.py index f1701a0..2e7452b 100644 --- a/scripts/sail_glue.py +++ b/scripts/sail_glue.py @@ -1,149 +1,173 @@ -""" -Script to concatenate, or "glue", CSU X-Band radar elevation scans into a single volume +import warnings +warnings.filterwarnings("ignore", category=DeprecationWarning) +warnings.filterwarnings("ignore", category=UserWarning) -Written: Joe O'Brien - 15 Sept 2022 -""" - -import os -import sys -import numpy as np +import glob import time import datetime +import numpy as np +import xarray as xr +import tempfile +from pathlib import Path +import shutil +import argparse -from dask.distributed import Client, LocalCluster +from dask.distributed import Client, LocalCluster, progress import pyart #----------------- # Define Functions #----------------- -# Define syntax. -def help_message(): - print('\n') - print('Syntax: sail_glue.py input_path output_path\n\n') - print('PURPOSE: ') - print(' To Create Volume Scans from Individual SAIL CSU X-Band Elevation Scans \n') - print(' INPUT: ') - print(' input_path - Directory Path to SAIL Data ') - print(' output_path - Directory Path to Output Data\n') - print(' Example: python sail_glue.py /202203/ /202203/glued \n') +def glue_fix(ds): + # Define the required encodings for the glue files + encodings = {'DBZ' : {'_FillValue' : -32768.0}, + 'VEL' : {'_FillValue' : -32768.0}, + 'WIDTH' : {'_FillValue' : -32768.0}, + 'ZDR' : {'_FillValue' : -32768.0}, + 'PHIDP' : {'_FillValue' : -32768.0}, + 'RHOHV' : {'_FillValue' : -32768.0}, + 'NCP' : {'_FillValue' : -32768.0}, + 'DBZhv' : {'_FillValue' : -32768.0}, + } + + # Loop over all the variables; update the FillValue and Data Type + for var in encodings: + # Convert all values within the DataArray to the correct Fill Value + # NOTE: xr.where(condition, value_when_condition_is_not_met); so if every index is MVC, check for opposite + mask = ds[var].where(ds[var] > -99800, encodings[var]['_FillValue']) + # Append the corrected data to the variable. + ds[var] = mask + + return ds def radar_glue(b_radar, radar_list): - for rad in radar_list: - b_radar = pyart.util.join_radar(b_radar, rad) - + if radar_list is not None: + for rad in radar_list: + b_radar = pyart.util.join_radar(b_radar, rad) + del rad + else: + b_radar = None return b_radar -def volume_from_list(vlist): +def volume_from_list(base_radar, vlist, base_dir): try: - base_radar = pyart.io.read(vlist[0]) - radars = [pyart.io.read(sw) for sw in vlist[1::]] - glue = radar_glue(base_radar, radars) - del base_radar - del radars + radars = [pyart.io.read(base_dir+sw) for sw in vlist[1::]] except: - glue = [] - pass - - return glue - -def granule(Dvolume, OUT_DIR): - #OUTPUT_DIR = '/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/202203_glue/' + radars = None + return radar_glue(base_radar, radars) + +def fix_times(ds): + # Determine number of specific times within the file + specific = set(ds.time.data) + # Loop through the specific times, and add offset + for value in specific: + dt = np.arange(0, len(ds.sel(time=slice(value, value)).time.data)) + dt = dt.astype('timedelta64[ms]') + # add the time offset to the original times + new_times = ds.sel(time=slice(value, value)).time.data + dt + ds.sel(time=slice(value, value)).time.data[:] = new_times + # Send back to the main + return ds + +def granule(Dvolume): + n_tilts = 8 + month = "202203" + data_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/nc_files/" + month + "_nc/" + out_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/" + month + "_glued/" + + # Read the base scan to determine if it can be read in if len(Dvolume) == 8: try: - base_rad = pyart.io.read(Dvolume[0]) - - out_radar = volume_from_list(Dvolume) - if out_radar: + base_rad = pyart.io.read(data_dir+Dvolume[0]) + except: + base_rad = None + # Read all scans and join with base scan + if base_rad is not None: + out_radar = volume_from_list(base_rad, Dvolume, data_dir) + if out_radar is not None: + # Define the filename time from the radar object ff = time.strptime(out_radar.time['units'][14:], '%Y-%m-%dT%H:%M:%SZ') - dt = datetime.datetime.fromtimestamp(time.mktime(ff)) + datetime.timedelta(seconds = int(out_radar.time['data'][0])) - strform = dt.strftime(OUTPUT_DIR + 'xprecipradar_guc_volume_%Y%m%d-%H%M%S.b1.nc') - print(strform) + dt = datetime.datetime.fromtimestamp(time.mktime(ff)) + datetime.timedelta(seconds= int(out_radar.time['data'][0])) + strform = dt.strftime(out_dir + 'xprecipradar_guc_volume_%Y%m%d-%H%M%S.b1.nc') #FIX for join issue.. to be fixed in Py-ART - out_radar.sweep_mode['data'] = np.tile(base_rad.sweep_mode['data'], N_TILTS) - nwrite = pyart.io.write_cfradial(strform, out_radar) + out_radar.sweep_mode['data']=np.tile(base_rad.sweep_mode['data'], n_tilts) + try: + pyart.io.write_cfradial(strform, out_radar, arm_time_variables=True) + print('SUCCESS', strform) + except: + print('FAILURE', strform) + # Delete the radars to free up memory + del base_rad del out_radar - del nwrite - del base_rad - except: - print("FAILED GRANULE") - pass - -#----------------- -# Input Parameters -#----------------- -# Check input parameters. -for param in sys.argv: - if param.startswith('-h') | param.startswith('-help') | param.startswith('--h'): - help_message() - exit() -# Check to make sure correct number of input parameters are sent. -if (len(sys.argv) > 2): - OUTPUT_DIR = sys.argv[-2] - DATA_DIR = sys.argv[-1] -else: - help_message() - exit() - -#---------------------------- -# Define processing variables -#---------------------------- -# Define location of the raw data - NOTE: Must be untarred! -#DATA_DIR = '/Users/jrobrien/ARM/data/CSU-XPrecipRadar/raw/tmp/' -# Define the suffix of the base scan -BASE_SCAN_PPI = '1_PPI.nc' -# Define the desired suffix of the volume file -PPI_PATTERN = 'PPI.nc' -# Define the number of elevation levels -N_TILTS = 8 - -# Select the days to process -DAY = 'gucxprecipradarS2.00.' + '202203*' - -#-------------------- -# Create Volume Scans -#-------------------- -# sort the input files -all_files = glob.glob(DATA_DIR + '*.nc') -all_files.sort() - -# Iterate over the files within the directory. -# Determine which are base scans and which are ppi scans -# NOTE: There are RHI scans within the tar file not used. -base_scans = [] -volumes = [] -ppis = [] -in_volume = False -for file in all_files: - if PPI_PATTERN in file: - ppis.append(file) - if BASE_SCAN_PPI in file: - base_scans.append(file) - -# Determine the scan volumes -volumes = [] -for base in base_scans: - base_scan_index = np.where(np.array(ppis) == base)[0][0] - volume = ppis[base_scan_index: base_scan_index + N_TILTS] - volumes.append(volume) - -#-------------------- -# Setup Dask Cluster -#-------------------- - -# Start up a Dask Cluster for Processing the Granule function -from dask.distributed import Client, LocalCluster - -cluster = LocalCluster() - -#cluster.scale(16) # Sets the number of workers to 10 -#cluster.adapt(minimum=8, maximum=16) -client = Client(cluster) - -# Use Dask distributed map utility to call the granule function -future = client.map(granule, volumes, OUTPUT_DIR) - -my_data = client.gather(future) + # Fix the times and encodings of the generated file + with tempfile.TemporaryDirectory() as tmpdir: + tmp_path = Path(tmpdir) + with xr.open_dataset(strform, mask_and_scale=False) as ds: + ds = ds.load() + ds = fix_times(ds) + ds = glue_fix(ds) + out_path = str(tmp_path) + '/' + strform.split('/')[-1] + # set time encoding for miliseconds + ds.time.encoding['units'] = 'milliseconds since 1970-01-01' + ds.to_netcdf(path=out_path) + shutil.copy(out_path, strform) + +def main(args): + print("process start time: ", time.strftime("%H:%M:%S")) + # Define directories + month = args.month + path = '/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/nc_files/%s_nc/*.nc' % month + out_path = '/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/%s_glued/' % month + + # Define files and determine volumes + all_files = sorted(glob.glob(path)) + base_scan_ppi = '1_PPI.nc' + ppi_pattern = 'PPI.nc' + base_scans = [] + volumes = [] + ppis = [] + in_volume = False + for file in all_files: + if ppi_pattern in file: + ppis.append(file) + if base_scan_ppi in file: + base_scans.append(file) + + n_tilts = 8 -# Check on the client -#print(client) \ No newline at end of file + volumes = [] + for base in base_scans: + base_scan_index = np.where(np.array(ppis) == base)[0][0] + volume = ppis[base_scan_index: base_scan_index+n_tilts] + volumes.append(volume) + + if args.serial is True: + print('Serial Processing Enabled') + granule(volumes[0]) + else: + cluster = LocalCluster(n_workers=20, processes=True, threads_per_worker=1) + with Client(cluster) as c: + results = c.map(granule, volumes) + wait(results) + print("processing finished: ", time.strftime("%H:%M:%S")) + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Creation of .b1 glue files for SAIL") + + parser.add_argument("--month", + default="202203", + dest='month', + type=str, + help="Month to process in YYYYMM format" + ) + parser.add_argument("--serial", + default=False, + dest='serial', + type=bool, + help="Process in Serial" + ) + args = parser.parse_args() + + main(args) \ No newline at end of file From d414685e421063cdcd43b20d0105e095019cb091 Mon Sep 17 00:00:00 2001 From: jrobrien91 Date: Mon, 26 Feb 2024 14:55:26 -0500 Subject: [PATCH 4/4] ENH: working verson on Cumulus --- scripts/sail_glue.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/scripts/sail_glue.py b/scripts/sail_glue.py index 2e7452b..714f3a1 100644 --- a/scripts/sail_glue.py +++ b/scripts/sail_glue.py @@ -12,7 +12,7 @@ import shutil import argparse -from dask.distributed import Client, LocalCluster, progress +from dask.distributed import Client, LocalCluster, progress, wait import pyart @@ -50,9 +50,9 @@ def radar_glue(b_radar, radar_list): b_radar = None return b_radar -def volume_from_list(base_radar, vlist, base_dir): +def volume_from_list(base_radar, vlist): try: - radars = [pyart.io.read(base_dir+sw) for sw in vlist[1::]] + radars = [pyart.io.read(sw) for sw in vlist[1::]] except: radars = None return radar_glue(base_radar, radars) @@ -71,20 +71,22 @@ def fix_times(ds): return ds def granule(Dvolume): + print('in granule') n_tilts = 8 - month = "202203" - data_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/nc_files/" + month + "_nc/" - out_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/" + month + "_glued/" + #data_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/nc_files/" + month + "_nc/" + #out_dir = "/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/" + month + "_glued/" + month = Dvolume[0].split('/')[-2].split('_')[0] + out_dir = Dvolume[0].split('nc_files')[0] + "glue_files/" + month + "_glued/" # Read the base scan to determine if it can be read in if len(Dvolume) == 8: try: - base_rad = pyart.io.read(data_dir+Dvolume[0]) + base_rad = pyart.io.read(Dvolume[0]) except: base_rad = None # Read all scans and join with base scan if base_rad is not None: - out_radar = volume_from_list(base_rad, Dvolume, data_dir) + out_radar = volume_from_list(base_rad, Dvolume) if out_radar is not None: # Define the filename time from the radar object ff = time.strptime(out_radar.time['units'][14:], '%Y-%m-%dT%H:%M:%SZ') @@ -119,7 +121,7 @@ def main(args): month = args.month path = '/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/nc_files/%s_nc/*.nc' % month out_path = '/gpfs/wolf/atm124/proj-shared/gucxprecipradarS2.00/glue_files/%s_glued/' % month - + # Define files and determine volumes all_files = sorted(glob.glob(path)) base_scan_ppi = '1_PPI.nc' @@ -128,11 +130,11 @@ def main(args): volumes = [] ppis = [] in_volume = False - for file in all_files: - if ppi_pattern in file: - ppis.append(file) - if base_scan_ppi in file: - base_scans.append(file) + for nfile in all_files: + if ppi_pattern in nfile: + ppis.append(nfile) + if base_scan_ppi in nfile: + base_scans.append(nfile) n_tilts = 8 @@ -143,7 +145,6 @@ def main(args): volumes.append(volume) if args.serial is True: - print('Serial Processing Enabled') granule(volumes[0]) else: cluster = LocalCluster(n_workers=20, processes=True, threads_per_worker=1) @@ -170,4 +171,4 @@ def main(args): ) args = parser.parse_args() - main(args) \ No newline at end of file + main(args)