Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Movie automatically changes the dataserver to Oceania (or static)? #8209

Open
Esteban82 opened this issue Dec 17, 2023 · 10 comments · May be fixed by #8436
Open

Movie automatically changes the dataserver to Oceania (or static)? #8209

Esteban82 opened this issue Dec 17, 2023 · 10 comments · May be fixed by #8436
Labels
bug Something isn't working
Milestone

Comments

@Esteban82
Copy link
Member

Esteban82 commented Dec 17, 2023

It seems that in the middle GMT changes the server. I run the script below. The first figure is generated ok. The figure within gmt movie is not because those grids don't exist in the static server

Probably related to #7879 .

#!/usr/bin/env bash
gmt set GMT_DATA_SERVER candidate
gmt begin test png
gmt grdimage @earth_relief_15s -R-114/-103/35/40 -JM10c -Baf
gmt end 
gmt --show-dataserver

cat << 'EOF' > pre.sh
gmt begin
	gmt math -T0/360/1 T -o0 = angles.txt
gmt end
EOF
# 2. Set up the main frame script
cat << 'EOF' > main.sh
gmt begin
	gmt --show-dataserver
	gmt basemap -R-114/-103/35/40 -JM10c -Baf
	gmt grdimage @earth_relief_15s -I+a${MOVIE_COL0}+nt2 -V
gmt end
EOF
# 3. Run the movie
gmt movie main.sh -Chd -Nanim02 -Tangles.txt -Sbpre.sh -Zs -Ml,png # -Fmp4

Output:

http://candidate.generic-mapping-tools.org
http://static.generic-mapping-tools.org
grdimage [INFORMATION]:   -> Download cache file: @earth_relief_15s_g
grdimage [INFORMATION]: Downloading file http://static.generic-mapping-tools.org/cache/earth_relief_15s_g ...
grdimage [ERROR]: Libcurl Error: HTTP response code said error
grdimage [ERROR]: Probably means @earth_relief_15s_g does not exist on the remote server
grdimage [ERROR]: Unable to obtain remote file @earth_relief_15s_g
@Esteban82 Esteban82 added the bug Something isn't working label Dec 17, 2023
@PaulWessel
Copy link
Member

I suspect until we actually update oceania your main.sh may need to set the GMT_DATA_SERVER to candidate etc. This problem will go away once we release so not willing to spend time finding a workaround for a few days.

@Esteban82
Copy link
Member Author

This problem will go away once we release so not willing to spend time finding a workaround for a few days.

Ok.

@Esteban82
Copy link
Member Author

Esteban82 commented Jan 8, 2024

I try this again (after the 6.5 release) and I got the same error:

