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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to