예제 #1
0
    timer = {}

    if USE_MPI:
        comm = MPI.COMM_WORLD
        rank = comm.Get_rank()
        size = comm.Get_size()
        root = 0

    if USE_MPI is False or rank == root:
        timer['detector'] = timeit.default_timer()

    if USE_MPI:

        if rank == root:
            grid = RectGrid(pathname=infile, varname=var, trange=trange)
            grid = grid.split(size)
        else:
            grid = None

        grid = comm.scatter(grid, root=root)

    else:
        grid = RectGrid(pathname=infile, varname=var, trange=trange)

    centers = grid.detect()

    if USE_MPI:
        comm.Barrier()
    if USE_MPI is False or rank == root:
        timer['detector'] = timeit.default_timer()-timer['detector']
        timer['linker'] = timeit.default_timer()
예제 #2
0
        tracks.append_center(c)

    print("Linking time: " + str(timeit.default_timer()-timer))

    num_tracks = len([t for t in tracks if len(t)>=8 and t[0].abs_dist(t[-1])>=1000.])

    print("Number of long tracks: "+str(num_tracks))

    pickle.dump(tracks, open("tracks.pickle", "wb"))

    print("Starting multiple detector...")

    timer = timeit.default_timer()

    grid2 = RectGrid(pathname="../slp.2012.nc", varname="slp", trange=(0,120))
    grids2 = grid2.split(4)

    centers2 = [g.detect() for g in grids2]

    print("Detection time: " + str(timeit.default_timer()-timer))

    print("Starting multiple linker...")

    timer = timeit.default_timer()

    tracks2 = [[] for i in range(4)]
    for i, cs in enumerate(centers2):
        tracks2[i] = Tracks()

        for c in cs:
            tracks2[i].append_center(c)
예제 #3
0
    print("Linking time: " + str(timeit.default_timer() - timer))

    num_tracks = len(
        [t for t in tracks if len(t) >= 8 and t[0].abs_dist(t[-1]) >= 1000.])

    print("Number of long tracks: " + str(num_tracks))

    pickle.dump(tracks, open("tracks.pickle", "wb"))

    print("Starting multiple detector...")

    timer = timeit.default_timer()

    grid2 = RectGrid(pathname="../slp.2012.nc", varname="slp", trange=(0, 120))
    grids2 = grid2.split(4)

    centers2 = [g.detect() for g in grids2]

    print("Detection time: " + str(timeit.default_timer() - timer))

    print("Starting multiple linker...")

    timer = timeit.default_timer()

    tracks2 = [[] for i in range(4)]
    for i, cs in enumerate(centers2):
        tracks2[i] = Tracks()

        for c in cs:
            tracks2[i].append_center(c)
예제 #4
0
    timer = {}

    if USE_MPI:
        comm = MPI.COMM_WORLD
        rank = comm.Get_rank()
        size = comm.Get_size()
        root = 0

    if USE_MPI is False or rank == root:
        timer['detector'] = timeit.default_timer()

    if USE_MPI:

        if rank == root:
            grid = RectGrid(pathname=infile, varname=var, trange=trange)
            grid = grid.split(size)
        else:
            grid = None

        grid = comm.scatter(grid, root=root)

    else:
        grid = RectGrid(pathname=infile, varname=var, trange=trange)

    centers = grid.detect()

    if USE_MPI:
        comm.Barrier()
    if USE_MPI is False or rank == root:
        timer['detector'] = timeit.default_timer() - timer['detector']
        timer['linker'] = timeit.default_timer()