[yt-users] Error in visualization with new derived field
Jun-Hwan Choi
jhchoi at pa.uky.edu
Thu Oct 4 14:36:10 PDT 2012
Thank you very much Nathan and Sam.
The python always provides simple way to calculate.
Junhwan
On 10/04/12 17:11, Sam Skillman wrote:
> I think you want to first copy the data, or else you may end up
> modifying the original Density data.
>
> def _DensityCeiling(field, data):
> Ceiling = 1e-22
> new_dens = data["Density"].copy()
> new_dens[new_dens > Ceiling] = Ceiling
> return new_dens
>
> Cheers,
> Sam
>
> On Thu, Oct 4, 2012 at 3:06 PM, Nathan Goldbaum <nathan12343 at gmail.com
> <mailto:nathan12343 at gmail.com>> wrote:
>
> Hi Junhwan
>
> In fact, in general you'll get back a 1D array. These are the
> collapsed values for the data in a single grid (i.e. flattened
> from 3D to 1D).
>
> Since your field does not explicitly depend on the 3D nature of
> the grid, this is an easy fix:
>
> def _DensityCeiling(field, data):
> Ceiling = 1e-22
> wh = np.where(data["Density"] < Ceiling)
> DensityCeiling = data["Density"]
> DensityCeiling[wh] = Ceiling
> return DensityCeiling
>
> Here np is how I've imported numpy locally. There may be an even
> cleverer way of doing the array manipulation that someone else on
> the list may know of off-hand.
>
> Cheers,
>
> Nathan
>
> On Oct 4, 2012, at 2:00 PM, Jun-Hwan Choi wrote:
>
>> Hi yt-users,
>>
>> I try to make a density projection of my simulation.
>> I would like to make a small modification that if the cell
>> density higher than a given density ceiling the density value
>> becomes the density ceiling.
>> And, I made a following script:
>> ############################################
>> from yt.mods import *
>> import matplotlib.pylab as pylab
>>
>> def _DensityCeiling(field, data):
>> Ceiling = 1e-22
>> nx, ny, nz = data["Density"].shape
>> DensityCeiling = na.zeros(data["Density"].shape,
>> dtype='float64')
>> DensityCeiling = data["Density"]
>> for ix, in range(0,nx):
>> for iy, in range(0,ny):
>> for iz, in range(0,nz):
>> if(data["DensityCeiling"][ix,iy,iz] > Ceiling):
>> DensityCeiling[ix,iy,iz] = Ceiling
>> return DensityCeiling
>> add_field("DensityCeiling", function=_DensityCeiling,
>> units=r"\rm{g}/\rm{cm^3}")
>>
>>
>> # load up a dataset
>> pf = load("DD0000/DD0000")
>> all_center = [0.5, 0.5, 0.5]
>>
>> pc = PlotCollection(pf,center=all_center)
>> pc.add_slice("DensityCeiling", 0)
>> pc.add_slice("DensityCeiling", 2)
>> pc.add_projection("DensityCeiling", 0)
>> pc.add_projection("DensityCeiling", 2)
>>
>> pc.set_width(6, 'kpc')
>> pc.save("cen_t%04.1f_L6K" % pf.current_time)
>> pc.set_width(1, 'kpc')
>> pc.save("cen_t%04.1f_L1K" % pf.current_time)
>> #######################################################
>>
>> And then, I got a following error.
>> File "DenViz.py", line 6, in _DensityCeiling
>> nx, ny, nz = data["Density"].shape
>> ValueError: need more than 1 value to unpack
>>
>> It turns out that the data["Density"] is not always 3d array but
>> sometimes become 1d array.
>> Is there any way to fix the derived field to avoid this problem?
>>
>> Thank you in advance,
>> Junhwan
>>
>>
>> --
>> --------------------------------------------------------------
>> Jun-Hwan Choi, Ph.D.
>> Department of Physics and Astronomy, University of Kentucky
>> Tel:(859) 897-6737 <tel:%28859%29%20897-6737> Fax:(859) 323-2846 <tel:%28859%29%20323-2846>
>> Email:jhchoi at pa.uky.edu <mailto:jhchoi at pa.uky.edu> URL:http://www.pa.uky.edu/~jhchoi <http://www.pa.uky.edu/%7Ejhchoi>
>> --------------------------------------------------------------
>> _______________________________________________
>> yt-users mailing list
>> yt-users at lists.spacepope.org <mailto: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 <mailto: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
--
--------------------------------------------------------------
Jun-Hwan Choi, Ph.D.
Department of Physics and Astronomy, University of Kentucky
Tel: (859) 897-6737 Fax: (859) 323-2846
Email: jhchoi at pa.uky.edu URL: http://www.pa.uky.edu/~jhchoi
--------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-users-spacepope.org/attachments/20121004/ff82d26e/attachment.htm>
More information about the yt-users
mailing list