Esempio n. 1
0
    def __init__(self,
                 initial_parameters=None,
                 density_contrasts=None,
                 num_filtering_scales=50,
                 path=None,
                 window_function="top hat"):
        """
        Instantiates :class:`DensityPeaks` given the

        Args:

        """
        if initial_parameters is None:
            initial_parameters = parameters.InitialConditionsParameters(
                path=path)

        self.initial_parameters = initial_parameters
        self.delta_class = density.DensityContrasts(
            initial_parameters=initial_parameters,
            num_filtering_scales=num_filtering_scales,
            window_function=window_function)
        if density_contrasts is None:
            density_contrasts = self.delta_class.density_contrasts

        self.density_contrasts = density_contrasts
        assert self.density_contrasts.shape == (num_filtering_scales,
                                                initial_parameters.shape**3)
Esempio n. 2
0
    def __init__(self,
                 initial_parameters=None,
                 density_contrasts=None,
                 num_filtering_scales=50,
                 path=None,
                 window_function="top hat",
                 number_of_processors=10):
        """
        Instantiates :class:`Inertia` given the

        Args:

        """
        if initial_parameters is None:
            initial_parameters = parameters.InitialConditionsParameters(
                path=path)

        self.initial_parameters = initial_parameters
        self.delta_class = density.DensityContrasts(
            initial_parameters=initial_parameters,
            num_filtering_scales=num_filtering_scales,
            window_function=window_function)
        self.shear_class = shear.Shear(
            initial_parameters=initial_parameters,
            num_filtering_scales=num_filtering_scales,
            number_of_processors=number_of_processors)

        DensityPeaks.__init__(self,
                              initial_parameters=initial_parameters,
                              density_contrasts=density_contrasts,
                              num_filtering_scales=num_filtering_scales,
                              path=path,
                              window_function=window_function)
Esempio n. 3
0
    def __init__(self,
                 ids_particles,
                 initial_parameters=None,
                 num_filtering_scales=50,
                 path=None):
        """
        Instantiates :class:`Inertia` given the

        Args:

        """
        if initial_parameters is None:
            initial_parameters = parameters.InitialConditionsParameters(
                path=path)

        self.initial_parameters = initial_parameters
        self.filter_parameters = window.WindowParameters(
            initial_parameters=initial_parameters,
            num_filtering_scales=num_filtering_scales)
        # self.delta_class = density.DensityContrasts(initial_parameters=initial_parameters,
        #                                             num_filtering_scales=num_filtering_scales,
        #                                             window_function=window_function)
        # self.shear_class = shear.Shear(initial_parameters=initial_parameters,
        #                                num_filtering_scales=num_filtering_scales,
        #                                number_of_processors=number_of_processors)
        #
        # Inertia.__init__(self, initial_parameters=initial_parameters, density_contrasts=density_contrasts,
        #
        #                     num_filtering_scales=num_filtering_scales, path=path, window_function=window_function)

        self.filt_scales = np.arange(50)
        self.ids_particles = ids_particles
Esempio n. 4
0
def test_mena_density_effect():
    initial_parameters = parameters.InitialConditionsParameters(path=path)
    mean_density_box = initial_parameters.mean_density

    mean_rho_pynbody = pynbody.analysis.cosmology.rho_M(initial_parameters.initial_conditions, unit="Msol Mpc**-3")

    ratio = mean_rho_pynbody/mean_density_box

    traj = np.load("/share/data1/lls/trajectories_sharp_k/ALL_traj_1500_even_log_m.npy")
    traj_pynbody_mean = traj/ratio

    m_bins = 10 ** np.arange(10, 15, 0.0033).view(pynbody.array.SimArray)
    m_bins.units = "Msol h^-1"
    pred_mass_PS_pynbody = mp.get_predicted_analytic_mass(m_bins, initial_parameters, barrier="spherical",
                                                          cosmology="WMAP5", trajectories=traj_pynbody_mean)

    np.save("/Users/lls/Documents/CODE/stored_files/hmf/pynbody_rho_bar/ALL_PS_predicted_masses_1500_even_log_m_spaced"
            ".npy",
            pred_mass_PS_pynbody)
    del pred_mass_PS_pynbody

    pred_mass_ST_pynbody = mp.get_predicted_analytic_mass(m_bins, initial_parameters, barrier="ST", cosmology="WMAP5",
                                                          trajectories=traj_pynbody_mean)

    np.save("/Users/lls/Documents/CODE/stored_files/hmf/pynbody_rho_bar/ALL_ST_predicted_masses_1500_even_log_m_spaced.npy",
        pred_mass_ST_pynbody)
