Example #1
0
def plot_perc_err():
   (figure, axes) = mpl_helper.make_fig(figure_width=(12 / 2.54), left_margin=0.7, bottom_margin=0.42, right_margin=0.2, top_margin=0.2)
   num_edges = np.genfromtxt('./data2/Mean_perc_err_100_workers_num_edges.txt')
   err_w_r = np.genfromtxt('./data2/Mean_perc_err_100_workers_perc_err_w_r.txt')
   err_wo_r = np.genfromtxt('./data2/Mean_perc_err_100_workers_perc_err_wo_r.txt')
   err_w = np.genfromtxt('./data2/Mean_perc_err_100_workers_perc_err_w.txt')
   err_wo = np.genfromtxt('./data2/Mean_perc_err_100_workers_perc_err_wo.txt')

   axes.plot(num_edges, err_w_r, 'k-', label='random with prior')
   axes.plot(num_edges, err_wo_r, 'b-', label='random without prior')
   axes.plot(num_edges, err_w, 'r-', label='adaptive with prior')
   axes.plot(num_edges, err_wo, 'g-', label='adaptive without prior')

   axes.set_yscale('log')
   axes.set_xlabel('number of edges')
   axes.set_ylabel('assignment error + std dev (percent)')
   axes.grid(b=1, which='major', linestyle='-')
   axes.grid(b=1, which='minor', linestyle=':')
   axes.legend(loc=0)
   return(figure,axes)
#!/usr/bin/env python

import sys, os
sys.path.append("../../tool")
import mpl_helper
import matplotlib
import scipy.io, numpy

for (filename, index) in mpl_helper.get_filename_list(
        'out/', r'urban_plume_([0-9]+)_process\.nc'):
    (figure, axes, cbar_axes) = mpl_helper.make_fig(left_margin=0.7,
                                                    right_margin=1,
                                                    colorbar=True)

    ncf = scipy.io.netcdf_file(filename)
    diam_edges = ncf.variables["diam_edges"].data.copy() * 1e6
    bc_frac_edges = ncf.variables["bc_frac_edges"].data.copy() * 100
    diam_bc_dist = ncf.variables["diam_bc_dist"].data.copy() * 1e-6

    p = axes.pcolor(diam_edges,
                    bc_frac_edges,
                    diam_bc_dist,
                    norm=matplotlib.colors.LogNorm(vmin=1e3, vmax=1e5),
                    linewidths=0.1)

    axes.set_xscale("log")
    axes.set_xlabel(r"dry diameter $D_{\rm dry}$ / $\rm \mu m$")
    axes.set_xlim(1e-2, 1e0)

    axes.set_yscale("linear")
    axes.set_ylabel(r"BC mass fraction $w_{\rm BC}$ / \%")
#!/usr/bin/env python

import sys, os
sys.path.append("../../tool")
import mpl_helper
import scipy.io, numpy

(figure, axes) = mpl_helper.make_fig(right_margin=0.8)
axes2 = axes.twinx()

ncf = scipy.io.netcdf_file("out/urban_plume_process.nc")
time = ncf.variables["time"].data / 3600
num_conc = ncf.variables["tot_num_conc"].data / 1e6
num_conc_err = ncf.variables["tot_num_conc_ci_offset"].data / 1e6
mass_conc = ncf.variables["tot_mass_conc"].data * 1e9
mass_conc_err = ncf.variables["tot_mass_conc_ci_offset"].data * 1e9

axes.errorbar(time, num_conc, num_conc_err, fmt="b-")
axes2.errorbar(time, mass_conc, mass_conc_err, fmt="r-")
axes.set_xlabel(r"time / h")
axes.set_ylabel(r"num. conc. / $\rm cm^{-3}$")
axes2.set_ylabel(r"mass conc. / $\rm \mu g\ m^{-3}$")
axes.grid(True)

figure.savefig("out/urban_plume_total.pdf")
#!/usr/bin/env python

import sys, os
sys.path.append("../../tool")
import mpl_helper
import matplotlib
import partmc
import scipy.io, numpy

