Movie -T flag

I seem to be having a problem with the -T flag in ‘movie’

I have a file with ~1300 data slices in it.

The ‘action’ in one of my domains doesn’t start until about frame ~300.

when using -T10 (to plot just 10 frames for testing) it starts at slice 0 (i.e. the beginning of the file), as expected and makes 10 plots, which are all fine and it makes the movie fine. Just that nothing happens in those first 10 frames…

if I use -T10+s300 (to start at slice 300), the code runs, makes 3 plots (which all look fine and plot as expected), but then it just freezes and hangs there… i try ctrl-c to kill the process from within my command window, and that has no effect, i manually close the window and i get a warning that processes are running, but i close it any way to kill the process.

I am working on GMT 6.3 in cygwin

the movie command I am using is:

gmt movie -Nanim_C -T10 -Cuxga -Vl -Fmp4

and it works fine with my mainscript to make the animation. I just can get it to start the animation anywhere other than the first slice of the data file.

It seems like a cygwin related bug to me, but wondering if anyone else has come across this.

some other info: i am running on an HP laptop with Intel processors and 4 cores. The info printed to the screen in my cygwin window tells me it is using 3 cores to do the plotting. It always freezes after making the first 3 plots (but only when i have the +s300 bit added to -T). If i set it to -T2+s300 it still freezes after making the first two plot, but as i said before, those two plots are fine, i.e. look the way they are supposed to.

Any help appreciated.



Couple of points here:

  1. Unfortunately, movie (and batch) had a bug related to +s. Thanks for posting this - I have now submitted a pull request on Github that fixes it, so if you are able to build GMT from source once this is merged then I recommend that.
  2. I am not sure you have understood the purpose of this modifier. All it does is to change the numbering on the output products - it does not start later in the sequence for the input data. If you have 1300 files and you want to use a frame counter starting at 300 through 1300 to get the right names then you need -T300/1300/1 I think. The +s is mostly for breaking up gigantic renderings across multiple machines and hence there is the need to not start at frame 0 for all those separate jobs… So if I understand your correctly you should be unaffected by the but since you don’t need to use +s.

The PR has now been merged into master.

Hi Paul,

Thanks for the feedback. I did a bit more fiddling last night but hadn’t had the chance to report back.

So I was using the MOVIE_FRAME variable to go in to the string that selects the time layer that was being plotted in each frame (*.nc?HA[MOVIE_FRAME]) I figured using +s would jump this variable to the right number it all would be fine. This is all just for diagnostics and eventually I’ll animate the whole thing…

After pondering the words in the help docs a bit longer and ultimately made a timefile.txt with 10 lines each numbered 300-310, then I put $MOVIE_COL0 as the variable in the data layer call.

That also worked fine, but i noticed the file names of the images that were written out were *_000 to *_010 (rather than 300-310), so i experimented by using -Ttimefile.txt+s300 and guess what, it crashed!

So, this suggests a bug in +s as you have confirmed.

But yeah, the whole point was trying to jump forward into my data file to layer 300, rather that starting at layer 0.

So I think we have it figured out now. Enough to continue at any rate until i get stuck on something else! ha ha…