Skip to content

Commit b689956

Browse files
weiji14Josh Sixsmith
authored and
Josh Sixsmith
committed
Migrate Figure.grdview tests to dvc (GenericMappingTools#1154)
Final round of tests to migrate to DVC for the `grdview` plotting module. This is related to GenericMappingTools#1131, and is almost like reverting GenericMappingTools#589 actually. * Migrate test_grdview baseline images to dvc * Update fig.grdview baseline images for GMT 6.2.0rc1 * Plot fancy frame for test_grdview_with_perspective * Update fig.grdview baseline images for GMT 6.2.0rc2 * Use projection="Q15c+" for test_grdview_with_perspective
1 parent 1f506dd commit b689956

31 files changed

+138
-97
lines changed
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: d424deb92bd8cb8846cc43155e4d681b
3+
size: 64256
4+
path: test_grdview_drapegrid_dataarray.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 3d78a0f03717f55ccb18e7e926a82fd9
3+
size: 6117
4+
path: test_grdview_grid_dataarray.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 6ec7e9b8e090cf8b239f948c7ba73e0f
3+
size: 13701
4+
path: test_grdview_grid_file_with_region_subset.png
-95.7 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: df3969a299e8a72711bd71c105bf8536
3+
size: 37840
4+
path: test_grdview_on_a_plane.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 6f644dfa49aa144788ee877c6fd86f37
3+
size: 38729
4+
path: test_grdview_on_a_plane_styled_with_facadepen.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 7ca5b177d95e7839f137f1912777b495
3+
size: 38182
4+
path: test_grdview_on_a_plane_with_colored_frontal_facade.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 9da8c13aa8d2c1b1cb26da04ae477cce
3+
size: 45741
4+
path: test_grdview_surface_mesh_plot_styled_with_meshpen.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: ae29730738ddc25623cc112447bc6f2a
3+
size: 62181
4+
path: test_grdview_surface_plot_styled_with_contourpen.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 4a54af50c67c7c7818dc6b3be01047df
3+
size: 68127
4+
path: test_grdview_with_cmap_for_image_plot.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 122aa9d570ec1261265faed6b9c3c285
3+
size: 83556
4+
path: test_grdview_with_cmap_for_perspective_surface_plot.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 994ba2d345a0ba313e85b69d7fd43f25
3+
size: 96043
4+
path: test_grdview_with_cmap_for_surface_monochrome_plot.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 6b81f7b66b2793f96bfd855800b74048
3+
size: 21631
4+
path: test_grdview_with_perspective.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 1680961103f85fec593816463d9ad796
3+
size: 216773
4+
path: test_grdview_with_perspective_and_zaxis_frame.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: e84757f6b9a02bcf8c7e1fbe2369f77b
3+
size: 30484
4+
path: test_grdview_with_perspective_and_zscale.png
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
outs:
2+
- md5: 48b05c4fcd3b16277ae94a310af2f5ce
3+
size: 46070
4+
path: test_grdview_with_perspective_and_zsize.png

pygmt/tests/test_grdview.py

+78-97
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
from pygmt import Figure, grdcut, which
66
from pygmt.exceptions import GMTInvalidInput
77
from pygmt.helpers import GMTTempFile, data_kind
8-
from pygmt.helpers.testing import check_figures_equal
98

109

1110
@pytest.fixture(scope="module", name="region")
@@ -34,15 +33,14 @@ def fixture_xrgrid(region):
3433
return grdcut(grid="@earth_relief_01d_g", region=region)
3534

3635

37-
@check_figures_equal()
38-
def test_grdview_grid_dataarray(gridfile, xrgrid):
36+
@pytest.mark.mpl_image_compare
37+
def test_grdview_grid_dataarray(xrgrid):
3938
"""
4039
Run grdview by passing in a grid as an xarray.DataArray.
4140
"""
42-
fig_ref, fig_test = Figure(), Figure()
43-
fig_ref.grdview(grid=gridfile)
44-
fig_test.grdview(grid=xrgrid)
45-
return fig_ref, fig_test
41+
fig = Figure()
42+
fig.grdview(grid=xrgrid)
43+
return fig
4644

4745

4846
@pytest.mark.mpl_image_compare
@@ -69,184 +67,167 @@ def test_grdview_wrong_kind_of_grid(xrgrid):
6967
fig.grdview(grid=dataset)
7068

7169

72-
@check_figures_equal()
73-
def test_grdview_with_perspective(gridfile, xrgrid):
70+
@pytest.mark.mpl_image_compare
71+
def test_grdview_with_perspective(gridfile):
7472
"""
7573
Run grdview by passing in a grid and setting a perspective viewpoint with
7674
an azimuth from the SouthEast and an elevation angle 15 degrees from the
7775
z-plane.
7876
"""
79-
fig_ref, fig_test = Figure(), Figure()
80-
fig_ref.grdview(grid=gridfile, perspective=[135, 15])
81-
fig_test.grdview(grid=xrgrid, perspective=[135, 15])
82-
return fig_ref, fig_test
77+
fig = Figure()
78+
fig.grdview(grid=gridfile, projection="Q15c+", perspective=[135, 15], frame=True)
79+
return fig
8380

8481

85-
@check_figures_equal()
86-
def test_grdview_with_perspective_and_zscale(gridfile, xrgrid):
82+
@pytest.mark.mpl_image_compare
83+
def test_grdview_with_perspective_and_zscale(xrgrid):
8784
"""
8885
Run grdview by passing in a grid and setting a perspective viewpoint with
8986
an azimuth from the SouthWest and an elevation angle 30 degrees from the
9087
z-plane, plus a z-axis scaling factor of 0.005.
9188
"""
92-
fig_ref, fig_test = Figure(), Figure()
93-
kwargs = dict(perspective=[225, 30], zscale=0.005)
94-
fig_ref.grdview(grid=gridfile, **kwargs)
95-
fig_test.grdview(grid=xrgrid, **kwargs)
96-
return fig_ref, fig_test
89+
fig = Figure()
90+
fig.grdview(grid=xrgrid, perspective=[225, 30], zscale=0.005)
91+
return fig
9792

9893

99-
@check_figures_equal()
100-
def test_grdview_with_perspective_and_zsize(gridfile, xrgrid):
94+
@pytest.mark.mpl_image_compare
95+
def test_grdview_with_perspective_and_zsize(xrgrid):
10196
"""
10297
Run grdview by passing in a grid and setting a perspective viewpoint with
10398
an azimuth from the SouthWest and an elevation angle 30 degrees from the
10499
z-plane, plus a z-axis size of 10cm.
105100
"""
106-
fig_ref, fig_test = Figure(), Figure()
107-
kwargs = dict(perspective=[225, 30], zsize="10c")
108-
fig_ref.grdview(grid=gridfile, **kwargs)
109-
fig_test.grdview(grid=xrgrid, **kwargs)
110-
return fig_ref, fig_test
101+
fig = Figure()
102+
fig.grdview(grid=xrgrid, perspective=[225, 30], zsize="10c")
103+
return fig
111104

112105

113-
@check_figures_equal()
114-
def test_grdview_with_cmap_for_image_plot(gridfile, xrgrid):
106+
@pytest.mark.mpl_image_compare
107+
def test_grdview_with_cmap_for_image_plot(xrgrid):
115108
"""
116109
Run grdview by passing in a grid and setting a colormap for producing an
117110
image plot.
118111
"""
119-
fig_ref, fig_test = Figure(), Figure()
120-
kwargs = dict(cmap="oleron", surftype="i")
121-
fig_ref.grdview(grid=gridfile, **kwargs)
122-
fig_test.grdview(grid=xrgrid, **kwargs)
123-
return fig_ref, fig_test
112+
fig = Figure()
113+
fig.grdview(grid=xrgrid, cmap="oleron", surftype="i")
114+
return fig
124115

125116

126-
@check_figures_equal()
127-
def test_grdview_with_cmap_for_surface_monochrome_plot(gridfile, xrgrid):
117+
@pytest.mark.mpl_image_compare
118+
def test_grdview_with_cmap_for_surface_monochrome_plot(xrgrid):
128119
"""
129120
Run grdview by passing in a grid and setting a colormap for producing a
130121
surface monochrome plot.
131122
"""
132-
fig_ref, fig_test = Figure(), Figure()
133-
kwargs = dict(cmap="oleron", surftype="s+m")
134-
fig_ref.grdview(grid=gridfile, **kwargs)
135-
fig_test.grdview(grid=xrgrid, **kwargs)
136-
return fig_ref, fig_test
123+
fig = Figure()
124+
fig.grdview(grid=xrgrid, cmap="oleron", surftype="s+m")
125+
return fig
137126

138127

139-
@check_figures_equal()
140-
def test_grdview_with_cmap_for_perspective_surface_plot(gridfile, xrgrid):
128+
@pytest.mark.mpl_image_compare
129+
def test_grdview_with_cmap_for_perspective_surface_plot(xrgrid):
141130
"""
142131
Run grdview by passing in a grid and setting a colormap for producing a
143132
surface plot with a 3D perspective viewpoint.
144133
"""
145-
fig_ref, fig_test = Figure(), Figure()
146-
kwargs = dict(cmap="oleron", surftype="s", perspective=[225, 30], zscale=0.005)
147-
fig_ref.grdview(grid=gridfile, **kwargs)
148-
fig_test.grdview(grid=xrgrid, **kwargs)
149-
return fig_ref, fig_test
134+
fig = Figure()
135+
fig.grdview(
136+
grid=xrgrid, cmap="oleron", surftype="s", perspective=[225, 30], zscale=0.005
137+
)
138+
return fig
150139

151140

152-
@check_figures_equal()
153-
def test_grdview_on_a_plane(gridfile, xrgrid):
141+
@pytest.mark.mpl_image_compare
142+
def test_grdview_on_a_plane(xrgrid):
154143
"""
155144
Run grdview by passing in a grid and plotting it on a z-plane, while
156145
setting a 3D perspective viewpoint.
157146
"""
158-
fig_ref, fig_test = Figure(), Figure()
159-
kwargs = dict(plane=-4000, perspective=[225, 30], zscale=0.005)
160-
fig_ref.grdview(grid=gridfile, **kwargs)
161-
fig_test.grdview(grid=xrgrid, **kwargs)
162-
return fig_ref, fig_test
147+
fig = Figure()
148+
fig.grdview(grid=xrgrid, plane=-4000, perspective=[225, 30], zscale=0.005)
149+
return fig
163150

164151

165-
@check_figures_equal()
166-
def test_grdview_on_a_plane_with_colored_frontal_facade(gridfile, xrgrid):
152+
@pytest.mark.mpl_image_compare
153+
def test_grdview_on_a_plane_with_colored_frontal_facade(xrgrid):
167154
"""
168155
Run grdview by passing in a grid and plotting it on a z-plane whose frontal
169156
facade is colored gray, while setting a 3D perspective viewpoint.
170157
"""
171-
fig_ref, fig_test = Figure(), Figure()
172-
kwargs = dict(plane="-4000+ggray", perspective=[225, 30], zscale=0.005)
173-
fig_ref.grdview(grid=gridfile, **kwargs)
174-
fig_test.grdview(grid=xrgrid, **kwargs)
175-
return fig_ref, fig_test
158+
fig = Figure()
159+
fig.grdview(grid=xrgrid, plane="-4000+ggray", perspective=[225, 30], zscale=0.005)
160+
return fig
176161

177162

178-
@check_figures_equal()
179-
def test_grdview_with_perspective_and_zaxis_frame(gridfile, xrgrid, region):
163+
@pytest.mark.mpl_image_compare
164+
def test_grdview_with_perspective_and_zaxis_frame(xrgrid, region):
180165
"""
181166
Run grdview by passing in a grid and plotting an annotated vertical z-axis
182167
frame on a Transverse Mercator (T) projection.
183168
"""
184-
fig_ref, fig_test = Figure(), Figure()
169+
fig = Figure()
185170
projection = f"T{(region[0]+region[1])/2}/{abs((region[2]+region[3])/2)}"
186-
kwargs = dict(
171+
fig.grdview(
172+
grid=xrgrid,
187173
projection=projection,
188174
perspective=[225, 30],
189175
zscale=0.005,
190176
frame=["xaf", "yaf", "zaf"],
191177
)
192-
fig_ref.grdview(grid=gridfile, **kwargs)
193-
fig_test.grdview(grid=xrgrid, **kwargs)
194-
return fig_ref, fig_test
178+
return fig
195179

196180

197-
@check_figures_equal()
198-
def test_grdview_surface_plot_styled_with_contourpen(gridfile, xrgrid):
181+
@pytest.mark.mpl_image_compare
182+
def test_grdview_surface_plot_styled_with_contourpen(xrgrid):
199183
"""
200184
Run grdview by passing in a grid with styled contour lines plotted on top
201185
of a surface plot.
202186
"""
203-
fig_ref, fig_test = Figure(), Figure()
204-
kwargs = dict(cmap="relief", surftype="s", contourpen="0.5p,black,dash")
205-
fig_ref.grdview(grid=gridfile, **kwargs)
206-
fig_test.grdview(grid=xrgrid, **kwargs)
207-
return fig_ref, fig_test
187+
fig = Figure()
188+
fig.grdview(grid=xrgrid, cmap="relief", surftype="s", contourpen="0.5p,black,dash")
189+
return fig
208190

209191

210-
@check_figures_equal()
211-
def test_grdview_surface_mesh_plot_styled_with_meshpen(gridfile, xrgrid):
192+
@pytest.mark.mpl_image_compare
193+
def test_grdview_surface_mesh_plot_styled_with_meshpen(xrgrid):
212194
"""
213195
Run grdview by passing in a grid with styled mesh lines plotted on top of a
214196
surface mesh plot.
215197
"""
216-
fig_ref, fig_test = Figure(), Figure()
217-
kwargs = dict(cmap="relief", surftype="sm", meshpen="0.5p,black,dash")
218-
fig_ref.grdview(grid=gridfile, **kwargs)
219-
fig_test.grdview(grid=xrgrid, **kwargs)
220-
return fig_ref, fig_test
198+
fig = Figure()
199+
fig.grdview(grid=xrgrid, cmap="relief", surftype="sm", meshpen="0.5p,black,dash")
200+
return fig
221201

222202

223-
@check_figures_equal()
224-
def test_grdview_on_a_plane_styled_with_facadepen(gridfile, xrgrid):
203+
@pytest.mark.mpl_image_compare
204+
def test_grdview_on_a_plane_styled_with_facadepen(xrgrid):
225205
"""
226206
Run grdview by passing in a grid and plotting it on a z-plane with styled
227207
lines for the frontal facade.
228208
"""
229-
fig_ref, fig_test = Figure(), Figure()
230-
kwargs = dict(
231-
plane=-4000, perspective=[225, 30], zscale=0.005, facadepen="0.5p,blue,dash"
209+
fig = Figure()
210+
fig.grdview(
211+
grid=xrgrid,
212+
plane=-4000,
213+
perspective=[225, 30],
214+
zscale=0.005,
215+
facadepen="0.5p,blue,dash",
232216
)
233-
fig_ref.grdview(grid=gridfile, **kwargs)
234-
fig_test.grdview(grid=xrgrid, **kwargs)
235-
return fig_ref, fig_test
217+
return fig
236218

237219

238-
@check_figures_equal()
239-
def test_grdview_drapegrid_dataarray(gridfile, xrgrid):
220+
@pytest.mark.mpl_image_compare
221+
def test_grdview_drapegrid_dataarray(xrgrid):
240222
"""
241223
Run grdview by passing in both a grid and drapegrid as an xarray.DataArray,
242224
setting a colormap for producing an image plot.
243225
"""
244226
drapegrid = 1.1 * xrgrid
245227

246-
fig_ref, fig_test = Figure(), Figure()
247-
fig_ref.grdview(grid=gridfile, drapegrid=drapegrid, cmap="oleron", surftype="c")
248-
fig_test.grdview(grid=xrgrid, drapegrid=drapegrid, cmap="oleron", surftype="c")
249-
return fig_ref, fig_test
228+
fig = Figure()
229+
fig.grdview(grid=xrgrid, drapegrid=drapegrid, cmap="oleron", surftype="c")
230+
return fig
250231

251232

252233
def test_grdview_wrong_kind_of_drapegrid(xrgrid):

0 commit comments

Comments
 (0)