[galaxy] compute sfr in a more consitent way

This commit is contained in:
Noe Brucy
2021-06-07 19:24:40 +02:00
parent 76fe0f9a5d
commit 95f96c1542
+5 -3
View File
@@ -80,7 +80,11 @@ def get_sfr(pp, stars):
epoch *= pp.info["unit_time"].express(U.year) epoch *= pp.info["unit_time"].express(U.year)
mass = stars["mass"].copy() mass = stars["mass"].copy()
mass *= pp.info["unit_mass"].express(U.Msun) mass *= pp.info["unit_mass"].express(U.Msun)
masstot, time = np.histogram(epoch, weights=mass, bins=100) mask = epoch > 0
t_tot = np.max(epoch[mask]) - np.min(epoch[mask])
masstot, time = np.histogram(
epoch[mask], weights=mass[mask], bins=int(t_tot / 100)
)
dtime = np.diff(time) dtime = np.diff(time)
sfr = masstot[-1] / dtime[-1] sfr = masstot[-1] / dtime[-1]
except KeyError: except KeyError:
@@ -95,7 +99,6 @@ def get_coldens(pp):
pp.coldens("z") pp.coldens("z")
pp.coldens_map = pp.get_value("/maps/coldens_z", unit=U.coldens) pp.coldens_map = pp.get_value("/maps/coldens_z", unit=U.coldens)
im_extent = np.array(pp.get_attribute("/maps", "im_extent")) im_extent = np.array(pp.get_attribute("/maps", "im_extent"))
im_extent *= pp.info["unit_length"].express(U.kpc) im_extent *= pp.info["unit_length"].express(U.kpc)
map_size = pp.pp_params.pymses.map_size map_size = pp.pp_params.pymses.map_size
@@ -179,7 +182,6 @@ def ring_analysis(pp, r=4, dr=0.5, dphi=0.125, z=0, dz=0.5):
return res return res
def get_time_from_relax(pp): def get_time_from_relax(pp):
try: try:
epoch = pp.parts["epoch"].copy() epoch = pp.parts["epoch"].copy()