Thanks for the tip. I will have a look. I actually tried generating an image with rawin = cam.snapshot. I still have to poke around in the image file though. I am thinking I will have to debug he parallel mpi4py implementation as the problem does not exist unless I use mpi. I just have to take a deep breath and dive in. I hate debugging parallel code.
I was thinking of trying multithreading but have not figured out how it works yet. Is there a flag in the camera to set the number of threads?
If "1/cmax" is failing for a rendered image, that could mean it's all black (max pixel=0) ... or maybe that there had been a NaN in it somewhere which could likewise break the automatic rescaling. Are you using
the rendering interface where you call something like
cam.snapshot( "image.png" )
to make it save an image? If so you might try
rawim = cam.snapshot()
and look at the distribution of raw rendered pixel values in rawim, which should be a 3-dimensional array (image size x 4 or something). Maybe the fraction of positive values: numpy.sum( rawim > 0 ) / float(rawim.size)
Also, Dave, are you rendering using multiple threads?
On 5/28/15 3:52 PM, Dave Semeraro wrote:
Did a bit more experimentation. The error only appears when I run in parallel. Serial runs execute fine but take a long time. So there is some monkey business going on with parallel ray tracing that is triggered by the image size I was using. I am also using a rather large enzo dataset. Thanks for considering the problem.
From: yt-users [mailto:email@example.com] On Behalf Of Nathan Goldbaum
Sent: Thursday, May 28, 2015 2:58 PM
To: Discussion of the yt analysis package
Subject: Re: [yt-users] is there a limit on image size?
On Thu, May 28, 2015 at 12:54 PM, Dave Semeraro <firstname.lastname@example.org> wrote:
I am doing some volume rendering in yt and getting some errors when I try to grow the image size. I am trying to write a png image that is 1024 x 1024. I get the following errors:
image_array.py:229: RuntimeWarning: invalid value encountered in multiply
np.multiply(self[:, :, :3], 1.0/cmax, out[:, :, :3])
The warning is being triggered here:
which I think means cmax is 0. I'd need to see the full traceback or step through execution in a debugger to figure out why.
yt_array.py:764: RuntimeWarning: divide by zero encountered in divide
return YTArray(super(YTArray, self).__rdiv__(lo))
The largest image I can generate is about 800x 800. It is a nice image too I tell ya. Just wish I could do a bigger one to submit for publication.
There's no limit on the image size for a volume rendering.
Attached is the script I am using. Any help would be great.
yt-users mailing list
_______________________________________________yt-users mailing list