GMTCLibError: Module 'inset' failed with status code 79

Hello,

I wrote a very simple program which works until I add the fig.inset() function.

# -*- coding: utf-8 -*-

import numpy as np 
import pygmt
from datetime import date

pygmt.config(MAP_FRAME_TYPE="plain")
pygmt.config(FONT_ANNOT_PRIMARY="8p")
font = "4p,Helvetica"

today = date.today()
d1 = today.strftime("%d/%m/%Y")
if __name__ == '__main__':

    pygmt.config(FONT_ANNOT_PRIMARY=5)
    pygmt.config(MAP_FRAME_TYPE="fancy+")
#***** FRAME********
    minlon, maxlon = -1.0, 7
    minlat, maxlat = 42.0, 48.0

    topo_data = '@earth_relief_15s

    fig = pygmt.Figure()
    pygmt.makecpt(cmap='geo', continuous=True, output='test2.cpt', verbose=True)
    fig.grdimage(grid=topo_data, region=[minlon, maxlon, minlat, maxlat], projection='M5i', cmap='test2.cpt', frame=True, shading=True, transparency=30)

   with fig.inset(position="jBL+o0.1c", box="+gwhite+p1p", region=[-5, 10, 41, 52], projection="M3.0c"):
        fig.coast(dcw="JM+ggrey+p0.5p", land="lightgray", shorelines=True, borders=["1/0.5p,black", "2/0.5p,red", "3/0.5p,blue"])

    titre="TEST - " + d1
    fig.text(x=3.5,y=48.15,text=titre,font='10p,Helvetica-Bold,black',no_clip=True)
    fig.savefig("TEST.png")

When I add the with fig.inset(… part, I get the following errors:

inset [ERROR]: Unrecognized option -p
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: In end mode and information file does not exist: /Users/aubercor/.gmt/sessions/gmt_session.6312/gmt.inset.1
Traceback (most recent call last):
File “/Users/aubercor/miniconda3/envs/carto/lib/python3.7/site-packages/pygmt/src/inset.py”, line 128, in inset
lib.call_module(“inset”, f"begin {build_arg_string(kwargs)}“)
File “/Users/aubercor/miniconda3/envs/carto/lib/python3.7/site-packages/pygmt/clib/session.py”, line 501, in call_module
f"Module ‘{module}’ failed with status code {status}:\n{self._error_message}”
pygmt.exceptions.GMTCLibError: Module ‘inset’ failed with status code 72:
inset [ERROR]: Unrecognized option -p
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “TEST.py”, line 276, in
with fig.inset(position=“jBL+o0.1c”, box=“+gwhite+p1p”, region=[-5, 10, 41, 52], projection=“M3.0c”):
File “/Users/aubercor/miniconda3/envs/carto/lib/python3.7/contextlib.py”, line 112, in enter
return next(self.gen)
File “/Users/aubercor/miniconda3/envs/carto/lib/python3.7/site-packages/pygmt/src/inset.py”, line 132, in inset
lib.call_module(“inset”, f"end {v_arg}“.strip())
File “/Users/aubercor/miniconda3/envs/carto/lib/python3.7/site-packages/pygmt/clib/session.py”, line 501, in call_module
f"Module ‘{module}’ failed with status code {status}:\n{self._error_message}”
pygmt.exceptions.GMTCLibError: Module ‘inset’ failed with status code 79:
inset [ERROR]: Unrecognized option -p
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: Unrecognized option -r
inset [ERROR]: In end mode and information file does not exist: /Users/aubercor/.gmt/sessions/gmt_session.6312/gmt.inset.1

I do not know how to solve it.

My configuration is:
pygmt.show_versions()
PyGMT information:
version: v0.5.0
System information:
python: 3.7.12 | packaged by conda-forge | (default, Oct 26 2021, 05:59:23) [Clang 11.1.0 ]
executable: /Users/aubercor/miniconda3/envs/carto/bin/python
machine: Darwin-22.4.0-x86_64-i386-64bit
Dependency information:
numpy: 1.21.6
pandas: 1.3.5
xarray: 0.19.0
netCDF4: 1.6.1
packaging: 23.0
ghostscript: 9.54.0
gmt: 6.4.0
GMT library information:
binary dir: /Users/aubercor/miniconda3/envs/carto/bin
cores: 8
grid layout: rows
library path: /Users/aubercor/miniconda3/envs/carto/lib/libgmt.dylib
padding: 2
plugin dir: /Users/aubercor/miniconda3/envs/carto/lib/gmt/plugins
share dir: /Users/aubercor/miniconda3/envs/carto/share/gmt
version: 6.4.0

Do you have any idea on how to solve this problem?

Regards,
Coralie

Your script works well for me with PyGMT v0.9.0. You’re still using PyGMT v0.5.0, which was released 1.5 years ago and may have bugs. Please update to the latest PyGMT version first.

Indeed, it works since I upgraded Python 3.7 to 3.8 and gmt 0.5.0 to 0.9.0.

Thanks seisman.