def importances_plot(imp,
                     initial_parameters=None,
                     save=False,
                     yerr=None,
                     label=None,
                     subplots=1,
                     figsize=(7.5, 6)):
    if initial_parameters is None:
        initial_parameters = parameters.InitialConditionsParameters(
            path="/Users/lls/Documents/CODE", load_final=True)
    w = window.WindowParameters(initial_parameters=initial_parameters)
    mass = w.smoothing_masses

    plot.plot_importances_vs_mass_scale(imp,
                                        mass,
                                        save=save,
                                        yerr=yerr,
                                        label=label,
                                        path=".",
                                        title=None,
                                        width=0.5,
                                        log=False,
                                        subplots=subplots,
                                        figsize=figsize,
                                        frameon=False,
                                        legend_fontsize=None,
                                        ecolor="k")
Esempio n. 6
0
def test_number_halos_true_sim():
    initial_parameters = parameters.InitialConditionsParameters(path=path)
    log_bins = np.arange(10, 15, 0.1)

    m, n = hmf_sim.get_true_number_halos_per_mass_bins(initial_parameters, log_bins)
    m1, n1 = hmf_sim.get_simulation_number_of_halos_from_particles_halo_mass(initial_parameters, log_m_bins=log_bins)

    np.testing.assert_allclose(n, n1, rtol=1e-1)
    np.testing.assert_allclose(m, m1, rtol=1e-1)
    print("Passed test")
Esempio n. 7
0
def test_power_spectrum():
    initial_parameters = parameters.InitialConditionsParameters(path=path)
    k_vector = np.linspace(0.1, 1000, 100000)

    pwspectrum = scripts.ellipsoidal.power_spectrum.get_power_spectrum(
        "WMAP5", initial_parameters, z=99)
    pk = pwspectrum(k_vector) / pwspectrum._lingrowth

    pk_0 = scripts.ellipsoidal.power_spectrum.get_power_spectrum(
        "WMAP5", initial_parameters, z=0)
    np.testing.assert_allclose(pk_0(k_vector), pk)
def test_mass_assignment_sharp_k():
    r = pynbody.array.SimArray([20])
    r.units = "Mpc a h^-1"
    ic = parameters.InitialConditionsParameters(path=path)

    w_sk = window.WindowParameters(initial_parameters=ic, volume="sharp-k")
    mass_sk = w_sk.get_mass_from_radius(ic, r, ic.mean_density)

    w_th = window.WindowParameters(initial_parameters=ic, volume="sphere")
    mass_th = w_th.get_mass_from_radius(ic, r, ic.mean_density)

    assert mass_sk == (9 * np.pi /2) * mass_th
def test_radius_assignment_sharp_k():
    m = pynbody.array.SimArray([1e13])
    m.units = "Msol h^-1"
    ic = parameters.InitialConditionsParameters(path=path)

    w_sk = window.WindowParameters(initial_parameters=ic, volume="sharp-k")
    r_sk = w_sk.get_smoothing_radius_corresponding_to_filtering_mass(ic, m)

    w_th = window.WindowParameters(initial_parameters=ic, volume="sphere")
    r_th = w_th.get_smoothing_radius_corresponding_to_filtering_mass(ic, m)
    r_sk_test = (2 / (9 * np.pi))**(1/3) * r_th

    assert np.allclose(r_sk, r_sk_test), "Th sharp k radius is" + str(r_sk) + "and the testing one is " + str(r_sk_test)
