[yt-dev] About Covering Problem while plotting 3D surface and sketchfab pictures

Matthew Turk matthewturk at gmail.com
Mon Jun 9 05:56:51 PDT 2014


Hi Jia-Hung,

Sorry for the delay!

The key error you're seeing is because yt was unable to fill in all of
the cells needed for the smoothed covering grid.  Can you try this,
and see what happens?

ngood = 0
nbad = 0
for g in pf.h.grids:
    try:
        g.retrieve_ghost_zones(1, ["Ones"], smoothed=False)
    except KeyError:
        nbad += 1
        cnotinue
    ngood += 1
print "Not smoothed", ngood, nbad
ngood = 0
nbad = 0
for g in pf.h.grids:
    try:
        g.retrieve_ghost_zones(1, ["Ones"], smoothed=True)
    except KeyError:
        nbad += 1
        cnotinue
    ngood += 1
print "Smoothed", ngood, nbad

and let us know the results?

On Fri, Jun 6, 2014 at 10:52 AM, 吳佳鴻 <r00222055 at ntu.edu.tw> wrote:
> Dear all,
>
> I want to say thank you to all of you for making how powerful and convenient
> yt is. I really appreciate everything you have done.
> I’m now using yt 2.6 version and trying to construct our AMR code named
> “GAMER” frontend to yt.
>
> So far I have several preliminary results that I could plot picture with
> projection /slice/ contour /radial profile successfully, and the outcome
> pictures all seem fine.
> However when I tried to plot “3D Surface and Sketchfab”, I failed.
>
> It popped out some error messages. There exist some covering problems in my
> data structure. Actually this question also happened when I tried to plot
> “VorticityMagnitude”.
> I couldn’t figure it out, and every data value and positions seem fine when
> I plot pictures in projection and slice.
>
> Therefore, I believe there is some fundamental problem that I am too
> careless to pay attention to. Could anyone help me with this problem? Thank
> you in advance.
>
>
>
> Jia-Hung Wu
>
>
>
>
>
> The following is the error message.
>
> ======================== Error Message
> ===========================================
>
>>
> In [75]: surface["Density"]
>
> yt : [ERROR    ] 2014-06-06 22:49:12,262 Covering problem: 163 cells are
> uncovered
>
> ---------------------------------------------------------------------------
>
> KeyError                                  Traceback (most recent call last)
>
> <ipython-input-75-c8eab0fb4ee7> in <module>()
>
> ----> 1 surface["Density"]
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in __getitem__(self, key)
>
>     316             if key not in self.fields:
>
>     317                 self.fields.append(key)
>
> --> 318             self.get_data(key)
>
>     319         return self.field_data[key]
>
>     320
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in get_data(self, fields, sample_type)
>
>    4233             my_verts = self._extract_isocontours_from_grid(
>
>    4234                             g, self.surface_field, self.field_value,
>
> -> 4235                             fields, sample_type)
>
>    4236             if fields is not None:
>
>    4237                 my_verts, svals = my_verts
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in save_state(self, grid, field, *args, **kwargs)
>
>      79         old_keys = grid.field_data.keys()
>
>      80         grid.field_parameters = self.field_parameters
>
> ---> 81         tr = func(self, grid, field, *args, **kwargs)
>
>      82         grid.field_parameters = old_params
>
>      83         grid.field_data = YTFieldData( [(k, grid.field_data[k]) for
> k in old_keys] )
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in _extract_isocontours_from_grid(self, grid, field, value, sample_values,
> sample_type)
>
>    4257                                        sample_type = "face"):
>
>    4258         mask = self.data_source._get_cut_mask(grid) *
> grid.child_mask
>
> -> 4259         vals = grid.get_vertex_centered_data(field, no_ghost =
> False)
>
>    4260         if sample_values is not None:
>
>    4261             svals = grid.get_vertex_centered_data(sample_values)
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.pyc
> in get_vertex_centered_data(self, field, smoothed, no_ghost)
>
>     498                 np.power(10.0, new_field, new_field)
>
>     499         else:
>
> --> 500             cg = self.retrieve_ghost_zones(1, field,
> smoothed=smoothed)
>
>     501             np.add(new_field, cg[field][1: ,1: ,1: ], new_field)
>
>     502             np.add(new_field, cg[field][:-1,1: ,1: ], new_field)
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/grid_patch.pyc
> in retrieve_ghost_zones(self, n_zones, fields, all_levels, smoothed)
>
>     465         if smoothed:
>
>     466             cube = self.hierarchy.smoothed_covering_grid(
>
> --> 467                 level, new_left_edge, **kwargs)
>
>     468         else:
>
>     469             cube = self.hierarchy.covering_grid(level,
> new_left_edge, **kwargs)
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in __init__(self, *args, **kwargs)
>
>    3869               (self.pf.domain_right_edge - self.pf.domain_left_edge)
> /
>
>    3870                self.pf.domain_dimensions.astype("float64"))
>
> -> 3871         AMRCoveringGridBase.__init__(self, *args, **kwargs)
>
>    3872         self._final_start_index = self.global_startindex
>
>    3873
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in __init__(self, level, left_edge, dims, fields, pf, num_ghost_zones,
> use_pbar, **kwargs)
>
>    3713         self.domain_width = np.rint((self.pf.domain_right_edge -
>
>    3714
> self.pf.domain_left_edge)/self.dds).astype('int64')
>
> -> 3715         self._refresh_data()
>
>    3716
>
>    3717     def _get_list_of_grids(self, buffer = 0.0):
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in _refresh_data(self)
>
>    3730
>
>    3731     def _refresh_data(self):
>
> -> 3732         AMR3DData._refresh_data(self)
>
>    3733         self['dx'] = self.dds[0] * np.ones(self.ActiveDimensions,
> dtype='float64')
>
>    3734         self['dy'] = self.dds[1] * np.ones(self.ActiveDimensions,
> dtype='float64')
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in _refresh_data(self)
>
>     304         """
>
>     305         self.clear_data()
>
> --> 306         self.get_data()
>
>     307
>
>     308     def keys(self):
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in get_data(self, field)
>
>    3893                 try:
>
>    3894                     #print "Generating", field
>
> -> 3895                     self._generate_field(field)
>
>    3896                     continue
>
>    3897                 except NeedsOriginalGrid, ngt_exception:
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in _generate_field(self, field)
>
>    3780             # First we check the validator; this might even raise!
>
>    3781             self.pf.field_info[field].check_available(self)
>
> -> 3782             self[field] = self.pf.field_info[field](self)
>
>    3783         else: # Can't find the field, try as it might
>
>    3784             raise KeyError(field)
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/field_info_container.pyc
> in __call__(self, data)
>
>     383         ii = self.check_available(data)
>
>     384         original_fields = data.keys() # Copy
>
> --> 385         dd = self._function(self, data)
>
>     386         dd *= self._convert_function(data)
>
>     387         for field_name in data.keys():
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/field_info_container.pyc
> in _TranslationFunc(field, data)
>
>     139 def TranslationFunc(field_name):
>
>     140     def _TranslationFunc(field, data):
>
> --> 141         return data[field_name]
>
>     142     return _TranslationFunc
>
>     143
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in __getitem__(self, key)
>
>     316             if key not in self.fields:
>
>     317                 self.fields.append(key)
>
> --> 318             self.get_data(key)
>
>     319         return self.field_data[key]
>
>     320
>
>
>
> /work1/ftd/yt_2.6_Version/yt-x86_64/src/yt-hg/yt/data_objects/data_containers.pyc
> in get_data(self, field)
>
>    3935                     n_bad = (self[field]==-999).sum()
>
>    3936                     mylog.error("Covering problem: %s cells are
> uncovered", n_bad)
>
> -> 3937                     raise KeyError(n_bad)
>
>    3938         if self._use_pbar: pbar.finish()
>
>    3939
>
>
>
> KeyError: 163
>
> =========================================================================================
>
>
> _______________________________________________
> yt-dev mailing list
> yt-dev at lists.spacepope.org
> http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org
>



More information about the yt-dev mailing list