def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--show", "--plot", action="store_true") args = vutil.common_argparse(parser) iono_file = viscid.load_file(_viscid_root + '/../sample/jrrle_sample.iof.*') fac_tot = 1e9 * iono_file["fac_tot"] plot_args = dict(projection="polar", lin=[-4e3, 3e3], bounding_lat=35.0, drawcoastlines=True, # for basemap only, probably will never be used title="Total FAC\n", # make a title, or if a string, use the string as title gridec='gray', label_lat=True, label_mlt=True, colorbar=dict(pad=0.1) # pad the colorbar away from the plot ) ax1 = plt.subplot(121, projection='polar') mpl.plot(fac_tot, ax=ax1, hemisphere='north', **plot_args) ax1.annotate('(a)', xy=(0, 0), textcoords="axes fraction", xytext=(-0.1, 1.0), fontsize=18) ax2 = plt.subplot(122, projection='polar') plot_args['gridec'] = False mpl.plot(fac_tot, ax=ax2, hemisphere="south", style="contourf", levels=50, extend="both", **plot_args) ax2.annotate('(b)', xy=(0, 0), textcoords="axes fraction", xytext=(-0.1, 1.0), fontsize=18) if args.show: mpl.mplshow()
def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--show", "--plot", action="store_true") args = vutil.common_argparse(parser) f3d = viscid.load_file(_viscid_root + '/../sample/sample.3df.xdmf', grid_type=MyGGCMGrid) pp = f3d['pp'] rr = f3d['rr'] T = f3d['T'] # bmag = timeit(lambda: f3d['bmag']) bmag = f3d["bmag"] plt.subplot(141) mpl.plot(pp, "y=0f,x=-20f:10f", plot_opts="log", earth=True, show=False) plt.subplot(142) mpl.plot(rr, "y=0f,x=-20f:10f", plot_opts="log", earth=True, show=False) plt.subplot(143) mpl.plot(T, "y=0f,x=-20f:10f", plot_opts="log", earth=True, show=False) plt.subplot(144) mpl.plot(bmag, "y=0f,x=-20f:10f", plot_opts="log", earth=True, show=False) if args.show: mpl.mplshow()
def run_mag_test(fld, show=False): vx, vy, vz = fld.component_views() #pylint: disable=W0612 vx, vy, vz = fld.component_fields() t0 = time() mag_ne = viscid.magnitude(fld, preferred="numexpr", only=True) t1 = time() logger.info("numexpr mag runtime: %g", t1 - t0) t0 = time() planes = ["z=0", "y=0"] nrows = 4 ncols = len(planes) ax = plt.subplot2grid((nrows, ncols), (0, 0)) ax.axis("equal") for ind, p in enumerate(planes): plt.subplot2grid((nrows, ncols), (0, ind), sharex=ax, sharey=ax) mpl.plot(vx, p, show=False) plt.subplot2grid((nrows, ncols), (1, ind), sharex=ax, sharey=ax) mpl.plot(vy, p, show=False) plt.subplot2grid((nrows, ncols), (2, ind), sharex=ax, sharey=ax) mpl.plot(vz, p, show=False) plt.subplot2grid((nrows, ncols), (3, ind), sharex=ax, sharey=ax) mpl.plot(mag_ne, p, show=False) if show: mpl.mplshow()
def run_test_iof(f, main__file__, show=False): mpl.clf() fac_tot = 1e9 * f["fac_tot"] plot_args = dict(projection="polar", lin=[-300, 300], bounding_lat=35.0, drawcoastlines=True, # for basemap only title="Total FAC\n", gridec='gray', label_lat=True, label_mlt=True, colorbar=dict(pad=0.1) # pad the colorbar away from the plot ) ax1 = mpl.subplot(121, projection='polar') mpl.plot(fac_tot, ax=ax1, hemisphere='north', **plot_args) ax1.annotate('(a)', xy=(0, 0), textcoords="axes fraction", xytext=(-0.1, 1.0), fontsize=18) ax2 = mpl.subplot(122, projection='polar') plot_args['gridec'] = False mpl.plot(fac_tot, ax=ax2, hemisphere="south", style="contourf", levels=50, extend="both", **plot_args) ax2.annotate('(b)', xy=(0, 0), textcoords="axes fraction", xytext=(-0.1, 1.0), fontsize=18) mpl.auto_adjust_subplots(subplot_params=dict()) mpl.plt.gcf().set_size_inches(8, 4) mpl.plt.savefig(next_plot_fname(main__file__)) if show: mpl.mplshow()
def run_mpl_testB(show=False): logger.info("3D node centered tests") x = np.array(np.linspace(-10, 10, 100), dtype=dtype) y = np.array(np.linspace(-10, 10, 120), dtype=dtype) z = np.array(np.linspace(-10, 10, 140), dtype=dtype) fld_s = viscid.empty([x, y, z], center='node') X, Y, Z = fld_s.get_crds_nc(shaped=True) # pylint: disable=W0612 fld_s[:, :, :] = np.sin(X) + np.cos(Y) - np.cos(Z) # print("shape: ", fld_s.data.shape) nrows = 4 ncols = 1 plt.subplot2grid((nrows, ncols), (0, 0)) mpl.plot(fld_s, "z=0,x=:30", earth=True, plot_opts="lin_0") plt.subplot2grid((nrows, ncols), (1, 0)) mpl.plot(fld_s, "z=0.75f,x=-4:-1,y=-3f:3f", earth=True) plt.subplot2grid((nrows, ncols), (2, 0)) mpl.plot(fld_s, "x=-0.5f:,y=-3f:3f,z=0f", earth=True) plt.subplot2grid((nrows, ncols), (3, 0)) mpl.plot(fld_s, "x=0.0f,y=-5.0f:5.0f", earth=True, plot_opts="log,g") mpl.plt.suptitle("3d node centered") mpl.auto_adjust_subplots() mpl.plt.savefig(next_plot_fname(__file__)) if show: mpl.mplshow()
def run_mag_test(fld, title="", show=False): vx, vy, vz = fld.component_views() # pylint: disable=W0612 vx, vy, vz = fld.component_fields() try: t0 = time() mag_ne = viscid.magnitude(fld, preferred="numexpr", only=False) t1 = time() logger.info("numexpr mag runtime: %g", t1 - t0) except viscid.verror.BackendNotFound: xfail("Numexpr is not installed") planes = ["z=0", "y=0"] nrows = 4 ncols = len(planes) ax = plt.subplot2grid((nrows, ncols), (0, 0)) ax.axis("equal") for ind, p in enumerate(planes): plt.subplot2grid((nrows, ncols), (0, ind), sharex=ax, sharey=ax) mpl.plot(vx, p, show=False) plt.subplot2grid((nrows, ncols), (1, ind), sharex=ax, sharey=ax) mpl.plot(vy, p, show=False) plt.subplot2grid((nrows, ncols), (2, ind), sharex=ax, sharey=ax) mpl.plot(vz, p, show=False) plt.subplot2grid((nrows, ncols), (3, ind), sharex=ax, sharey=ax) mpl.plot(mag_ne, p, show=False) mpl.plt.suptitle(title) mpl.auto_adjust_subplots(subplot_params=dict(top=0.9)) mpl.plt.gcf().set_size_inches(6, 7) mpl.plt.savefig(next_plot_fname(__file__)) if show: mpl.mplshow()
def run_mpl_testA(show=False): logger.info("2D cell centered tests") x = np.array(np.linspace(-10, 10, 100), dtype=dtype) y = np.array(np.linspace(-10, 10, 120), dtype=dtype) z = np.array(np.linspace(-1, 1, 2), dtype=dtype) fld_s = viscid.empty([x, y, z], center='cell') Xcc, Ycc, Zcc = fld_s.get_crds_cc(shaped=True) # pylint: disable=unused-variable fld_s[:, :, :] = np.sin(Xcc) + np.cos(Ycc) nrows = 4 ncols = 1 plt.subplot2grid((nrows, ncols), (0, 0)) mpl.plot(fld_s, "y=20f", show=False, plot_opts="lin_0") plt.subplot2grid((nrows, ncols), (1, 0)) mpl.plot(fld_s, "x=0f:20f,y=0f:5f", earth=True, show=False, plot_opts="x_-10_0,y_0_7") plt.subplot2grid((nrows, ncols), (2, 0)) mpl.plot(fld_s, "y=0f", show=False, plot_opts="lin_-1_1") plt.subplot2grid((nrows, ncols), (3, 0)) mpl.plot(fld_s, "z=0f,x=-20f:0f", earth=True, show=False, plot_opts="lin_-5_5") mpl.plt.suptitle("2d cell centered") mpl.auto_adjust_subplots() mpl.plt.savefig(next_plot_fname(__file__)) if show: mpl.mplshow()
def run_div_test(fld, exact, show=False, ignore_inexact=False): t0 = time() result_numexpr = viscid.div(fld, preferred="numexpr", only=True) t1 = time() logger.info("numexpr magnitude runtime: %g", t1 - t0) result_diff = viscid.diff(result_numexpr, exact[1:-1, 1:-1, 1:-1]) if not ignore_inexact and not (result_diff.data < 5e-5).all(): logger.warn("numexpr result is far from the exact result") logger.info("min/max(abs(numexpr - exact)): %g / %g", np.min(result_diff.data), np.max(result_diff.data)) planes = ["y=0f", "z=0f"] nrows = 2 ncols = len(planes) ax = plt.subplot2grid((nrows, ncols), (0, 0)) ax.axis("equal") for i, p in enumerate(planes): plt.subplot2grid((nrows, ncols), (0, i), sharex=ax, sharey=ax) mpl.plot(result_numexpr, p, show=False) plt.subplot2grid((nrows, ncols), (1, i), sharex=ax, sharey=ax) mpl.plot(result_diff, p, show=False) if show: mpl.mplshow()
def main(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--show", "--plot", action="store_true") args = vutil.common_argparse(parser) ####### test binary files f_bin = viscid.load_file(_viscid_root + "/../sample/ath_sample.*.bin") for i, grid in enumerate(f_bin.iter_times(":")): plt.subplot2grid((2, 2), (0, i)) mpl.plot(grid["bx"]) plt.subplot2grid((2, 2), (1, i)) mpl.plot(grid["by"]) if args.show: mpl.tighten() mpl.mplshow() plt.clf() ####### test ascii files f_tab = viscid.load_file(_viscid_root + "/../sample/ath_sample.*.tab") for i, grid in enumerate(f_tab.iter_times(":")): plt.subplot2grid((2, 2), (0, i)) mpl.plot(grid["bx"]) plt.subplot2grid((2, 2), (1, i)) mpl.plot(grid["by"]) if args.show: mpl.tighten() mpl.mplshow() plt.clf()
def run_div_test(fld, exact, title='', show=False, ignore_inexact=False): t0 = time() result_numexpr = viscid.div(fld, preferred="numexpr", only=False) t1 = time() logger.info("numexpr magnitude runtime: %g", t1 - t0) result_diff = viscid.diff(result_numexpr, exact)['x=1:-1, y=1:-1, z=1:-1'] if not ignore_inexact and not (result_diff.data < 5e-5).all(): logger.warn("numexpr result is far from the exact result") logger.info("min/max(abs(numexpr - exact)): %g / %g", np.min(result_diff.data), np.max(result_diff.data)) planes = ["y=0f", "z=0f"] nrows = 2 ncols = len(planes) ax = plt.subplot2grid((nrows, ncols), (0, 0)) ax.axis("equal") for i, p in enumerate(planes): plt.subplot2grid((nrows, ncols), (0, i), sharex=ax, sharey=ax) mpl.plot(result_numexpr, p, show=False) plt.subplot2grid((nrows, ncols), (1, i), sharex=ax, sharey=ax) mpl.plot(result_diff, p, show=False) mpl.plt.suptitle(title) mpl.auto_adjust_subplots(subplot_params=dict(top=0.9)) mpl.plt.savefig(next_plot_fname(__file__)) if show: mpl.mplshow()
def main(): parser = argparse.ArgumentParser(description="Test xdmf") parser.add_argument("--show", "--plot", action="store_true") parser.add_argument('file', nargs="?", default=None) args = vutil.common_argparse(parser) # f3d = readers.load_file(_viscid_root + '/../../sample/sample.3df.xdmf') # b3d = f3d['b'] # bx, by, bz = b3d.component_fields() # pylint: disable=W0612 if args.file is None: args.file = "/Users/kmaynard/dev/work/cen4000/cen4000.3d.xdmf" f3d = readers.load_file(args.file) bx = f3d["bx"] by = f3d["by"] bz = f3d["bz"] B = field.scalar_fields_to_vector([bx, by, bz], name="B_cc", _force_layout=field.LAYOUT_INTERLACED) t0 = time() lines_single, topo = trace_cython(B, nr_procs=1) t1 = time() topo_single = vol.wrap_field(topo, name="CyTopo1") print("single proc:", t1 - t0, "s") nr_procs_list = np.array([1, 2, 3]) # nr_procs_list = np.array([1, 2, 3, 4, 5, 6, 7, 8]) times = np.empty_like(nr_procs_list, dtype="float") print("always parallel overhead now...") for i, nr_procs in enumerate(nr_procs_list): t0 = time() lines, topo = trace_cython(B, nr_procs=nr_procs, force_subprocess=True) t1 = time() fld = vol.wrap_field(topo, name="CyTopo") same_topo = (fld.data == topo_single.data).all() same_lines = True for j, line in enumerate(lines): same_lines = same_lines and (line == lines_single[j]).all() print("nr_procs:", nr_procs, "time:", t1 - t0, "s", "same topo:", same_topo, "same lines:", same_lines) times[i] = t1 - t0 plt.plot(nr_procs_list, times, 'k^') plt.plot(nr_procs_list, times[0] / nr_procs_list, 'b--') plt.xscale("log") plt.yscale("log") plt.show() if False: cmap = plt.get_cmap('spectral') levels = [4, 5, 6, 7, 8, 13, 14, 16, 17] norm = BoundaryNorm(levels, cmap.N) mpl.plot(topo_flds[-1], "y=0", cmap=cmap, norm=norm, show=False) #mpl.plot_streamlines2d(lines[::5], "y", topology=topo[::5], show=False) #mpl.plot_streamlines(lines, topology=topo, show=False) mpl.mplshow()
def run_test_timeseries(f, main__file__, show=False): mpl.clf() ntimes = f.nr_times() t = [None] * ntimes pressure = np.zeros((ntimes,), dtype='f4') for i, grid in enumerate(f.iter_times()): t[i] = grid.time_as_datetime() pressure[i] = grid['pp']['x=10.0f, y=0.0f, z=0.0f'] mpl.plt.plot(t, pressure) mpl.plt.ylabel('Pressure') dateFmt = mdates.DateFormatter('%H:%M:%S') mpl.plt.gca().xaxis.set_major_formatter(dateFmt) mpl.plt.gcf().autofmt_xdate() mpl.plt.gca().grid(True) mpl.plt.gcf().set_size_inches(8, 4) mpl.plt.savefig(next_plot_fname(main__file__)) if show: mpl.mplshow()
def main(): parser = argparse.ArgumentParser(description="Test xdmf") parser.add_argument("--show", "--plot", action="store_true") args = vutil.common_argparse(parser) f2d = viscid.load_file(_viscid_root + '/../sample/sample.py_0.xdmf') b2d = viscid.scalar_fields_to_vector([f2d['bx'], f2d['by'], f2d['bz']], name="b") bx2d, by2d, bz2d = b2d.component_fields() #pylint: disable=W0612 f3d = viscid.load_file(_viscid_root + '/../sample/sample.3df.xdmf') b3d = f3d['b'] bx, by, bz = b3d.component_fields() #pylint: disable=W0612 nrows = 4 ncols = 2 plt.subplot2grid((nrows, ncols), (0, 0)) mpl.plot(bx, "z=0,x=:30", earth=True, show=False) plt.subplot2grid((nrows, ncols), (1, 0)) mpl.plot(bx, "z=0.5f,x=0:2,y=-100.0f:100.0f", earth=True, show=False) plt.subplot2grid((nrows, ncols), (2, 0)) mpl.plot(bx, "z=-1,x=-10.0f:,y=-100.0f:100.0f", earth=True, show=False) plt.subplot2grid((nrows, ncols), (3, 0)) mpl.plot(bx, "x=0.0f,y=-5.0f:5.0f,z=-5.0f:5.0f", earth=True, show=False) plt.subplot2grid((nrows, ncols), (0, 1)) mpl.plot(bx2d, "y=20.0f,z=-100.0f:100.0f", earth=True, show=False) plt.subplot2grid((nrows, ncols), (1, 1)) mpl.plot(bx2d, "x=0f:20:-1,y=0.0f,z=0.0f", show=False) plt.subplot2grid((nrows, ncols), (2, 1)) mpl.plot(bx2d, earth=True, show=False) plt.subplot2grid((nrows, ncols), (3, 1)) mpl.plot(bx2d, "z=0.0f,x=-20.0f:0.0f", show=False) if args.show: mpl.mplshow()