Esempio n. 10
0
def get_in_range_indices_of_trajectories(mass_range="in", initial_parameters=None):
    if initial_parameters is None:
        initial_parameters = parameters.InitialConditionsParameters(path="/Users/lls/Documents/CODE")

    w = window.WindowParameters(initial_parameters=initial_parameters, num_filtering_scales=50)

    if mass_range == "in":
        range_mass_IN = np.intersect1d(np.where(w.smoothing_masses >
                                                initial_parameters.halo[initial_parameters.max_halo_number]['mass'].sum()),
                                       np.where(w.smoothing_masses <
                                                initial_parameters.halo[initial_parameters.min_halo_number]['mass'].sum()))
        return range_mass_IN
    else:
        NameError("Enter a valid mass range of trajectories")
Esempio n. 11
0
def test_nearest_peak_id_different_centering():
    """ This passed on 1st May 2018 """
    ic = parameters.InitialConditionsParameters(
        path="/Users/lls/Documents/CODE", load_final=True)

    DP = inertia.DensityPeaks(initial_parameters=ic, num_filtering_scales=5)
    d = DP.density_contrasts

    particle_ids_max = DP.get_particle_ids_local_maxima_density_contrast(d[:,
                                                                           2])
    pos_max = DP.get_positions_local_maxima_density_contrast(d[:, 2])
    nearest_peaks = DP.get_nearest_peak(particle_ids_max,
                                        pos_max,
                                        output="id+position")

    for i in range(3):
        p_centering = np.random.choice(np.arange(256**3), 1)
        print("Centering on particle ID " + str(p_centering))
        tr = pynbody.analysis.halo.center(
            ic.initial_conditions[p_centering[0]], vel=False, mode="hyb")

        ic = parameters.InitialConditionsParameters(
            path="/Users/lls/Documents/CODE", load_final=True)
        DP = inertia.DensityPeaks(initial_parameters=ic,
                                  num_filtering_scales=5)
        d = DP.density_contrasts

        pos_max_i = DP.get_positions_local_maxima_density_contrast(d[:, 2])
        p_ids_i = DP.get_particle_ids_local_maxima_density_contrast(d[:, 2])

        nearest_peaks_i = DP.get_nearest_peak(p_ids_i,
                                              pos_max_i,
                                              output="id+position")

        np.testing.assert_allclose(nearest_peaks_i[:, 0], nearest_peaks[:, 0])
        np.testing.assert_allclose(p_ids_i, particle_ids_max)
        tr.revert()
Esempio n. 12
0
def test_knn_against_ckdtree():
    ic = parameters.InitialConditionsParameters(
        path="/Users/lls/Documents/CODE", load_final=True)

    DP = inertia.DensityPeaks(initial_parameters=ic, num_filtering_scales=2)
    d = DP.density_contrasts

    position_peaks = DP.get_positions_local_maxima_density_contrast(d[:, 2])
    pos_ids = ic.initial_conditions["pos"]

    t = cKDTree(position_peaks)
    queries = t.query(pos_ids, k=1)
    nearest_peaks = DP.find_kNearestNeighbour_ml(pos_ids,
                                                 position_peaks,
                                                 return_distance=True)

    np.testing.assert_allclose(queries, nearest_peaks)
