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

commits-noreply at bitbucket.org commits-noreply at bitbucket.org
Wed Sep 7 11:18:36 PDT 2016


4 new commits in yt:

https://bitbucket.org/yt_analysis/yt/commits/c5639115b978/
Changeset:   c5639115b978
Branch:      yt
User:        brittonsmith
Date:        2016-08-31 15:41:12+00:00
Summary:     Setup field_info for profiles made from saved datasets and setup gas field aliases.
Affected #:  2 files

diff -r 58f60e6a6799a2ee44bd18ebd5619814307a4c99 -r c5639115b978231cd9c4f9df82a946e46ebb3d00 yt/data_objects/profiles.py
--- a/yt/data_objects/profiles.py
+++ b/yt/data_objects/profiles.py
@@ -372,8 +372,9 @@
         for ax in "xyz"[:ds.dimensionality]:
             setattr(self, ax, ds.data[ax])
             setattr(self, "%s_bins" % ax, ds.data["%s_bins" % ax])
-            setattr(self, "%s_field" % ax,
-                    tuple(ds.parameters["%s_field" % ax]))
+            field_name = tuple(ds.parameters["%s_field" % ax])
+            setattr(self, "%s_field" % ax, field_name)
+            self.field_info[field_name] = ds.field_info[field_name]
             setattr(self, "%s_log" % ax, ds.parameters["%s_log" % ax])
             exclude_fields.extend([ax, "%s_bins" % ax,
                                    ds.parameters["%s_field" % ax][1]])
@@ -384,6 +385,7 @@
         for field in profile_fields:
             self.field_map[field[1]] = field
             self.field_data[field] = ds.data[field]
+            self.field_info[field] = ds.field_info[field]
             self.field_units[field] = ds.data[field].units
 
 class Profile1D(ProfileND):

diff -r 58f60e6a6799a2ee44bd18ebd5619814307a4c99 -r c5639115b978231cd9c4f9df82a946e46ebb3d00 yt/frontends/ytdata/data_structures.py
--- a/yt/frontends/ytdata/data_structures.py
+++ b/yt/frontends/ytdata/data_structures.py
@@ -650,6 +650,12 @@
                   tuple(self.parameters[bin_field])
             setattr(self, bin_field, self.parameters[bin_field])
 
