[yt-svn] commit/yt: ngoldbaum: Merged in brittonsmith/yt (pull request #2357)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Sep 7 11:18:34 PDT 2016
1 new commit in yt:
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