Esempio n. 13
0
    def trajectories_test():
        p = parameters.InitialConditionsParameters(
            initial_snapshot=
            "/Users/lls/Documents/CODE/Nina-Simulations/double/ICs_z99_256_L50_gadget3.dat",
            final_snapshot=
            "/Users/lls/Documents/CODE/Nina-Simulations/double/snapshot_104",
            min_halo_number=0,
            max_halo_number=400,
            ids_type='all',
            num_particles=None)

        trajectory_test = trajectories.Trajectories(
            init_parameters=p,
            particles=[12599035, 2642532],
            num_of_filters=20,
            num_particles=1)
        trajectory_in = trajectory_test.delta_in
        trajectory_out = trajectory_test.delta_out
        return trajectory_in, trajectory_out
def test_correct_units():
    initial_parameters = parameters.InitialConditionsParameters(path=path)
    snapshot = initial_parameters.initial_conditions
    smoothing_radii = np.linspace(0.0057291, 0.20, 1500)

    r_a_h = smoothing_radii/snapshot.properties['a'] * snapshot.properties['h']
    r_a_h = r_a_h.view(pynbody.array.SimArray)
    r_a_h.units = "Mpc a h^-1"

    th = pynbody.analysis.hmf.TophatFilter(snapshot)
    m = th.R_to_M(r_a_h)
    m.units = "Msol h^-1"


    rho_M = pynbody.analysis.cosmology.rho_M(snapshot, unit="Msol Mpc**-3")
    w = window.WindowParameters(initial_parameters=initial_parameters, volume="sphere")
    filtering_masses = w.get_mass_from_radius(initial_parameters, smoothing_radii, rho_M)
    filtering_masses_with_h = filtering_masses * snapshot.properties['h']
    filtering_masses_with_h.units = "Msol h^-1"

    np.testing.assert_allclose(filtering_masses_with_h, m)
Esempio n. 15
0
def get_simulations_halo_masses_each_particle(path_simulation, saving_path):
    initial_params = parameters.InitialConditionsParameters(
        initial_snapshot=path_simulation + "IC.gadget3",
        final_snapshot=path_simulation + "snapshot_099",
        load_final=True,
        min_halo_number=0,
        max_halo_number=400,
        min_mass_scale=3e10,
        max_mass_scale=1e15)
    # Get halo mass for each particle

    halo_id_particles = initial_params.final_snapshot['grp']
    halo_num = np.unique(halo_id_particles)[1:]

    halo_mass_particles = np.zeros(len(halo_id_particles))
    for i in halo_num:
        halo_mass_particles[np.where(
            halo_id_particles == i)[0]] = initial_params.halo[i]["mass"].sum()

    halo_mass_particles = pynbody.array.SimArray(halo_mass_particles)
    halo_mass_particles.units = initial_params.halo[0]["mass"].units
    np.save(saving_path + "halo_mass_particles.npy", halo_mass_particles)
    return halo_mass_particles
Esempio n. 16
0
def test_radius_from_coordinates():
    """ This passed on 1st May 2018 """
    ic = parameters.InitialConditionsParameters(
        path="/Users/lls/Documents/CODE", load_final=True)

    DP = inertia.DensityPeaks(initial_parameters=ic, num_filtering_scales=5)
    d = DP.density_contrasts

    In = inertia.Inertia(initial_parameters=ic,
                         density_contrasts=d,
                         num_filtering_scales=5)

    # Find peaks -- particles ids and positions
    pos_max = DP.get_positions_local_maxima_density_contrast(d[:, 2])
    particle_ids_max = DP.get_particle_ids_local_maxima_density_contrast(d[:,
                                                                           2])

    # Embed box in a bigger box to account for periodicity
    # Find peaks -- particles ids and positions

    nearest_peaks = DP.get_nearest_peak(particle_ids_max,
                                        pos_max,
                                        output="id+position")

    # get dx,dy,dz from nearest peak
    position_particles = ic.initial_conditions["pos"]
    dx, dy, dz = In.get_difference_coordinates(position_particles,
                                               nearest_peaks[:, 1:])
    r = np.sqrt((dx**2) + (dy**2) + (dz**2))

    # check that resulting distance is the same as the one returned by scikit-learn
    extended_peaks = DP.extended_peaks_with_periodic_boundary_conditions(
        particle_ids_max, pos_max, ic.initial_conditions)
    dist, ids = DP.find_kNearestNeighbour_ml(position_particles,
                                             extended_peaks[:, 1:],
                                             return_distance=True)
    np.testing.assert_allclose(dist, r)
