[Yt-svn] yt-commit r1728 - trunk/yt/extensions/volume_rendering

mturk at wrangler.dreamhost.com mturk at wrangler.dreamhost.com
Sun May 23 12:40:58 PDT 2010


Author: mturk
Date: Sun May 23 12:40:58 2010
New Revision: 1728
URL: http://yt.enzotools.org/changeset/1728

Log:
Adding on a store_bricks and load_bricks set of commands to the
HomogenizedVolume



Modified:
   trunk/yt/extensions/volume_rendering/grid_partitioner.py

Modified: trunk/yt/extensions/volume_rendering/grid_partitioner.py
==============================================================================
--- trunk/yt/extensions/volume_rendering/grid_partitioner.py	(original)
+++ trunk/yt/extensions/volume_rendering/grid_partitioner.py	Sun May 23 12:40:58 2010
@@ -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