From 01b683a9cdaac9e7f9ebdc9ada721060d83d33f4 Mon Sep 17 00:00:00 2001 From: "David Jean du Preez (local)" Date: Wed, 2 Nov 2022 10:42:56 +0100 Subject: [PATCH] Add PM10 for tracer --- dynamic/palm_dynamic.py | 5 +++++ dynamic/palm_dynamic_output.py | 10 +++++++--- dynamic/palm_wrf_utils.py | 23 +++++++++++++++++------ 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/dynamic/palm_dynamic.py b/dynamic/palm_dynamic.py index ec2fbab..1fde309 100644 --- a/dynamic/palm_dynamic.py +++ b/dynamic/palm_dynamic.py @@ -425,6 +425,11 @@ for wrf_file in wrf_files_proc: cnt = cnt + 1 v_out = f_out.createVariable(varname, 'f4', svoc_data.dimensions) v_out[:] = regridder.regrid(v_wrf[...,regridder.ys,regridder.xs]) + # PM10 + elif varname == 'PM10': + v_wrf = f_wrf.variables[varname] + v_out = f_out.createVariable(varname.lower(), 'f4', v_wrf.dimensions) + v_out[:] = regridder.regrid(v_wrf[...,regridder.ys,regridder.xs]) else: # other dynamical & chemical variables v_wrf = f_wrf.variables[varname] diff --git a/dynamic/palm_dynamic_output.py b/dynamic/palm_dynamic_output.py index 87b5987..28f1fa5 100644 --- a/dynamic/palm_dynamic_output.py +++ b/dynamic/palm_dynamic_output.py @@ -279,8 +279,12 @@ def palm_dynamic_output(wrf_files, interp_files, dynamic_driver_file, times_sec, init_var = infile.variables['init_'+var] _val_init_var = outfile.variables['init_'+var] elif var in wrfchem_spec: - init_var = infile.variables['init_atmosphere_'+ var] - _val_init_var = outfile.variables['init_atmosphere_'+ var.upper()] + if var == 'PM10': + init_var = infile.variables['init_atmosphere_'+ var.lower()] + _val_init_var = outfile.variables['init_atmosphere_'+ var] + else: + init_var = infile.variables['init_atmosphere_'+ var] + _val_init_var = outfile.variables['init_atmosphere_'+ var.upper()] else: init_var = infile.variables['init_atmosphere_'+ var] _val_init_var = outfile.variables['init_atmosphere_'+ var] @@ -328,7 +332,7 @@ def palm_dynamic_output(wrf_files, interp_files, dynamic_driver_file, times_sec, if (var == 'h2so4' or var=='hno3' or var== 'nh3' or var== 'ocnv' or var== 'ocsv' or var == 'no' or var == 'no2' or var == 'no3'): var = var.upper() - init_var= infile.variables['init_atmosphere_'+ var.lower()] + init_var = infile.variables['init_atmosphere_'+ var.lower()] for side in boundary: _val_ls_forcing_var = outfile.variables['ls_forcing_'+ side +'_'+var] if side == 'left': diff --git a/dynamic/palm_wrf_utils.py b/dynamic/palm_wrf_utils.py index fd64b8f..1b469a5 100644 --- a/dynamic/palm_wrf_utils.py +++ b/dynamic/palm_wrf_utils.py @@ -363,18 +363,29 @@ def palm_wrf_vertical_interp(infile, outfile, wrffile, z_levels, z_levels_stag, # convert ppmv to ppm for PALM except PM10 & PM2_5_DRY: micrograms m-3 to kg/m3 def chem_from_wrfchem(wrfchem_spec): for spec in wrfchem_spec: - chem_data_raw = nc_infile.variables[spec][0] - chem_data_raw = np.r_[chem_data_raw[0:1], chem_data_raw] - if (spec == 'PM10' or spec == 'PM2_5_DRY'): + chem_data_raw = nc_infile.variables[spec.lower()][0] + chem_data_raw = np.r_[chem_data_raw[0:1], chem_data_raw] chem_data = interpolate_1d(z_levels, height, (chem_data_raw)*1e-9) - + vdata = nc_outfile.createVariable('init_atmosphere_'+spec.lower(),"f4",("Time", "z","south_north","west_east")) + vdata[0,:,:,:] = chem_data # other chemical species else: + chem_data_raw = nc_infile.variables[spec][0] + chem_data_raw = np.r_[chem_data_raw[0:1], chem_data_raw] chem_data = interpolate_1d(z_levels, height, chem_data_raw) + vdata = nc_outfile.createVariable('init_atmosphere_'+spec,"f4",("Time", "z","south_north","west_east")) + vdata[0,:,:,:] = chem_data + + # if (spec == 'PM10' or spec == 'PM2_5_DRY'): + # chem_data = interpolate_1d(z_levels, height, (chem_data_raw)*1e-9) + + # # other chemical species + # else: + # chem_data = interpolate_1d(z_levels, height, chem_data_raw) - vdata = nc_outfile.createVariable('init_atmosphere_'+spec,"f4",("Time", "z","south_north","west_east")) - vdata[0,:,:,:] = chem_data + #vdata = nc_outfile.createVariable('init_atmosphere_'+spec,"f4",("Time", "z","south_north","west_east")) + #vdata[0,:,:,:] = chem_data chem_from_wrfchem(wrfchem_spec) # ======================== AEROSOLS ===================================== -- GitLab