[yt-dev] About Covering Problem while plotting 3D surface and sketchfab pictures
吳佳鴻
r00222055 at ntu.edu.tw
Fri Jun 6 08:52:56 PDT 2014
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
=========================================================================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-dev-spacepope.org/attachments/20140606/84901c90/attachment.htm>
More information about the yt-dev
mailing list