diff --git a/pygmt/src/grdfill.py b/pygmt/src/grdfill.py index a642f631bff..6b553b964fe 100644 --- a/pygmt/src/grdfill.py +++ b/pygmt/src/grdfill.py @@ -4,6 +4,7 @@ import xarray as xr from pygmt.clib import Session +from pygmt.exceptions import GMTInvalidInput from pygmt.helpers import ( GMTTempFile, build_arg_string, @@ -18,6 +19,7 @@ A="mode", G="outgrid", R="region", + V="verbose", ) @kwargs_to_strings(R="sequence") def grdfill(grid, **kwargs): @@ -45,8 +47,12 @@ def grdfill(grid, **kwargs): constant fill and append the constant value, **n** for nearest neighbor (and optionally append a search radius in pixels [default radius is :math:`r^2 = \sqrt{{ X^2 + Y^2 }}`, - where (*X,Y*) are the node dimensions of the grid]). + where (*X,Y*) are the node dimensions of the grid]), or + **s** for bicubic spline (optionally append a *tension* + parameter [Default is no tension]). + {R} + {V} Returns ------- @@ -57,6 +63,8 @@ def grdfill(grid, **kwargs): - None if ``outgrid`` is set (grid output will be stored in file set by ``outgrid``) """ + if "A" not in kwargs.keys() and "L" not in kwargs.keys(): + raise GMTInvalidInput("At least parameter 'mode' or 'L' must be specified.") with GMTTempFile(suffix=".nc") as tmpfile: with Session() as lib: file_context = lib.virtualfile_from_data(check_kind="raster", data=grid) diff --git a/pygmt/tests/test_grdfill.py b/pygmt/tests/test_grdfill.py index edc19456e71..7dc66aad472 100644 --- a/pygmt/tests/test_grdfill.py +++ b/pygmt/tests/test_grdfill.py @@ -1,5 +1,5 @@ """ -Tests for grdclip. +Tests for grdfill. """ import os @@ -8,6 +8,7 @@ import xarray as xr from pygmt import grdfill, grdinfo from pygmt.datasets import load_earth_relief +from pygmt.exceptions import GMTInvalidInput from pygmt.helpers import GMTTempFile @@ -47,3 +48,11 @@ def test_grdfill_file_out(grid): assert os.path.exists(path=tmpfile.name) # check that outgrid exists result = grdinfo(tmpfile.name, per_column=True).strip() assert result == "-5 5 -5 5 -5130.5 inf 1 1 10 10 1 1" + + +def test_grdfill_required_args(grid): + """ + Test that grdfill fails without arguments for `mode` and `L`. + """ + with pytest.raises(GMTInvalidInput): + grdfill(grid=grid)