예제 #1
0
def run_all(fiducial, simulation_runs, face, statistics, savename,
            multicore=True, ncores=10, verbose=True):

    fiducial_timesteps = np.sort([os.path.join(fiducial, x)
                                  for x in os.listdir(fiducial)
                                  if os.path.isdir(os.path.join(fiducial, x))])

    timesteps_labels = [x[-8:] for x in fiducial_timesteps]

    if verbose:
        print "Simulation runs to be analyzed: %s" % (simulation_runs)
        print "Started at "+str(datetime.now())

    # Distances will be stored in an array of dimensions
    # # statistics x # sim runs x # timesteps
    # The +1 in the second dimensions is to include the
    # fiducial case against itself.
    distances_storage = np.zeros((len(statistics),
                                  len(simulation_runs),
                                  len(fiducial_timesteps)))

    for i, run in enumerate(simulation_runs):
        timesteps = np.sort([os.path.join(run, x) for x in os.listdir(run)
                             if os.path.isdir(os.path.join(run, x))])
        if verbose:
            print "On Simulation %s/%s" % (i+1, len(simulation_runs))
            print str(datetime.now())
        if multicore:
            pool = Pool(processes=ncores)
            distances = pool.map(single_input, izip(fiducial_timesteps,
                                                    timesteps,
                                                    repeat(statistics)))
            pool.close()
            pool.join()
            distances_storage[:, i, :] = \
                sort_distances(statistics, distances).T

        else:
            for ii, timestep in enumerate(timesteps):
                fiducial_dataset = fromfits(fiducial_timesteps[ii], keywords)
                testing_dataset = fromfits(timestep, keywords)
                if i == 0:
                    distances, fiducial_models = \
                        wrapper(fiducial_dataset, testing_dataset,
                                statistics=statistics,
                                filenames=[fiducial_timesteps[ii], timestep])
                    all_fiducial_models = fiducial_models
                else:
                    distances = \
                        wrapper(fiducial_dataset, testing_dataset,
                                fiducial_models=all_fiducial_models,
                                statistics=statistics,
                                filenames=[fiducial_timesteps[ii], timestep])
                distances = [distances]
                distances_storage[:, i, ii:ii+1] = \
                    sort_distances(statistics, distances).T

    return distances_storage, timesteps_labels
예제 #2
0
def timestep_wrapper(fiducial_timestep, testing_timestep, statistics):

    fiducial_dataset = fromfits(fiducial_timestep, keywords)
    testing_dataset = fromfits(testing_timestep, keywords)

    distances = stats_wrapper(fiducial_dataset, testing_dataset,
                              statistics=statistics, multicore=True,
                              filenames=[fiducial_timestep, testing_timestep])
    return distances
def timestep_wrapper(fiducial, design, statistics):

    fiducial_dataset = fromfits(fiducial, keywords)
    design_dataset = fromfits(design, keywords)

    distances = stats_wrapper(fiducial_dataset, design_dataset,
                              statistics=statistics, multicore=True,
                              filenames=[fiducial, design])
    return distances
예제 #4
0
def run_all(fiducial, simulation_runs, face, statistics, savename,
            multicore=True, ncores=10, verbose=True):

    fiducial_timesteps = np.sort([os.path.join(fiducial, x)
                                  for x in os.listdir(fiducial)
                                  if os.path.isdir(os.path.join(fiducial, x))])

    timesteps_labels = [x[-8:] for x in fiducial_timesteps]

    if verbose:
        print "Simulation runs to be analyzed: %s" % (simulation_runs)
        print "Started at "+str(datetime.now())

    # Distances will be stored in an array of dimensions
    # # statistics x # sim runs x # timesteps
    # The +1 in the second dimensions is to include the
    # fiducial case against itself.
    distances_storage = np.zeros((len(statistics),
                                  len(simulation_runs),
                                  len(fiducial_timesteps)))

    for i, run in enumerate(simulation_runs):
        timesteps = np.sort([os.path.join(run, x) for x in os.listdir(run)
                             if os.path.isdir(os.path.join(run, x))])
        if verbose:
            print "On Simulation %s/%s" % (i+1, len(simulation_runs))
            print str(datetime.now())
        if multicore:
            pool = Pool(processes=ncores)
            distances = pool.map(single_input, izip(fiducial_timesteps,
                                                    timesteps,
                                                    repeat(statistics)))
            pool.close()
            pool.join()
            distances_storage[:, i, :] = \
                sort_distances(statistics, distances).T

        else:
            for ii, timestep in enumerate(timesteps):
                fiducial_dataset = fromfits(fiducial_timesteps[ii], keywords)
                testing_dataset = fromfits(timestep, keywords)
                if i == 0:
                    distances, fiducial_models = \
                        stats_wrapper(fiducial_dataset, testing_dataset,
                                      statistics=statistics)
                    all_fiducial_models = fiducial_models
                else:
                    distances = \
                        stats_wrapper(fiducial_dataset, testing_dataset,
                                      fiducial_models=all_fiducial_models,
                                      statistics=statistics)
                distances = [distances]
                distances_storage[:, i, ii:ii+1] = \
                    sort_distances(statistics, distances).T

    return distances_storage, timesteps_labels
