[Yt-svn] yt: Added store_bricks and load_bricks to the HomogenizedVolume ...
hg at spacepope.org
hg at spacepope.org
Sun May 23 12:36:20 PDT 2010
hg Repository: yt
details: yt/rev/81e8e9eef5cc
changeset: 1701:81e8e9eef5cc
user: Matthew Turk <matthewturk at gmail.com>
date:
Sun May 23 12:36:11 2010 -0700
description:
Added store_bricks and load_bricks to the HomogenizedVolume class, which is
used with the camera.
diffstat:
yt/extensions/volume_rendering/grid_partitioner.py | 33 ++++++++++++++++
1 files changed, 33 insertions(+), 0 deletions(-)
diffs (43 lines):
diff -r 739181d1a069 -r 81e8e9eef5cc yt/extensions/volume_rendering/grid_partitioner.py
--- a/yt/extensions/volume_rendering/grid_partitioner.py Fri May 21 11:41:14 2010 -0700
+++ b/yt/extensions/volume_rendering/grid_partitioner.py Sun May 23 12:36:11 2010 -0700
@@ -118,6 +118,39 @@
self.brick_dimensions -= 1
self.bricks = na.array(bricks, dtype='object')
+ def store_bricks(self, fn):
+ import h5py, cPickle
+ f = h5py.File(fn, "w")
+ f.create_dataset("/left_edges", data=self.brick_left_edges)
+ f.create_dataset("/right_edges", data=self.brick_right_edges)
+ f.create_dataset("/parents", data=self.brick_parents)
+ f.create_dataset("/dimensions", data=self.brick_dimensions)
+ f.create_group("/bricks")
+ for i,b in enumerate(self.bricks):
+ f.create_group("/bricks/brick_%08i" % i)
+ for fi,field in enumerate(self.fields):
+ f.create_dataset("/bricks/brick_%08i/%s" % (i, field),
+ data=b.my_data[fi])
+ f.close()
+
+ def load_bricks(self, fn):
+ import h5py
+ f = h5py.File(fn, "r")
+ self.brick_left_edges = f["/left_edges"][:]
+ self.brick_right_edges = f["/right_edges"][:]
+ self.brick_parents = f["/parents"][:]
+ self.brick_dimensions= f["/dimensions"][:]
+ bricks = []
+ for i,ds in enumerate(sorted(f["/bricks"])):
+ td = [f["/bricks/%s/%s" % (ds, field)][:] for field in self.fields]
+ bricks.append(PartitionedGrid(
+ self.brick_parents[i], len(td), td,
+ self.brick_left_edges[i,:],
+ self.brick_right_edges[i,:],
+ self.brick_dimensions[i,:],
+ ))
+ self.bricks = na.array(bricks, dtype='object')
+
class HomogenizedBrickCollection(DistributedObjectCollection):
def __init__(self, source):
# The idea here is that we have two sources -- the global_domain
More information about the yt-svn
mailing list