Re: Xinteranimate and plots [message #53685] |
Wed, 25 April 2007 23:19 |
Ingo von Borstel
Messages: 54 Registered: September 2006
|
Member |
|
|
Hi,
>> n=100000L
>> x=findgen(n)
>> y=findgen(n)
>> z=findgen(n)
>> XInterAnimate, set=[500,500,999]
>> for j=1L,998L,500 do begin
>> plots, x((j-1):j), y((j-1):j), z((j-1):j),/T3D,/DATA
>> XInterAnimate, Frame=j, Window=!D.Window
>> endfor
>> XInterAnimate
>>
> j is not your problem. You are just running COMPLETELY
> out of pixmap memory, would be my guess. :-)
If that's the problem - which was at some point probably my problem, too
- I propose to just create an array of images and not one of pixmaps.
Either you can store them on disc or keep them in memory and display
them with the usual tv or tvscl routines. It works for me. Might be a
trifle slower, but I guess that's the price you pay for large sequences
of images.
I ended up with a routine that pre-processes my images and saves them
individually (I want to display some additional data printed onto them)
and then I call a routine which creates an *.mpg file out of this
sequence of images.
e-mail me, if you need more code details.
Best regards,
Ingo
--
Ingo von Borstel <newsgroups@planetmaker.de>
Public Key: http://www.planetmaker.de/ingo.asc
If you need an urgent reply, replace newsgroups by vgap.
|
|
|
Re: Xinteranimate and plots [message #53692 is a reply to message #53685] |
Wed, 25 April 2007 13:50  |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
kostis writes:
> Now i understand what the problem is but I dont know how to fix it:
>
> n=100000L
> x=findgen(n)
> y=findgen(n)
> z=findgen(n)
> XInterAnimate, set=[500,500,999]
> for j=1L,998L,500 do begin
> plots, x((j-1):j), y((j-1):j), z((j-1):j),/T3D,/DATA
> XInterAnimate, Frame=j, Window=!D.Window
> endfor
> XInterAnimate
>
> Although j is defined as a 'long' number the number j*100 is not and
> the animation stops when the limit is reached..
> How do i fix it???
j is not your problem. You are just running COMPLETELY
out of pixmap memory, would be my guess. :-)
You could try getting a graphics card that off-loads
pixmap memory to the hard drive, but I wouldn't know
which one that is. If you really want that many frames, you
may have to figure out another way to do the animation.
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|
Re: Xinteranimate and plots [message #53695 is a reply to message #53692] |
Wed, 25 April 2007 12:04  |
kostis
Messages: 17 Registered: December 2006
|
Junior Member |
|
|
Now i understand what the problem is but I dont know how to fix it:
n=100000L
x=findgen(n)
y=findgen(n)
z=findgen(n)
XInterAnimate, set=[500,500,999]
for j=1L,998L,500 do begin
plots, x((j-1):j), y((j-1):j), z((j-1):j),/T3D,/DATA
XInterAnimate, Frame=j, Window=!D.Window
endfor
XInterAnimate
Although j is defined as a 'long' number the number j*100 is not and
the animation stops when the limit is reached..
How do i fix it???
Thanx a lot
|
|
|
Re: Xinteranimate and plots [message #53733 is a reply to message #53695] |
Mon, 23 April 2007 07:57  |
Ingo von Borstel
Messages: 54 Registered: September 2006
|
Member |
|
|
Hi,
> Im trying to animate a 3d trajectory using the tool "XInterAnimate"
> and plotting with "plots" as follows:
>
> XInterAnimate, set=[500,500,10000], /Showload ,MPEG_QUALITY=100
> ...................................
> for j=1,9999 do begin
> plots, x((j-1)*200:j*200), y((j-1)*200:j*200), z((j-1)*200:j*200),
> % Subscript range values of the form low:high must be >= 0, < size,
> with low <= high: X.
> % Execution halted at: ANIMATE 27 /home/kostis/PROJECT
> LARMOR/dipole/animate.pro
> % $MAIN$
You might try to use a long variable as counter:
FOR j=1l,9999l do begin ...
Just a random guess, though.
Best regards,
Ingo
--
Ingo von Borstel <newsgroups@planetmaker.de>
Public Key: http://www.planetmaker.de/ingo.asc
If you need an urgent reply, replace newsgroups by vgap.
|
|
|
Re: Xinteranimate and plots [message #53736 is a reply to message #53733] |
Mon, 23 April 2007 07:58  |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
kostis writes:
> Im trying to animate a 3d trajectory using the tool "XInterAnimate"
> and plotting with "plots" as follows:
>
> XInterAnimate, set=[500,500,10000], /Showload ,MPEG_QUALITY=100
> ...................................
> for j=1,9999 do begin
> plots, x((j-1)*200:j*200), y((j-1)*200:j*200), z((j-1)*200:j*200),
> $
> /T3D,/DATA,Thick=1
> XInterAnimate, Frame=j, Window=!D.Window
> endfor
> XInterAnimate
>
> The animation starts but in the middle it pops the message:
>
> % Subscript range values of the form low:high must be >= 0, < size,
> with low <= high: X.
> % Execution halted at: ANIMATE 27 /home/kostis/PROJECT
> LARMOR/dipole/animate.pro
> % $MAIN$
>
> indicating the line plots... has the problem
> What does this message mean exactly??
I'd guess that it means your X, Y, and Z variables
are not 200 times as big as your counter. That is
they are not arrays of size one million.
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|