[yt-svn] commit/yt: 2 new changesets

Bitbucket commits-noreply at bitbucket.org
Fri Dec 7 12:16:29 PST 2012


2 new commits in yt:


https://bitbucket.org/yt_analysis/yt/changeset/4556a7217a82/
changeset:   4556a7217a82
branch:      yt
user:        MatthewTurk
date:        2012-12-06 20:41:58
summary:     Proposed change to upcast at IO time Enzo data to float64 from float32

Also fix the iteration over fields in covering grids to account for this and
speed things up considerably.
affected #:  3 files

diff -r eda712335ad2d2524ceb50300c4a6895342927c0 -r 4556a7217a82682b4fda7cece237a0641538f8bb yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -3810,7 +3810,9 @@
     def _get_data_from_grid(self, grid, fields):
         ll = int(grid.Level == self.level)
         ref_ratio = self.pf.refine_by**(self.level - grid.Level)
-        g_fields = [grid[field].astype("float64") for field in fields]
+        g_fields = [gf.astype("float64") 
+                    if gf.dtype != "float64"
+                    else gf for gf in (grid[field] for field in fields)]
         c_fields = [self[field] for field in fields]
         count = FillRegion(ref_ratio,
             grid.get_global_startindex(), self.global_startindex,
@@ -3981,8 +3983,9 @@
 
     @restore_field_information_state
     def _get_data_from_grid(self, grid, fields):
-        fields = ensure_list(fields)
-        g_fields = [grid[field].astype("float64") for field in fields]
+        g_fields = [gf.astype("float64") 
+                    if gf.dtype != "float64"
+                    else gf for gf in (grid[field] for field in fields)]
         c_fields = [self.field_data[field] for field in fields]
         count = FillRegion(1,
             grid.get_global_startindex(), self.global_startindex,


diff -r eda712335ad2d2524ceb50300c4a6895342927c0 -r 4556a7217a82682b4fda7cece237a0641538f8bb yt/data_objects/grid_patch.py
--- a/yt/data_objects/grid_patch.py
+++ b/yt/data_objects/grid_patch.py
@@ -153,7 +153,7 @@
         """
         Returns a single field.  Will add if necessary.
         """
-        if not self.field_data.has_key(key):
+        if key not in self.field_data:
             self.get_data(key)
         return self.field_data[key]
 


diff -r eda712335ad2d2524ceb50300c4a6895342927c0 -r 4556a7217a82682b4fda7cece237a0641538f8bb yt/frontends/enzo/io.py
--- a/yt/frontends/enzo/io.py
+++ b/yt/frontends/enzo/io.py
@@ -181,8 +181,10 @@
         mylog.debug("Finished read of %s", sets)
 
     def _read_data_set(self, grid, field):
-        return self.modify(hdf5_light_reader.ReadData(grid.filename,
-                "/Grid%08i/%s" % (grid.id, field)))
+        tr = hdf5_light_reader.ReadData(grid.filename,
+                "/Grid%08i/%s" % (grid.id, field))
+        if tr.dtype == "float32": tr = tr.astype("float64")
+        return self.modify(tr)
 
     def _read_data_slice(self, grid, field, axis, coord):
         axis = _axis_ids[axis]



https://bitbucket.org/yt_analysis/yt/changeset/dba0179fca9c/
changeset:   dba0179fca9c
branch:      yt
user:        sskory
date:        2012-12-07 21:16:28
summary:     Merged in MatthewTurk/yt (pull request #365)
affected #:  3 files

diff -r 418f71709113d02f66f200f4602358fcb7d8964e -r dba0179fca9ce6c884f0ffdd413151a55e256c0f yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -3812,7 +3812,9 @@
     def _get_data_from_grid(self, grid, fields):
         ll = int(grid.Level == self.level)
         ref_ratio = self.pf.refine_by**(self.level - grid.Level)
-        g_fields = [grid[field].astype("float64") for field in fields]
+        g_fields = [gf.astype("float64") 
+                    if gf.dtype != "float64"
+                    else gf for gf in (grid[field] for field in fields)]
         c_fields = [self[field] for field in fields]
         count = FillRegion(ref_ratio,
             grid.get_global_startindex(), self.global_startindex,
@@ -3983,8 +3985,9 @@
 
     @restore_field_information_state
     def _get_data_from_grid(self, grid, fields):
-        fields = ensure_list(fields)
-        g_fields = [grid[field].astype("float64") for field in fields]
+        g_fields = [gf.astype("float64") 
+                    if gf.dtype != "float64"
+                    else gf for gf in (grid[field] for field in fields)]
         c_fields = [self.field_data[field] for field in fields]
         count = FillRegion(1,
             grid.get_global_startindex(), self.global_startindex,


diff -r 418f71709113d02f66f200f4602358fcb7d8964e -r dba0179fca9ce6c884f0ffdd413151a55e256c0f yt/data_objects/grid_patch.py
--- a/yt/data_objects/grid_patch.py
+++ b/yt/data_objects/grid_patch.py
@@ -153,7 +153,7 @@
         """
         Returns a single field.  Will add if necessary.
         """
-        if not self.field_data.has_key(key):
+        if key not in self.field_data:
             self.get_data(key)
         return self.field_data[key]
 


diff -r 418f71709113d02f66f200f4602358fcb7d8964e -r dba0179fca9ce6c884f0ffdd413151a55e256c0f yt/frontends/enzo/io.py
--- a/yt/frontends/enzo/io.py
+++ b/yt/frontends/enzo/io.py
@@ -181,8 +181,10 @@
         mylog.debug("Finished read of %s", sets)
 
     def _read_data_set(self, grid, field):
-        return self.modify(hdf5_light_reader.ReadData(grid.filename,
-                "/Grid%08i/%s" % (grid.id, field)))
+        tr = hdf5_light_reader.ReadData(grid.filename,
+                "/Grid%08i/%s" % (grid.id, field))
+        if tr.dtype == "float32": tr = tr.astype("float64")
+        return self.modify(tr)
 
     def _read_data_slice(self, grid, field, axis, coord):
         axis = _axis_ids[axis]

Repository URL: https://bitbucket.org/yt_analysis/yt/

--

This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.



More information about the yt-svn mailing list