pygmt.which(fname, **kwargs)[source]

Find the full path to specified files.

Reports the full paths to the files given through fname. We look for the file in (1) the current directory, (2) in $GMT_USERDIR (if defined), (3) in $GMT_DATADIR (if defined), or (4) in $GMT_CACHEDIR (if defined).

fname can also be a downloadable file (either a full URL, a @file special file for downloading from the GMT Site Cache, or @earth_relief_* topography grids). In these cases, use option download to set the desired behavior. If download is not used (or False), the file will not be found.

Full option list at


  • G = download

  • V = verbose

  • fname (str) – The file name that you want to check.

  • download (bool or str) – If the file is downloadable and not found, we will try to download the it. Use True or ‘l’ (default) to download to the current directory. Use ‘c’ to place in the user cache directory or ‘u’ user data directory instead.

  • verbose (bool or str) –

    Select verbosity level [Default is w], which modulates the messages written to stderr. Choose among 7 levels of verbosity:

    • q - Quiet, not even fatal error messages are produced

    • e - Error messages only

    • w - Warnings [Default]

    • t - Timings (report runtimes for time-intensive algorthms);

    • i - Informational messages (same as verbose=True)

    • c - Compatibility warnings

    • d - Debugging messages


path (str) – The path of the file, depending on the options used.


FileNotFoundError – If the file is not found.