[yt-dev] Issue #1310: YTBoundsDefinitionError (yt_analysis/yt)
Corentin Cadiou
issues-reply at bitbucket.org
Wed Jan 11 06:26:40 PST 2017
New issue 1310: YTBoundsDefinitionError
https://bitbucket.org/yt_analysis/yt/issues/1310/ytboundsdefinitionerror
Corentin Cadiou:
HI,
I am doing a SlicePlot of a deposit field using the following code: `p = yt.SlicePlot(ds, 'z', ('deposit', 'all_cic'))`.
If I do the slice in the `x` or `y` directions, it works fine. But if I slice in the `z` direction, I get:
```
#!python
---------------------------------------------------------------------------
YTBoundsDefinitionError Traceback (most recent call last)
<ipython-input-11-d477c9a88f02> in <module>()
----> 1 p = yt.SlicePlot(ds, 'z', ('deposit', 'all_cic'))
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/visualization/plot_window.pyc
in SlicePlot(ds, normal, fields, axis, *args, **kwargs)
1999 del kwargs['north_vector']
2000
-> 2001 return AxisAlignedSlicePlot(ds, normal, fields, *args, **kwargs)
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/visualization/plot_window.pyc
in __init__(self, ds, axis, fields, center, width, axes_unit, origin, right_handed, fontsize, field_parameters, window_
size, aspect, data_source)
1324 slc = ds.slice(axis, center[axis], field_parameters=field_parameters,
1325 center=center, data_source=data_source)
-> 1326 slc.get_data(fields)
1327 validate_mesh_fields(slc, fields)
1328 PWViewerMPL.__init__(self, slc, bounds, origin=origin,
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in get_data(self, fields)
1331
1332 fields_to_generate += gen_fluids + gen_particles
-> 1333 self._generate_fields(fields_to_generate)
1334 for field in list(self.field_data.keys()):
1335 if field not in ofields:
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in _generate_fields(self, fields_to_generate)
1351 fi = self.ds._get_field_info(*field)
1352 try:
-> 1353 fd = self._generate_field(field)
1354 if fd is None:
1355 raise RuntimeError
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in _generate_field(self, field)
316 tr = self._generate_particle_field(field)
317 else:
--> 318 tr = self._generate_fluid_field(field)
319 if tr is None:
320 raise YTCouldNotGenerateField(field, self.ds)
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in _generate_fluid_field(self, field)
334 finfo.check_available(gen_obj)
335 except NeedsGridType as ngt_exception:
--> 336 rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones)
337 else:
338 rv = finfo(gen_obj)
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in _generate_spatial_fluid(self, field, ngz)
354 o = self._current_chunk.objs[0]
355 with o._activate_cache():
--> 356 ind += o.select(self.selector, self[field], rv, ind)
357 else:
358 chunks = self.index._chunk(self, "spatial", ngz = ngz)
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.p
yc in __getitem__(self, key)
279 return self.field_data[f]
280 else:
--> 281 self.get_data(f)
282 # fi.units is the unit expression string. We depend on the registry
283 # hanging off the dataset to define this unit object.
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in get_data(self, fields)
1331
1332 fields_to_generate += gen_fluids + gen_particles
-> 1333 self._generate_fields(fields_to_generate)
1334 for field in list(self.field_data.keys()):
1335 if field not in ofields:
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_fields(self, fields_to_generate)
1351 fi = self.ds._get_field_info(*field)
1352 try:
-> 1353 fd = self._generate_field(field)
1354 if fd is None:
1355 raise RuntimeError
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_field(self, field)
316 tr = self._generate_particle_field(field)
317 else:
--> 318 tr = self._generate_fluid_field(field)
319 if tr is None:
320 raise YTCouldNotGenerateField(field, self.ds)
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/data_containers.pyc in _generate_fluid_field(self, field)
336 rv = self._generate_spatial_fluid(field, ngt_exception.ghost_zones)
337 else:
--> 338 rv = finfo(gen_obj)
339 return rv
340
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/fields/derived_field.pyc in __call__(self, data)
218 "for %s" % (self.name,))
219 with self.unit_registry(data):
--> 220 dd = self._function(self, data)
221 for field_name in data.keys():
222 if field_name not in original_fields:
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/fields/particle_fields.pyc in particle_cic(field, data)
141 def particle_cic(field, data):
142 pos = data[ptype, coord_name]
--> 143 d = data.deposit(pos, [data[ptype, mass_name]], method = "cic")
144 d = data.apply_units(d, data[ptype, mass_name].units)
145 d /= data["index", "cell_volume"]
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/data_objects/octree_subset.pyc in deposit(self, positions, fields, method, kernel_name)
184 # We allocate number of zones, not number of octs
185 op = cls(nvals, kernel_name)
--> 186 op.initialize()
187 mylog.debug("Depositing %s (%s^3) particles into %s Octs",
188 positions.shape[0], positions.shape[0]**0.3333333, nvals[-1])
/home/cadiou/anaconda2/lib/python2.7/site-packages/yt-3.4.dev0-py2.7-linux-x86_64.egg/yt/geometry/particle_deposit.pyx in yt.geometry.particle_deposit.CICDeposit.initialize (yt/geometry/particle_deposit.c:8068)()
332 if not all(_ > 1 for _ in self.nvals):
333 from yt.utilities.exceptions import YTBoundsDefinitionError
--> 334 raise YTBoundsDefinitionError(
335 "CIC requires minimum of 2 zones in all dimensions",
336 self.nvals)
YTBoundsDefinitionError: This operation has encountered a bounds error: CIC requires minimum of 2 zones in all dimensions Specified bounds are (2, 2, 2, 1)
```
I am using the yt 3.4-dev version.
More information about the yt-dev
mailing list