# GEBCO Earth relief data: File not found

**URL:** <https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271>\
**Category:** PyGMT Q&A\
**Tags:** gmt\
**Created:** [October 27, 2025, 8:43am UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271 "2025-10-27T08:43:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![FilLTP89](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/filltp89/32/5082_2.png) [@FilLTP89](https://forum.generic-mapping-tools.org/u/FilLTP89)\
**Post date:** [October 27, 2025, 8:43am UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271/1 "2025-10-27T08:43:18Z")

</div>

**Description of the problem**

I compile `gmt` from source, within a docker file:

```auto
git clone https://github.com/GenericMappingTools/gmt.git
cd gmt && mkdir build && cd build &&
cmake -G Ninja .. && cmake --build . --target install

```

and install `pygmt` with `pip install pygmt[all]`

I cannot download earth relief from gebco (resolution 03s). I defined a local cache directory to be able to run on docker:

`ENV GMT_USERDIR=/gmt_cache`

But my feeling is that GEBCO Data are not available on the standard gmt servers.

**Full script that generated the error**

```auto
topography=pygmt.datasets.load_earth_relief(region=(20.2,20.9,38.0,38.54),data_source="gebco",use_srtm=False,resolution="03s")

```

**Full error message**

> Traceback (most recent call last):  
> File “”, line 1, in   
> topography=pygmt.datasets.load\_earth\_relief(region=(20.2,20.9,38.0,38.54),data\_source=“gebco”,use\_srtm=False,resolution=“03s”)  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/datasets/earth\_relief.py”, line 180, in load\_earth\_relief  
> grid = \_load\_remote\_dataset(  
> name=name,  
> …\<3 lines\>…  
> registration=registration,  
> )  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/datasets/load\_remote\_dataset.py”, line 582, in \_load\_remote\_dataset  
> grid = xr.load\_dataarray(  
> fname, engine=“gmt”, raster\_kind=dataset.kind, region=region  
> )  
> File “/app/easyrisk/lib/python3.13/site-packages/xarray/backends/api.py”, line 190, in load\_dataarray  
> with open\_dataarray(filename\_or\_obj, \*\*kwargs) as da:  
> ~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^  
> File “/app/easyrisk/lib/python3.13/site-packages/xarray/backends/api.py”, line 803, in open\_dataarray  
> dataset = open\_dataset(  
> filename\_or\_obj,  
> …\<16 lines\>…  
> \*\*kwargs,  
> )  
> File “/app/easyrisk/lib/python3.13/site-packages/xarray/backends/api.py”, line 596, in open\_dataset  
> backend\_ds = backend.open\_dataset(  
> filename\_or\_obj,  
> …\<2 lines\>…  
> \*\*kwargs,  
> )  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/helpers/decorators.py”, line 742, in new\_module  
> return module\_func(\*bound.args, \*\*bound.kwargs)  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/xarray/backend.py”, line 149, in open\_dataset  
> source: str | list = which(fname=filename\_or\_obj, verbose=“quiet”)  
> ~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/helpers/decorators.py”, line 576, in new\_module  
> return module\_func(\*args, \*\*kwargs)  
> File “/app/easyrisk/lib/python3.13/site-packages/pygmt/src/which.py”, line 88, in which  
> raise FileNotFoundError(msg)  
> FileNotFoundError: File(s) ‘@earth\_gebco\_03s\_g’ not found.

**Actual outcome**

When I tried the command suggesteds at [#8818](https://github.com/GenericMappingTools/gmt/issues/8818), I obtained the following message:

> grdimage [NOTICE]: Downloading dcw-countries.txt for the first time - be patient  
> grdimage [NOTICE]: Downloading dcw-states.txt for the first time - be patient  
> grdimage [NOTICE]: Downloading dcw-collections.txt for the first time - be patient  
> grdimage [NOTICE]: Downloading dcw-gmt.nc for the first time - be patient  
> grdimage [ERROR]: Libcurl Error: HTTP response code said error  
> grdimage [ERROR]: Probably means @earth\_gebco\_03 does not exist on the remote server  
> grdimage [ERROR]: Unable to obtain remote file @earth\_gebco\_03

**Expected outcome**

I tried to downgrade to v 6.5.0 and i have the same problem.

**System information**  
Pulling `debian:sid` from dockerhub.

- Operating system: `debian`
- GMT version (`gmt --version`): I tried the latest (v 6.7.0) and v. 6.5.0

---

<div class="post-metadata">

**Author:** ![Esteban82](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/esteban82/32/54_2.png) [@Esteban82](https://forum.generic-mapping-tools.org/u/Esteban82)\
**Post date:** [October 27, 2025, 3:11pm UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271/2 "2025-10-27T15:11:44Z")

</div>

Did you try with another resolution? like `15s` instead of `03s`?

---

<div class="post-metadata">

**Author:** ![seisman](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/seisman/32/4_2.png) [@seisman](https://forum.generic-mapping-tools.org/u/seisman)\
**Post date:** [October 28, 2025, 1:15pm UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271/3 "2025-10-28T13:15:51Z")

</div>

The error you’re having is due to the following reasons:

1. The GMT remote server doesn’t provide the 03s and 01s resolution earth\_gebco datasets. When you request the dataset `@earth_gebco_03s_g`, GMT downloads `@earth_relief_03s_g` instead. This can be verified if you run the following command and check the debugging messages:

```auto
$ gmt grdimage @earth_gebco_03s -RUY -png test -B -Vd

```

1. PyGMT doesn’t know that `earth_gebco_03s`/`earth_gebco_01s` are directed to `earth_relief_03s`/`earth_relief_01s`, so it still tries to find the `earth_gebco_03s` files. That’s why you see the FileNotFoundError.

So, I think it’s a PyGMT bug.

For your case, you can use `data_source="igpp"` as a workaround.

---

<div class="post-metadata">

**Author:** ![FilLTP89](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/filltp89/32/5082_2.png) [@FilLTP89](https://forum.generic-mapping-tools.org/u/FilLTP89)\
**Post date:** [October 28, 2025, 3:31pm UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271/4 "2025-10-28T15:31:05Z")

</div>

I tried to use `data_source="igpp"`, but the resolution is not the same. What I find strage is that when I install pygmt v6.5 with `conda` I can have access to GEBCO data. And the [Oceania server](https://oceania.generic-mapping-tools.org/server/earth/earth_gebco/earth_gebco_30s_g/) does have GEBCO data. The GMT CLI commands work though.

---

<div class="post-metadata">

**Author:** ![seisman](https://yyz1.discourse-cdn.com/flex047/user_avatar/forum.generic-mapping-tools.org/seisman/32/4_2.png) [@seisman](https://forum.generic-mapping-tools.org/u/seisman)\
**Post date:** [October 29, 2025, 8:16am UTC](https://forum.generic-mapping-tools.org/t/gebco-earth-relief-data-file-not-found/6271/5 "2025-10-29T08:16:23Z")

</div>

> [@FilLTP89](#):
>
> And the [Oceania server](https://oceania.generic-mapping-tools.org/server/earth/earth_gebco/earth_gebco_30s_g/) does have GEBCO data.

The link is earth\_gebco\_30s, not earth\_gebco\_03s.

> [@FilLTP89](#):
>
> The GMT CLI commands work though.

Yes, that’s because GMT automatically switches to earth\_relief\_03s when earth\_gebco\_03s is requested.