예제 #5
0
def timestep_wrapper(fiducial, design, statistics):

    fiducial_dataset = fromfits(fiducial, keywords)
    design_dataset = fromfits(design, keywords)

    distances = stats_wrapper(fiducial_dataset,
                              design_dataset,
                              statistics=statistics,
                              multicore=True,
                              filenames=[fiducial, design])
    return distances
예제 #6
0
def timestep_wrapper(fiducial_timestep, testing_timestep, statistics):
    keywords = {"centroid", "centroid_error", "integrated_intensity",
                "integrated_intensity_error", "linewidth",
                "linewidth_error", "moment0", "moment0_error", "cube"}

    fiducial_dataset = fromfits(fiducial_timestep, keywords)
    testing_dataset = fromfits(testing_timestep, keywords)

    distances = wrapper(fiducial_dataset, testing_dataset,
                        statistics=statistics, multicore=True,
                        filenames=[fiducial_timestep, testing_timestep])
    return distances
예제 #7
0
def run_all(fiducial,
            simulation_runs,
            face,
            statistics,
            savename,
            multicore=True,
            ncores=10,
            verbose=True):

    if verbose:
        print "Simulation runs to be analyzed: %s" % (simulation_runs)
        print "Started at " + str(datetime.now())

    # Distances will be stored in an array of dimensions
    # # statistics x # sim runs x # timesteps
    # The +1 in the second dimensions is to include the
    # fiducial case against itself.
    distances_storage = np.zeros((len(statistics), len(simulation_runs)))

    if multicore:
        pool = Pool(processes=ncores)
        distances = pool.map(
            single_input,
            izip(repeat(fiducial), simulation_runs, repeat(statistics)))
        pool.close()
        pool.join()
        distances_storage = sort_distances(statistics, distances).T

    else:
        for i, design in enumerate(simulation_runs):
            fiducial_dataset = fromfits(fiducial, keywords)
            testing_dataset = fromfits(design, keywords)
            if i == 0:
                distances, fiducial_models = \
                    stats_wrapper(fiducial_dataset, testing_dataset,
                                  statistics=statistics)
                all_fiducial_models = fiducial_models
            else:
                distances = \
                    stats_wrapper(fiducial_dataset, testing_dataset,
                                  fiducial_models=all_fiducial_models,
                                  statistics=statistics)
            distances = [distances]
            distances_storage[:, i:i+1] = \
                sort_distances(statistics, distances).T

    return distances_storage
예제 #8
0
def run_all(fiducial, simulation_runs, face, statistics, savename,
            multicore=True, ncores=10, verbose=True):

    if verbose:
        print "Simulation runs to be analyzed: %s" % (simulation_runs)
        print "Started at "+str(datetime.now())

    # Distances will be stored in an array of dimensions
    # # statistics x # sim runs x # timesteps
    # The +1 in the second dimensions is to include the
    # fiducial case against itself.
    distances_storage = np.zeros((len(statistics),
                                  len(simulation_runs)))

    if multicore:
        pool = Pool(processes=ncores)
        distances = pool.map(single_input, izip(repeat(fiducial),
                                                simulation_runs,
                                                repeat(statistics)))
        pool.close()
        pool.join()
        distances_storage = sort_distances(statistics, distances).T

    else:
        for i, design in enumerate(simulation_runs):
            fiducial_dataset = fromfits(fiducial, keywords)
            testing_dataset = fromfits(design, keywords)
            if i == 0:
                distances, fiducial_models = \
                    wrapper(fiducial_dataset, testing_dataset,
                            statistics=statistics,
                            filenames=[fiducial, design])
                all_fiducial_models = fiducial_models
            else:
                distances = \
                    wrapper(fiducial_dataset, testing_dataset,
                            fiducial_models=all_fiducial_models,
                            statistics=statistics,
                            filenames=[fiducial, design])
            distances = [distances]
            distances_storage[:, i:i+1] = \
                sort_distances(statistics, distances).T

    return distances_storage
예제 #9
0
Script for visualizing the output of each statistic in the package.
The two arguments are two folders containing the specific data sets to compare.
'''

import numpy as np
from turbustat.io import fromfits
import sys

keywords = {"centroid", "centroid_error", "integrated_intensity", "integrated_intensity_error", "linewidth",\
             "linewidth_error", "moment0", "moment0_error", "cube"}

folder1 = str(sys.argv[1])
folder2 = str(sys.argv[2])

dataset1 = fromfits(folder1, keywords, verbose=False)
dataset2 = fromfits(folder2, keywords, verbose=False)


## Wavelet Transform

from turbustat.statistics import Wavelet_Distance

wavelet_distance = Wavelet_Distance(dataset1["integrated_intensity"],
                                    dataset2["integrated_intensity"]).distance_metric(verbose=True)

print "Wavelet Distance: %s" % (wavelet_distance.distance)

## MVC#

from turbustat.statistics import MVC_distance