for (filename, index) in partmc.get_filename_list('out/', r'urban_plume_([0-9]+)_process\.nc'):
    (figure, axes, cbar_axes) = mpl_helper.make_fig(left_margin=0.6, right_margin=1, colorbar=True)

    ncf = scipy.io.netcdf_file(filename)
    diam_edges = ncf.variables["diam_edges"].data * 1e6
    sc_edges = ncf.variables["sc_edges"].data * 100
    diam_sc_dist = ncf.variables["diam_sc_dist"].data * 1e-6

    p = axes.pcolor(diam_edges, sc_edges, diam_sc_dist,
                    norm = matplotlib.colors.LogNorm(vmin=1e3, vmax=1e5), linewidths = 0.1)

    axes.set_xscale("log")
    axes.set_xlabel(r"dry diameter $D_{\rm dry}$ / $\rm \mu m$")
    axes.set_xlim(1e-2, 1e0)

    axes.set_yscale("log")
    axes.set_ylabel(r"critical supersaturation $S_{\rm c}$ / \%")
    axes.set_ylim(1e-2, 1e2)

    axes.grid(True)
    cbar = figure.colorbar(p, cax=cbar_axes, format=matplotlib.ticker.LogFormatterMathtext(),
                           orientation='vertical')
Example #5
0
#!/usr/bin/env python
import sys, os
sys.path.append("../../../aq_partmc/tool/")
import mpl_helper
import scipy.io, numpy
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import numpy as np
import pylab
import csv
(figure, axes) = mpl_helper.make_fig(right_margin=0.8)
#axes2 = axes.twinx()

# input the file
#f1  = scipy.io.netcdf_file("out_right_low/cloud_parcel_process.nc",'r',mmap=False)
f1 = scipy.io.netcdf_file(
    "../urban-plume/out_5h/urban_plume_aq_chem_b_process.nc", 'r', mmap=False)
f2 = scipy.io.netcdf_file(
    "../urban-plume/out_5h_avcomp_onebin/urban_plume_aq_chem_b_process.nc",
    'r',
    mmap=False)

# get the variables
time = f1.variables["time"].data / 60
dens1 = f1.variables["density"].data  # unit: kg/m3
dens2 = f2.variables["density"].data  # unit: kg/m3
sul1 = f1.variables["tot_so4_conc"].data * 29 / 96 * 1e9 / dens1 + f1.variables[
    "tot_HSO4m_conc"].data * 29 / 97 * 1e9 / dens1
sul2 = f2.variables["tot_so4_conc"].data * 29 / 96 * 1e9 / dens2 + f2.variables[
    "tot_HSO4m_conc"].data * 29 / 97 * 1e9 / dens2
Example #6
0
i_weight = 0
for weight in ["wei+1", "flat", "wei-1", "wei-2", "wei-3", "wei-4", "mfa"]:

    index_1K = 3*i_weight
    index_10K = 3*i_weight + 1

    error_ratio_1K_num[i_weight] = abs(num_avg_overall[index_1K+1, 99] - num_avg_overall[index_1K, 99])/(r*num_std_overall[index_1K,99])
    error_ratio_10K_num[i_weight] = abs(num_avg_overall[index_10K+1, 99] - num_avg_overall[index_10K, 99])/(r*num_std_overall[index_10K,99])

    error_ratio_1K_mass[i_weight] = abs(mass_avg_overall[index_1K+1, 99] - mass_avg_overall[index_1K, 99])/(r*mass_std_overall[index_1K,99])
    error_ratio_10K_mass[i_weight] = abs(mass_avg_overall[index_10K+1, 99] - mass_avg_overall[index_10K, 99])/(r*mass_std_overall[index_10K,99])
    i_weight += 1

weight_array = [1, 0, -1, -2, -3, -4]

