David Goldsmith wrote:
> Thanks, Eric!
>
> --- On Sat, 9/6/08, Eric Firing <[EMAIL PROTECTED]> wrote:
>
> -- snip OP --
>
>> It looks to me like you simply ran out of memory--this is
>> not an imshow
>> problem as such. Your array is about 1e8 elements, and as
>> floats that
>> would be close to a GB--just for that array alone. Do you
>
> Well, I anticipated that, so I do initialize the storage for the numpy array
> as numpy.uint8 and have confirmed that the data in the array returned by the
> function which creates it remains numpy.uint8, so it should "only" be ~100MB
> (indeed, the .na file into which I tofile it is 85,430 KB, just as it should
> be for a 10800 x 8100 array of uint8 elements). And the ax.imshow statement
> doesn't (directly) cause the crash (but I don't know that it isn't making
> either a float copy or an in-place conversion of the array). So, AFAIK,
> right up until the statement:
>
> canvas.print_figure('HiResHex')
>
> the data being imaged are all numpy.uint8 type.
Yes, but it looks to me like they are still getting color-mapped, and
this requires conversion to numpy.float. This may be a bad aspect of
the mpl design, but it is quite deeply embedded. I suspect the best we
could do would be to use float32 instead of float64; certainly for color
mapping one does not need 64 bits.
Using numpy.uint8 helps only if you are specifying RGBA directly,
bypassing the colormapping.
>
>> really need
>> all that resolution?
>
> Well, there's the rub: I fancy myself a fractal "artist" and I have
> access to an HP DesignJet 500ps plotter with a maximum resolution of
> 1200 x 600 dpi. For the size images I'm trying to make (I'm hoping to go
> even bigger than 36" x 27", but I figured that as a good starting point)
> even I regard _that_ resolution as too much - I was thinking of 300 x
> 300 dpi (which is its "normal" resolution) as certainly worthy of giving
> a try. :-)
>> If you do, you will probably have to
>> get a much
>> more capable machine.
>
> Possible, but I was hoping to generate at least one "proof" first to
> determine how hard I'd need to try.
>
>> Otherwise, you need to knock down
>> the size of
>> that array before trying to plot or otherwise manipulate
>> it.
>
> Forgive me, but I'd like a more detailed explanation as to why: I
> have
> ample (~35 GB, just on my built-in disc, much more than that on external
> discs) harddisc space - isn't there some way to leverage that?
I don't know enough about virtual memory implementations--especially on
Win or Mac--to say. In practice, I suspect you would find that as soon
as you are doing major swapping during a calculation, you will thrash
the disk until you run out of patience.
>> With respect to imshow, probably you can get it to handle
>> larger images
>
> Again, imshow doesn't appear to be the culprit (contrary to my
> original subject line), rather it would appear to be
> canvas.print_figure. (While I'm on the subject of canvas.print_figure,
> isn't there some way for MPL to "splash" the image directly to the
> screen, without first having to write to a file? I didn't ask this
> before because I did eventually want to write the image to a file, but I
> would prefer to do so only after I've had a look at it.)
It is imshow in the sense that most of the action in mpl doesn't happen
when you call imshow or plot or whatever--they just set things up. The
real work is done in the backend when you display with show() or write
to a file.
>> if you feed them in as NxMx4 numpy.uint8 RGBA arrays--but I
>> doubt this
>> is going to be enough, or the right approach, for your
>> present situation.
>
> Right: I don't see how that would be better than having a single 8
> bit
> datum at each point w/ color being determined from a color map (which is
> how I'd prefer to do it anyway).
The way it is better is that it avoids a major operation, including the
generation of the double-precision array. The rgba array can go
straight to agg.
Eric
> Thanks again,
>
> DG
>> Eric
>>
>>> Platform Details: MPL 0.91.2 (sorry, I didn't
>> realize I was running such an old version, maybe I just need
>> to upgrade?), Python 2.5.2, Windows XP 2002 SP3, 504MB
>> physical RAM, 1294MB VM Page size (1000MB init., 5000MB max)
>>> Thanks!
>>>
>>> DG
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users