+ All Categories
Home > Education > yt: An Analysis and Visualization System for Astrophysical Simulation Data

yt: An Analysis and Visualization System for Astrophysical Simulation Data

Date post: 02-Jul-2015
Category:
Upload: john-zuhone
View: 535 times
Download: 4 times
Share this document with a friend
Description:
This is a talk I gave at NASA/Goddard about yt (http://yt-project.org)
60
yt: An Analysis and Visualization System for Astrophysical Simulation Data John ZuHone NASA/Goddard Space Flight Center, Code 662
Transcript
Page 1: yt: An Analysis and Visualization System for Astrophysical Simulation Data

yt: An Analysis and Visualization System

for Astrophysical Simulation Data

John ZuHone NASA/Goddard Space Flight Center, Code 662

Page 2: yt: An Analysis and Visualization System for Astrophysical Simulation Data

What is yt?

Page 3: yt: An Analysis and Visualization System for Astrophysical Simulation Data

astro-ph/1011.3514 astro-ph/1112.4482

yt-project.org

Page 4: yt: An Analysis and Visualization System for Astrophysical Simulation Data

yt is a platform for analysis and visualization of astrophysical* simulations

Page 5: yt: An Analysis and Visualization System for Astrophysical Simulation Data

!

There are many simulation codes, but there’s only one sky.

Page 6: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Fully-Supported Semi-Supported In Progress

Enzo FLASH Nyx

Orion Uniform Data

Chombo Athena

ART Ramses Piernik GDF

Gadget Hydra Cactus

Page 7: yt: An Analysis and Visualization System for Astrophysical Simulation Data

!

data structures, methods,

assumptions, IO formats, units,

variable names, ...

Page 8: yt: An Analysis and Visualization System for Astrophysical Simulation Data

!

yt is designed to address physical, not computational,

entities and questions

Page 9: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Orthogonal Rays Non-orthogonal Rays

Slices Oblique Slices Projections

Spheres Rectangular Prisms Disks/Cylinders Inclined Boxes Clumps Extracted Regions Ellipsoids

1D

2D

3D

Page 10: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Why use Python?

Page 11: yt: An Analysis and Visualization System for Astrophysical Simulation Data

• Object-oriented

• Open source

• Lots of external libraries

Page 12: yt: An Analysis and Visualization System for Astrophysical Simulation Data

• NumPy

• h5py

• Matplotlib

• IPython

• Astropy

• Sherpa/Chips

Python Libraries

Page 13: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Objects

Page 14: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Objects

• Parameter file: a “loaded” data file that contains the simulation parameters and the “hierarchy”

• pf = load(“kh_mhd_hdf5_chk_0100”)

• Hierarchy: grid metadata object that “hangs off” the parameter file: “pf.h”

Page 15: yt: An Analysis and Visualization System for Astrophysical Simulation Data

pf.h.print_stats(): level # grids # cells # cells^3 ---------------------------------------------- 0 1 4096 15 1 8 32768 31 2 64 262144 63 3 512 2097152 127 4 640 2621440 137 5 1728 7077888 191 6 4896 20054016 271 7 15888 65077248 402 ---------------------------------------------- 23737 97226752 !!t = 6.31898207e+16 = 6.31898207e+16 s = 2.00236459e+09 years !Smallest Cell: Width: 4.883e-04 unitary Width: 6.961e-03 mpc Width: 6.961e+00 kpc Width: 6.961e+03 pc Width: 1.436e+09 au Width: 3.090e+11 rsun Width: 1.335e+17 miles Width: 2.148e+22 1 Width: 2.148e+22 cm

Page 16: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Objects

• Astrophysically motivated objects

• Spheres, disks, cylinders

• Slices, projections, rays

• Combinations of these

• These objects can be created from the hierarchy, e.g. “pf.h.slice”, “pf.h.sphere”

Page 17: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Fields and Quantities

Page 18: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Fields

• Some fields come from the simulation dataset itself: density, temperature, velocities, etc.

• yt attempts to treat fields equivalently across codes, converting all to appropriate cgs units

• Fields may also be derived from other fields or some other mathematical quantity

• Fields can be grid-based or particle fields

Page 19: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Fields

def _total_density(field, data) : ! return data["Density"]+data["Dark_Matter_Density"] !add_field("TotalDensity", function=_total_density, take_log=True, units=r"\rm{g}/\rm{cm}^{3}")

Page 20: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Quantities

• Quantities are reductions of field data associated with objects

• yt maintains a registry of commonly used quantities, but derived quantities may also be added

Page 21: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Quantitiesfrom yt.mods import * !pf = load("IsolatedGalaxy/galaxy0030/galaxy0030") # load data !field = "Temperature" # The field to average weight = "CellMassMsun" # The weight for the average !dd = pf.h.all_data() # This is a region describing the entire box, # but note it doesn't read anything in yet! !average_value = dd.quantities["WeightedAverageQuantity"](field, weight) !print "Average %s (weighted by %s) is %0.5e" % (field, weight, average_value)

Page 22: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Quantitiesfrom yt.mods import * !# Load the dataset. pf = load("Enzo_64/DD0029/data0029") !# Create a 1 Mpc radius sphere, centered on the max density. sp = pf.h.sphere("max", (1.0, "mpc")) !# Use the TotalQuantity derived quantity to sum up the # values of the CellMassMsun and ParticleMassMsun fields # within the sphere. baryon_mass, particle_mass = sp.quantities["TotalQuantity"]( ["CellMassMsun", "ParticleMassMsun"]) !print "Total mass in sphere is %0.5e (gas = %0.5e / particles = %0.5e)" % \ (baryon_mass + particle_mass, baryon_mass, particle_mass)

Page 23: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

Page 24: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

• yt makes use of Matplotlib

• Basic plot types: slices, projections, profiles

• Plots have many possible annotations

Page 25: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("Enzo_64/RD0005/RedshiftOutput0005") slc = SlicePlot(pf, 0, ["Density","Dark_Matter_Density"],

center="max") slc.save("1")

Page 26: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 27: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("Enzo_64/RD0005/RedshiftOutput0005") slc = SlicePlot(pf, 0, ["Density","Dark_Matter_Density"], center="max") slc.save("1") slc.annotate_grids() slc.save("2")

Page 28: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 29: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("Enzo_64/RD0005/RedshiftOutput0005") slc = SlicePlot(pf, 0, ["Density","Dark_Matter_Density"], center="max") slc.save("1") slc.annotate_grids() slc.save("2") slc.zoom(4) slc.save("3")

Page 30: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 31: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plottingfrom yt.mods import * !pf = load("Enzo_64/RD0005/RedshiftOutput0005") slc = SlicePlot(pf, 0, ["Density","Dark_Matter_Density"], center="max") slc.save("1") slc.annotate_grids() slc.save("2") slc.zoom(4) slc.save("3") slc.annotate_contour("Density") slc.save("4")

Page 32: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 33: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("sloshing_nomag2_hdf5_plt_cnt_0150") !prj = ProjectionPlot(pf, 2, ["Temperature"], weight_field="Density") prj.save("1")

Page 34: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 35: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("sloshing_nomag2_hdf5_plt_cnt_0150") !prj = ProjectionPlot(pf, 2, ["Temperature"], weight_field="Density") prj.save("1") prj.zoom(2) prj.save("2")

Page 36: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 37: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("sloshing_nomag2_hdf5_plt_cnt_0150") !prj = ProjectionPlot(pf, 2, ["Temperature"], weight_field="Density") prj.save("1") prj.zoom(2) prj.save("2") prj.set_log("Temperature", False) prj.save("3")

Page 38: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 39: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("sloshing_nomag2_hdf5_plt_cnt_0150") !prj = ProjectionPlot(pf, 2, ["Temperature"], weight_field="Density") prj.save("1") prj.zoom(2) prj.save("2") prj.set_log("Temperature", False) prj.save("3") prj.annotate_text((0.5,0.5), "This is text") prj.save("4")

Page 40: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 41: yt: An Analysis and Visualization System for Astrophysical Simulation Data

x y z

Page 42: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting• Many other annotations:

• Timestamps

• Particle positions

• Vectors

• Other modifications

• Colorbar

• Plot center

• Plot width

Page 43: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Basic Plotting

from yt.mods import * !pf = load("IsolatedGalaxy/galaxy0030/galaxy0030") !slc = SlicePlot(pf, 2, ["Density","Dark_Matter_Density", "Star_Particle_Density"]) !frb = slc.data_source.to_frb((60., "kpc"), 800) !frb.export_fits("isolated_galaxy", units="kpc", gzip_file=True)

Page 44: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Time Series Analysis

Page 45: yt: An Analysis and Visualization System for Astrophysical Simulation Data

# Glob for a list of filenames, then sort them fns = glob.glob("GasSloshingLowRes/sloshing_low_res_hdf5_plt_cnt_0[0-6][0-9]0") fns.sort() !# Construct the time series object !ts = TimeSeriesData.from_filenames(fns) !times = [] entrs = [] !for pf in ts: t = pf.current_time sphere = pf.h.sphere("c", (100., "kpc")) temp = sphere["Temperature"]/keV dens = sphere["Density"]/(m_p*mue) mgas = sphere["CellMass"] entr = (temp*(dens**mtt)*mgas).sum()/mgas.sum() times.append(t) entrs.append(entr)

Time Series Analysis

Page 46: yt: An Analysis and Visualization System for Astrophysical Simulation Data
Page 47: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Volume Rendering

Page 48: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Sam Skillman

Page 49: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Matthew Turk

Page 50: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Other Things...• GUI

• Parallel Analysis

• Off-Axis Slices/Projections

• Phase/Profile Plotting

• Halo finding/profiling

• Light Cones

• Streamlines

• Absorption Spectra

• Synthetic X-ray Observations (in progress)

Page 51: yt: An Analysis and Visualization System for Astrophysical Simulation Data

How to get more: Information? Examples?

Help?

Page 52: yt: An Analysis and Visualization System for Astrophysical Simulation Data

The Websitehttp://yt-project.org/

Page 53: yt: An Analysis and Visualization System for Astrophysical Simulation Data

The Docshttp://yt-project.org/doc

Page 54: yt: An Analysis and Visualization System for Astrophysical Simulation Data

The Bloghttp://blog.yt-project.org/

Page 55: yt: An Analysis and Visualization System for Astrophysical Simulation Data

The Mailing Lists

Users’ List (yt-users): http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org !Developers’ List (yt-dev): http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org

Page 56: yt: An Analysis and Visualization System for Astrophysical Simulation Data

IRCChannel: #yt http://yt-project.org/irc.html

Page 57: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Social Media

Google+: yt Project Twitter: @yt_astro

Page 58: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Development

• Mercurial

• Bitbucket

Page 59: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Tom Abel David CollinsBrian Crosby Andrew Cunningham Nathan Goldbaum Cameron Hummels Ji-hoon Kim Steffen Klemer Kacper Kowalik Michael Kuhlen Eve Lee Chris MaloneChris Moody Andrew MyersJeff Oishi

Jean-Claude Passy Thomas Robitaille Anna Rosen Anthony Scopatz Devin Silvia Sam Skillman Stephen Skory Britton Smith Geoffrey So Casey Stark Elizabeth Tasker Matthew Turk Rick Wagner John Wise John ZuHone

Page 60: yt: An Analysis and Visualization System for Astrophysical Simulation Data

Tom Abel David CollinsBrian Crosby Andrew Cunningham Nathan Goldbaum Cameron Hummels Ji-hoon Kim Steffen Klemer Kacper Kowalik Michael Kuhlen Eve Lee Chris MaloneChris Moody Andrew MyersJeff Oishi

Jean-Claude Passy Thomas Robitaille Anna Rosen Anthony Scopatz Devin Silvia Sam Skillman Stephen Skory Britton Smith Geoffrey So Casey Stark Elizabeth Tasker Matthew Turk Rick Wagner John Wise John ZuHone


Recommended