Gmt movie - problem with example

I’m giving the example a try (https://docs.generic-mapping-tools.org/latest/movie.html#examples), but getting into trouble.

globe.sh:

gmt begin
   gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
gmt end

I then run

$ gmt movie globe.sh -Nglobe -T360 -Agif -C6ix6ix100 -Lf -P
free(): invalid next size (fast)
movie_frame.sh: line 14:  5681 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid next size (fast)
movie_frame.sh: line 14:  5682 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid next size (fast)
movie_frame.sh: line 14:  5691 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
free(): invalid next size (fast)
movie_frame.sh: line 14:  5684 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5686 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5688 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5689 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5685 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5687 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5690 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
movie_frame.sh: line 14:  5683 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_003.png' '/home/anbj/.gmt/sessions/gmt_session.5624/psconvert_5692d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_005.png' '/home/anbj/.gmt/sessions/gmt_session.5632/psconvert_5698d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_009.png' '/home/anbj/.gmt/sessions/gmt_session.5647/psconvert_5694d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_008.png' '/home/anbj/.gmt/sessions/gmt_session.5644/psconvert_5693d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_001.png' '/home/anbj/.gmt/sessions/gmt_session.5618/psconvert_5696d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_000.png' '/home/anbj/.gmt/sessions/gmt_session.5616/psconvert_5699d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_002.png' '/home/anbj/.gmt/sessions/gmt_session.5620/psconvert_5700d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
Error: /undefinedError: /undefined in PSL_movie_label_completion in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:

Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2    %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .  1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dictrunexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file p:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
osition is 20503
Current file position is 20503
GPL Ghostscript GPL Ghostscript 9.53.39.53.3: : Unrecoverable error, exit code 1
Unrecoverable error, exit code 1
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_004.png' '/home/anbj/.gmt/sessions/gmt_session.5626/psconvert_5695d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_007.png' '/home/anbj/.gmt/sessions/gmt_session.5640/psconvert_5697d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_010.png' '/home/anbj/.gmt/sessions/gmt_session.5651/psconvert_5702d.eps'] returned error 256.
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_006.png' '/home/anbj/.gmt/sessions/gmt_session.5636/psconvert_5701d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
end [ERROR]: gmtinit_process_figures returned error 79
^C^C

Also,

$ gmt movie globe.sh -Chd -Nglobe -T360 -Lf -P
movie [ERROR]: Must select at least one output product (-F, -M)

Neither -F or -M (or -A for gif) is listed as required arguements. Should they not be?

Hm, I can only suspect there is something odd with how the shell script runs on your OS. These examples run fine on Windows, Linux, and macOS (they run in the CI for our testing on all those platforms). Plus, we have successfully run that example in our GMT for geodesy workshop this summer. So something is odd on your setup but I do not know what.

As for required options. See https://docs.generic-mapping-tools.org/dev/movie.html which does not list either -F or -M (we moved -A into -F but of course this is backwards compatible) and that documentation says that if -F is not given then -M is required.

So we have no good way to list “conditionally required” options!

I see.

I just ran all the test/movie and none of them produce any movies (should they?). I’ll look at this some more.

This is a brand new installation of Debian 11, so shouldn’t be very odd. I’m using bash.

$ gmt --version
6.3.0_61d84c1_2021.11.16

No, none of those will produce movies. See doc/examples/anim?? directories.

https://docs.generic-mapping-tools.org/latest/animations/anim01.html works just fine.

1 Like

test/animation/title.sh runs just fine as well.

1 Like

Culprit found; remove the -P and it works fine for me.

So:

Nono:

$ gmt movie globe.sh -Nglobe -T360 -Agif -C6ix6ix100 -Lf -P

Yes:

$ gmt movie globe.sh -Nglobe -T360 -Agif -C6ix6ix100 -Lf

You could try to remove -A and add -Qs. Then examine the scripts inside globe and try to run one of them like

bash -xv movie_frame.sh 123

and see if you get errors and from what command.

Done.

Result:

$ gmt movie globe.sh -Nglobe -T360 -C6ix6ix100 -Lf -P -Qs
anbj@nuc10:~/anbj-tmp-H32 09:16:54 0 $ cd globe
anbj@nuc10:~/anbj-tmp-H32/globe 09:16:56 0 $ bash -xv movie_frame.sh 123
#!/usr/bin/env bash
# Main frame loop script
export GMT_SESSION_NAME=$$
+ export GMT_SESSION_NAME=69683
+ GMT_SESSION_NAME=69683
export GMT_END_SHOW=off
+ export GMT_END_SHOW=off
+ GMT_END_SHOW=off
# Include static and frame-specific parameters
source movie_init.sh
+ source movie_init.sh
# Static parameters set for animation sequence globe
MOVIE_WIDTH=6i
++ MOVIE_WIDTH=6i
MOVIE_HEIGHT=6i
++ MOVIE_HEIGHT=6i
MOVIE_DPU=100
++ MOVIE_DPU=100
MOVIE_RATE=24
++ MOVIE_RATE=24
source movie_params_$1.sh
+ source movie_params_123.sh
# Parameter file for frame 123
MOVIE_NAME=globe_123
++ MOVIE_NAME=globe_123
MOVIE_FRAME=123
++ MOVIE_FRAME=123
MOVIE_NFRAMES=360
++ MOVIE_NFRAMES=360
MOVIE_ITEM=123
++ MOVIE_ITEM=123
MOVIE_BACKGROUND=
++ MOVIE_BACKGROUND=
MOVIE_ITEM=123
++ MOVIE_ITEM=123
MOVIE_COL0=123
++ MOVIE_COL0=123
# MOVIE_L: L|0.0555556|5.94444|0.344444|0|9|0.0416667|0.0416667|-|-|-|-|0|0|0|-|20p,Helvetica,black|123
# MOVIE_P: a|5.94444|5.94444|0.344444|0.3|11|0.0416667|0.0416667|-|-|lightred|lightgreen|0|0|0|-|14p,Helvetica,black|
mkdir ${MOVIE_NAME}
+ mkdir globe_123
cd ${MOVIE_NAME}
+ cd globe_123
gmt begin
+ gmt begin
# 	Set output PNG name and plot conversion parameters
	gmt figure ../${MOVIE_NAME} png,ps E${MOVIE_DPU},A+M+r${MOVIE_BACKGROUND} -I../movie_params_$1.sh
+ gmt figure ../globe_123 png,ps E100,A+M+r -I../movie_params_123.sh
	gmt set PS_MEDIA 6ix6i DIR_DATA "/home/anbj/anbj-tmp-H32,/home/anbj/anbj-tmp-H32/globe" GMT_MAX_CORES 1
+ gmt set PS_MEDIA 6ix6i DIR_DATA /home/anbj/anbj-tmp-H32,/home/anbj/anbj-tmp-H32/globe GMT_MAX_CORES 1
   gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
+ gmt coast -Rg -JG123/20/6i -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid next size (fast)
movie_frame.sh: line 14: 69688 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
gmt end
+ gmt end
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_123.png' '/home/anbj/.gmt/sessions/gmt_session.69683/psconvert_69689d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
cd ..
+ cd ..

If I change the frame I want to look at, e.g. frame 12, it seems like it’s not forwarded to -J within the script, causing a -J-error:

$ bash -xv movie_frame.sh 12
#!/usr/bin/env bash
# Main frame loop script
export GMT_SESSION_NAME=$$
+ export GMT_SESSION_NAME=69741
+ GMT_SESSION_NAME=69741
export GMT_END_SHOW=off
+ export GMT_END_SHOW=off
+ GMT_END_SHOW=off
# Include static and frame-specific parameters
source movie_init.sh
+ source movie_init.sh
# Static parameters set for animation sequence globe
MOVIE_WIDTH=6i
++ MOVIE_WIDTH=6i
MOVIE_HEIGHT=6i
++ MOVIE_HEIGHT=6i
MOVIE_DPU=100
++ MOVIE_DPU=100
MOVIE_RATE=24
++ MOVIE_RATE=24
source movie_params_$1.sh
+ source movie_params_12.sh
movie_frame.sh: line 7: movie_params_12.sh: No such file or directory
mkdir ${MOVIE_NAME}
+ mkdir
mkdir: missing operand
Try 'mkdir --help' for more information.
cd ${MOVIE_NAME}
+ cd
gmt begin
+ gmt begin
# 	Set output PNG name and plot conversion parameters
	gmt figure ../${MOVIE_NAME} png,ps E${MOVIE_DPU},A+M+r${MOVIE_BACKGROUND} -I../movie_params_$1.sh
+ gmt figure ../ png,ps E100,A+M+r -I../movie_params_12.sh
figure [ERROR]: gmt figure: Unable to open movie parameter file ../movie_params_12.sh
	gmt set PS_MEDIA 6ix6i DIR_DATA "/home/anbj/anbj-tmp-H32,/home/anbj/anbj-tmp-H32/globe" GMT_MAX_CORES 1
+ gmt set PS_MEDIA 6ix6i DIR_DATA /home/anbj/anbj-tmp-H32,/home/anbj/anbj-tmp-H32/globe GMT_MAX_CORES 1
   gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
+ gmt coast -Rg -JG/20/6i -Gmaroon -Sturquoise -Bg -X0 -Y0
coast [WARNING]:  not a valid number and may not be decoded properly.
coast [ERROR]: Could not decode , return NaN.
coast [ERROR]: Could not decode , return NaN.
coast [ERROR]: Option -J parsing failure. Correct syntax:

  -J Select map proJection (<scale> in cm/degree, <width> in cm). Modifiers:
       +dh Specifying map height.
       +du Specifying maximum map dimension.
       +dl Specifying minimum map dimension.
       +dw Specifying map width [Default].
     Azimuthal projections set -Rg unless polar aspect or -R<...>+r is set.
     -Ja|A<lon0>/<lat0>[/<hor>]/<scl> (or <radius>/<lat>)|<width> (Lambert Azimuthal Equal-area)
     -Jb|B<lon0>/<lat0>/<lat1>/<lat2>/<scl>|<width> (Albers Conic Equal-area)
     -Jcyl_stere|Cyl_stere/[<lon0>/[<lat0>/]]<lat1>/<lat2>/<scl>|<width> (Cylindrical Stereographic)
     -Jc|C<lon0>/<lat0><scl>|<width> (Cassini)
     -Jd|D<lon0>/<lat0>/<lat1>/<lat2>/<scl>|<width> (Equidistant Conic)
     -Je|E<lon0>/<lat0>[/<horizon>]/<scl> (or <radius>/<lat>)|<width> (Azimuthal Equidistant)
     -Jf|F<lon0>/<lat0>[/<horizon>]/<scl> (or <radius>/<lat>)|<width> (Gnomonic)
     -Jg|G<lon0>/<lat0>/<scl> (or <radius>/<lat>)|<width> (Orthographic)
     -Jg|G<lon0>/<lat0>/<scl>|<width>[+a<azimuth>][+t<tilt>][+v<vwidth>/<vheight>][+w<twist>][+z<altitude>[r|R]|g] (General Perspective)
     -Jh|H[<lon0>/]<scl>|<width> (Hammer-Aitoff)
     -Ji|I[<lon0>/]<scl>|<width> (Sinusoidal)
     -Jj|J[<lon0>/]<scl>|<width> (Miller)
     -Jkf|Kf[<lon0>/]<scl>|<width> (Eckert IV)
     -Jks|Ks[<lon0>/]<scl>|<width> (Eckert VI)
     -Jl|L<lon0>/<lat0>/<lat1>/<lat2>/<scl>|<width> (Lambert Conformal Conic)
     -Jm|M[<lon0>/[<lat0>/]]<scl>|<width> (Mercator)
     -Jn|N[<lon0>/]<scl>|<width> (Robinson projection)
     -Jo|O (Oblique Mercator). Specify one of three definitions:
       -Jo|O[a|A]<lon0>/<lat0>/<azimuth>/<scl>|<width>[+v]
       -Jo|O[b|B]<lon0>/<lat0>/<lon1>/<lat1>/<scl>|<width>[+v]
       -Jo|Oc|C<lon0>/<lat0>/<lonp>/<latp>/<scl>|<width>[+v]
     -Jpoly|Poly/[<lon0>/[<lat0>/]]<scl>|<width> ((American) Polyconic)
     -Jq|Q[<lon0>/[<lat0>/]]<scl>|<width> (Equidistant Cylindrical)
     -Jr|R[<lon0>/]<scl>|<width> (Winkel Tripel)
     -Js|S<lon0>/<lat0>/[<horizon>/]<scl> (or <slat>/<scl> or <radius>/<lat>)|<width> (Stereographic)
     -Jt|T<lon0>/[<lat0>/]<scl>|<width> (Transverse Mercator)
     -Ju|U[<zone>/]<scl>|<width> (UTM)
     -Jv|V<lon0>/<scl>|<width> (van der Grinten)
     -Jw|W<lon0>/<scl>|<width> (Mollweide)
     -Jy|Y[<lon0>/[<lat0>/]]<scl>|<width> (Cylindrical Equal-area)
     -Jp|P<scl>|<width>[+a][+f[e|p|<radius>]][+k<kind>][+r<offset>][+t<origin][+z[p|<radius>]] (Polar [azimuth] (theta,radius)).
     -Jx|X<x-scl>|<width>[d|l|p<power>|t|T][/<y-scl>|<height>[d|l|p<power>|t|T]] (Linear, log, and power projections)
     (See basemap for more details on projection syntax)
coast [ERROR]: Offending option -JG/20/6i
gmt end
+ gmt end
end [WARNING]: Figure # 1 (../) was registered but no matching PostScript-|+ file found - skipping
end [WARNING]: Figure # 1 (../) was registered but no matching PostScript-|+ file found - skipping
cd ..
+ cd ..

No, I think after you run this once it eats the parameter file:
movie_frame.sh: line 7: movie_params_12.sh: No such file or directory

so the -J longitude is not set, etc.

If you delete the globe dir and rerun the command with -Qs, could you try to add -Vd to that coast command in movie_frame.sh before you run that case again. Hopefully it could limit to exactly where it crashes although I have my suspicions. I can try to see if I can run this on Linux here (tomorrow).

Done.

Result:

$ bash -xv movie_frame.sh 123
#!/usr/bin/env bash
# Main frame loop script
export GMT_SESSION_NAME=$$
+ export GMT_SESSION_NAME=71990
+ GMT_SESSION_NAME=71990
export GMT_END_SHOW=off
+ export GMT_END_SHOW=off
+ GMT_END_SHOW=off
# Include static and frame-specific parameters
source movie_init.sh
+ source movie_init.sh
# Static parameters set for animation sequence globe
MOVIE_WIDTH=6i
++ MOVIE_WIDTH=6i
MOVIE_HEIGHT=6i
++ MOVIE_HEIGHT=6i
MOVIE_DPU=100
++ MOVIE_DPU=100
MOVIE_RATE=24
++ MOVIE_RATE=24
source movie_params_$1.sh
+ source movie_params_123.sh
# Parameter file for frame 123
MOVIE_NAME=globe_123
++ MOVIE_NAME=globe_123
MOVIE_FRAME=123
++ MOVIE_FRAME=123
MOVIE_NFRAMES=360
++ MOVIE_NFRAMES=360
MOVIE_ITEM=123
++ MOVIE_ITEM=123
MOVIE_BACKGROUND=
++ MOVIE_BACKGROUND=
MOVIE_ITEM=123
++ MOVIE_ITEM=123
MOVIE_COL0=123
++ MOVIE_COL0=123
# MOVIE_L: L|0.0555556|5.94444|0.344444|0|9|0.0416667|0.0416667|-|-|-|-|0|0|0|-|20p,Helvetica,black|123
# MOVIE_P: a|5.94444|5.94444|0.344444|0.3|11|0.0416667|0.0416667|-|-|lightred|lightgreen|0|0|0|-|14p,Helvetica,black|
mkdir ${MOVIE_NAME}
+ mkdir globe_123
cd ${MOVIE_NAME}
+ cd globe_123
gmt begin
+ gmt begin
# 	Set output PNG name and plot conversion parameters
	gmt figure ../${MOVIE_NAME} png,ps E${MOVIE_DPU},A+M+r${MOVIE_BACKGROUND} -I../movie_params_$1.sh
+ gmt figure ../globe_123 png,ps E100,A+M+r -I../movie_params_123.sh
	gmt set PS_MEDIA 6ix6i DIR_DATA "/tmp/anbj-tmp-RxE,/tmp/anbj-tmp-RxE/globe" GMT_MAX_CORES 1
+ gmt set PS_MEDIA 6ix6i DIR_DATA /tmp/anbj-tmp-RxE,/tmp/anbj-tmp-RxE/globe GMT_MAX_CORES 1
   gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0 -Vd
+ gmt coast -Rg -JG123/20/6i -Gmaroon -Sturquoise -Bg -X0 -Y0 -Vd
gmt [DEBUG]: GMT_Create_Session: Terminal width = 211
gmt [DEBUG]: Obtained GMT_SESSION_NAME from the environment: 71990
gmt [DEBUG]: Enter: gmtinit_new_GMT_ctrl
gmt [DEBUG]: GMT->session.SHAREDIR = /usr/local/share
gmt [DEBUG]: GMT->session.HOMEDIR = /home/anbj
gmt [DEBUG]: GMT->session.USERDIR = /home/anbj/.gmt [created]
gmt [DEBUG]: GMT->session.CACHEDIR = /home/anbj/.gmt/cache [created]
gmt [DEBUG]: GMT: 0. Will try to find subdir=postscriptlight stem = PSL_custom_fonts suffix=.txt
gmt [DEBUG]: GMT: 1. gmt_getsharepath trying current dir
gmt [DEBUG]: GMT: 2. gmt_getsharepath trying USERDIR /home/anbj/.gmt
gmt [DEBUG]: GMT: 3. gmt_getsharepath trying USERDIR subdir /home/anbj/.gmt/postscriptlight
gmt [DEBUG]: GMT: 4. gmt_getsharepath trying SHAREDIR subdir /usr/local/share/postscriptlight
gmt [DEBUG]: GMT: 5. gmt_getsharepath trying SHAREDIR /usr/local/share
gmt [DEBUG]: GMT: 6. gmt_getsharepath failed
gmt [DEBUG]: Map distance calculation will be Cartesian
gmt [DEBUG]: Exit:  gmtinit_new_GMT_ctrl
gmt [DEBUG]: Enter: New_PSL_Ctrl
gmt [DEBUG]: Exit:  New_PSL_Ctrl
gmt [DEBUG]: Enter: gmt_manage_workflow
gmt [DEBUG]: GMT now running in modern mode [Session ID = 71990]
gmt [DEBUG]: Exit : gmt_manage_workflow
gmt [DEBUG]: Enter: PSL_beginsession
gmt [DEBUG]: Exit : PSL_beginsession
gmt [DEBUG]: Enter: PSL_setdefaults
gmt [DEBUG]: Exit : PSL_setdefaults
gmt [DEBUG]: Enter: gmtlib_io_init
gmt [DEBUG]: Exit : gmtlib_io_init
gmt [DEBUG]: Enter: gmt_hash_init
gmt [DEBUG]: Exit:  gmt_hash_init
gmt [DEBUG]: Enter: gmt_hash_init
gmt [DEBUG]: Exit:  gmt_hash_init
gmt [DEBUG]: Enter: gmt_reload_settings
gmt [DEBUG]: The PROJ_GEODESIC set to Vincenty
gmt [DEBUG]: gmtlib_get_graphics_item: Fig: 1 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Reading GMT Default parameters from file: /home/anbj/.gmt/sessions/gmt_session.71990/gmt.conf.1
gmt [DEBUG]: GMT: 0. Will try to find subdir=postscriptlight stem = gmt_custom_media suffix=.conf
gmt [DEBUG]: GMT: 1. gmt_getsharepath trying current dir
gmt [DEBUG]: GMT: 2. gmt_getsharepath trying USERDIR /home/anbj/.gmt
gmt [DEBUG]: GMT: 3. gmt_getsharepath trying USERDIR subdir /home/anbj/.gmt/postscriptlight
gmt [DEBUG]: GMT: 4. gmt_getsharepath trying SHAREDIR subdir /usr/local/share/postscriptlight
gmt [DEBUG]: GMT: 5. gmt_getsharepath trying SHAREDIR /usr/local/share
gmt [DEBUG]: GMT: 6. gmt_getsharepath failed
gmt [DEBUG]: Exit:  gmt_reload_settings
gmt [DEBUG]: Enter: gmtlib_plot_C_format
gmt [DEBUG]: Exit:  gmtlib_plot_C_format
gmt [DEBUG]: Enter: gmtinit_get_history
gmt [DEBUG]: gmtlib_get_graphics_item: Fig: 1 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Initialize FFTW with 12 threads.
gmt [DEBUG]: GMT_Create_Session initialized GMT structure
gmt [DEBUG]: Loading core GMT shared library: libgmt.so
gmt [DEBUG]: Shared Library # 0 (core). Path = libgmt.so
gmt [DEBUG]: Loading GMT plugins from: /usr/local/lib/gmt/plugins
gmt [DEBUG]: Shared Library # 1 (supplements). Path = /usr/local/lib/gmt/plugins/supplements.so
gmt [DEBUG]: GMT now running in modern mode [Session ID = 71990]
gmt [DEBUG]: Use PS filename /home/anbj/.gmt/sessions/gmt_session.71990/gmt_1.ps-
gmt [DEBUG]: gmtinit_get_current_panel: No current panel selected so not in subplot mode
gmt [DEBUG]: Revised options: -Rg -JG123/20/6i -Gmaroon -Sturquoise -Bg -X0 -Y0 -Vd
coast [DEBUG]: History: Process -Rg
coast [DEBUG]: History: Process -JG123/20/6i
coast [DEBUG]: History: Process -X0
coast [DEBUG]: History: Process -Y0
coast [DEBUG]: Map distance calculation will be using great circle approximation with authalic auxiliary latitudes and authalic (R_2) radius = 6371007.1809 m, in meter.
coast [DEBUG]: Map distance calculation will be using great circle approximation with authalic auxiliary latitudes and authalic (R_2) radius = 6371007.1809 m, in meter.
coast [DEBUG]: Reset MAP_ANNOT_OBLIQUE to anywhere
coast [INFORMATION]: Spherical approximation used
coast [DEBUG]: Projected values in meters: -6.37101e+06 6.37101e+06 -6.37101e+06 6.37101e+06
coast [DEBUG]: Computed automatic parameters using dimension scaling: 0.969867
coast [DEBUG]: Auto-frame interval for axis 0 item 0: d = 60  f = 15
coast [INFORMATION]: Auto-frame interval for x-axis (item 0): g15
coast [DEBUG]: Auto-frame interval for axis 1 item 0: d = 30  f = 10
coast [INFORMATION]: Auto-frame interval for y-axis (item 0): g10
coast [INFORMATION]: Map scale is 836.09 km per cm or 1:8.3609e+07.
coast [INFORMATION]: -D option: Selected resolution -Dl
coast [DEBUG]: 1. GSHHG: GSHHGDIR set, trying /home/anbj/gmt/share/coast/binned_GSHHS_l.nc
coast [DEBUG]: 1. GSHHG: OK, could access /home/anbj/gmt/share/coast/binned_GSHHS_l.nc
coast [DEBUG]: Calling nc_open on /home/anbj/gmt/share/coast/binned_GSHHS_l.nc, ncid = 65536, err = 0
coast [DEBUG]: NetCDF Library Version: 4.7.4 of Apr 21 2020 19:56:21 $
coast [DEBUG]: GSHHG with two Antarcticas, read in extra ANT flgs.
coast [INFORMATION]: Selected ice front line as Antarctica coastline
coast [INFORMATION]: GSHHG version 2.3.7
coast [INFORMATION]: Derived from World Vector Shoreline, CIA WDB-II, and Atlas of the Cryosphere
coast [INFORMATION]: Processed by Paul Wessel and Walter H. F. Smith, 1994-2017
coast [DEBUG]: Running in PS mode modern
coast [DEBUG]: Use PS filename /home/anbj/.gmt/sessions/gmt_session.71990/gmt_1.ps-
coast [DEBUG]: Create hidden PS file /home/anbj/.gmt/sessions/gmt_session.71990/gmt_1.ps-
coast [DEBUG]: Found MOVIE_LABEL_ARG0 = L|0.0555556|5.94444|0.344444|0|9|0.0416667|0.0416667|-|-|-|-|0|0|0|-|20p,Helvetica,black|123.
coast [DEBUG]: Delete /home/anbj/.gmt/sessions/gmt_session.71990/gmt.movielabels
coast [DEBUG]: Found MOVIE_LABEL_ARG0 = a|5.94444|5.94444|0.344444|0.3|11|0.0416667|0.0416667|-|-|lightred|lightgreen|0|0|0|-|14p,Helvetica,black|.
coast [DEBUG]: Delete /home/anbj/.gmt/sessions/gmt_session.71990/gmt.movieprog_indicators
coast [DEBUG]: 0:  L|0.0555556|5.94444|0.344444|0|9|0.0416667|0.0416667|-|-|-|-|0|0|0|-|20p,Helvetica,black|123
coast [DEBUG]: 0:  a|5.94444|5.94444|0.344444|0.3|11|0.0416667|0.0416667|-|-|lightred|lightgreen|0|0|0|-|14p,Helvetica,black|
coast [DEBUG]: Basemap order: Frame = above  Grid = above  Tick/ANot = below
coast [INFORMATION]: Painting entire map with ocean color first, then draw land on top later
free(): invalid next size (fast)    0
movie_frame.sh: line 14: 71995 Aborted                 gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0 -Vd
gmt end
+ gmt end
Error: /undefined in PSL_movie_label_completion
Operand stack:
   PSL_e
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:744/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--   --dict:147/250(L)--
Current allocation mode is local
Current file position is 20503
GPL Ghostscript 9.53.3: Unrecoverable error, exit code 1
psconvert [ERROR]: System call [gs -q -dNOPAUSE -dBATCH -dNOSAFER -dSCANCONVERTERTYPE=2 -dMaxBitmap=2147483647 -dUseFastColor=true -dGraphicsAlphaBits=2 -dTextAlphaBits=4 -sDEVICE=png16m  -g600x600 -r100 -sOutputFile='../globe_123.png' '/home/anbj/.gmt/sessions/gmt_session.71990/psconvert_71996d.eps'] returned error 256.
end [ERROR]: Failed to call psconvert
end [ERROR]: gmtinit_process_figures returned error 79
cd ..
+ cd ..

Tested on FreeBSD, and none of these problems.
So it’s something to do with this (Debian 11) system - as you hinted to Paul.

Also tested on WSL with Debian; looks like same stuff there. Lots of

free(): invalid pointer
movie_frame.sh: line 14:  2973 Aborted                 (core dumped) gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid pointer
movie_frame.sh: line 14:  2974 Aborted                 (core dumped) gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid pointer
movie_frame.sh: line 14:  2979 Aborted                 (core dumped) gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid pointer
movie_frame.sh: line 14:  2982 Aborted                 (core dumped) gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0
free(): invalid pointer
movie_frame.sh: line 14:  3045 Aborted                 (core dumped) gmt coast -Rg -JG${MOVIE_FRAME}/20/${MOVIE_WIDTH} -Gmaroon -Sturquoise -Bg -X0 -Y0

Hard to remotely debug this :slight_smile: I will see if I can set up something that can recreate this or zoom in on where it happens. But this won’t affect 6.3.0 release since not a new problem.

Give that Windows is hard core, maybe @Joaquim could try the example above and see if it fails?

Yes. Just checking how ‘local’ the problem is. Let me know if I can be of more help.

1 Like

I assume just getting the master frame PNG gives the same error?

gmt movie globe.sh -Nglobe -T360 -M100 -C6ix6ix100 -Lf -P