[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