Skip to content

Commit 3af8838

Browse files
committed
Add etopo1 option to stock_img
1 parent 0baa5e0 commit 3af8838

File tree

3 files changed

+29
-5
lines changed

3 files changed

+29
-5
lines changed

lib/cartopy/mpl/geoaxes.py

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import cartopy.mpl.feature_artist as feature_artist
4040
import cartopy.mpl.patch as cpatch
4141
from cartopy.mpl.slippy_image_artist import SlippyImageArtist
42+
from cartopy.io import Downloader
4243

4344

4445
assert mpl.__version__ >= '3.1', \
@@ -988,22 +989,38 @@ def stock_img(self, name='ne_shaded'):
988989
"""
989990
Add a standard image to the map.
990991
991-
Currently, the only (and default) option is a downsampled version of
992-
the Natural Earth shaded relief raster.
992+
Currently, there are 2 options:
993993
994+
1. 'ne_shaded'(default) a downsampled version of the Natural Earth
995+
shaded relief raster.
996+
https://github.com/SciTools/cartopy/blob/master/lib/cartopy/data/raster/natural_earth/50-natural-earth-1-downsampled.png
997+
2. 'etopo' a downsampled version of global relief model of Earth's
998+
surface that integrates land topography and ocean bathymetry. This
999+
option is the same as the etopo from Basemap.
1000+
https://www.ngdc.noaa.gov/mgg/image/color_etopo1_ice_low.jpg
9941001
"""
1002+
if name not in ['ne_shaded', 'etopo']:
1003+
raise ValueError('Unknown stock image %r.' % name)
1004+
9951005
if name == 'ne_shaded':
9961006
import os
9971007
source_proj = ccrs.PlateCarree()
9981008
fname = os.path.join(config["repo_data_dir"],
9991009
'raster', 'natural_earth',
10001010
'50-natural-earth-1-downsampled.png')
1011+
elif name == 'etopo':
1012+
import os
1013+
source_proj = ccrs.PlateCarree()
10011014

1002-
return self.imshow(imread(fname), origin='upper',
1015+
url_template = 'https://www.ngdc.noaa.gov/mgg/image/{name}.jpg'
1016+
target_path_template = os.path.join(config["data_dir"],
1017+
'raster', '{name}.jpg')
1018+
d = Downloader(url_template, target_path_template)
1019+
fname = d.path({'name': 'color_etopo1_ice_low'})
1020+
1021+
return self.imshow(imread(fname), origin='upper',
10031022
transform=source_proj,
10041023
extent=[-180, 180, -90, 90])
1005-
else:
1006-
raise ValueError('Unknown stock image %r.' % name)
10071024

10081025
def background_img(self, name='ne_shaded', resolution='low', extent=None,
10091026
cache=False):
511 KB
Loading

lib/cartopy/tests/mpl/test_images.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,13 @@ def test_stock_img():
173173
return ax.figure
174174

175175

176+
@pytest.mark.mpl_image_compare(filename='imshow_etopo_ortho.png')
177+
def test_stock_img_etopo():
178+
ax = plt.axes(projection=ccrs.Orthographic())
179+
ax.stock_img(name='etopo')
180+
return ax.figure
181+
182+
176183
@pytest.mark.mpl_image_compare(filename='imshow_natural_earth_ortho.png')
177184
def test_pil_Image():
178185
img = Image.open(NATURAL_EARTH_IMG)

0 commit comments

Comments
 (0)