示例#1
0
            nc.data = nc.isobar(pressure)

        # Average over latitudes
        hold = np.mean(nc.data, 0)
        # Stack things up
        if n == 0:
            units = nc.units
            master = hold
            nlons = len(nc.boxlon)
            nlats = len(nc.boxlat)
        else:
            master = np.vstack((master, hold))

    # fig = plt.figure(figsize=(20,10))

    clev = niceClev(master, alpha=.9)
    try:
        vmin = clev[0]
        vmax = clev[-1]
    except TypeError:
        vmin = None
        vmax = None

    master_plot = plt.imshow(master,
                             cmap=plt.cm.RdBu_r,
                             vmin=vmin,
                             vmax=vmax,
                             aspect='auto')

    plt.ylabel('months since ' + start)
    plt.xlabel('longitude')
示例#2
0
        # Take the diff
        hold = t_hold - c_hold

        # Set some extraneous variables if it's the first instance of the for loop
        if n == 0:
            units = c_nc.units
            master = hold
            nlons = len(c_nc.boxlon)
            boxlons = c_nc.boxlon
            nlats = len(c_nc.boxlat)
        # Otherwise stack the data together
        else:
            master = np.vstack((master, hold))

    clev = niceClev(master)
    if vmin is None:
        vmin = clev[0]
    if vmax is None:
        vmax = clev[-1]

    master_plot = plt.imshow(master,
                             cmap=plt.cm.RdBu_r,
                             vmin=vmin,
                             vmax=vmax,
                             aspect='auto',
                             interpolation='none')

    plt.ylabel('months since ' + start)
    plt.xlabel('longitude')
