else:
        axs1[3].plot(v_surf.times, v_surf.getArray('fractional_areas.cell.1'), '-', color=color, label=f'frac area snow ({label})')

def plot_snow_precip(axs1, v_surf, v_snow):
    axs1[0].plot(v_snow.times, v_snow.getArray('precipitation'), '-', color='gray', label=f'snow precip')

def decorate(axs1):
    axs1[3].set_xlabel('time [d]')
    axs1[0].set_ylabel('flux [m/s]')
    axs1[1].set_ylabel('temperature [K]')
    axs1[2].set_ylabel('depth [m]')
    axs1[3].set_ylabel('fractional area [-]')
    for ax in axs1:
        ax.legend()

if __name__ == '__main__':
    dnames = ['permafrost', 'permafrost_subgrid', 'permafrost_subgrid_star']
    labels = ['control', 'subgrid=0', 'subgrid=0,star']
    cols = colors.enumerated_colors(len(dnames))

    fig = plt.figure()
    axs = fig.subplots(4,1)
    
    for dname, color, label in zip(dnames, cols, labels):
        v_surf, v_snow = load(dname)
        plot(axs, v_surf, v_snow, color, label)

    plot_snow_precip(axs, v_surf, v_snow)
    decorate(axs)
    plt.show()
Ejemplo n.º 2
0
        help='Choose whether colors represent different runs or time.')
    parser.add_argument(
        '--color-sample',
        type=str,
        choices=['enumerated', 'sampled'],
        default='enumerated',
        help='Choose colors from an enumerate set or a sampled colormap.')
    parser.add_argument('--color-map',
                        type=str,
                        default='jet',
                        help='Choose which colormap to use.')

    args = parser.parse_args()
    if args.color_mode == 'runs':
        if args.color_sample == 'enumerated':
            color_list = colors.enumerated_colors(len(args.directories))
        else:
            color_list = colors.sampled_colors(
                len(args.directories), getattr(matplotlib.cm, args.color_map))
    elif args.color_mode == 'time':
        color_list = [
            args.color_map,
        ] * len(args.directories)

    fig = plt.figure(figsize=args.figsize)
    axs = fig.subplots(len(args.layout), len(args.layout[0]), squeeze=False)

    domains = set([domain_var(v)[0] for v in layout_flattener(args.layout)])
    for dirname, color in zip(args.directories, color_list):
        vis_objs = dict()
        for domain in domains:
Ejemplo n.º 3
0
    parser.add_argument(
        '--wrm',
        type=option_to_wrm,
        action='append',
        help='WRM parameters, "alpha n sr [label [smoothing_interval_sat]]"')
    parser.add_argument('--y-units',
                        type=str,
                        choices=['Pa', 'm', 'hPa', 'cm'],
                        default='Pa',
                        help='units of the y-axis, in log space')
    parser.add_argument('--kr',
                        action='store_true',
                        help='Plot relative permeability curve')

    args = parser.parse_args()
    color_list = colors.enumerated_colors(len(args.wrm))

    fig = plt.figure()
    ax = fig.add_subplot(111)

    if args.kr:
        for (label, wrm), color in zip(args.wrm, color_list):
            plot_kr(wrm, ax, color, label=label)
    else:
        for (label, wrm), color in zip(args.wrm, color_list):
            plot(wrm, ax, color, y_units=args.y_units, label=label)
    ax.legend()
    plt.show()
    sys.exit(0)
Ejemplo n.º 4
0
            axs[i].set_title(n)

        for p, s2 in zip(precip, ['-','--']):
            if p in fid.keys():
                axs[i+1].plot(time[0:end], np.squeeze(fid[p][0:end]), s2, color=color)
        axs[i+1].set_title("precip (solid=rain, dash=snow) [m SWE s^-1]")


def get_axs():
    return plt.subplots(3,2, figsize=(10,10))
        
if __name__ == "__main__":
    import sys
    import colors
    import argparse

    parser = argparse.ArgumentParser(description="Plot met data from an ATS input h5 file using default names.")
    parser.add_argument("INPUT_FILES", nargs="+", type=str,
                        help="List of logfiles to parse.")
    args = parser.parse_args()

    color_list = colors.enumerated_colors(len(args.INPUT_FILES))

    fig, axs = get_axs()

    for fname, color in zip(args.INPUT_FILES, color_list):
        plot_met(fname, axs, color)

    plt.show()
    sys.exit(0)
Ejemplo n.º 5
0
                        default="jet",
                        help="Colormap used to pick a color.")
    parser.add_argument(
        "--overwrite",
        "-o",
        action="store_true",
        help=
        "Do not use any existing .npz file -- instead reload from the logfile and overwrite the .npz file."
    )
    args = parser.parse_args()

    if args.colors is not None:
        cm = colors.cm_mapper(0, 1, args.colormap)
        args.colors = [cm(c) for c in args.colors]
    else:
        args.colors = colors.enumerated_colors(len(args.LOG_FILES))

    fig, axs = get_axs()

    for fname, color in zip(args.LOG_FILES, args.colors):
        if fname.endswith(".npz"):
            data = read_from_file(fname)
        elif os.path.isfile(fname + ".npz") and not args.overwrite:
            data = read_from_file(fname + ".npz")
        else:
            with open(fname, 'r') as fid:
                data = parse_logfile(fid)
            write_to_file(data, fname)

        plot(data, axs, color, fname)
    return i, fig, axs


if __name__ == '__main__':
    import sys, os
    import colors

    parser = argparse.ArgumentParser(
        description=__doc__,
        formatter_class=argparse.RawDescriptionHelpFormatter)
    parser.add_argument(
        "DIRECTORIES",
        nargs="+",
        type=str,
        help="List of directories containing observation files.")

    args = parser.parse_args()
    colorlist = colors.enumerated_colors(len(args.DIRECTORIES))

    fig = None
    axs = None
    for obs_file, color in zip(obs_files, colorlist):
        if not obs_file.endswith('.dat'):
            obs_file = os.path.join(obs_file, 'observation_column_all.dat')
        df = load(obs_file)
        last_plot, fig, axs = plot(df, color, obs_file, fig=fig, axs=axs)

    axs[last_plot].legend()
    plt.show()