Beispiel #1
0
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()
Beispiel #3
0
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")