Skip to content

Commit a6c4ee7

Browse files
committed
Add tests for reading images
1 parent 82b80f5 commit a6c4ee7

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

pygmt/io/gmtread.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ def gmtread(
7575
>>> dataarray = gmtread("@earth_relief_01d", kind="grid")
7676
>>> type(dataarray)
7777
<class 'xarray.core.dataarray.DataArray'>
78+
79+
Read an image into an :class:`xarray.DataArray` object:
80+
>>> image = gmtread("@earth_day_01d", kind="image")
81+
>>> type(image)
82+
<class 'xarray.core.dataarray.DataArray'>
7883
"""
7984
if kind not in {"dataset", "grid", "image"}:
8085
msg = f"Invalid kind '{kind}': must be one of 'dataset', 'grid', or 'image'."

pygmt/tests/test_io_gmtread.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66

77
import numpy as np
88
import pytest
9+
import rioxarray
910
import xarray as xr
1011
from pygmt import gmtread, which
1112

1213
_HAS_NETCDF4 = bool(importlib.util.find_spec("netCDF4"))
14+
_HAS_RIORASTERIO = bool(importlib.util.find_spec("rioxarray"))
1315

1416

1517
@pytest.mark.skipif(not _HAS_NETCDF4, reason="netCDF4 is not installed.")
@@ -24,6 +26,19 @@ def test_io_gmtread_grid():
2426
assert np.allclose(grid, expected_grid)
2527

2628

29+
@pytest.mark.skipif(not _HAS_RIORASTERIO, reason="rioxarray is not installed.")
30+
def test_io_gmtread_image():
31+
"""
32+
Test that reading an image returns an xr.DataArray.
33+
"""
34+
image = gmtread("@earth_day_01d", kind="image")
35+
assert isinstance(image, xr.DataArray)
36+
with rioxarray.open_rasterio(
37+
which("@earth_day_01d", download="a")
38+
) as expected_image:
39+
assert np.allclose(image, expected_image)
40+
41+
2742
def test_io_gmtread_invalid_kind():
2843
"""
2944
Test that an invalid kind raises a ValueError.

0 commit comments

Comments
 (0)