(figure, axes) = mpl_helper.make_fig(figure_width = 0.7*config.figure_width_double, top_margin=0.2, bottom_margin=0.4,left_margin=0.6, right_margin=1.3)
l_n_1e3 = axes.plot(weight_array, error_ratio_1K_num[0:6], label = r"${\rm ER_N}(10^3,10^4)$")
l_n_1e4 = axes.plot(weight_array, error_ratio_10K_num[0:6], label = r"${\rm ER_N}(10^4,10^5)$")
l_m_1e3 = axes.plot(weight_array, error_ratio_1K_mass[0:6], label = r"${\rm ER_M}(10^3,10^4)$")
l_m_1e4 = axes.plot(weight_array, error_ratio_10K_mass[0:6], label = r"${\rm ER_M}(10^4,10^5)$")
axes.grid(True)
#axes.legend()
axes.set_ylim(0, 0.8)
axes.set_xlabel(r"weighting exponent $\alpha$ ")
axes.set_ylabel(r"error ratio $\rm ER$")
axes.legend((l_n_1e3,l_n_1e4,l_m_1e3,l_m_1e4), 
              (r"${\rm ER_N}(10^3,10^4)$", r"${\rm ER_N}(10^4,10^5)$", 
               r"${\rm ER_M}(10^3,10^4)$", r"${\rm ER_M}(10^4,10^5)$"), loc='center left', bbox_to_anchor = (1.0,0.5),ncol=1)

figure.savefig("figs/er_alpha.pdf")
Example #7
0
    "equilib_rhs_evaporation_grid_130.txt")
equilibrium_rhs_deactivation_grid_130 = np.loadtxt(
    "equilib_rhs_deactivation_grid_130.txt")
equilibrium_rhs_inertial_grid_130 = np.loadtxt(
    "equilib_rhs_inertial_grid_130.txt")

equilibrium_rhs_not_activate_grid_150 = np.loadtxt(
    "equilib_rhs_not_activate_grid_150.txt")
equilibrium_rhs_evaporation_grid_150 = np.loadtxt(
    "equilib_rhs_evaporation_grid_150.txt")
equilibrium_rhs_deactivation_grid_150 = np.loadtxt(
    "equilib_rhs_deactivation_grid_150.txt")
equilibrium_rhs_inertial_grid_150 = np.loadtxt(
    "equilib_rhs_inertial_grid_150.txt")

(figure, axes) = mpl_helper.make_fig()
l1 = axes.plot(seconds, diam_not_activate)
l2 = axes.plot(seconds, diam_evaporation)
l3 = axes.plot(seconds, diam_deactivation)
l4 = axes.plot(seconds, diam_inertial)
axes.grid(True)
axes.set_yscale("log")
axes.set_xlabel(r"time in seconds ")
axes.set_ylabel(r"wet diameter")
axes.legend((l1, l2, l3, l4),
            ("not activate", "evaporation", "deactivation", "inertial"))
figure.savefig("figs/diameters.pdf")

(figure, axes) = mpl_helper.make_fig()
axes.plot(seconds, rh_eq_not_activate)
axes.plot(seconds, rh_eq_evaporation)
def grid_box_histogram(time):

    # filename prefix
    dir = config.data_dir
    prefix = config.file_prefix
    filename =  '%s_%08i.nc' %(prefix,time)

    # make grids
    diam_axis = partmc.log_grid(min=1e-9,max=1e-6,n_bin=60)
    bc_axis = partmc.linear_grid(min=0,max=1.,n_bin=50)

    # load the file
    ncf = scipy.io.netcdf.netcdf_file(config.data_dir+'/'+filename, 'r')
    particles = partmc.aero_particle_array_t(ncf)
    ncf.close()

    # compute the values
    bc = particles.masses(include = ["BC"])
    dry_mass = particles.masses(exclude = ["H2O"])
    bc_frac = bc / dry_mass
    dry_diameters = particles.dry_diameters()

    # 2D histogram
    hist_2d_bc = partmc.histogram_2d(dry_diameters, bc_frac, diam_axis, bc_axis,
         weights = 1 / particles.comp_vols)
    # convert
    hist_2d_bc /= 1e6

    # create the figure
    width_in = 4.0 
    (figure, axes, cbar_axes) = mpl_helper.make_fig(figure_width=width_in,
        colorbar=True,left_margin=.7,right_margin=1.1, top_margin=0.3,
        bottom_margin=.65, colorbar_height_fraction=0.8)

    # Data min and max
    # we want this to be fixed for all time
    data_min = 10**2 #min(data_mins)
    data_max = 10**6 #max(data_maxes)

    norm = matplotlib.colors.LogNorm(vmin=data_min, vmax=data_max)
    p = axes.pcolormesh(diam_axis.edges()/1e-6, bc_axis.edges()*100, 
        hist_2d_bc.transpose(),norm = norm, linewidths = 0.1, edgecolors='None')

    # make the plot pretty
    axes.set_xscale('log')
    axes.set_yscale('linear')
    xlabel = r'diameter $(\mu \rm m)$'
    ylabel = r'BC mass fraction'
    axes.set_xlabel(xlabel)
    axes.set_ylabel(ylabel)
    axes.set_xlim(.005,1)
    axes.set_ylim(0,80)
    axes.set_yticks([0,20,40,60,80])
    axes.grid(True)

    # colorbar
    cbar = figure.colorbar(p, cax=cbar_axes,
                format=matplotlib.ticker.LogFormatterMathtext(),
                orientation='vertical')
    kwargs = {}
    kwargs["format"] = matplotlib.ticker.LogFormatterMathtext()
    cmappable = matplotlib.cm.ScalarMappable(norm=norm)
    cmappable.set_array(numpy.array([hist_2d_bc.min(), hist_2d_bc.max()]))
    cbar_label = r"num. conc. $(\rm cm^{-3})$"
    cbar.set_label(cbar_label)
    cbar.solids.set_edgecolor("face")

    # Save figure and print name
    fig_name = '%s/bc_plot_%08i.pdf' % \
         (config.fig_dir, time)
    figure.savefig(fig_name)

    # print name in case we need it
    print fig_name

    return
