def make_plot(dir_name, in_filename, out_filename): ncf = scipy.io.netcdf.netcdf_file(dir_name + in_filename, 'r') particles = partmc.aero_particle_array_t(ncf) ncf.close() bc = particles.masses(include=["BC"]) dry_mass = particles.masses(exclude=["H2O"]) bc_frac = bc / dry_mass dry_diameters = particles.dry_diameters() * 1e6 x_axis = partmc.log_grid(min=1e-3, max=1e1, n_bin=100) y_axis = partmc.linear_grid(min=0, max=0.8, n_bin=40) hist2d = partmc.histogram_2d(dry_diameters, bc_frac, x_axis, y_axis, weights=1 / particles.comp_vols) hist2d = hist2d * 1e-6 print hist2d[36, :] (figure, axes_array, cbar_axes_array) = mpl_helper.make_fig_array(1, 1, figure_width=5, top_margin=0.5, bottom_margin=0.45, left_margin=0.65, right_margin=1, vert_sep=0.3, horiz_sep=0.3, colorbar="shared", colorbar_location="right") axes = axes_array[0][0] cbar_axes = cbar_axes_array[0] p = axes.pcolor(x_axis.edges(), y_axis.edges(), hist2d.transpose(), norm=matplotlib.colors.LogNorm(vmin=1e3, vmax=1e5), linewidths=0.1) axes.set_xscale("log") axes.set_yscale("linear") axes.set_ylabel(r"BC mass fraction $w_{\rm BC}$") axes.set_xlabel(r"dry diameter $D$/ $\rm \mu m$") axes.set_ylim(0, 0.8) axes.set_xlim(5e-3, 1e0) axes.grid(True) cbar = figure.colorbar(p, cax=cbar_axes, format=matplotlib.ticker.LogFormatterMathtext(), orientation='vertical') cbar_axes.xaxis.set_label_position('top') cbar.set_label(r"number conc. $n(D,w_{\rm BC})$ / $\rm cm^{-3}$") mpl_helper.remove_fig_array_axes(axes_array) figure.savefig(out_filename)
def make_plot(dir_name,in_filename,out_filename): ncf = scipy.io.netcdf.netcdf_file(dir_name+in_filename, 'r') particles = partmc.aero_particle_array_t(ncf) env_state = partmc.env_state_t(ncf) ncf.close() dry_diameters = particles.dry_diameters() * 1e6 s_crit = (particles.critical_rel_humids(env_state) - 1)*100 x_axis = partmc.log_grid(min=1e-3,max=1e1,n_bin=100) y_axis = partmc.log_grid(min=1e-3,max=1e2,n_bin=50) hist2d = partmc.histogram_2d(dry_diameters, s_crit, x_axis, y_axis, weights = particles.num_concs) hist2d = hist2d * 1e-6 (figure, axes_array, cbar_axes_array) = mpl_helper.make_fig_array(1,1, figure_width=5, top_margin=0.5, bottom_margin=0.45, left_margin=0.65, right_margin=1, vert_sep=0.3, horiz_sep=0.3, colorbar="shared", colorbar_location="right") axes = axes_array[0][0] cbar_axes = cbar_axes_array[0] p = axes.pcolor(x_axis.edges(), y_axis.edges(), hist2d.transpose(), norm = matplotlib.colors.LogNorm(vmin=1e3, vmax=1e5), linewidths = 0.1) axes.set_xscale("log") axes.set_yscale("log") axes.set_ylabel(r"crit. supersat. $S_{\rm c}$") axes.set_xlabel(r"dry diameter $D$/ $\rm \mu m$") axes.set_ylim(1e-3,10) axes.set_xlim(5e-3, 1e0) axes.grid(True) cbar = figure.colorbar(p, cax=cbar_axes, format=matplotlib.ticker.LogFormatterMathtext(), orientation='vertical') cbar_axes.xaxis.set_label_position('top') cbar.set_label(r"number conc. $n(D,S_{\rm c})$ / $\rm cm^{-3}$") mpl_helper.remove_fig_array_axes(axes_array) figure.savefig(out_filename) plt.close()
axes = axes_array[1][0] p = axes.scatter(emit_diam[emit_afternoon], time_for_aging[emit_afternoon], c=aging_no3_fraction[emit_afternoon], norm=matplotlib.colors.Normalize(vmin=0, vmax=1), s=2, linewidths=0) axes.set_xscale("log") axes.set_yscale("linear") axes.set_ylim(0, 15) axes.set_ylabel(r"per-particle aging time / h") axes.grid(True) axes = axes_array[0][0] p = axes.scatter(emit_diam[emit_night], time_for_aging[emit_night], c=aging_no3_fraction[emit_night], norm=matplotlib.colors.Normalize(vmin=0, vmax=1), s=2, linewidths=0) axes.set_xscale("log") axes.set_yscale("linear") axes.set_ylim(0, 15) axes.set_ylabel(r"per-particle aging time / h") axes.set_xlabel(r"dry diameter at emission $D_{\rm dry}$ / m") axes.grid(True) mpl_helper.remove_fig_array_axes(axes_array) figure.savefig("aging_no3_fraction_at_aging_wc_03.pdf")
) cbar.set_ticks([1e-7, 1e-5, 1e-3, 1e-1, 1e1]) axes = axes_array[0][1] cbar_axes = cbar_axes_array[0][1] p = axes.pcolor(x_array_scrit, y_array_scrit, mass_scrit.transpose(), linewidths=0.1, norm=matplotlib.colors.LogNorm(vmin=mass_sc_min, vmax=mass_sc_max)) axes.set_xscale("log") axes.set_yscale("log") axes.set_xlim(5e-3, 5) axes.set_ylim(1e-3, 1e2) axes.set_xlabel(r"dry diameter $D_{\rm dry}$ / $\rm \upmu m$") axes.grid(True) cbar = figure.colorbar(p, cax=cbar_axes, format=matplotlib.ticker.LogFormatterMathtext(), orientation='horizontal') cbar_axes.xaxis.set_label_position('top') cbar.set_label( r"mass conc. $m^{\rm BC}(D_{\rm dry},S_{\rm c})$ / $(\rm \upmu g \ m^{-3})$" ) cbar.set_ticks([1e-7, 1e-5, 1e-3, 1e-1, 1e1]) mpl_helper.remove_fig_array_axes(axes_array, remove_x_axes=False) figure.savefig("figs/num_mass_bc_scrit_diameter_compo_2d_corrected2.pdf")