ananke.Ananke module#
Contains the Ananke class definition
Please note that this module is private. The Ananke class is
available in the main ananke namespace - use that instead.
- class ananke.Ananke.Ananke(particles: Dict[str, ndarray[Any, dtype[_ScalarType_co]]], name: str, ngb: int = 64, caching: bool = False, append_hash: bool | None = None, k_params: Dict[str, Any] = {}, e_params: Dict[str, Any] = {}, err_params: Dict[str, Any] = {}, il_params: Dict[str, Any] = {}, **kwargs: Dict[str, Any])[source]#
Bases:
objectRepresents a single ananke pipeline.
- __init__(particles: Dict[str, ndarray[Any, dtype[_ScalarType_co]]], name: str, ngb: int = 64, caching: bool = False, append_hash: bool | None = None, k_params: Dict[str, Any] = {}, e_params: Dict[str, Any] = {}, err_params: Dict[str, Any] = {}, il_params: Dict[str, Any] = {}, **kwargs: Dict[str, Any]) None[source]#
- Parameters:
particles (dict) – A dictionary of same-length arrays representing particles data of a stellar population - see notes for formatting
name (str) – Name for the pipeline
ngb (int) – Number of neighbours to use in kernel density estimation
caching (bool) – EXPERIMENTAL: activate caching mode at every steps to resume work where it was left at from a previous python instance if needed. Default to True.
append_hash (bool) – TODO
k_params (dict) – Parameters to configure the kernel sizes estimation. Use class method
display_kernel_docsto find what parameters can be definede_params (dict) – Parameters to configure the extinction pipeline. Use class method
display_extinction_docsto find what parameters can be definederr_params (dict) – Parameters to configure the error model pipeline. Use class method
display_errormodel_docsto find what parameters can be definedil_params (dict) – Parameters to configure the integrated light pipeline. Use class method
display_integratedlight_docsto find what parameters can be definedobserver (array-like shape (3,) or dict of array-like shape (3,)) – Coordinates for the observer in phase space. Position and velocity quantities must respectively be given in kpc and km/s. To only specify position, an array-like object of shape (3,) is enough. If specifying both position and velocity, please provide a dictionary containing both coordinates as array-like objects of shape (3,), respectively denoting the position and velocity coordinates with keys
pos3andvel3. Position coordinates default to:[-8.12197337e+00 -1.47294445e-11 2.08000000e-02]
and velocity coordinates default to:
[ 12.9 245.6 7.78]
rshell (array-like shape (2,)) – Range in kpc of distances from the observer position of the particles that are to be considered. Default to:
[ 0 500]
photo_sys (string or list) – Name(s) of the photometric system(s) Galaxia should use to generate the survey. Default to
['padova/GAIA__DR2']. Available photometric systems can be queried with the class methoddisplay_available_photometric_systems.cmd_magnames (string or dict) – Names of the filters Galaxia should use for the color-magnitude diagram box selection. The input can be given as string in which case it must meet the following format:
"band1,band2-band3"where
band1is the magnitude filter and(band2, band3)are the filters that define theband2-band3color index. Alternatively, a dictionary can be passed with the following format:dict('magnitude': band1, 'color_minuend': band2, 'color_subtrahend': band3)
The filter names must correspond to filters that are part of the first chosen photometric system in photo_sys. Default to
'G,Gbp-Grp'.fsample (float) – Sampling rate from 0 to 1 for the resulting synthetic star survey. 1 returns a full sample while any value under returns partial surveys. Default to 1.
app_mag_lim_lo, app_mag_lim_hi, abs_mag_lim_lo, abs_mag_lim_hi, color_lim_lo, color_lim_hi (float) – These allow to specify the limits of the chosen color-magnitude diagram box selection (
lofor lower andhifor upper).app_mag,abs_magandcolorrepresent respectively limits in apparent magnitudes, absolute magnitudes and color index. Default values follow those set in the dictionary:{'abs_mag': [-1000, 20], 'app_mag': [-1000, 1000], 'color': [-1000, 1000]}
Notes
The input particles must include same-length arrays for every key of the list of keys return by property required_particles_keys. Particular attention should be given to arrays of keys
'pos3'and'vel3'that must be shaped as (Nx3) arrays of, respectively, position and velocity vectors. Use the class methodmake_dummy_particles_inputto generate a dummy example of such input dictionary.
- run(caching: bool | None = None, append_hash: bool | None = None, no_post_processing: bool | None = False, **kwargs) Output[source]#
Method to run the pipeline
- Parameters:
caching (bool) – EXPERIMENTAL: activate caching mode at every steps to resume work where it was left at from a previous python instance if needed. Default to existing caching given to object at construction.
append_hash (bool) – Only relevant if caching is active. When True, ananke automatically adds truncated hashes to all files it produces, to uniquely identify them. Default to True.
input_dir, output_dir, i_o_dir (string) – Optional arguments to specify paths for the directories where ananke should generate input and output data. If the i_o_dir keyword argument is provided, it overrides any path given to the input_dir and output_dir keyword arguments.
no_post_processing (bool) – If True, ignore the post-processing pipeline following the galaxia_ananke run. This post-processing pipeline involves the replacement of absolute magnitude quantities by their apparent ones, followed by the extinction estimation pipeline and by the error model application. Default to False.
k_factor (float) – Scaling factor applied to the kernels lengths to adjust all the kernels sizes uniformly. Lower values reduces the kernels extents, while higher values increases them. Default to 1 (no adjustment).
surveyname (string) – Optional name Galaxia should use for the output files. Default to ‘survey’.
input_sorter (array_like) – TODO
n_gens, n_jobs (int or iterable of int) – Number of independent catalog generations ran in parallel. Can also receive an iterable containing each generation number to run in parallel. Default to 1. Usage of n_jobs is deprecated and will be removed.
max_gen_workers (int) – CURRENTLY NOT PROPERLY IMPLEMENTED Maximum number of workers to parallelize the initial catalog generations. Default to the number of independent generations in n_gens.
max_pp_workers (int) – Maximum number of workers to parallelize the post-processing pipelines after the initial catalog generation. Default to 1.
pp_auto_flush (bool) – TODO
verbose (bool) – Verbose boolean flag to allow pipeline to print what it’s doing to stdout. Default to True.
partitioning_rule (TODO) – TODO
rand_seed (int) – Seed to be used by Galaxia’s pseudorandom number generator. Default to 17052
nstart (int) – Index at which to start indexing synthetic stars. Default to 0
longitude, latitude (float) –
Currently not implemented. Respectively default to:
76.273 & 13.4725
star_type (int) – Currently not implemented. Default to 0
geometry_opt (int) – Currently not implemented. Default to 0
survey_area (float) – Currently not implemented. Default to 207.455
pop_id (int) – Currently not implemented. Default to 10
warp_flare_on (int) – Currently not implemented. Default to 0
photo_error (int) – Currently not implemented. Default to 0
- Returns:
galaxia_output – Handler with utilities to utilize the output survey and its data.
- Return type:
Galaxia.Output
Notes
An Output object almost behaves as a vaex DataFrame, also please consult
vaexonline tutorials for more hands-on information:The DataFrame represents the catalogue with columns corresponding to properties of the stars from the synthetic stellar population it simulates.
Warning
When generated directly by
galaxia_ananke, the catalogue properties reflect directly the quantities as computed by Galaxia. However the catalogue can be modified/amended by applying post-processing routines using the methodapply_post_process_pipeline_and_flush. Also if suchOutputobject was generated by other software thangalaxia_ananke, post-processing may have been applied: also please refer to that software documentation for a more complete overview of the catalogue.The catalogue properties include the photometric magnitudes per filter, with each filter identified by a key in the following lowercase format:
photosys_filternamewhere
photo_syscorresponds to the chosen photometric systemfilternamecorresponds to a filter name of that system
As an example, the photometry in filters
gbp,grp&gof the Gaia DR2 system identified asGAIA__DR2are respectively under keysgaia__dr2_gbp,gaia__dr2_grp&gaia__dr2_g.With those are also always included the following properties:
Distance modulus in magnitude units via key
dmodStellar metallicity \([Fe/H]\) in \(dex\) relative to solar via key
fehRadial velocity in \(km/s\) via key
vrParallax in milliarcseconds via key
piVelocity coordinates in \(km/s\) via keys
(vx, vy, vz)Equatorial proper motions in milliarcseconds per year via keys
(mura, mudec)Galactic proper motions in milliarcseconds per year via keys
(mul, mub)Tip of the Red Giant Branch stellar mass in solar masses via key
mtipSurface temperature in Kelvin and decimal logarithmic scale via key
teffCelestial galactic coordinates in \(degrees\) via keys
(glon, glat)Index of the data partition that contains the particle via key
partitionidStellar ages in years and decimal logarithmic scale via key
ageFlag = 1 if star not at center of its parent particle via key
partidDistance in \(kpc\) via key
radStellar luminosity in solar luminosities and decimal logarithmic scale via key
lumZero Age Main Sequence stellar mass in solar masses via key
smassPosition coordinates in \(kpc\) via keys
(px, py, pz)Surface gravity in CGS units and decimal logarithmic scale via key
gravCelestial equatorial coordinates in \(degrees\) via keys
(ra, dec)Index of parent particle via key
parentidCurrent stellar mass in solar masses via key
mact
Additionally, depending on what optional properties were provided with the input particle data, the output can also include the following properties:
Neon abundance \([Ne/H]\) in \(dex\) via key
neonCarbon abundance \([C/H]\) in \(dex\) via key
carbonNitrogen abundance \([N/H]\) in \(dex\) via key
nitrogenSilicon abundance \([Si/H]\) in \(dex\) via key
siliconMagnesium abundance \([Mg/H]\) in \(dex\) via key
magnesiumHelium abundance \([He/H]\) in \(dex\) via key
heliumOxygen abundance \([O/H]\) in \(dex\) via key
oxygenCalcium abundance \([Ca/H]\) in \(dex\) via key
calciumFormation distance of parent particle in kpc via key
dformAlpha abundance \([Mg/Fe]\) in \(dex\) via key
alphaIndex of parent particle population via key
satidSulphur abundance \([S/H]\) in \(dex\) via key
sulphur
Ananke complements this set of properties with those that are generated from its various post-processing subroutines. As a result the
photosys_filtername-formatted columns contain the apparent photometry, computed with addition of extinction and instrument error. Each component contributing to this final apparent photometry are stored in other columns with thephotosys_filternameformat with relevant prefixing/suffixing as listed below:The intrinsic photometry are stored in the suffixed
_IntrinsickeysThe extinction values are stored in the prefixed
A_keysThe properties’ standard error are stored in the suffixed
_SigkeysThe properties’ actually drawn gaussian error are stored in the suffixed
_Errkeys
Note that because the error model generally also affect astrometry, the latter 2 suffixing rules also apply to the astrometric properties.
The extinction post-processing routine also add 3 properties:
The line-of-sight hydrogen column density in \(cm^{-2}\) and decimal logarithmic scale via key
log10_NHThe reddening index via key
E(B-V)The reference extinction (which extinction coefficients are based on) via key
A_0
- property particles: Dict[str, ndarray[Any, dtype[_ScalarType_co]]]#
- property particle_masses: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_positions: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_velocities: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_metallicities: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_ages: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_parentids: ndarray[Any, dtype[_ScalarType_co]]#
- property name: str#
- property ngb: int#
- property caching: bool#
- property append_hash: bool#
- property universe_rshell: ndarray[Any, dtype[_ScalarType_co]]#
- property observer_position: ndarray[Any, dtype[_ScalarType_co]]#
- property observer_velocity: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_observed_positions: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_observed_velocities: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_observed_distances: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_input_kernels: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_input_position_kernels: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_input_velocity_kernels: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_nearest_observed_distances: ndarray[Any, dtype[_ScalarType_co]]#
- property particle_nearest_observed_distmod: ndarray[Any, dtype[_ScalarType_co]]#
- property extinctions#
- property errors#
- property residuals#
- property parameters: Dict[str, Any]#
- property photo_sys: str#
- property galaxia_photosystems: List[PhotoSystem]#
- property galaxia_isochrones#
- property galaxia_catalogue_mag_names: Tuple[str]#
- property intrinsic_catalogue_mag_names: Tuple[str]#
- property galaxia_catalogue_mag_and_astrometrics: Tuple[str]#
- property galaxia_catalogue_keys: Tuple[str]#
- property photosystems_zeropoints: Quantity#
- property photosystems_zeropoints_dict: Dict[str, Quantity]#
- classmethod make_dummy_particles_input(n_parts=100000, with_kernels=False) Dict[str, ndarray[Any, dtype[_ScalarType_co]]][source]#
Generate an example dummy input particles dictionary for Ananke made of randomly generated arrays.
- Parameters:
n_parts (int) – Number of particles the example include. Default to 10**5.
with_kernels (bool) – Flag to include dummy kernels estimates in the returned dictionary. Default to False
- Returns:
p – Dummy example input particles dictionary for Ananke.
- Return type:
dict
Notes
The particle dictionary includes the following properties with corresponding keys:
Position coordinates in \(kpc\) (Nx3) via key
pos3Stellar ages in years and decimal logarithmic scale via key
ageVelocity coordinates in \(km/s\) (Nx3) via key
vel3Stellar masses in solar masses via key
massStellar metallicity \([Fe/H]\) in dex relative to solar via key
feh
Additionally, Galaxia can optionally receive particle properties that will be carried over to the generated synthetic star, those include the following:
Neon abundance \([Ne/H]\) in \(dex\) via key
neonCarbon abundance \([C/H]\) in \(dex\) via key
carbonNitrogen abundance \([N/H]\) in \(dex\) via key
nitrogenMagnesium abundance \([Mg/H]\) in \(dex\) via key
magnesiumSilicon abundance \([Si/H]\) in \(dex\) via key
siliconIndex of the data partition that contains the particle via key
partitionidHelium abundance \([He/H]\) in \(dex\) via key
heliumOxygen abundance \([O/H]\) in \(dex\) via key
oxygenFormation distance of parent particle in kpc via key
dformCalcium abundance \([Ca/H]\) in \(dex\) via key
calciumAlpha abundance \([Mg/Fe]\) in \(dex\) via key
alphaIndex of parent particle population via key
idSulphur abundance \([S/H]\) in \(dex\) via key
sulphurIndex of parent particle via key
parentid
Ananke compute the phase space densities that are used to determine particle kernel lengths, but the dictionary can include pre-computed kernels with the following entries:
Phase-space kernel radii in \(kpc\) and \(km/s\) (Nx2) via key
kernels
- classmethod display_available_photometric_systems()[source]#
Return a nested dictionary of all photometric systems that are available in Galaxia.
- Returns:
available_photo_systems – Dictionary of dictionaries of Isochrone objects.
- Return type:
dict
- classmethod display_extinction_docs() None[source]#
Print the ExtinctionDriver constructor docstring
- classmethod display_errormodel_docs() None[source]#
Print the ErrorModelDriver constructor docstring