Example #9
0
# average std over time

        array_num_std_avg[i_counter_p,i_counter] = np.average(num_std[i_counter_p,i_counter,:] / 
                                                              num_avg[i_counter_p,i_counter,:])
        array_mass_std_avg[i_counter_p,i_counter] = np.average(mass_std[i_counter_p, i_counter,:] / 
                                                               mass_avg[i_counter_p, i_counter,:])
        i_counter = i_counter + 1
    i_counter_p = i_counter_p + 1

x_array = [1, 0, -1, -2, -3, -4]

print "array_num_std_avg[1,0:6] ", array_num_std_avg[1,0:6]
print "array_num_std_avg[2,0:6] ", array_num_std_avg[2,0:6]

(figure, axes) = mpl_helper.make_fig(figure_width=config.figure_width_single, axis_ratio=1)

axes.set_xscale("log")
axes.set_yscale("log")
axes.plot(array_num_std_avg[0,0:6], array_mass_std_avg[0,0:6], 'xr-')
axes.plot(array_num_std_avg[0,6], array_mass_std_avg[0,6], 'or', label = '1K mfa')
axes.plot(array_num_std_avg[1,0:6], array_mass_std_avg[1,0:6], 'xg-')
axes.plot(array_num_std_avg[1,6], array_mass_std_avg[1,6], 'og', label = '10K mfa')
axes.plot(array_num_std_avg[2,0:6], array_mass_std_avg[2,0:6], 'xb-')
axes.plot(array_num_std_avg[2,6], array_mass_std_avg[2,6], 'ob', label = '100K mfa')
axes.grid()
axes.set_xlabel(r"average number coeff. var. $\overline{{\rm CV}(N(t))}$")
axes.set_ylabel(r"average mass coeff. var. $\overline{{\rm CV}(M(t))}$")

