Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
sim.properties['omegaM0'] = sim._info['omega_m']
sim.properties['omegaL0'] = sim._info['omega_l']
sim.properties['h'] = sim._info['H0'] / 100.
# N.B. these conversion factors provided by ramses already have the
# correction from comoving to physical units
d_unit = sim._info['unit_d'] * units.Unit("g cm^-3")
t_unit = sim._info['unit_t'] * units.Unit("s")
l_unit = sim._info['unit_l'] * units.Unit("cm")
sim.properties['boxsize'] = sim._info['boxlen'] * l_unit
if sim._info['omega_k'] == sim._info['omega_l'] == sim._info['omega_b'] == 0.0:
sim.properties['time'] = sim._info['time'] * t_unit
else:
sim.properties['time'] = analysis.cosmology.age(
sim) * units.Unit('Gyr')
sim._file_units_system = [d_unit, t_unit, l_unit]
**Input**:
*sim*: RAMSES simulation snapshot
**Return values**:
*lenunit, massunit, timeunit* : tuple specifying the units in kpc, Msol, and Gyr
"""
# figure out the units starting with mass
cmtokpc = 3.2407793e-22
lenunit = sim._info['unit_l'] / sim.properties['a'] * cmtokpc
massunit = pynbody.analysis.cosmology.rho_crit(
sim, z=0, unit='Msol kpc^-3') * lenunit ** 3
G_u = 4.4998712e-6 # G in kpc^3 / Msol / Gyr^2
timeunit = np.sqrt(1 / G_u * lenunit ** 3 / massunit)
return Unit('%e kpc' % lenunit), Unit('%e Msol' % massunit), Unit('%e Gyr' % timeunit)
sim.properties['omegaM0'] = sim._info['omega_m']
sim.properties['omegaL0'] = sim._info['omega_l']
sim.properties['h'] = sim._info['H0'] / 100.
# N.B. these conversion factors provided by ramses already have the
# correction from comoving to physical units
d_unit = sim._info['unit_d'] * units.Unit("g cm^-3")
t_unit = sim._info['unit_t'] * units.Unit("s")
l_unit = sim._info['unit_l'] * units.Unit("cm")
sim.properties['boxsize'] = sim._info['boxlen'] * l_unit
if sim._not_cosmological():
sim.properties['time'] = sim._info['time'] * t_unit
else:
sim.properties['time'] = analysis.cosmology.age(
sim) * units.Unit('Gyr')
sim._file_units_system = [d_unit, t_unit, l_unit]
if (len(sys.argv) > 2):
# if there's a second argument, it can be a photogenic file
# and analysis will follow the halo that contains those particles
photiords = np.genfromtxt(sys.argv[2],dtype='i8')
frac = np.float(len(np.where(np.in1d(photiords,h[i]['iord']))[0]))/len(photiords)
print('i: %d frac: %.2f'%(i,frac))
while(((frac) < 0.5) & (i<100)):
i=i+1
frac = np.float(len(np.where(np.in1d(photiords,h[i]['iord']))[0]))/len(photiords)
print('i: %d frac: %.2f'%(i,frac))
else:
# otherwise follow largest halo with at least 2 stars
while len(h[i].star) <2: i=i+1
if (i==100): sys.exit()
pynbody.analysis.angmom.faceon(h[i]) # align halo faceon
s.physical_units() # change to physical units
import matplotlib.pylab as plt
# load the snapshot and set to physical units
s = pynbody.load('testdata/g15784.lr.01024.gz')
# load the halos
h = s.halos()
# center on the largest halo and align the disk
pynbody.analysis.angmom.faceon(h[1])
# convert all units to something reasonable (kpc, Msol etc)
s.physical_units()
# create a profile object for the stars (by default this is a 2D profile)
p = pynbody.analysis.profile.Profile(h[1].s,min=.01,max=50)
# make the figure and sub plots
f, axs = plt.subplots(1,2,figsize=(14,6))
# make the plot
axs[0].plot(p['rbins'],p['density'], 'k')
axs[0].semilogy()
axs[0].set_xlabel('R [kpc]')
axs[0].set_ylabel(r'$\Sigma_{\star}$ [M$_{\odot}$ kpc$^{-2}$]')
# make a 3D density plot of the dark matter (note ndim=3 in the constructor below)
p = pynbody.analysis.profile.Profile(h[1].d,min=.01,max=50,ndim=3)
axs[1].plot(p['rbins'],p['density'], 'k')
axs[1].semilogy()
axs[1].set_xlabel('R [kpc]')
import matplotlib.pylab as plt
# load the snapshot and set to physical units
s = pynbody.load('testdata/g15784.lr.01024.gz')
# load the halos
h = s.halos()
# center on the largest halo and align the disk
pynbody.analysis.angmom.faceon(h[1])
# convert all units to something reasonable (kpc, Msol etc)
s.physical_units()
# create a profile object for the stars (by default this is a 2D profile)
p = pynbody.analysis.profile.Profile(h[1].s,min=.01,max=50)
# make the figure and sub plots
f, axs = plt.subplots(1,2,figsize=(14,6))
# make the plot
axs[0].plot(p['rbins'],p['density'], 'k')
axs[0].semilogy()
axs[0].set_xlabel('R [kpc]')
axs[0].set_ylabel(r'$\Sigma_{\star}$ [M$_{\odot}$ kpc$^{-2}$]')
# make a 3D density plot of the dark matter (note ndim=3 in the constructor below)
p = pynbody.analysis.profile.Profile(h[1].d,min=.01,max=50,ndim=3)
axs[1].plot(p['rbins'],p['density'], 'k')
axs[1].semilogy()
axs[1].set_xlabel('R [kpc]')
import pynbody
import pynbody.plot.sph as sph
import matplotlib.pylab as plt
# load the snapshot and set to physical units
s = pynbody.load('testdata/g15784.lr.01024.gz')
s.physical_units()
# load the halos
h = s.halos()
# center on the largest halo and align the disk
pynbody.analysis.angmom.faceon(h[1])
#create an image of gas density integrated down the line of site (z axis)
sph.image(h[1].g,qty="rho",units="g cm^-2",width=100,cmap="Greys")
velunit = 8.0285 * np.sqrt(6.67384e-8 * denunit) * dunit
timeunit = dunit / velunit * 0.97781311
s['pos'].convert_units('kpc')
s['vel'].convert_units('%e km s^-1' % velunit)
s['mass'].convert_units('%e Msol' % massunit)
s['eps'].convert_units('kpc')
s.g['rho'].convert_units('%e Msol kpc^-3' % denunit)
s.s['tform'].convert_units('Gyr')
del(s.g['smooth'])
s.s['metals'] = s.s['metal']
s.g['metals'] = s.g['metal']
del(s['metal'])
s.g['temp']
s.properties['a'] = pynbody.analysis.cosmology.age(s)
if filt is not None:
s[filt].write(pynbody.tipsy.TipsySnap, '%s.tipsy' % output[-12:])
else:
s.write(pynbody.tipsy.TipsySnap, '%s.tipsy' % output[-12:])
# load the halos
h = s.halos()
# center on the largest halo and align the disk
pynbody.analysis.angmom.sideon(h[1])
# create the subplots
f, axs = plt.subplots(1,2,figsize=(14,6))
#create a simple slice showing the gas temperature, with velocity vectors overlaid
sph.velocity_image(h[1].g, vector_color="cyan", qty="temp",width=50,cmap="YlOrRd",
denoise=True,approximate_fast=False, subplot=axs[0], show_cbar = False)
#you can also make a stream visualization instead of a quiver plot
pynbody.analysis.angmom.faceon(h[1])
s['pos'].convert_units('Mpc')
sph.velocity_image(s.g, width='3 Mpc', cmap = "Greys_r", mode='stream', units='Msol kpc^-2',
density = 2.0, vector_resolution=100, vmin=1e-1,subplot=axs[1],
show_cbar=False, vector_color='black')
import pynbody
import pynbody.plot.sph as sph
import matplotlib.pylab as plt
# load the snapshot and set to physical units
s = pynbody.load('testdata/g15784.lr.01024.gz')
s.physical_units()
# load the halos
h = s.halos()
# center on the largest halo and align the disk
pynbody.analysis.angmom.faceon(h[1])
#create a simple slice of gas density
sph.image(h[1].g,qty="rho",units="g cm^-3",width=100,cmap="Greys")