http://candidate.generic-mapping-tools.org
http://static.generic-mapping-tools.org
grdimage [INFORMATION]:   -> Download cache file: @earth_relief_15s_g
grdimage [INFORMATION]: Downloading file http://static.generic-mapping-tools.org/cache/earth_relief_15s_g ...
grdimage [ERROR]: Libcurl Error: HTTP response code said error
grdimage [ERROR]: Probably means @earth_relief_15s_g does not exist on the remote server
grdimage [ERROR]: Unable to obtain remote file @earth_relief_15s_g
federico@loki:~/Github/GenericMappingTools/__Pruebas$ gmt

        GMT - The Generic Mapping Tools, Version 6.6.0_eb107b4_2024.01.08 [64-bit] [MP] [8 cores]
        (c) 1991-2024 The GMT Team (https://www.generic-mapping-tools.org/team.html).

@PaulWessel
Copy link
Member

Most likely your cmake setting or environment. In cmake I can grep on GMT_DATA_SERVER and get this

grep GMT_DATA_SERVER *
ConfigDefault.cmake:if (NOT DEFINED GMT_DATA_SERVER)
ConfigDefault.cmake:	set (GMT_DATA_SERVER "oceania")
ConfigDefault.cmake:endif (NOT DEFINED GMT_DATA_SERVER)
ConfigUserAdvanced.cmake:#set (GMT_DATA_SERVER "data_server_url")
ConfigUserAdvanced.cmake:# set (GMT_DATA_SERVER "static")
ConfigUserAdvancedTemplate.cmake:#set (GMT_DATA_SERVER "data_server_url")
ConfigUserAdvancedTemplate.cmake:# set (GMT_DATA_SERVER "static")

static is commented out for possible guru use, but default is oceania. In terms of where GMT_DATA_SERVER appears in the code (.c,.h) I got this:

grep GMT_DATA_SERVER *.[c?]
gmt.c:	/* Problem is that GMT_DATA_SERVER can be set via environmental variable or
gmt.c:	 * via --GMT_DATA_SERVER=server, which is processed after the session has bee
gmt.c:	 * created.  This function checks if --GMT_DATA_SERVER=server was set and updates
gmt.c:		if (strstr (argv[k], "--GMT_DATA_SERVER="))
gmt.c:	if (server) {	/* Fund --GMT_DATA_SERVER, now must recreate DATASERVER and wipe CACHEDIR */
gmt.c:	/* Check if data server has been set via --GMT_DATA_SERVER */
gmt_init.c:	{ 0, "GMT_DATA_SERVER"},
gmt_init.c:	{ 0, "GMT_DATA_SERVER_LIMIT"},
gmt_init.c:	if ((this_c = getenv ("GMT_DATA_SERVER")) != NULL)		/* GMT_DATA_SERVER was set */
gmt_init.c:		GMT->session.DATASERVER = strdup (GMT_DATA_SERVER);
gmt_init.c:	/* GMTCASE_GMT_DATA_SERVER_LIMIT */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER_LIMIT:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER_LIMIT:
gmt_remote.c: * They live in a cache subdirectory under the GMT_DATA_SERVER
gmt_remote.c:	static char *ghost_server[5] = {"candidate", "static", "test", "server", GMT_DATA_SERVER};
gmt_remote.c:	/* If GMT_DATA_SERVER is static|test|candidate then we need to update internal paths */
gmt_remote.c:	GMT_Report (API, GMT_MSG_DEBUG, "GMT_DATA_SERVER is %s\n", (GMT->session.DATASERVER == NULL) ? "NOT set" : GMT->session.DATASERVER);
gmt_remote.c:	if (!strcmp (srv_dir, "server") || !strcmp ("oceania", GMT_DATA_SERVER)) return;
gmt_remote.c:		GMT_Report (API, GMT_MSG_WARNING, "File %s skipped as size [%s] exceeds limit set by GMT_DATA_SERVER_LIMIT [%s]\n", name, S, gmt_memory_use (GMT->current.setting.url_size_limit, 0));

and piping that through a grep on static only gives

grep GMT_DATA_SERVER *.[c?] | grep static
gmt_remote.c: static char ghost_server[5] = {"candidate", "static", "test", "server", GMT_DATA_SERVER};
gmt_remote.c: /
If GMT_DATA_SERVER is static|test|candidate then we need to update internal paths */

so nothing. Suggest you try

echo $GMT_DATA_SERVER

and look in your .bashrc and similar files for left-over settings from our testing. Finally, I sometime have to wipe the build directory, reboot, an rebuild to get GMT to "remember" the previous shared library which might have some bad memory. Let me know if anything helps.

@PaulWessel
Copy link
Member

Most likely your cmake setting or environment. In cmake I can grep on GMT_DATA_SERVER and get this

grep GMT_DATA_SERVER *
ConfigDefault.cmake:if (NOT DEFINED GMT_DATA_SERVER)
ConfigDefault.cmake:	set (GMT_DATA_SERVER "oceania")
ConfigDefault.cmake:endif (NOT DEFINED GMT_DATA_SERVER)
ConfigUserAdvanced.cmake:#set (GMT_DATA_SERVER "data_server_url")
ConfigUserAdvanced.cmake:# set (GMT_DATA_SERVER "static")
ConfigUserAdvancedTemplate.cmake:#set (GMT_DATA_SERVER "data_server_url")
ConfigUserAdvancedTemplate.cmake:# set (GMT_DATA_SERVER "static")

static is commented out for possible guru use, but default is oceania. In terms of where GMT_DATA_SERVER appears in the code (.c,.h) I got this:

grep GMT_DATA_SERVER *.[c?]
gmt.c:	/* Problem is that GMT_DATA_SERVER can be set via environmental variable or
gmt.c:	 * via --GMT_DATA_SERVER=server, which is processed after the session has bee
gmt.c:	 * created.  This function checks if --GMT_DATA_SERVER=server was set and updates
gmt.c:		if (strstr (argv[k], "--GMT_DATA_SERVER="))
gmt.c:	if (server) {	/* Fund --GMT_DATA_SERVER, now must recreate DATASERVER and wipe CACHEDIR */
gmt.c:	/* Check if data server has been set via --GMT_DATA_SERVER */
gmt_init.c:	{ 0, "GMT_DATA_SERVER"},
gmt_init.c:	{ 0, "GMT_DATA_SERVER_LIMIT"},
gmt_init.c:	if ((this_c = getenv ("GMT_DATA_SERVER")) != NULL)		/* GMT_DATA_SERVER was set */
gmt_init.c:		GMT->session.DATASERVER = strdup (GMT_DATA_SERVER);
gmt_init.c:	/* GMTCASE_GMT_DATA_SERVER_LIMIT */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER_LIMIT:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER:	/* The default is set by cmake, see ConfigDefault.cmake */
gmt_init.c:		case GMTCASE_GMT_DATA_SERVER_LIMIT:
gmt_remote.c: * They live in a cache subdirectory under the GMT_DATA_SERVER
gmt_remote.c:	static char *ghost_server[5] = {"candidate", "static", "test", "server", GMT_DATA_SERVER};
gmt_remote.c:	/* If GMT_DATA_SERVER is static|test|candidate then we need to update internal paths */
gmt_remote.c:	GMT_Report (API, GMT_MSG_DEBUG, "GMT_DATA_SERVER is %s\n", (GMT->session.DATASERVER == NULL) ? "NOT set" : GMT->session.DATASERVER);
gmt_remote.c:	if (!strcmp (srv_dir, "server") || !strcmp ("oceania", GMT_DATA_SERVER)) return;
gmt_remote.c:		GMT_Report (API, GMT_MSG_WARNING, "File %s skipped as size [%s] exceeds limit set by GMT_DATA_SERVER_LIMIT [%s]\n", name, S, gmt_memory_use (GMT->current.setting.url_size_limit, 0));

and piping that through a grep on static only gives

grep GMT_DATA_SERVER *.[c?]  |  grep static
gmt_remote.c:	static char *ghost_server[5] = {"candidate", "static", "test", "server", GMT_DATA_SERVER};
gmt_remote.c:	/* If GMT_DATA_SERVER is static|test|candidate then we need to update internal paths */

so nothing. Suggest you try

echo $GMT_DATA_SERVER

and look in your .bashrc and similar files for left-over settings from our testing. Finally, I sometime have to wipe the build directory, reboot, an rebuild to get GMT to "remember" the previous shared library which might have some bad memory. Let me know if anything helps.

@Esteban82
Copy link
Member Author

Thanks Paul.

I was able to fix it by commenting the line 208 in ConfigUserAdvanced.cmake (#set (GMT_DATA_SERVER "static")) and building GMT again.

But now GMT changes to the Oceania server. I got this in the terminal with the above script:

http://candidate.generic-mapping-tools.org
http://oceania.generic-mapping-tools.org

If I do echo $GMT_DATA_SERVER I got an empty line.

BTW, there was an error in the script (the _g version doesn't exist for 15s).

It is strange to me that changes servers when I run gmt movie but now it is possible to make the animation.

@Esteban82 Esteban82 changed the title Movie automatically changes the dataserver to static? Movie automatically changes the dataserver to Oceania (or static)? Jan 8, 2024
@Esteban82 Esteban82 removed the bug Something isn't working label Jan 8, 2024
@PaulWessel
Copy link
Member

Yes, does not make any sense to me either.

@seisman
Copy link
Member

seisman commented Jan 12, 2024

Here is a simplified version of the movie_master.sh script, which hopefully can help us understand the behavior:

gmt set GMT_DATA_SERVER static

mkdir master
cd master
gmt begin
    cp -r ../gmt.conf .
    gmt --show-dataserver -Vd
    gmt grdinfo @earth_relief_01d_g -C -Vd
gmt end
cd ..

Running the bash script in a clean directory, you'll see messages like:

$ bash test.sh
gmt [DEBUG]: GMT_Create_Session: Terminal width = 95
gmt [DEBUG]: Obtained the ppid from parent: 800593
gmt [DEBUG]: Enter: gmtinit_new_GMT_ctrl
gmt [DEBUG]: GMT->session.SHAREDIR = /home/seisman/opt/miniconda/envs/pygmt/share/gmt
gmt [DEBUG]: GMT->session.HOMEDIR = /home/seisman
gmt [DEBUG]: GMT->session.USERDIR = /home/seisman/.gmt [created]
gmt [DEBUG]: GMT->session.CACHEDIR = /home/seisman/.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/seisman/.gmt
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 = 800593]
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: 0 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Reading GMT Default parameters from file: /home/seisman/.gmt/sessions/gmt_session.800593/gmt.conf
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: 0 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Initialize FFTW with 80 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: /home/seisman/opt/miniconda/envs/pygmt/lib/gmt/plugins
gmt [DEBUG]: Shared Library # 1 (supplements). Path = /home/seisman/opt/miniconda/envs/pygmt/lib/gmt/plugins/supplements.so
http://oceania.generic-mapping-tools.org
gmt [DEBUG]: Entering GMT_Destroy_Session
gmt [DEBUG]: GMT_Create_Session: Terminal width = 95
gmt [DEBUG]: Obtained the ppid from parent: 800593
gmt [DEBUG]: Enter: gmtinit_new_GMT_ctrl
gmt [DEBUG]: GMT->session.SHAREDIR = /home/seisman/opt/miniconda/envs/pygmt/share/gmt
gmt [DEBUG]: GMT->session.HOMEDIR = /home/seisman
gmt [DEBUG]: GMT->session.USERDIR = /home/seisman/.gmt [created]
gmt [DEBUG]: GMT->session.CACHEDIR = /home/seisman/.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/seisman/.gmt
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 = 800593]
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: 0 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Reading GMT Default parameters from file: /home/seisman/.gmt/sessions/gmt_session.800593/gmt.conf
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: 0 Subplot: 2 Panel: () Inset: 0
gmt [DEBUG]: Initialize FFTW with 80 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: /home/seisman/opt/miniconda/envs/pygmt/lib/gmt/plugins
gmt [DEBUG]: Shared Library # 1 (supplements). Path = /home/seisman/opt/miniconda/envs/pygmt/lib/gmt/plugins/supplements.so
gmt [DEBUG]: GMT now running in modern mode [Session ID = 800593]
gmt [DEBUG]: GMT_DATA_SERVER is oceania
gmt [DEBUG]: Local file /home/seisman/.gmt/gmt_data_server.txt found
gmt [DEBUG]: File /home/seisman/.gmt/gmt_data_server.txt less than 24 hours old, refresh is premature.
gmt [DEBUG]: Load contents from /home/seisman/.gmt/gmt_data_server.txt
gmt [DEBUG]: GMT_DATA_SERVER is oceania
gmt [DEBUG]: Local file /home/seisman/.gmt/gmt_hash_server.txt found
gmt [DEBUG]: File /home/seisman/.gmt/gmt_hash_server.txt less than 24 hours old, refresh is premature.
gmt [DEBUG]: Map distance calculation will be using great circle approximation with authalic auxiliary latitudes and authalic (R_2) radius = 6371007.1809 m, in meter.
gmt [DEBUG]: Revised options: @earth_relief_01d_g -C -Vd
grdinfo [DEBUG]: Calling nc_open on @earth_relief_01d_g.grd, ncid = -16, err = 2
grdinfo [DEBUG]: Get remote file http://oceania.generic-mapping-tools.org/server/earth/earth_relief/earth_relief_01d_g.grd and write to /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Download http://oceania.generic-mapping-tools.org/server/earth/earth_relief/earth_relief_01d_g.grd to /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [NOTICE]: Remote data courtesy of GMT data server oceania [http://oceania.generic-mapping-tools.org]

grdinfo [NOTICE]: SRTM15 Earth Relief v2.5.5 at 1x1 arc degrees reduced by Gaussian Cartesian filtering (314.5 km fullwidth) [Tozer et al., 2019].
grdinfo [NOTICE]:   -> Download grid file [111K]: earth_relief_01d_g.grd
grdinfo [INFORMATION]: Downloading file http://oceania.generic-mapping-tools.org/server/earth/earth_relief/earth_relief_01d_g.grd ...
grdinfo [DEBUG]: Delete /tmp/earth_relief_01d_g.grd.download
grdinfo [DEBUG]: Replace file @earth_relief_01d_g.grd with /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Will write output record(s) with 0 leading numerical columns and with trailing text
grdinfo [DEBUG]: Number of numerical output columns has been set to 0
grdinfo [DEBUG]: gmtapi_init_export: Passed family = Data Table and geometry = Non-Geographical
grdinfo [DEBUG]: Object ID 0 : Registered Data Table Stream 7f65851f75c0 as an Output resource with geometry Non-Geographical [n_objects = 1]
grdinfo [DEBUG]: gmtapi_init_export: Added stdout to registered destinations
grdinfo [DEBUG]: GMT_Init_IO: Returned first Output object ID = 0
grdinfo [DEBUG]: GMT_Begin_IO: Initialize record-by-record access for Output
grdinfo [DEBUG]: gmtapi_next_io_source: Selected object 0
grdinfo [INFORMATION]: Writing Data Table to Standard Output stream
grdinfo [DEBUG]: GMT_Begin_IO: Output resource access is now enabled [record-by-record]
grdinfo [DEBUG]: Map distance calculation will be using great circle approximation with authalic auxiliary latitudes and authalic (R_2) radius = 6371007.1809 m, in meter.
grdinfo [DEBUG]: Given full path to file /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Given full path to file /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Found readable file /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Object ID 1 : Registered Grid File /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd as an Input resource with geometry Surface [n_objects = 2]
grdinfo [DEBUG]: gmtapi_begin_io: Input resource access is now enabled [container]
grdinfo [DEBUG]: gmtapi_import_grid: Passed ID = 1 and mode = 1
grdinfo [DEBUG]: Found readable file /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
grdinfo [DEBUG]: Calling nc_open on /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd, ncid = 65536, err = 0
grdinfo [DEBUG]: Calling nc_close on ncid 65536, err = 0
grdinfo [DEBUG]: Calling nc_open on /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd, ncid = 65536, err = 0
grdinfo [INFORMATION]: netCDF grid /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd has no default CPT.
grdinfo [DEBUG]: Calling nc_close on ncid 65536, err = 0
grdinfo [DEBUG]: Call gmtgrdio_doctor_geo_increments on a geographic grid
grdinfo [DEBUG]: Geographic input grid, longitudes span exactly 360
grdinfo [DEBUG]: GMT_End_IO: Input resource access is now disabled
grdinfo [INFORMATION]: Processing grid /home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd
/home/seisman/.gmt/server/earth/earth_relief/earth_relief_01d_g.grd	-180	180	-90	90	-7174	5350	1	1	361	181	0	1
grdinfo [DEBUG]: GMT_Destroy_Data: freed memory for a Grid for object 1
grdinfo [DEBUG]: gmtlib_unregister_io: Unregistering object no 1 [n_objects = 1]
grdinfo [DEBUG]: gmtlib_unregister_io: Object no 1 has non-NULL resource pointer
grdinfo [DEBUG]: GMT_End_IO: Output resource access is now disabled
grdinfo [DEBUG]: gmtlib_unregister_io: Unregistering object no 0 [n_objects = 0]
gmt [DEBUG]: Entering GMT_Destroy_Session

As you can see, GMT reads the session-level gmt.conf file from /home/seisman/.gmt/sessions/gmt_session.800593/gmt.conf, which is created when running gmt begin. However, at that time, the local gmt.conf is not copied to the current directory yet.

Moving the cp command outside of the gmt begin command should work, i.e.,

gmt set GMT_DATA_SERVER static

mkdir master
cd master
cp -r ../gmt.conf .
gmt begin
    gmt --show-dataserver -Vd
    gmt grdinfo @earth_relief_01d_g -C -Vd
gmt end
cd ..

I think we should make the same fix to the movie_main.sh/movie_preflight.sh scripts.

@seisman seisman added this to the 6.6.0 milestone Jan 15, 2024
@seisman seisman added the bug Something isn't working label Jan 15, 2024
@PaulWessel
Copy link
Member

I dont see why we want to use static when making movies? As long as no such thing is specified anywhere we go for the default (oceania) no? You area not making movie tests for the CI, are you?

@seisman
Copy link
Member

seisman commented Jan 20, 2024

It's not only about using th estatic server or not. The real issue is that, in movies, the local gmt.conf file is not correctly recognized.

Here is another example showing how the bug can affect movies:

#!/usr/bin/env bash
gmt set MAP_FRAME_TYPE inside
gmt begin test png
gmt basemap -R-114/-103/35/40 -JM10c -Baf
gmt end

cat << 'EOF' > pre.sh
gmt begin
	gmt math -T0/360/1 T -o0 = angles.txt
gmt end
EOF
# 2. Set up the main frame script
cat << 'EOF' > main.sh
gmt begin
	gmt basemap -R-114/-103/35/40 -JM10c -Baf
gmt end
EOF
# 3. Run the movie
gmt movie main.sh -Chd -Nanim02 -Tangles.txt -Sbpre.sh -Zs -Ml,png # -Fmp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
3 participants