示例#3
0
文件: clevs.py 项目: kniezgoda/pygoda
def getClev(var, season, data=None):
    prettyClev = 19
    if data is not None:
        prettyClev = niceClev(data)
    clevs = { \
       "PRECT_H2O" : \
        {"ANN_" : np.linspace(0,16,17), \
        "ANN_NA" : np.linspace(0,9,19), \
        "ANN_MC" : np.linspace(0,9,19), \
        "ANN_IM" : np.linspace(0,9,19), \
        "ANN_EP" : np.linspace(0,9,19), \
					\
        "ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJF_" : np.linspace(0,16,17), \
        "DJF_NA" : np.linspace(0,16,17), \
        "DJF_MC" : np.linspace(0,16,17), \
        "DJF_IM" : np.linspace(0,9,19), \
        "DJF_EP" : np.linspace(0,9,19), \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJA_" : np.linspace(0,30,21), \
        "JJA_NA" : np.linspace(0,30,21), \
        "JJA_MC" : np.linspace(0,30,21), \
        "JJA_IM" : np.linspace(0,9,19), \
        "JJA_EP" : np.linspace(0,9,19), \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \
       "PRECT" : \
        {"ANN_" : np.linspace(0,16,17), \
        "ANN_NA" : np.linspace(0,9,19), \
        "ANN_MC" : np.linspace(0,9,19), \
        "ANN_IM" : np.linspace(0,9,19), \
        "ANN_EP" : np.linspace(0,9,19), \
					\
        "ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJF_" : np.linspace(0,16,17), \
        "DJF_NA" : np.linspace(0,16,17), \
        "DJF_MC" : np.linspace(0,16,17), \
        "DJF_IM" : np.linspace(0,9,19), \
        "DJF_EP" : np.linspace(0,9,19), \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJA_" : np.linspace(0,30,21), \
        "JJA_NA" : np.linspace(0,30,21), \
        "JJA_MC" : np.linspace(0,30,21), \
        "JJA_IM" : np.linspace(0,9,19), \
        "JJA_EP" : np.linspace(0,9,19), \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "fluxDelta" : \
        {"ANN_" : np.linspace(0,16,17), \
        "ANN_NA" : np.linspace(0,9,19), \
        "ANN_MC" : np.linspace(0,9,19), \
        "ANN_IM" : np.linspace(0,9,19), \
        "ANN_EP" : np.linspace(0,9,19), \
					\
        "ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJF_" : np.linspace(0,16,17), \
        "DJF_NA" : np.linspace(0,16,17), \
        "DJF_MC" : np.linspace(0,16,17), \
        "DJF_IM" : np.linspace(0,9,19), \
        "DJF_EP" : np.linspace(0,9,19), \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJA_" : np.linspace(0,30,21), \
        "JJA_NA" : np.linspace(0,30,21), \
        "JJA_MC" : np.linspace(-30,30,21), \
        "JJA_IM" : np.linspace(0,9,19), \
        "JJA_EP" : np.linspace(0,9,19), \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : np.linspace(-30,30,21), \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "PRECT_d18O" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "OMEGA850" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "OMEGA500" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "OMEGA200" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "V850" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "V500" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "V200" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "VQ850" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "VQ500" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "VQ200" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "U850" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "U500" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "U200" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "UQ850" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "UQ500" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }, \

       "UQ200" : \
        {"ANNdiff_" : prettyClev, \
        "ANNdiff_NA" : prettyClev, \
        "ANNdiff_MC" : prettyClev, \
        "ANNdiff_IM" : prettyClev, \
        "ANNdiff_EP" : prettyClev, \
					\
        "DJFdiff_" : prettyClev, \
        "DJFdiff_NA" : prettyClev, \
        "DJFdiff_MC" : prettyClev, \
        "DJFdiff_IM" : prettyClev, \
        "DJFdiff_EP" : prettyClev, \
					\
        "JJAdiff_" : prettyClev, \
        "JJAdiff_NA" : prettyClev, \
        "JJAdiff_MC" : prettyClev, \
        "JJAdiff_IM" : prettyClev, \
        "JJAdiff_EP" : prettyClev, \
        }}
    return clevs.get(var, dict()).get(season, prettyClev)
示例#4
0
    vname = var
    model = controldata.model
    if pressure is not None:
        if model == "CAM":
            vname += str(int(pressure / 100))
        if model == "CLM":
            vname += str(int(pressure)) + "cm"

    fig = plt.figure()

    testdata.clevs = RegularClev(testdata.data)  # This sets the clevs
    testdata.prep_map(season, region)  # This sets the cmap
    controldata.clevs = RegularClev(controldata.data)  # This sets the clevs
    controldata.prep_map(season, region)  # This sets the cmap

    dclev = niceClev(testdata.data - controldata.data)

    if clev is not None:
        testdata.clevs = np.linspace(float(clev[0]), float(clev[1]),
                                     float(clev[2]))
        controldata.clevs = np.linspace(float(clev[0]), float(clev[1]),
                                        float(clev[2]))

    if diffclev is not None:
        dclev = np.linspace(float(diffclev[0]), float(diffclev[1]),
                            float(diffclev[2]))

    # test data
    plt.subplot(3, 1, 1)
    m = bm(projection='cea',
           llcrnrlat=southern_lat,
示例#5
0
        # Average down to 1 horizontal dimension
        data[p_idx, :, 0] = np.nanmean(control.isobar(p, setData=False),
                                       axis=0)
        data[p_idx, :, 1] = np.nanmean(test.isobar(p, setData=False), axis=0)

    aty = np.arange(len(pressures), step=5)
    laby = np.array(pressures)[aty] / 100
    labx = np.array(lon)
    atx = np.linspace(0, len(labx) - 1, num=8)
    labx = labx[np.array([int(round(a)) for a in atx])]

    fig = plt.figure()

    test.prep_map(season, region)
    control.prep_map(season, region)
    testclev = niceClev(data[..., 1])
    controlclev = niceClev(data[..., 0])
    dlev = niceClev(data[..., 1] - data[..., 0])

    if clev is not None:
        testclev = np.linspace(clev[0], clev[1], clev[2])
        controlclev = np.linspace(clev[0], clev[1], clev[2])

    if diffclev is not None:
        dlev = np.linspace(diffclev[0], diffclev[1], diffclev[2])

    plt.subplot(3, 1, 1)
    tplot = plt.contourf(data[..., 1], testclev, cmap=test.cmap)
    # plt.title("mh", fontsize = 8)
    plt.xticks(atx, labx)
    plt.yticks(aty, laby)