diff --git a/dynamic/palm_dynamic.py b/dynamic/palm_dynamic.py index ec2fbab82d50c972a710d59f5fea85302cd85fda..1fde309e7950436616dd2767e9a97533d5b95c35 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 87b59879da0e501742d59f464ff230fe04e82caa..28f1fa53cedaa3ab6bda482e82c3ae36ee6a30b5 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 fd64b8f30223cc1d41e289f895052e39e17635c0..1b469a57d3e6d65bd06237edb1addb10116dcda4 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 =====================================