These scripts demonstrate some basic and more advanced analysis that can be performed on cosmological simulation datasets.
import yt from yt.extensions.astro_analysis.halo_analysis.halo_catalog import HaloCatalog # Load the dataset ds = yt.load("Enzo_64/RD0006/RedshiftOutput0006") # Load the halo list from a rockstar output for this dataset halos = yt.load("rockstar_halos/halos_0.0.bin") # Create the halo catalog from this halo list hc = HaloCatalog(halos_ds=halos) hc.load() # Create a projection with the halos overplot on top p = yt.ProjectionPlot(ds, "x", "density") p.annotate_halos(hc) p.save()
Light Cone Projection¶
This script creates a light cone projection, a synthetic observation that stacks together projections from multiple datasets to extend over a given redshift interval. See Light Cone Generator for more information.
import glob import shutil from yt.extensions.astro_analysis.cosmological_observation.api import LightCone # Create a LightCone object extending from z = 0 to z = 0.1. # We have already set up the redshift dumps to be # used for this, so we will not use any of the time # data dumps. lc = LightCone( "enzo_tiny_cosmology/32Mpc_32.enzo", "Enzo", 0.0, 0.1, observer_redshift=0.0, time_data=False, ) # Calculate a randomization of the solution. lc.calculate_light_cone_solution(seed=123456789, filename="LC/solution.txt") # Choose the field to be projected. field = "szy" # Use the LightCone object to make a projection with a 600 arcminute # field of view and a resolution of 60 arcseconds. # Set njobs to -1 to have one core work on each projection # in parallel. lc.project_light_cone( (600.0, "arcmin"), (60.0, "arcsec"), field, weight_field=None, save_stack=True, save_final_image=True, save_slice_images=True, njobs=-1, ) # By default, the light cone projections are kept in the LC directory, # but this moves them back to the current directory so that they're rendered # in our cookbook. for file in glob.glob("LC/*png"): shutil.move(file, ".")