Esempio n. 17
0
The feature importances of the training set are also store in the `all_out` folder.

"""

import sys

sys.path.append('/Users/lls/Documents/mlhalos_code/scripts')
from mlhalos import machinelearning as ml
from mlhalos import features
from mlhalos import parameters
from mlhalos import plot
import numpy as np

# Select 50,000 particles to use as training set

ic_all = parameters.InitialConditionsParameters()

min_halo = 0
max_halo = 400
min_mass = ic_all.halo[max_halo]['mass'].sum()
max_mass = ic_all.halo[min_halo]['mass'].sum()
ic = parameters.InitialConditionsParameters(min_halo_number=min_halo,
                                            max_halo_number=max_halo,
                                            min_mass_scale=min_mass,
                                            max_mass_scale=max_mass)

feat_w_EPS = features.extract_labeled_features(initial_parameters=ic,
                                               add_EPS_label=True,
                                               n_samples=50000)

# Train the algorithm
Esempio n. 18
0
    f = plot.roc_plot(
        fpr,
        tpr,
        auc,
        labels=["$z=99$ densities", "$z=99$ + $z=0$ densities", "$z=0$ only"],
        title=' %.2f' % (bins[i]) + l + ' %.2f' % (bins[i + 1]))
    f.subplots_adjust(top=0.9)
    plt.savefig(
        "/Users/lls/Documents/mlhalos_files/multiclass/z0_only/roc_class_" +
        str(i) + ".png")
    del f

# importances

ic = parameters.InitialConditionsParameters(
    path="/Users/lls/Documents/mlhalos_files", load_final=True)
w = window.WindowParameters(initial_parameters=ic)
# f_imp_z0 = np.load("/Users/lls/Documents/mlhalos_files/multiclass/z0_only/f_imp.npy")
# f_imp_z0_ics = np.load("/Users/lls/Documents/mlhalos_files/multiclass/ics_z0_density/f_imp.npy")
f_imp = np.load(
    "/Users/lls/Documents/mlhalos_files/multiclass/ics_only/f_imp.npy")

for i in range(50):
    # f = plot.plot_importances_vs_mass_scale(f_imp_z0[i], w.smoothing_masses, save=False, yerr=None,
    #                                         label="$z=0$ density", path=".",
    #                                     title=' %.2f' % (bins[i]) + l + ' %.2f' % (bins[i+1]), width=0.5, log=False,
    #                                     subplots=1, figsize=(6.9, 5.2), frameon=False, legend_fontsize=None, ecolor="k")
    # plt.savefig("/Users/lls/Documents/mlhalos_files/multiclass/z0_only/imp_" + str(i) + ".png")
    # del f
    # plt.clf()
    # f = plot.plot_importances_vs_mass_scale(f_imp_z0_ics[i], w.smoothing_masses, save=False, yerr=None,
Esempio n. 19
0
import sys
sys.path.append('/home/lls/mlhalos_code')
import numpy as np
from mlhalos import parameters
from mlhalos import density
from mlhalos import shear

############### FEATURE EXTRACTION ###############

if __name__ == "__main__":
    path = "/home/lls"
    initial_params = parameters.InitialConditionsParameters(
        initial_snapshot="/home/app/reseed/IC.gadget3",
        load_final=False,
        min_halo_number=0,
        max_halo_number=400,
        min_mass_scale=3e10,
        max_mass_scale=1e15)

    sp = shear.ShearProperties(initial_parameters=initial_params,
                               num_filtering_scales=50,
                               shear_scale="all",
                               number_of_processors=60,
                               path=path)

    ell = sp.density_subtracted_ellipticity
    prol = sp.density_subtracted_prolateness

    np.save(
        "/share/data1/lls/reseed50/features/density_subtracted_ellipticity.npy",
Esempio n. 20
0
import sys

sys.path.append("/home/lls/mlhalos_code")
#sys.path.append("/Users/lls/Documents/mlhalos_code")
import numpy as np
from mlhalos import parameters

ics = "/share/data1/lls/sim200/simulation/standard200.gadget3"
f = "/share/data1/lls/sim200/simulation/snapshot_011"

ic = parameters.InitialConditionsParameters(initial_snapshot=ics,
                                            final_snapshot=f)

final_snap = ic.final_snapshot
h = ic.halo
halo_mass = np.zeros((len(ic.final_snapshot), ))

halo_ids = np.arange(len(ic.halo))
for halo_id in range(len(halo_ids)):
    mass_halo = ic.halo[halo_id]['mass'].sum()
    halo_mass[ic.halo[halo_id]['iord']] = mass_halo

np.save("/share/data1/lls/sim200/halo_mass_particles.npy", halo_mass)
Esempio n. 21
0
(4) I compare the algorithm's predictions to the predictions from EPS theory.

"""