axes.annotate(r"$N_{\rm p} = 10^3$", (array_num_std_avg[0,0], array_mass_std_avg[0,0]),
              verticalalignment="bottom", horizontalalignment="center",
Example #10
0
def plot_kernel(prefix):
    kernel_data = numpy.loadtxt("data/" + prefix + "_kernel.txt")
    counts_data = numpy.loadtxt("data/" + prefix + "_count.txt")

    n_bin = counts_data.shape[0]

    k_min = kernel_data[:, 2].reshape((n_bin, n_bin))
    k_max = kernel_data[:, 3].reshape((n_bin, n_bin))
    n_possible = kernel_data[:, 4].reshape((n_bin, n_bin))
    r_samp = kernel_data[:, 5].reshape((n_bin, n_bin))
    n_samp_mean = kernel_data[:, 6].reshape((n_bin, n_bin))
    r_samp_rate = kernel_data[:, 7].reshape((n_bin, n_bin))
    n_samp_mean_rate = kernel_data[:, 8].reshape((n_bin, n_bin))

    diam_centers = counts_data[:, 1] * 1e6
    diam_edges = numpy.concatenate(
        (counts_data[:, 2], counts_data[-1:, 3])) * 1e6
    n_parts = counts_data[:, 4]

    min_bin = numpy.flatnonzero(n_parts).min()
    max_bin = numpy.flatnonzero(n_parts).max()
    diam_edges_nonzero = diam_edges[min_bin:(max_bin + 2)]
    diam_centers_nonzero = diam_centers[min_bin:(max_bin + 1)]
    n_parts_nonzero = n_parts[min_bin:(max_bin + 1)]

    k_min = numpy.ma.masked_less_equal(k_min, 0)
    k_max = numpy.ma.masked_less_equal(k_max, 0)
    n_possible = numpy.ma.masked_less_equal(n_possible, 0)
    r_samp = numpy.ma.masked_less_equal(r_samp, 0)
    n_samp_mean = numpy.ma.masked_less_equal(n_samp_mean, 0)
    r_samp_rate = numpy.ma.masked_less_equal(r_samp_rate, 0)
    n_samp_mean_rate = numpy.ma.masked_less_equal(n_samp_mean_rate, 0)

    k_ratio = k_max / k_min

    k_min_nonzero = k_min[min_bin:(max_bin + 1), min_bin:(max_bin + 1)]
    k_max_nonzero = k_max[min_bin:(max_bin + 1), min_bin:(max_bin + 1)]
    k_ratio_nonzero = k_ratio[min_bin:(max_bin + 1), min_bin:(max_bin + 1)]
    n_possible_nonzero = n_possible[min_bin:(max_bin + 1),
                                    min_bin:(max_bin + 1)]
    r_samp_nonzero = r_samp[min_bin:(max_bin + 1), min_bin:(max_bin + 1)]
    n_samp_mean_nonzero = n_samp_mean[min_bin:(max_bin + 1),
                                      min_bin:(max_bin + 1)]
    r_samp_rate_nonzero = r_samp_rate[min_bin:(max_bin + 1),
                                      min_bin:(max_bin + 1)]
    n_samp_mean_rate_nonzero = n_samp_mean_rate[min_bin:(max_bin + 1),
                                                min_bin:(max_bin + 1)]

    n_parts_x = []
    n_parts_y = []
    for i in range(len(n_parts)):
        n_parts_x.append(diam_edges[i])
        n_parts_y.append(n_parts[i])
        n_parts_x.append(diam_edges[i + 1])
        n_parts_y.append(n_parts[i])

    (figure, axes) = mpl_helper.make_fig()
    axes.loglog(n_parts_x, n_parts_y)
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(bottom=1e-1)
    axes.set_xlabel(r"diameter / $\rm \mu m$")
    axes.set_ylabel(r"number of particles")
    figure.savefig("figs/" + prefix + "_count.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    n_possible,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of reaction pairs $n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_possible.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    r_samp,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of samples per pair $K_{ij} \Delta t / V_{\rm comp}$")
    figure.savefig("figs/" + prefix + "_r_samp.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    r_samp_rate,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of samples per pair rate $K_{ij} / V_{\rm comp}$")
    figure.savefig("figs/" + prefix + "_r_samp_rate.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    n_samp_mean,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of events $(K_{ij} \Delta t / V) n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_samp_mean.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    n_samp_mean_rate,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of events rate $(K_{ij} / V) n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_samp_mean_rate.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges,
                    diam_edges,
                    k_max,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    cbar = figure.colorbar(p,
                           cax=cbar_axes,
                           format=matplotlib.ticker.LogFormatterMathtext(),
                           orientation='vertical')
    cbar_axes.xaxis.set_label_position('top')
    cbar.set_label(r"kernel $K_{ij}^{\rm max}$ / $(\rm m^3\ s^{-1})$")
    figure.savefig("figs/" + prefix + "_kernel_max.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges, diam_edges, k_ratio, linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges), max(diam_edges))
    axes.set_ylim(min(diam_edges), max(diam_edges))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    cbar = figure.colorbar(p, cax=cbar_axes, orientation='vertical')
    cbar_axes.xaxis.set_label_position('top')
    cbar.set_label(r"kernel ratio $K_{ij}^{\rm max} / K_{ij}^{\rm min}$")
    figure.savefig("figs/" + prefix + "_kernel_ratio.pdf")

    (figure, axes) = mpl_helper.make_fig()
    axes.loglog(n_parts_x, n_parts_y)
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(bottom=1e-1)
    axes.set_xlabel(r"diameter / $\rm \mu m$")
    axes.set_ylabel(r"number of particles")
    figure.savefig("figs/" + prefix + "_count_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    n_possible_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of reaction pairs $n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_possible_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    r_samp_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of samples per pair $K_{ij} \Delta t / V_{\rm comp}$")
    figure.savefig("figs/" + prefix + "_r_samp_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    r_samp_rate_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of samples per pair rate $K_{ij} / V_{\rm comp}$")
    figure.savefig("figs/" + prefix + "_r_samp_rate_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    n_samp_mean_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of events $(K_{ij} \Delta t / V) n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_samp_mean_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    n_samp_mean_rate_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    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 of events rate $(K_{ij} / V) n_i(n_j - \delta_{ij})$")
    figure.savefig("figs/" + prefix + "_n_samp_mean_rate_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    k_max_nonzero,
                    norm=matplotlib.colors.LogNorm(),
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    cbar = figure.colorbar(p,
                           cax=cbar_axes,
                           format=matplotlib.ticker.LogFormatterMathtext(),
                           orientation='vertical')
    cbar_axes.xaxis.set_label_position('top')
    cbar.set_label(r"kernel $K_{ij}^{\rm max}$ / $(\rm m^3\ s^{-1})$")
    figure.savefig("figs/" + prefix + "_kernel_max_nonzero.pdf")

    (figure, axes, cbar_axes) = mpl_helper.make_fig(axis_ratio=1,
                                                    colorbar=True,
                                                    right_margin=1.2)
    p = axes.pcolor(diam_edges_nonzero,
                    diam_edges_nonzero,
                    k_ratio_nonzero,
                    linewidths=0.1)
    axes.set_xscale("log")
    axes.set_yscale("log")
    axes.set_xlim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_ylim(min(diam_edges_nonzero), max(diam_edges_nonzero))
    axes.set_xlabel(r"diameter $D_1$ / $\rm \mu m$")
    axes.set_ylabel(r"diameter $D_2$ / $\rm \mu m$")
    cbar = figure.colorbar(p, cax=cbar_axes, orientation='vertical')
    cbar_axes.xaxis.set_label_position('top')
    cbar.set_label(r"kernel ratio $K_{ij}^{\rm max} / K_{ij}^{\rm min}$")
    figure.savefig("figs/" + prefix + "_kernel_ratio_nonzero.pdf")
Example #11
0
sys.path.append("../../tool")
import mpl_helper
import matplotlib
matplotlib.use("PDF")
import matplotlib.pyplot as plt
import partmc

size_dist_array = np.loadtxt("data/banana_size_dist_wc_wei-1_lowbg2.txt")
times = np.loadtxt("data/banana_times_wc_wei-1_lowbg2.txt")
diam = np.loadtxt("data/banana_diam_wc_wei-1_lowbg2.txt")

mask = np.ma.make_mask(size_dist_array <= 0.0)
size_dist_array = np.ma.array(size_dist_array, mask = mask)
times = times / 3600.

(fig, axis) = mpl_helper.make_fig(figure_width = 4)

plt.pcolor(times, diam, size_dist_array.transpose(),norm = matplotlib.colors.LogNorm(vmin=1e1, vmax=1e6), linewidths = 0.1)
a = plt.gca()
a.set_xscale("linear")
a.set_yscale("log")
plt.axis([times.min(), times.max(), 1e-3, diam.max()])
plt.xlabel("time / h")
plt.ylabel(r"dry diameter / $\rm \mu m$")
plt.grid(True)
cbar = plt.colorbar(format=matplotlib.ticker.LogFormatterMathtext())
cbar.set_label(r"number concentration / $\rm cm^{-3}$")
fig = plt.gcf()
fig.savefig("figs/banana_wc_wei-1_lowbg2.pdf")