Пример #1
0
def makechi(filename):
    key = int(filename.split('/')[-1].split('_')[-1].split('.')[0])
    print "chi_condensed_profile", key

    condensedfile = Dataset('cdf/condensed_profile_%08d.nc' % key)
    envfile = Dataset('cdf/condensed_env_profile_%08d.nc' % key)
    shellfile = Dataset('cdf/condensed_shell_profile_%08d.nc' % key)
    statfile = Dataset(mc.get_stat())
 
    t = numpy.atleast_1d(condensedfile.variables['ids'][:])

    cloud_duration = len(t)
    n = len(t)

    z = envfile.variables['z'][:]
    p = statfile.variables['PRES'][0,:]*100.

    area_condensed = numpy.atleast_2d(condensedfile.variables['AREA'][:])

    thetal_condensed = numpy.atleast_2d(condensedfile.variables['THETAL'][:])
    qt_condensed = numpy.atleast_2d(condensedfile.variables['QT'][:])
    ql_condensed = numpy.atleast_2d(condensedfile.variables['QN'][:])
    T_condensed = numpy.atleast_2d(condensedfile.variables['TABS'][:])

    thetal_env = numpy.atleast_2d(envfile.variables['THETAL'][:]) 
    qt_env = numpy.atleast_2d(envfile.variables['QT'][:]) 
    thetal_shell = numpy.atleast_2d(shellfile.variables['THETAL'][:])
    qt_shell = numpy.atleast_2d(shellfile.variables['QT'][:])
    
    mask = ~(area_condensed > 0.)
    
    thetal_condensed_mask = numpy.ma.array(thetal_condensed, mask=mask)
    qt_condensed_mask = numpy.ma.array(qt_condensed, mask=mask)
    ql_condensed_mask = numpy.ma.array(ql_condensed, mask=mask)
    T_condensed_mask = numpy.ma.array(T_condensed, mask=mask)

    thetal_env_mask = numpy.ma.array(thetal_env, mask=mask) 
    qt_env_mask = numpy.ma.array(qt_env, mask=mask) 
    thetal_shell_mask = numpy.ma.array(thetal_shell, mask=mask)
    qt_shell_mask = numpy.ma.array(qt_shell, mask=mask)

    chi = SAM.find_chi_ql(ql_condensed, 
                          thetal_condensed, thetal_env, 
                          qt_condensed, qt_env, 
                          T_condensed, p)
                          
    chi_mean = SAM.find_chi_ql(ql_condensed_mask.mean(0),
                               thetal_condensed_mask.mean(0), 
                               thetal_env_mask.mean(0), 
                               qt_condensed_mask.mean(0), 
                               qt_env_mask.mean(0), 
                               T_condensed_mask.mean(0), 
                               p)

    chi_mean_condensed = SAM.find_chi_ql(ql_condensed_mask.mean(0),
                                  thetal_condensed_mask.mean(0), 
                                  thetal_env, 
                                  qt_condensed_mask.mean(0), qt_env, 
                                  T_condensed_mask.mean(0), p)

    chi_mean_env = SAM.find_chi_ql(ql_condensed,
                                  thetal_condensed, thetal_env_mask.mean(0), 
                                  qt_condensed, qt_env_mask.mean(0), 
                                  T_condensed, p)

#    chi[isnan(chi)] = 0.

    savefile = Dataset('cdf/condensed_chi_profile_%08d.nc' % key, 'w', format='NETCDF3_64BIT')
    savefile.createDimension('id', cloud_duration)
    savefile.createDimension('z', len(z))
    var_t = savefile.createVariable('id', 'd', ('id',))
    var_z = savefile.createVariable('z', 'd', ('z',))
    var_chi = savefile.createVariable('chi', 'd', ('id', 'z'))
    var_chi_mean = savefile.createVariable('chi_mean', 'd', ('id', 'z'))
    var_chi_mean_env = savefile.createVariable('chi_mean_env', 'd', ('id', 'z'))
    var_chi_mean_condensed = savefile.createVariable('chi_mean_condensed', 'd', ('id', 'z'))

    var_t[:] = t
    var_z[:] = z
    var_chi[:] = chi
    var_chi_mean[:] = chi_mean*(~mask)
    var_chi_mean_condensed[:] = chi_mean_condensed*(~mask)
    var_chi_mean_env[:] = chi_mean_env*(~mask)


    condensedfile.close()
    envfile.close()
    shellfile.close()
    statfile.close()

    savefile.close()