import sys
sys.path.append('/Users/lls/Documents/mlhalos_code/scripts')
import numpy as np
from mlhalos import parameters
from mlhalos import features
from mlhalos import machinelearning as ml

#### FEATURE EXTRACTION #####

initial_parameters = parameters.InitialConditionsParameters(
    min_mass_scale=1e10,
    max_mass_scale=1e15,
    ids_type='all',
    num_particles=None,
    n_particles_per_cat=None)
features_all = features.extract_labeled_features(
    features_type="EPS trajectories",
    initial_parameters=initial_parameters,
    num_filtering_scales=50,
    rescale=None)

np.save('/home/lls/stored_files/non_rescaled/features_all_particles.npy',
        features_all)

#### TRAINING #####
# Select 50,000 particles to use as training set

index_training = np.random.choice(len(features_all), size=50000, replace=False)
Esempio n. 22
0
        log_den_true[ids_nonvir_tested],
        bins_plotting,
        label_0="den+inertia",
        compare="density",
        # color="grey",
        path=path_inertia + "inertia_plus_den/",
        saving_name="nonvir_particles_vs_density.pdf")
    plt.clf()

    #### improvement as a function of radius

    sorted_ids_in_halo = np.sort(ids_in_halo)
    sorted_fraction = fraction[np.argsort(ids_in_halo)]

    fr_tested_ids = sorted_fraction[np.in1d(sorted_ids_in_halo, testing_ids)]
    ic = parameters.InitialConditionsParameters(
        path="/Users/lls/Documents/CODE", load_final=True)

    def frac_diff_predictions_vs_radial_fraction(array_0,
                                                 array_1,
                                                 radial_fraction,
                                                 bins=10,
                                                 log=True):
        #log_r = np.array([np.inf if x is np.inf else 0 if x == 0 else np.log10(x) for x in radial_fraction])
        # n, b = np.histogram(log_r[~np.isinf(log_r)], bins=bins)

        print(type(bins))
        if type(bins) == "int":
            if log is True:
                b = np.zeros(bins)
                n_s = np.logspace(np.log10(np.unique(radial_fraction)[1]),
                                  np.log10(np.unique(radial_fraction)[-2]),
Esempio n. 23
0
"""
This is the script where I calculate the shear features for the initial conditions
with the periodicity implementation of pynbody version 0.45 to calculate
the density smoothing including periodicity of the box.

"""

import sys
sys.path.append("/home/lls/mlhalos_code")
from mlhalos import shear
from mlhalos import parameters
import numpy as np

saving_path = "/share/data2/lls/features_w_periodicity_fix/"

ic = parameters.InitialConditionsParameters(load_final=True,
                                            path="/home/lls/stored_files")

s = shear.ShearProperties(initial_parameters=ic,
                          num_filtering_scales=50,
                          snapshot=None,
                          shear_scale=range(50),
                          number_of_processors=60,
                          path="/home/lls")

subtracted_eigenvalues = s.density_subtracted_eigenvalues
np.save(saving_path + "density_subtracted_eigenvalues.npy",
        subtracted_eigenvalues)

ell = s.density_subtracted_ellipticity
np.save(saving_path + "density_subtracted_ellipticity.npy", ell)
Esempio n. 24
0
import numpy as np
from mlhalos import features
from mlhalos import parameters

path = "/home/lls/stored_files"
number_of_cores = 60

# if path == "hypatia":
#     path = "/home/lls/stored_files"
# elif path == "macpro":
#     sys.path.append("/Users/lls/Documents/mlhalos_code/scripts")
#     path = "/Users/lls/Documents/CODE"

ic = parameters.InitialConditionsParameters(
    initial_snapshot=path +
    "/Nina-Simulations/double/ICs_z99_256_L50_gadget3.dat",
    final_snapshot=path + "/Nina-Simulations/double/snapshot_104")

density_shear_features = features.extract_labeled_features(
    features_type=["EPS trajectories", "shear"],
    initial_parameters=ic,
    num_filtering_scales=50,
    rescale=None,
    shear_scale=range(50),
    density_subtracted_shear=False,
    path=path,
    cores=number_of_cores)

np.save(
    "/home/lls/stored_files/shear_and_density/full_eigenvalues/not_rescaled/density_full_shear_features.npy",
    density_shear_features)
Esempio n. 25
0
import sys
sys.path.append("/home/lls/mlhalos_code")
import numpy as np
from mlhalos import machinelearning as ml
from mlhalos import parameters
import pynbody

# Get training set
saving_path = "/share/data1/lls/reseed50/"
path_simulation = "/home/app/reseed/"

initial_params = parameters.InitialConditionsParameters(
    initial_snapshot=path_simulation + "IC.gadget3",
    final_snapshot=path_simulation + "snapshot_099",
    load_final=True,
    min_halo_number=0,
    max_halo_number=400,
    min_mass_scale=3e10,
    max_mass_scale=1e15)
# Get halo mass for each particle

halo_id_particles = initial_params.final_snapshot['grp']
halo_num = np.unique(halo_id_particles)[1:]

halo_mass_particles = np.zeros(len(halo_id_particles))
for i in halo_num:
    halo_mass_particles[np.where(
        halo_id_particles == i)[0]] = initial_params.halo[i]["mass"].sum()

halo_mass_particles = pynbody.array.SimArray(halo_mass_particles)
halo_mass_particles.units = initial_params.halo[0]["mass"].units
import sys
sys.path.append("/home/lls/mlhalos_code/")
import numpy as np
from mlhalos import parameters
from mlhalos import window
from mlhalos import density
import pynbody
from regression.adaboost import gbm_04_only as gbm_fun
import matplotlib.pyplot as plt
from sklearn.externals import joblib


# path="/Users/lls/Documents/mlhalos_files/"
saving_path_traj = "/share/data2/lls/regression/gradboost/randomly_sampled_training/ic_traj_smoothed_above_1e15Msol/"

ic = parameters.InitialConditionsParameters()
w = window.WindowParameters(initial_parameters=ic)
d = density.DensityContrasts(initial_parameters=ic)

m = np.linspace(np.log10(3e10), np.log10(1e15), 50)
width = np.append(np.diff(m), np.diff(m)[-1])
m_all_p = ic.initial_conditions["mass"].sum()
m1 = np.arange(np.log10(1e15), np.log10(m_all_p*5000), step=width[-1])[1:]

M = pynbody.array.SimArray(10**m1)
M.units = "Msol"
r_smoothing = w.get_smoothing_radius_corresponding_to_filtering_mass(ic, M)

den = d.get_smooth_density_for_radii_list(ic, r_smoothing)
traj_high_smoothing = den/ic.mean_density
np.save(saving_path_traj + "density_contrasts_smoothed_above_1e15Msol.npy", traj_high_smoothing)
Esempio n. 27
0
    output[np.where((id_to_h >= initial_parameters.min_halo_number)
                    & (id_to_h <= initial_parameters.max_halo_number))] = 1
    output = output.astype("int")
    return output


############### ROC CURVES ###############

if __name__ == "__main__":
    # ic_training = parameters.InitialConditionsParameters(path="/Users/lls/Documents/CODE")
    # mass_threshold_in_out = ic_training.halo[400]['mass'].sum()

    ic = parameters.InitialConditionsParameters(
        initial_snapshot="/Users/lls/Documents/CODE/reseed50/IC.gadget3",
        final_snapshot="/Users/lls/Documents/CODE/reseed50/snapshot_099",
        load_final=True,
        min_halo_number=0,
        max_halo_number=400,
        min_mass_scale=3e10,
        max_mass_scale=1e15)

    # Change ic.ids_IN and ic.ids_OUT to be IN or OUT depending on whether they are in halos of mass larger than the
    # mass of halo 400 in ic_training and not that of halo 400 in ic. Change ids_IN, ids_OUT, and ic.max_halo_number.
    # We have that halo 409 in ic has the same mass as halo 400 in ic_training - hard code this for now.

    ic.max_halo_number = 409

    # Load or calculate true labels

    try:
        true_labels = np.load(
            "/Users/lls/Documents/CODE/reseed50/predictions/true_labels.npy")
Esempio n. 28
0
path = "/share/data2/lls/regression/local_inertia/tensor/"
ran_5k = np.load("/share/data2/lls/regression/local_inertia/tensor/ran_5k.npy")


def pool_local_inertia(particle_id):
    li, eigi = In.get_local_inertia_single_id(particle_id, snapshot,
                                              r_smoothing, rho)
    np.save(
        path + "random/inertia_tensor_particle_" + str(particle_id) + ".npy",
        li)
    np.save(path + "random/eigenvalues_particle_" + str(particle_id) + ".npy",
            eigi)

    # print("Done and saved particle " + str(particle_id))
    return li


ic = parameters.InitialConditionsParameters(load_final=True)
In = inertia.LocalInertia(ran_5k, initial_parameters=ic)

snapshot = ic.initial_conditions
rho = snapshot["rho"]
filtering_scales = In.filt_scales
r_smoothing = In.filter_parameters.smoothing_radii.in_units(
    snapshot["pos"].units)[filtering_scales]

pool = Pool(processes=40)
li_particles = pool.map(pool_local_inertia, ran_5k)
pool.close()
pool.join()
"""

import numpy as np
from mlhalos import parameters
from mlhalos import window
from mlhalos import density
import pynbody
from sklearn.externals import joblib

############### FEATURE EXTRACTION ###############

if __name__ == "__main__":
    path = "/home/lls"
    initial_params = parameters.InitialConditionsParameters(
        initial_snapshot="/home/app/reseed/IC.gadget3",
        load_final=True,
        final_snapshot="/home/app/reseed/snapshot_099")

    w = window.WindowParameters(initial_parameters=initial_params)
    d = density.DensityContrasts(initial_parameters=initial_params)

    m = np.linspace(np.log10(3e10), np.log10(1e15), 50)
    width = np.append(np.diff(m), np.diff(m)[-1])
    m_all_p = initial_params.initial_conditions["mass"].sum()
    m1 = np.arange(np.log10(1e15), np.log10(m_all_p * 5000),
                   step=width[-1])[1:]

    m_all = 10**np.concatenate((m, m1))

    M = pynbody.array.SimArray(m_all)
    M.units = "Msol"