+    def _setup_gas_alias(self):
+        "Alias the grid type to gas with a field alias."
+        for ftype, field in self.field_list:
+            if ftype == "data":
+                self.field_info.alias(("gas", field), (ftype, field))
+
     def create_field_info(self):
         super(YTProfileDataset, self).create_field_info()
         self.field_info.alias(self.parameters["weight_field"],


https://bitbucket.org/yt_analysis/yt/commits/fc0ce1cda560/
Changeset:   fc0ce1cda560
Branch:      yt
User:        brittonsmith
Date:        2016-08-31 15:54:09+00:00
Summary:     Adding tests to make sure profile datasets can be plotted.
Affected #:  1 file

diff -r c5639115b978231cd9c4f9df82a946e46ebb3d00 -r fc0ce1cda56042d5245c4a024129d3237e80adf7 yt/frontends/ytdata/tests/test_outputs.py
--- a/yt/frontends/ytdata/tests/test_outputs.py
+++ b/yt/frontends/ytdata/tests/test_outputs.py
@@ -15,6 +15,8 @@
 
 from yt.convenience import \
     load
+from yt.data_objects.api import \
+    create_profile
 from yt.frontends.ytdata.api import \
     YTDataContainerDataset, \
     YTSpatialPlotDataset, \
@@ -32,8 +34,9 @@
 from yt.units.yt_array import \
     YTArray, \
     YTQuantity
-from yt.data_objects.api import \
-    create_profile
+from yt.visualization.profile_plotter import \
+    ProfilePlot, \
+    PhasePlot
 import numpy as np
 import tempfile
 import os
@@ -143,6 +146,10 @@
     prof_1d_ds = load(full_fn)
     assert isinstance(prof_1d_ds, YTProfileDataset)
 
+    p1 = ProfilePlot(prof_1d_ds.data, "density", "temperature",
+                     weight_field="cell_mass")
+    p1.save()
+
     yield YTDataFieldTest(full_fn, "temperature", geometric=False)
     yield YTDataFieldTest(full_fn, "x", geometric=False)
     yield YTDataFieldTest(full_fn, "density", geometric=False)
@@ -153,6 +160,11 @@
     full_fn = os.path.join(tmpdir, fn)
     prof_2d_ds = load(full_fn)
     assert isinstance(prof_2d_ds, YTProfileDataset)
+
+    p2 = PhasePlot(prof_2d_ds.data, "density", "temperature",
+                   "cell_mass", weight_field=None)
+    p2.save()
+
     yield YTDataFieldTest(full_fn, "density", geometric=False)
     yield YTDataFieldTest(full_fn, "x", geometric=False)
     yield YTDataFieldTest(full_fn, "temperature", geometric=False)


https://bitbucket.org/yt_analysis/yt/commits/17c2b9970cdc/
Changeset:   17c2b9970cdc
Branch:      yt
User:        brittonsmith
Date:        2016-09-01 10:00:54+00:00
Summary:     Convert byte arrays to strings for python3.
Affected #:  1 file

diff -r fc0ce1cda56042d5245c4a024129d3237e80adf7 -r 17c2b9970cdcdcb3ee6c40327a27c98b5b2e69e2 yt/frontends/ytdata/data_structures.py
--- a/yt/frontends/ytdata/data_structures.py
+++ b/yt/frontends/ytdata/data_structures.py
@@ -78,14 +78,12 @@
         self.refine_by = 2
         with h5py.File(self.parameter_filename, "r") as f:
             for key in f.attrs.keys():
-                v = f.attrs[key]
-                if isinstance(v, bytes):
-                    v = v.decode("utf8")
+                v = parse_h5_attr(f, key)
                 if key == "con_args":
                     v = v.astype("str")
                 self.parameters[key] = v
             self.num_particles = \
-              dict([(group, f[group].attrs["num_elements"])
+              dict([(group, parse_h5_attr(f[group], "num_elements"))
                     for group in f if group != self.default_fluid_type])
         for attr in ["cosmological_simulation", "current_time", "current_redshift",
                      "hubble_constant", "omega_matter", "omega_lambda",
@@ -146,7 +144,7 @@
 class YTDataHDF5File(ParticleFile):
     def __init__(self, ds, io, filename, file_id):
         with h5py.File(filename, "r") as f:
-            self.header = dict((field, f.attrs[field]) \
+            self.header = dict((field, parse_h5_attr(f, field)) \
                                for field in f.attrs.keys())
 
         super(YTDataHDF5File, self).__init__(ds, io, filename, file_id)
@@ -329,7 +327,7 @@
                     field_name = (str(group), str(field))
                     self.field_list.append(field_name)
                     self.ds.field_units[field_name] = \
-                      f[group][field].attrs["units"]
+                      parse_h5_attr(f[group][field], "units")
 
 class YTGridHierarchy(YTDataHierarchy):
     grid = YTGrid
@@ -613,7 +611,7 @@
             self.parameters["weight_field"] = None
         elif isinstance(self.parameters["weight_field"], np.ndarray):
             self.parameters["weight_field"] = \
-              tuple(self.parameters["weight_field"])
+              tuple(self.parameters["weight_field"].astype(str))
 
         for a in ["profile_dimensions"] + \
           ["%s_%s" % (ax, attr)
@@ -647,7 +645,7 @@
                 self.parameters[bin_field] = None
             elif isinstance(self.parameters[bin_field], np.ndarray):
                 self.parameters[bin_field] = \
-                  tuple(self.parameters[bin_field])
+                  tuple(self.parameters[bin_field].astype(str))
             setattr(self, bin_field, self.parameters[bin_field])
 
     def _setup_gas_alias(self):
@@ -658,8 +656,9 @@
 
     def create_field_info(self):
         super(YTProfileDataset, self).create_field_info()
-        self.field_info.alias(self.parameters["weight_field"],
-                              (self.default_fluid_type, "weight"))
+        if self.parameters["weight_field"] is not None:
+            self.field_info.alias(self.parameters["weight_field"],
+                                  (self.default_fluid_type, "weight"))
 
     def _set_derived_attrs(self):
         self.domain_center = 0.5 * (self.domain_right_edge +


https://bitbucket.org/yt_analysis/yt/commits/e4633c6dd06f/
Changeset:   e4633c6dd06f
Branch:      yt
User:        ngoldbaum
Date:        2016-09-07 18:18:08+00:00
Summary:     Merged in brittonsmith/yt (pull request #2357)

[bugfix] Make sure saved profiles can be plotted (closes Issue #1267)
Affected #:  3 files

diff -r 146a5e02f7fe72bf4496b89871244c5f795a2ff6 -r e4633c6dd06fdd0c416568bcfea3aac2e61b4e3d yt/data_objects/profiles.py
--- a/yt/data_objects/profiles.py
+++ b/yt/data_objects/profiles.py
@@ -372,8 +372,9 @@
         for ax in "xyz"[:ds.dimensionality]:
             setattr(self, ax, ds.data[ax])
             setattr(self, "%s_bins" % ax, ds.data["%s_bins" % ax])
-            setattr(self, "%s_field" % ax,
-                    tuple(ds.parameters["%s_field" % ax]))
+            field_name = tuple(ds.parameters["%s_field" % ax])
+            setattr(self, "%s_field" % ax, field_name)
+            self.field_info[field_name] = ds.field_info[field_name]
             setattr(self, "%s_log" % ax, ds.parameters["%s_log" % ax])
             exclude_fields.extend([ax, "%s_bins" % ax,
                                    ds.parameters["%s_field" % ax][1]])
@@ -384,6 +385,7 @@
         for field in profile_fields:
             self.field_map[field[1]] = field
             self.field_data[field] = ds.data[field]
+            self.field_info[field] = ds.field_info[field]
             self.field_units[field] = ds.data[field].units
 
 class Profile1D(ProfileND):

diff -r 146a5e02f7fe72bf4496b89871244c5f795a2ff6 -r e4633c6dd06fdd0c416568bcfea3aac2e61b4e3d yt/frontends/ytdata/data_structures.py
--- a/yt/frontends/ytdata/data_structures.py
+++ b/yt/frontends/ytdata/data_structures.py
@@ -78,14 +78,12 @@
         self.refine_by = 2
         with h5py.File(self.parameter_filename, "r") as f:
             for key in f.attrs.keys():
-                v = f.attrs[key]
-                if isinstance(v, bytes):
-                    v = v.decode("utf8")
+                v = parse_h5_attr(f, key)
                 if key == "con_args":
                     v = v.astype("str")
                 self.parameters[key] = v
             self.num_particles = \
-              dict([(group, f[group].attrs["num_elements"])
+              dict([(group, parse_h5_attr(f[group], "num_elements"))
                     for group in f if group != self.default_fluid_type])
         for attr in ["cosmological_simulation", "current_time", "current_redshift",
                      "hubble_constant", "omega_matter", "omega_lambda",
@@ -146,7 +144,7 @@
 class YTDataHDF5File(ParticleFile):
     def __init__(self, ds, io, filename, file_id):
         with h5py.File(filename, "r") as f:
-            self.header = dict((field, f.attrs[field]) \
+            self.header = dict((field, parse_h5_attr(f, field)) \
                                for field in f.attrs.keys())
 
         super(YTDataHDF5File, self).__init__(ds, io, filename, file_id)
@@ -329,7 +327,7 @@
                     field_name = (str(group), str(field))
                     self.field_list.append(field_name)
                     self.ds.field_units[field_name] = \
-                      f[group][field].attrs["units"]
+                      parse_h5_attr(f[group][field], "units")
 
 class YTGridHierarchy(YTDataHierarchy):
     grid = YTGrid
@@ -613,7 +611,7 @@
             self.parameters["weight_field"] = None
         elif isinstance(self.parameters["weight_field"], np.ndarray):
             self.parameters["weight_field"] = \
-              tuple(self.parameters["weight_field"])
+              tuple(self.parameters["weight_field"].astype(str))
 
         for a in ["profile_dimensions"] + \
           ["%s_%s" % (ax, attr)
@@ -647,13 +645,20 @@
                 self.parameters[bin_field] = None
             elif isinstance(self.parameters[bin_field], np.ndarray):
                 self.parameters[bin_field] = \
-                  tuple(self.parameters[bin_field])
+                  tuple(self.parameters[bin_field].astype(str))
             setattr(self, bin_field, self.parameters[bin_field])
 
+    def _setup_gas_alias(self):
+        "Alias the grid type to gas with a field alias."
+        for ftype, field in self.field_list:
+            if ftype == "data":
+                self.field_info.alias(("gas", field), (ftype, field))
+
     def create_field_info(self):
         super(YTProfileDataset, self).create_field_info()
-        self.field_info.alias(self.parameters["weight_field"],
-                              (self.default_fluid_type, "weight"))
+        if self.parameters["weight_field"] is not None:
+            self.field_info.alias(self.parameters["weight_field"],
+                                  (self.default_fluid_type, "weight"))
 
     def _set_derived_attrs(self):
         self.domain_center = 0.5 * (self.domain_right_edge +

diff -r 146a5e02f7fe72bf4496b89871244c5f795a2ff6 -r e4633c6dd06fdd0c416568bcfea3aac2e61b4e3d yt/frontends/ytdata/tests/test_outputs.py
--- a/yt/frontends/ytdata/tests/test_outputs.py
+++ b/yt/frontends/ytdata/tests/test_outputs.py
@@ -15,6 +15,8 @@
 
 from yt.convenience import \
     load
+from yt.data_objects.api import \
+    create_profile
 from yt.frontends.ytdata.api import \
     YTDataContainerDataset, \
     YTSpatialPlotDataset, \
@@ -32,8 +34,9 @@
 from yt.units.yt_array import \
     YTArray, \
     YTQuantity
-from yt.data_objects.api import \
-    create_profile
+from yt.visualization.profile_plotter import \
+    ProfilePlot, \
+    PhasePlot
 import numpy as np
 import tempfile
 import os
@@ -143,6 +146,10 @@
     prof_1d_ds = load(full_fn)
     assert isinstance(prof_1d_ds, YTProfileDataset)
 
+    p1 = ProfilePlot(prof_1d_ds.data, "density", "temperature",
+                     weight_field="cell_mass")
+    p1.save()
+
     yield YTDataFieldTest(full_fn, "temperature", geometric=False)
     yield YTDataFieldTest(full_fn, "x", geometric=False)
     yield YTDataFieldTest(full_fn, "density", geometric=False)
@@ -153,6 +160,11 @@
     full_fn = os.path.join(tmpdir, fn)
     prof_2d_ds = load(full_fn)
     assert isinstance(prof_2d_ds, YTProfileDataset)
+
+    p2 = PhasePlot(prof_2d_ds.data, "density", "temperature",
+                   "cell_mass", weight_field=None)
+    p2.save()
+
     yield YTDataFieldTest(full_fn, "density", geometric=False)
     yield YTDataFieldTest(full_fn, "x", geometric=False)
     yield YTDataFieldTest(full_fn, "temperature", geometric=False)

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