tardis.io.model.arepo.utils module

Utility functions for reprojecting 3D Arepo data to 1D profiles.

tardis.io.model.arepo.utils.create_cone_profile(data: ArepoData, opening_angle: float = 20.0, inner_radius: float | None = None, outer_radius: float | None = None) tuple[ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, dict, dict][source]

Create 1D profiles from Arepo data using a cone selection.

Extracts data from within a cone around the x-axis, creating separate profiles for the positive and negative directions.

Parameters:
dataArepoData

The Arepo snapshot data.

opening_anglefloat, optional

Total opening angle of the cone in degrees. Default: 20.0

inner_radiusfloat, optional

Inner radius cutoff in cm. Default: None

outer_radiusfloat, optional

Outer radius cutoff in cm. Default: None

Returns:
pos_prof_pnumpy.ndarray

Position profile in positive direction (cm).

pos_prof_nnumpy.ndarray

Position profile in negative direction (cm).

vel_prof_pnumpy.ndarray

Velocity profile in positive direction (cm/s).

vel_prof_nnumpy.ndarray

Velocity profile in negative direction (cm/s).

rho_prof_pnumpy.ndarray

Density profile in positive direction (g/cm^3).

rho_prof_nnumpy.ndarray

Density profile in negative direction (g/cm^3).

mass_prof_pnumpy.ndarray

Mass profile in positive direction (g).

mass_prof_nnumpy.ndarray

Mass profile in negative direction (g).

xnuc_prof_pdict

Nuclear fraction profiles in positive direction.

xnuc_prof_ndict

Nuclear fraction profiles in negative direction.

Raises:
ValueError

If no points remain after applying radius cuts.

tardis.io.model.arepo.utils.create_full_profile(data: ArepoData, inner_radius: float | None = None, outer_radius: float | None = None) tuple[ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, dict, dict][source]

Create 1D profiles from full Arepo snapshot (angle-averaged).

Creates angle-averaged profiles from all data. Positive and negative direction profiles are identical in this case.

Parameters:
dataArepoData

The Arepo snapshot data.

inner_radiusfloat, optional

Inner radius cutoff in cm. Default: None

outer_radiusfloat, optional

Outer radius cutoff in cm. Default: None

Returns:
pos_prof_pnumpy.ndarray

Position profile in positive direction (cm).

pos_prof_nnumpy.ndarray

Position profile in negative direction (cm).

vel_prof_pnumpy.ndarray

Velocity profile in positive direction (cm/s).

vel_prof_nnumpy.ndarray

Velocity profile in negative direction (cm/s).

rho_prof_pnumpy.ndarray

Density profile in positive direction (g/cm^3).

rho_prof_nnumpy.ndarray

Density profile in negative direction (g/cm^3).

mass_prof_pnumpy.ndarray

Mass profile in positive direction (g).

mass_prof_nnumpy.ndarray

Mass profile in negative direction (g).

xnuc_prof_pdict

Nuclear fraction profiles in positive direction.

xnuc_prof_ndict

Nuclear fraction profiles in negative direction.

Raises:
ValueError

If no points remain after applying radius cuts.

tardis.io.model.arepo.utils.export_profile_to_csvy(pos_prof: ndarray, vel_prof: ndarray, rho_prof: ndarray, mass_prof: ndarray, xnuc_prof: dict, time: Quantity, filename: str | Path, nshells: int, overwrite: bool = False) str[source]

Export a 1D profile to CSVY format for TARDIS.

Parameters:
pos_profnumpy.ndarray

Position profile (cm).

vel_profnumpy.ndarray

Velocity profile (cm/s).

rho_profnumpy.ndarray

Density profile (g/cm^3).

mass_profnumpy.ndarray

Mass profile (g).

xnuc_profdict

Nuclear fraction profiles keyed by species name.

timeastropy.units.Quantity

Time of the snapshot.

filenamestr or pathlib.Path

Name of the exported file.

nshellsint

Number of shells to export.

overwritebool, optional

If True, will overwrite existing files. Default: False

Returns:
str

Actual filename of the saved file.

tardis.io.model.arepo.utils.plot_profile(pos_prof_p: ndarray, pos_prof_n: ndarray, vel_prof_p: ndarray, vel_prof_n: ndarray, rho_prof_p: ndarray, rho_prof_n: ndarray, xnuc_prof_p: dict, xnuc_prof_n: dict, time: Quantity, save: str | Path | None = None, dpi: int = 600, **kwargs) Figure[source]

Plot 1D profiles for both positive and negative directions.

Parameters:
pos_prof_pnumpy.ndarray

Position profile in positive direction.

pos_prof_nnumpy.ndarray

Position profile in negative direction.

vel_prof_pnumpy.ndarray

Velocity profile in positive direction.

vel_prof_nnumpy.ndarray

Velocity profile in negative direction.

rho_prof_pnumpy.ndarray

Density profile in positive direction.

rho_prof_nnumpy.ndarray

Density profile in negative direction.

xnuc_prof_pdict

Nuclear fraction profiles in positive direction.

xnuc_prof_ndict

Nuclear fraction profiles in negative direction.

timeastropy.units.Quantity

Time of the snapshot.

savestr or pathlib.Path, optional

Path to save the figure. Default: None

dpiint, optional

DPI for saved figure. Default: 600

**kwargs

Additional keyword arguments passed to matplotlib.pyplot.plot()

Returns:
matplotlib.figure.Figure

The generated figure object.

tardis.io.model.arepo.utils.rebin_profile(pos_prof_p: ndarray, pos_prof_n: ndarray, vel_prof_p: ndarray, vel_prof_n: ndarray, rho_prof_p: ndarray, rho_prof_n: ndarray, mass_prof_p: ndarray, mass_prof_n: ndarray, xnuc_prof_p: dict, xnuc_prof_n: dict, nshells: int) tuple[ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, ndarray, dict, dict][source]

Rebin profile data to specified number of shells.

Uses scipy.stats.binned_statistic to bin the data into nshells bins.

Parameters:
pos_prof_pnumpy.ndarray

Position profile in positive direction.

pos_prof_nnumpy.ndarray

Position profile in negative direction.

vel_prof_pnumpy.ndarray

Velocity profile in positive direction.

vel_prof_nnumpy.ndarray

Velocity profile in negative direction.

rho_prof_pnumpy.ndarray

Density profile in positive direction.

rho_prof_nnumpy.ndarray

Density profile in negative direction.

mass_prof_pnumpy.ndarray

Mass profile in positive direction.

mass_prof_nnumpy.ndarray

Mass profile in negative direction.

xnuc_prof_pdict

Nuclear fraction profiles in positive direction.

xnuc_prof_ndict

Nuclear fraction profiles in negative direction.

nshellsint

Number of bins for rebinned data.

Returns:
pos_prof_pnumpy.ndarray

Rebinned position profile in positive direction.

pos_prof_nnumpy.ndarray

Rebinned position profile in negative direction.

vel_prof_pnumpy.ndarray

Rebinned velocity profile in positive direction.

vel_prof_nnumpy.ndarray

Rebinned velocity profile in negative direction.

rho_prof_pnumpy.ndarray

Rebinned density profile in positive direction.

rho_prof_nnumpy.ndarray

Rebinned density profile in negative direction.

mass_prof_pnumpy.ndarray

Rebinned mass profile in positive direction.

mass_prof_nnumpy.ndarray

Rebinned mass profile in negative direction.

xnuc_prof_pdict

Rebinned nuclear fraction profiles in positive direction.

xnuc_prof_ndict

Rebinned nuclear fraction profiles in negative direction.