sage_analysis.sage_hdf5

This module defines the SageHdf5Data class. This class interfaces with the Model class to read in binary data written by SAGE. The value of sage_output_format is generally sage_hdf5 if it is to be read with this class.

If you wish to ingest data from your own flavour of SAGE, please open a Github issue, I plan to add this documentation in future :)

Author: Jacob Seiler.

class sage_analysis.sage_hdf5.SageHdf5Data(model: sage_analysis.model.Model, sage_file_to_read: str)[source]

Class intended to inteface with the Model class to ingest the data written by SAGE. It includes methods for reading the output galaxies, setting cosmology etc. It is specifically written for when sage_output_format is sage_hdf5.

__init__(model: sage_analysis.model.Model, sage_file_to_read: str) → None[source]

Instantiates the Data Class for reading in SAGE HDF5 data. In particular, opens up the file and ensures the data version matches the expected value.

Parameters:model (Model instance) – The model that this data class is associated with; this class will read the data for this model.
close_file(model)[source]

Closes the open HDF5 file.

determine_num_gals(model: sage_analysis.model.Model, snapshot: int, *args)[source]

Determines the number of galaxies in all cores for this model at the specified snapshot.

Parameters:
  • model (Model class) – The Model we’re reading data for.
  • snapshot (int) – The snapshot we’re analysing.
  • *args (Any) – Extra arguments to allow other data class to pass extra arguments to their version of determine_num_gals.
determine_volume_analyzed(model: sage_analysis.model.Model) → float[source]

Determines the volume analyzed. This can be smaller than the total simulation box.

Parameters:model (Model instance) – The model that this data class is associated with.
Returns:volume – The numeric volume being processed during this run of the code in (Mpc/h)^3.
Return type:float
read_gals(model: sage_analysis.model.Model, core_num: int, snapshot: int, pbar: Optional[tqdm.std.tqdm] = None, plot_galaxies: bool = False, debug: bool = False) → Any[source]

Reads the galaxies of a single core at the specified snapshot.

Parameters:
  • model (Model class) – The Model we’re reading data for.
  • core_num (Integer) – The core group we’re reading.
  • pbar (tqdm class instance, optional) – Bar showing the progress of galaxy reading. If None, progress bar will not show.
  • plot_galaxies (Boolean, optional) – If set, plots and saves the 3D distribution of galaxies for this file.
  • debug (Boolean, optional) – If set, prints out extra useful debug information.
Returns:

gals – The galaxies for this file.

Return type:

h5py group

Notes

tqdm does not play nicely with printing to stdout. Hence we disable the tqdm progress bar if debug=True.

read_sage_params(sage_file_path: str) → Dict[str, Any][source]

Read the SAGE parameter file.

Parameters:sage_file_path (string) – Path to the SAGE parameter file.
Returns:model_dict – Dictionary containing the parameter names and their values.
Return type:dict [str, var]
update_snapshot_and_data_path(model: sage_analysis.model.Model, snapshot: int)[source]

Updates the snapshot attribute to snapshot. As the HDF5 file contains all snapshot information, we do not need to update the path to the output data. However, ensure that the file itself is still open.