def test_load_data(): """ Very basic test that either loads the data or makes sure that it exists, by creating it. """ try: data = lt.read_data_from_file("lt_outputs.hdf5") except: sys.call([ "python3", "analyse.py", "snapshot_ini.hdf5", "snapshot_end.hdf5", "caesar.hdf5" ]) data = lt.read_data_from_file("lt_outputs.hdf5") return data
#%% # Our imports from ltcaesar import read_data_from_file from sphviewer.tools import QuickView import numpy as np import matplotlib.pyplot as plt from pickle import load from matplotlib.colors import LogNorm, Normalize #%% # Setup our favourite stylesheet plt.style.use("mnras_flatiron") #%% directory = "s50j7kAHF" data = read_data_from_file(f"{directory}/lt/lt_outputs.hdf5") #%% [markdown] # We want to find the largest halo in the box and make a picture of it. # Thankfully that should be reasonably easy to find because we have # stored everything in our 'FakeCaesar' object. #%% with open(f"{directory}/lt/halo_catalogue.pickle", "rb") as handle: halo_catalogue = load(handle) #%% centers = [x.center for x in halo_catalogue.halos] r_virs = [x.rvir for x in halo_catalogue.halos] #%%
""" bin_edges = np.linspace(0, 1, 50) radial_bins = [[x, y] for x, y in zip(bin_edges[:-1], bin_edges[1:])] output, output_std = lt.analysis.radial.run_analysis_on_mass_bin( simulation, 1e12, 1e13, radial_bins, bin_func=mass_fraction_binned_by_feedback ) bin_centers = [0.5 * (x + y) for x, y in zip(bin_edges[:-1], bin_edges[1:])] # Make the plot pretty bin_centers[0] = 0 bin_centers[-1] = 1 np.save("radial_distance_analysis_gas_fb.npy", output) np.save("radial_distance_analysis_gas_stderr_fb.npy", output_std) np.save("radial_distance_analysis_radial_bins_fb.npy", bin_centers) return if __name__ == "__main__": import sys filename = sys.argv[1] print("Reading data from {}".format(filename)) sim = lt.read_data_from_file(filename) run_analysis(simulation=sim)
Makes a bunch of different plots based on distance metrics. This is converted from a python notebook is is quite messy. """ import matplotlib matplotlib.use("Agg") import ltcaesar as lt import matplotlib.pyplot as plt import numpy as np sim = lt.read_data_from_file("lt_outputs.hdf5") dark_matter_data = lt.plot.find_distances_to_nearest_neighbours_data(sim, "dark_matter") gas_data = lt.plot.find_distances_to_nearest_neighbours_data(sim, "gas") star_data = lt.plot.find_distances_to_nearest_neighbours_data(sim, "stars") # The first thing to look at is which particles have been launched by winds. To do that, we'll need some more data from the snapshot file. # # Note that wind launches are encoded as follows (using base 10): # # + SF kick, `+=1` to `NWindLaunches` # + AGN kick, `+=1000` to `NWindLaunches` import h5py