예제 #1
0
def plot_dewpoint_temperature(ncFile, targetDir, windScaleFactor=50):
    logger = PyPostTools.pyPostLogger()
    fig, ax, X, Y = prepare_plot_object(ncFile)
    st, fh, fh_int = getTimeObjects(ncFile)

    TD = ncFile["TD"]
    TD_F = Conversions.C_to_F(TD)
    clevs = np.linspace(-20, 85, 36)
    norm = matplotlib.colors.BoundaryNorm(clevs, 36)

    contours = plt.contourf(X,
                            Y,
                            TD_F,
                            clevs,
                            norm=norm,
                            cmap=ColorMaps.td_colormap,
                            transform=ccrs.PlateCarree())
    cbar = plt.colorbar(ax=ax, orientation="horizontal", pad=.05)
    cbar.set_label("Dewpoint Temperature ($^\circ$ F)")

    u = ncFile["SFC_U"]
    v = ncFile["SFC_V"]

    uKT = Conversions.ms_to_kts(u)
    vKT = Conversions.ms_to_kts(v)
    plt.barbs(to_np(X[::windScaleFactor, ::windScaleFactor]),
              to_np(Y[::windScaleFactor, ::windScaleFactor]),
              to_np(uKT[::windScaleFactor, ::windScaleFactor]),
              to_np(vKT[::windScaleFactor, ::windScaleFactor]),
              transform=ccrs.PlateCarree(),
              length=6)

    plt.title("Surface Dewpoint Temperature ($^\circ$F), Winds (kts)")
    plt.text(0.02,
             -0.02,
             "Forecast Time: " + fh.strftime("%Y-%m-%d %H:%M UTC"),
             ha='left',
             va='center',
             transform=ax.transAxes)
    plt.text(0.7,
             -0.02,
             "Initialized: " + st.strftime("%Y-%m-%d %H:%M UTC"),
             ha='left',
             va='center',
             transform=ax.transAxes)
    plt.subplots_adjust(bottom=0.1)
    plt.savefig(targetDir + "/TD_F" + str(fh_int))
    plt.close(fig)
    return True