Jacob Hummel Python scripts for code examples.  about 8 years ago

Commit id: 174083b7310498b0bb325d3ae68e60f8f3b1037c

deletions | additions      

         

Specifying code unit conversions:  >>> import gadfly as gdf  >>> sim = gdf.Simulation('path_to_simulation_directory',   UnitMass_in_g = 1.989e43,  UnitLength_in_cm = 3.085678e21,  UnitVelocity_in_cm_per_s = 1e5)  Specify default units:  >>> sim = gdf.Simulation('path_to_simulation_directory',   length='kpc',  mass = 'solar',  velocity = 'kms',  time = 'gyr')  Change default units on the fly:  >>> sim.units.length_unit  'kpc'  >>> sim.units.set_length('AU')  >>> sim.units.length_unit  'AU'  Specify units at load time:  >>> sim.units.mass_unit  'g'  >>> snap.gas.load_masses(unit='solar')  >>> sim.units.mass_unit  'solar'           

Import gadfly and initialize the simulation.  >>> import gadfly as gdf  >>> sim = gdf.Simulation('path_to_simulation_directory')  Load a snapshot:  >>> snap = sim.load_snapshot(100)  >>> snap.file_id    >>> snap.file_id.keys()  [u'Header', u'PartType0', u'PartType1']  Inspect the Header:  >>> snap.header.Redshift  26.663827788885538  >>> snap.header.BoxSize  100.0  Load a particle dataset:  >>> snap.define_ptype('dm', 1, gdf.nbody.PartTypeNbody)  >>> snap.dm.load_masses()  >>> snap.dm.info()    Int64Index: 13347573 entries, 25272898 to 25272897  Data columns (total 1 columns):  masses float64  dtypes: float64(1)  memory usage: 203.7 MB  >>> snap.dm.cleanup()  >>> snap.dm.load_quantity('coordinates', 'particleIDs')  >>> snap.dm.info()    Int64Index: 13347573 entries, 25272898 to 25272897  Data columns (total 4 columns):  x float64  y float64  z float64  particleIDs uint32  dtypes: float64(3), uint32(1)  memory usage: 458.3 MB  Load non-standard particle field:  >>> snap.define_ptype('gas', 0, gdf.sph.PartTypeSPH)  >>> snap.gas.load_quantity('Adiabatic index')  >>> snap.gas.info()    Int64Index: 13347573 entries, 23325038 to 23308525  Data columns (total 1 columns):  Adiabatic index float64  dtypes: float64(1)  memory usage: 203.7 MB  Load dataset using a custom class:  >>> from custom_ptype import PartTypeCustom  >>> snap.define_ptype('gas', 0, PartTypeCustom)  >>> snap.gas.calculate_temperature()  >>> snap.gas.info()    Int64Index: 13347573 entries, 23325038 to 23308525  Data columns (total 3 columns):  adiabatic_index float64  internal_energy float64  temperature float64  dtypes: float64(3)  memory usage: 407.3 MB           

import os  import sys  import glob  import subprocess  def process(filename):  base = filename.replace('.py', '')  script = """  pygmentize -l pycon -f latex -O style=default -O full -o {base}-tmp.tex {base}.py  """.format(base=base)  subprocess.call(script, shell=True)  fout = open('{base}-tmp-2.tex'.format(base=base), 'w')  for line in open('{base}-tmp.tex'.format(base=base), 'r'):  fout.write(line)  if 'documentclass' in line:  fout.write("\\usepackage[paperheight=20in]{geometry}\n")  fout.write("\pagestyle{empty}\n")  script = """  pdflatex {base}-tmp-2.tex  pdfcrop --bbox "0 100 1000 10000" {base}-tmp-2.pdf {base}-tmp-3.pdf  pdfcrop -margins "2 2 2 2" {base}-tmp-3.pdf {base}.pdf  """.format(base=base)  fout.close()  print script  subprocess.call(script, shell=True)  os.remove('{base}-tmp.tex'.format(base=base))  os.remove('{base}-tmp-2.tex'.format(base=base))  os.remove('{base}-tmp-2.log'.format(base=base))  os.remove('{base}-tmp-2.aux'.format(base=base))  os.remove('{base}-tmp-2.pdf'.format(base=base))  os.remove('{base}-tmp-3.pdf'.format(base=base))  for script in glob.glob('code_*.py'):  process(script)