Exemplo n.º 1
0
def return_data(whichdata, nc, time, y, x, thin_locs, P=None):
    if whichdata == "wind":
        uwind = 0.5 * (nc.variables["U"][time, :, y, x] + nc.variables["U"][time, :, y, x + 1])
        vwind = 0.5 * (nc.variables["V"][time, :, y, x] + nc.variables["V"][time, :, y + 1, x])
        return uwind[thin_locs], vwind[thin_locs]
    elif whichdata == "temp":
        theta = nc.variables["T"][time, :, y, x] + T_base
        T = theta * (P / P_bot) ** kappa - T_zero
        return T
    elif whichdata == "dwpt":
        w = nc.variables["QVAPOR"][time, :, y, x]
        Td = td(e(w, P))
        return Td
    else:
        print "Use valid variable."
Exemplo n.º 2
0
def skewTPlot(nest, timetuple):
    """
     This is the method to use from the outside
     
     nest: The nesting level of the nc-file from WRF 
     time: The time for which to plot
    """
    nc = openWRF(nest)
    time = convert_time(nest, timetuple)
    _Nx, _Ny, _Nz, _longs, _lats, _dx, _dy, x, y = getDimensions(nc)

    plt.figure()
    _isotherms()
    _isobars()
    _dry_adiabats()
    _moist_adiabats()

    P = nc.variables["P"][time, :, y, x] + nc.variables["PB"][time, :, y, x]

    _windbarbs(nc, time, y, x, P)
    _temperature(nc, time, y, x, P)
    _dewpoint(nc, time, y, x, P)

    plt.axis([-40, 50, P_b, P_t])
    plt.xlabel("Temperature ($^{\circ}\! C$) at 1000hPa")
    xticks = np.arange(-40, 51, 5)
    plt.xticks(xticks, ["" if tick % 10 != 0 else str(tick) for tick in xticks])
    plt.ylabel("Pressure (hPa)")
    yticks = np.arange(P_bot, P_t - 1, -10 ** 4)
    plt.yticks(yticks, yticks / 100)

    sfcT = nc.variables["T2"][time, y, x] - T_zero
    sfcP = nc.variables["PSFC"][time, y, x]
    sfcW = nc.variables["Q2"][time, y, x]
    sfcTd = td(e(sfcW, sfcP))
    plt.suptitle(
        "Drybulb: %4.1f$^{\circ}\! C$  Dewpoint: %3.1f$^{\circ}\! C$  Pressure: %5.1f hPa" % (sfcT, sfcTd, 0.01 * sfcP),
        fontsize=10,
        x=0.5,
        y=0.03,
    )

    # plt.show()
    plt.savefig(outdir + naming + str(nest) + "_skewT.png")
    plt.title("Skew-T plot for (location)")
    plt.close()
Exemplo n.º 3
0
def _dewpoint(nc, time, y, x, P, linestyle="dashed", color="black"):
    w = nc.variables["QVAPOR"][time, :, y, x]
    plt.semilogy(td(e(w, P)) + _skewnessTerm(P), P, basey=math.e, color=color, linestyle=linestyle, linewidth=1.5)