Пример #2
0
def makechi(filename):
    key = int(filename.split("/")[-1].split("_")[-1].split(".")[0])
    print "chi_core_profile", key

    corefile = Dataset("cdf/core_profile_%08d.nc" % key)
    envfile = Dataset("cdf/core_env_profile_%08d.nc" % key)
    shellfile = Dataset("cdf/core_shell_profile_%08d.nc" % key)
    statfile = Dataset(mc.get_stat())

    t = numpy.atleast_1d(corefile.variables["ids"][:])

    cloud_duration = len(t)
    n = len(t)

    z = envfile.variables["z"][:]
    p = statfile.variables["PRES"][0, :] * 100.0
    thetav_mean = statfile.variables["THETAV"][int(key), :]

    area_core = numpy.atleast_2d(corefile.variables["AREA"][:])

    thetal_core = numpy.atleast_2d(corefile.variables["THETAL"][:])
    thetav_core = numpy.atleast_2d(corefile.variables["THETAV"][:])
    qt_core = numpy.atleast_2d(corefile.variables["QT"][:])
    ql_core = numpy.atleast_2d(corefile.variables["QN"][:])
    T_core = numpy.atleast_2d(corefile.variables["TABS"][:])
    p = numpy.atleast_2d(corefile.variables["PRES"][:])

    thetal_env = numpy.atleast_2d(envfile.variables["THETAL"][:])
    qt_env = numpy.atleast_2d(envfile.variables["QT"][:])

    thetal_shell = numpy.atleast_2d(shellfile.variables["THETAL"][:])
    qt_shell = numpy.atleast_2d(shellfile.variables["QT"][:])

    mask = ~(area_core > 0.0)

    thetal_core_mask = numpy.ma.array(thetal_core, mask=mask)
    thetav_core_mask = numpy.ma.array(thetav_core, mask=mask)
    qt_core_mask = numpy.ma.array(qt_core, mask=mask)
    ql_core_mask = numpy.ma.array(ql_core, mask=mask)
    T_core_mask = numpy.ma.array(T_core, mask=mask)

    thetal_env_mask = numpy.ma.array(thetal_env, mask=mask)
    qt_env_mask = numpy.ma.array(qt_env, mask=mask)

    thetal_shell_mask = numpy.ma.array(thetal_shell, mask=mask)
    qt_shell_mask = numpy.ma.array(qt_shell, mask=mask)

    chi_theta = SAM.find_chi_theta(thetal_core, thetal_env, thetav_core, thetav_mean, qt_core, qt_env, T_core, p)

    chi_theta_mean = SAM.find_chi_theta(
        thetal_core_mask.mean(0),
        thetal_env_mask.mean(0),
        thetav_core_mask.mean(0),
        thetav_mean,
        qt_core_mask.mean(0),
        qt_env_mask.mean(0),
        T_core_mask.mean(0),
        p,
    )
    chi_theta_mean_core = SAM.find_chi_theta(
        thetal_core_mask.mean(0),
        thetal_env,
        thetav_core_mask.mean(0),
        thetav_mean,
        qt_core_mask.mean(0),
        qt_env,
        T_core_mask.mean(0),
        p,
    )
    chi_theta_mean_env = SAM.find_chi_theta(
        thetal_core, thetal_env_mask.mean(0), thetav_core, thetav_mean, qt_core, qt_env_mask.mean(0), T_core, p
    )

    chi_ql = SAM.find_chi_ql(ql_core, thetal_core, thetal_env, qt_core, qt_env, T_core, p)
    chi_ql_mean = SAM.find_chi_ql(
        ql_core_mask.mean(0),
        thetal_core_mask.mean(0),
        thetal_env_mask.mean(0),
        qt_core_mask.mean(0),
        qt_env_mask.mean(0),
        T_core_mask.mean(0),
        p,
    )
    chi_ql_mean_core = SAM.find_chi_ql(
        ql_core_mask.mean(0), thetal_core_mask.mean(0), thetal_env, qt_core_mask.mean(0), qt_env, T_core_mask.mean(0), p
    )
    chi_ql_mean_env = SAM.find_chi_ql(
        ql_core, thetal_core, thetal_env_mask.mean(0), qt_core, qt_env_mask.mean(0), T_core, p
    )

    #    chi[isnan(chi)] = 0.

    savefile = Dataset("cdf/core_chi_profile_%08d.nc" % key, "w", format="NETCDF3_64BIT")
    savefile.createDimension("id", cloud_duration)
    savefile.createDimension("z", len(z))
    var_t = savefile.createVariable("id", "d", ("id",))
    var_z = savefile.createVariable("z", "d", ("z",))
    var_chi_theta = savefile.createVariable("chi_theta", "d", ("id", "z"))
    var_chi_theta_mean = savefile.createVariable("chi_theta_mean", "d", ("id", "z"))
    var_chi_theta_mean_env = savefile.createVariable("chi_theta_mean_env", "d", ("id", "z"))
    var_chi_theta_mean_core = savefile.createVariable("chi_theta_mean_core", "d", ("id", "z"))
    var_chi_ql = savefile.createVariable("chi_ql", "d", ("id", "z"))
    var_chi_ql_mean = savefile.createVariable("chi_ql_mean", "d", ("id", "z"))
    var_chi_ql_mean_env = savefile.createVariable("chi_ql_mean_env", "d", ("id", "z"))
    var_chi_ql_mean_core = savefile.createVariable("chi_ql_mean_core", "d", ("id", "z"))

    var_t[:] = t
    var_z[:] = z
    var_chi_theta[:] = chi_theta
    var_chi_theta_mean[:] = chi_theta_mean * (~mask)
    var_chi_theta_mean_core[:] = chi_theta_mean_core * (~mask)
    var_chi_theta_mean_env[:] = chi_theta_mean_env * (~mask)
    var_chi_ql[:] = chi_ql
    var_chi_ql_mean[:] = chi_ql_mean * (~mask)
    var_chi_ql_mean_core[:] = chi_ql_mean_core * (~mask)
    var_chi_ql_mean_env[:] = chi_ql_mean_env * (~mask)

    corefile.close()
    envfile.close()
    shellfile.close()
    statfile.close()

    savefile.close()