[yt-svn] commit/yt: MatthewTurk: Merged in ngoldbaum/yt/yt-3.0 (pull request #935)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Fri Jun 6 05:54:38 PDT 2014
1 new commit in yt:
https://bitbucket.org/yt_analysis/yt/commits/20366abd696f/
Changeset: 20366abd696f
Branch: yt-3.0
User: MatthewTurk
Date: 2014-06-06 14:54:30
Summary: Merged in ngoldbaum/yt/yt-3.0 (pull request #935)
Be much more careful about sanitizing data object centers. Closes #848
Affected #: 4 files
diff -r 296453fafbedebdbcdf01e1ebddb3bcee3f0951e -r 20366abd696f82c865749d7d1b998d5b3fa87795 yt/analysis_modules/halo_analysis/halo_callbacks.py
--- a/yt/analysis_modules/halo_analysis/halo_callbacks.py
+++ b/yt/analysis_modules/halo_analysis/halo_callbacks.py
@@ -81,13 +81,13 @@
dpf = halo.halo_catalog.data_pf
hpf = halo.halo_catalog.halos_pf
center = dpf.arr([halo.quantities["particle_position_%s" % axis] \
- for axis in "xyz"]) / dpf.length_unit
- radius = factor * halo.quantities[radius_field] / dpf.length_unit
+ for axis in "xyz"])
+ radius = factor * halo.quantities[radius_field]
if radius <= 0.0:
halo.data_object = None
return
try:
- sphere = dpf.sphere(center, (radius, "code_length"))
+ sphere = dpf.sphere(center, radius)
except YTSphereTooSmall:
halo.data_object = None
return
diff -r 296453fafbedebdbcdf01e1ebddb3bcee3f0951e -r 20366abd696f82c865749d7d1b998d5b3fa87795 yt/data_objects/data_containers.py
--- a/yt/data_objects/data_containers.py
+++ b/yt/data_objects/data_containers.py
@@ -137,19 +137,25 @@
self.center = None
self.set_field_parameter('center', self.center)
return
+ elif isinstance(center, YTArray):
+ self.center = self.pf.arr(center.in_cgs())
+ self.center.convert_to_units('code_length')
elif isinstance(center, (types.ListType, types.TupleType, np.ndarray)):
- center = self.pf.arr(center, 'code_length')
+ if isinstance(center[0], YTQuantity):
+ self.center = self.pf.arr([c.in_cgs() for c in center])
+ self.center.convert_to_units('code_length')
+ else:
+ self.center = self.pf.arr(center, 'code_length')
elif isinstance(center, basestring):
if center.lower() in ("c", "center"):
- center = self.pf.domain_center
+ self.center = self.pf.domain_center
# is this dangerous for race conditions?
elif center.lower() in ("max", "m"):
- center = self.pf.h.find_max(("gas", "density"))[1]
+ self.center = self.pf.h.find_max(("gas", "density"))[1]
elif center.startswith("max_"):
- center = self.pf.h.find_max(center[4:])[1]
+ self.center = self.pf.h.find_max(center[4:])[1]
else:
- center = np.array(center, dtype='float64')
- self.center = self.pf.arr(center, 'code_length')
+ self.center = self.pf.arr(center, 'code_length', dtype='float64')
self.set_field_parameter('center', self.center)
def get_field_parameter(self, name, default=None):
diff -r 296453fafbedebdbcdf01e1ebddb3bcee3f0951e -r 20366abd696f82c865749d7d1b998d5b3fa87795 yt/geometry/selection_routines.pyx
--- a/yt/geometry/selection_routines.pyx
+++ b/yt/geometry/selection_routines.pyx
@@ -541,7 +541,7 @@
def __init__(self, dobj):
for i in range(3):
- self.center[i] = dobj.center[i]
+ self.center[i] = _ensure_code(dobj.center[i])
self.radius = _ensure_code(dobj.radius)
self.radius2 = self.radius * self.radius
@@ -702,7 +702,7 @@
cdef int i
for i in range(3):
self.norm_vec[i] = dobj._norm_vec[i]
- self.center[i] = dobj.center[i]
+ self.center[i] = _ensure_code(dobj.center[i])
self.radius = _ensure_code(dobj._radius)
self.radius2 = self.radius * self.radius
self.height = _ensure_code(dobj._height)
diff -r 296453fafbedebdbcdf01e1ebddb3bcee3f0951e -r 20366abd696f82c865749d7d1b998d5b3fa87795 yt/units/yt_array.py
--- a/yt/units/yt_array.py
+++ b/yt/units/yt_array.py
@@ -284,7 +284,7 @@
return input_array
elif isinstance(input_array, np.ndarray):
pass
- elif iterable(input_array):
+ elif iterable(input_array) and input_array:
if isinstance(input_array[0], YTArray):
return YTArray(np.array(input_array, dtype=dtype),
input_array[0].units)
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