[yt-users] TIPSY to regular grid

Nathan Goldbaum nathan12343 at gmail.com
Wed Dec 16 10:47:41 PST 2015


If you can reproduce this using one of the public test datasets that
include SPH particles can you go ahead and open a bug? Looking at the
traceback, I'd wager this could be triggered in any of the SPH frontends.
Note that not all of the test datasets in the SPH section of
yt-project.org/data contain SPH particles.

On Wed, Dec 16, 2015 at 12:43 PM, Bruno Villasenor <br1villasen at gmail.com>
wrote:

> Hi Nathan,
>
> I tried using the tipsy dataset from yt public data and I get the same
> error using version 3.1-dev.
>
> I just installed the newest version (3.3-dev) and it works fine for both
> datasets, seems like the bug was corrected in the newer version.
>
> Now I'm having problems with the smoothed_covering_grid, here is the code:
> #######################################################################
> ds = yt.load( dataDir + dataFile, parameter_file= dataDir + paramFile )
> ad = ds.all_data()
> left = ad.left_edge
>
> level = 5
> data = ds.covering_grid(level=level, left_edge=left,
>                                       dims=ds.domain_dimensions * 2**level)
> dataSmoth = ds.smoothed_covering_grid(level=level, left_edge=left,
>                                       dims=ds.domain_dimensions * 2**level)
>
> gasDens = dataSmoth[('deposit', 'Gas_smoothed_density')].v
> #######################################################################
>
> And with both my dataset and the public tipsy dataset I get this error:
>
> In [38]: run volume_dm_simple.py
> ---------------------------------------------------------------------------
> TypeError                                 Traceback (most recent call last)
> /home/bruno/Desktop/Dropbox/Developer/parallax/gas_images/volume_dm_simple.py
> in <module>()
>      16                                       dims=ds.domain_dimensions *
> 2**level)
>      17
> ---> 18 gasDens = dataSmoth[('deposit', 'Gas_smoothed_density')].v
>
> /home/bruno/apps/yt_3.3/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in __getitem__(self, key)
>     266                 return self.field_data[f]
>     267             else:
> --> 268                 self.get_data(f)
>     269         # fi.units is the unit expression string. We depend on the
> registry
>     270         # hanging off the dataset to define this unit object.
>
> /home/bruno/apps/yt_3.3/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.pyc
> in get_data(self, fields)
>     611         if len(fields_to_get) == 0: return
>     612         fill, gen, part, alias = self._split_fields(fields_to_get)
> --> 613         if len(part) > 0: self._fill_particles(part)
>     614         if len(fill) > 0: self._fill_fields(fill)
>     615         for a, f in sorted(alias.items()):
>
> /home/bruno/apps/yt_3.3/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.pyc
> in _fill_particles(self, part)
>     641     def _fill_particles(self, part):
>     642         for p in part:
> --> 643             self[p] = self._data_source[p]
>     644
>     645     def _fill_fields(self, fields):
>
> TypeError: 'NoneType' object has no attribute '__getitem__'
> ########################################################################
>
> Thanks for the help.
> Bruno
>
> 2015-12-14 10:33 GMT-06:00 Nathan Goldbaum <nathan12343 at gmail.com>:
>
>> Hi Bruno,
>>
>> Can you reproduce this using one of the test tipsy datasets we have on
>> yt-project.org/data? The "agora_1e11.00400" dataset might be a good
>> place to start.
>>
>> If you can reproduce it using a public test dataset, you should create an
>> issue to track this here, including your reproduction script:
>>
>> https://bitbucket.org/yt_analysis/yt/issues/new
>>
>> If it doesn't trigger on anything but your data, we can try sharing your
>> dataset offline so that one of us can reproduce the issue on our local
>> machine.
>>
>> -Nathan
>>
>> On Fri, Dec 11, 2015 at 10:45 PM, Bruno Villasenor <br1villasen at gmail.com
>> > wrote:
>>
>>> Hi Matthew,
>>>
>>> Here it goes:
>>>
>>>
>>> ---------------------------------------------------------------------------
>>> ValueError                                Traceback (most recent call
>>> last)
>>> /home/bruno/Desktop/Dropbox/Developer/parallax/gas_images/volume_dm.py
>>> in <module>()
>>>      38                                       dims=ds.domain_dimensions
>>> * 2**level)
>>>      39
>>> ---> 40 dmDens = data[('deposit','DarkMatter_density')]
>>>      41
>>>      42
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in __getitem__(self, key)
>>>     238                 return self.field_data[f]
>>>     239             else:
>>> --> 240                 self.get_data(f)
>>>     241         # fi.units is the unit expression string. We depend on
>>> the registry
>>>     242         # hanging off the dataset to define this unit object.
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.pyc
>>> in get_data(self, fields)
>>>     507         fill, gen, part = self._split_fields(fields_to_get)
>>>     508         if len(part) > 0: self._fill_particles(part)
>>> --> 509         if len(fill) > 0: self._fill_fields(fill)
>>>     510         if len(gen) > 0: self._generate_fields(gen)
>>>     511
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/construction_data_containers.pyc
>>> in _fill_fields(self, fields)
>>>     539         domain_dims = self.ds.domain_dimensions.astype("int64") \
>>>     540                     * self.ds.relative_refinement(0, self.level)
>>> --> 541         for chunk in self._data_source.chunks(fields, "io"):
>>>     542             input_fields = [chunk[field] for field in fields]
>>>     543             # NOTE: This usage of "refine_by" is actually
>>> *okay*, because it's
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in chunks(self, fields, chunking_style, **kwargs)
>>>     564         for chunk in self.index._chunk(self, chunking_style,
>>> **kwargs):
>>>     565             with self._chunked_read(chunk):
>>> --> 566                 self.get_data(fields)
>>>     567                 # NOTE: we yield before releasing the context
>>>     568                 yield self
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in get_data(self, fields)
>>>     670
>>>     671         fields_to_generate += gen_fluids + gen_particles
>>> --> 672         self._generate_fields(fields_to_generate)
>>>     673         for field in self.field_data.keys():
>>>     674             if field not in ofields:
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_fields(self, fields_to_generate)
>>>     690                 fi = self.ds._get_field_info(*field)
>>>     691                 try:
>>> --> 692                     fd = self._generate_field(field)
>>>     693                     if type(fd) == np.ndarray:
>>>     694                         fd = self.ds.arr(fd, fi.units)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_field(self, field)
>>>     275                 tr = self._generate_particle_field(field)
>>>     276             else:
>>> --> 277                 tr = self._generate_fluid_field(field)
>>>     278             if tr is None:
>>>     279                 raise YTCouldNotGenerateField(field, self.ds)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_fluid_field(self, field)
>>>     293             finfo.check_available(gen_obj)
>>>     294         except NeedsGridType as ngt_exception:
>>> --> 295             rv = self._generate_spatial_fluid(field,
>>> ngt_exception.ghost_zones)
>>>     296         else:
>>>     297             rv = finfo(gen_obj)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_spatial_fluid(self, field, ngz)
>>>     309                     o = self._current_chunk.objs[0]
>>>     310                     with o._activate_cache():
>>> --> 311                         ind += o.select(self.selector,
>>> self[field], rv, ind)
>>>     312         else:
>>>     313             chunks = self.index._chunk(self, "spatial", ngz =
>>> ngz)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in __getitem__(self, key)
>>>     238                 return self.field_data[f]
>>>     239             else:
>>> --> 240                 self.get_data(f)
>>>     241         # fi.units is the unit expression string. We depend on
>>> the registry
>>>     242         # hanging off the dataset to define this unit object.
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in get_data(self, fields)
>>>     670
>>>     671         fields_to_generate += gen_fluids + gen_particles
>>> --> 672         self._generate_fields(fields_to_generate)
>>>     673         for field in self.field_data.keys():
>>>     674             if field not in ofields:
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_fields(self, fields_to_generate)
>>>     690                 fi = self.ds._get_field_info(*field)
>>>     691                 try:
>>> --> 692                     fd = self._generate_field(field)
>>>     693                     if type(fd) == np.ndarray:
>>>     694                         fd = self.ds.arr(fd, fi.units)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_field(self, field)
>>>     275                 tr = self._generate_particle_field(field)
>>>     276             else:
>>> --> 277                 tr = self._generate_fluid_field(field)
>>>     278             if tr is None:
>>>     279                 raise YTCouldNotGenerateField(field, self.ds)
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
>>> in _generate_fluid_field(self, field)
>>>     295             rv = self._generate_spatial_fluid(field,
>>> ngt_exception.ghost_zones)
>>>     296         else:
>>> --> 297             rv = finfo(gen_obj)
>>>     298         return rv
>>>     299
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/fields/derived_field.pyc in
>>> __call__(self, data)
>>>     182                 "for %s" % (self.name,))
>>>     183         with self.unit_registry(data):
>>> --> 184             dd = self._function(self, data)
>>>     185         for field_name in data.keys():
>>>     186             if field_name not in original_fields:
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/fields/particle_fields.pyc in
>>> particle_density(field, data)
>>>     104         d = data.deposit(pos, [data[ptype, mass_name]], method =
>>> "sum")
>>>     105         d = data.ds.arr(d, "code_mass")
>>> --> 106         d /= data["index", "cell_volume"]
>>>     107         return d
>>>     108
>>>
>>> /home/bruno/apps/yt-x86_64/src/yt-hg/yt/units/yt_array.pyc in
>>> __idiv__(self, other)
>>>     747         """ See __div__. """
>>>     748         oth = sanitize_units_mul(self, other)
>>> --> 749         np.divide(self, oth, out=self)
>>>     750         return self
>>>     751
>>>
>>> ValueError: operands could not be broadcast together with shapes
>>> (2,2,2,8) (2,2,2,0) (2,2,2,8)
>>>
>>> 2015-12-11 22:27 GMT-06:00 Matthew Turk <matthewturk at gmail.com>:
>>>
>>>> Hi Bruno,
>>>>
>>>> That's an odd one -- can you supply the rest of the traceback?
>>>>
>>>> On Fri, Dec 11, 2015 at 10:16 PM, Bruno Villasenor
>>>> <br1villasen at gmail.com> wrote:
>>>> > Hello yt-users,
>>>> >
>>>> > I'm trying to get data from a TIPSY file to a fixed resolution array,
>>>> > The simplest version of my code is below:
>>>> >
>>>> > #####################################################
>>>> > ds = yt.load( dataDir + dataFile,
>>>> >  parameter_file= dataDir + paramFile )
>>>> >
>>>> > ad = ds.all_data()
>>>> > left = ad.left_edge
>>>> >
>>>> > level = 1
>>>> > data = ds.covering_grid(level=level, left_edge=left,
>>>> >                                       dims=ds.domain_dimensions *
>>>> 2**level)
>>>> >
>>>> > dmDens = data[('deposit','DarkMatter_density')]
>>>> > ####################################################
>>>> >
>>>> > I'm getting this error:
>>>> > ValueError: operands could not be broadcast together with shapes
>>>> (2,2,2,8)
>>>> > (2,2,2,0) (2,2,2,8)
>>>> >
>>>> > Any ideas?
>>>> >
>>>> > YT_version: 3.1-dev
>>>> >
>>>> > Thanks in advance.
>>>> > Bruno
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > yt-users mailing list
>>>> > yt-users at lists.spacepope.org
>>>> > http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>> >
>>>> _______________________________________________
>>>> yt-users mailing list
>>>> yt-users at lists.spacepope.org
>>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>>
>>>
>>>
>>> _______________________________________________
>>> yt-users mailing list
>>> yt-users at lists.spacepope.org
>>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>>
>>>
>>
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org
>> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>>
>>
>
> _______________________________________________
> yt-users mailing list
> yt-users at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20151216/af89e9dd/attachment.html>


More information about the yt-users mailing list