You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Cartopy加载NaturalEarth英国国界遇404错误,求正确name参数及数据列表

解决Cartopy加载英国地区边界的问题

一、正确的name参数值

你尝试的admin_0_map_units其实是正确的name值,报错大概率是Cartopy自动下载数据时的网络问题,或是你错误添加了_lines后缀(该图层为多边形要素,并非线要素)。以下是修正后的可运行代码:

import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.feature as cfeature

# 创建UTM投影坐标轴
ax = plt.axes(projection=ccrs.UTM(zone=30, southern_hemisphere=False))

# 加载10m级admin_0 map units图层(英国各地区边界)
uk_regions = cfeature.NaturalEarthFeature(
    category='cultural',
    name='admin_0_map_units',
    scale='10m',
    facecolor='none',
    edgecolor='gray',
    linewidth=1
)

ax.add_feature(uk_regions)
# 聚焦英国区域,避免显示全球范围
ax.set_extent([-8, 2, 49, 59], crs=ccrs.PlateCarree())

plt.show()

如果仍出现HTTPError,建议手动下载数据:

  1. 下载NaturalEarth的ne_10m_admin_0_map_units.zip压缩包
  2. 解压后将shp相关文件放到Cartopy默认数据目录(通常为~/.local/share/cartopy/shapefiles/natural_earth/cultural/10m_admin_0_map_units/),或在NaturalEarthFeature中添加data_dir参数指定本地文件路径。

二、获取可用的name字符串方法

  1. 从NaturalEarth文件命名推导:所有数据的shp文件命名格式为ne_<比例尺>_<name>.shp,其中<name>就是需传入NaturalEarthFeature的name参数。比如ne_10m_admin_1_states_provinces.shp对应的name是admin_1_states_provinces。
  2. 查看Cartopy本地数据目录:Cartopy下载的NaturalEarth数据会按category/scale/name结构存储,直接查看对应目录的文件夹名称即可得到可用的name。
  3. Cartopy内置快捷feature:常用的边界、国家等已封装在cartopy.feature中,比如cfeature.COUNTRIES对应国家边界,cfeature.STATES对应州/省边界,可直接调用无需指定name。

内容的提问来源于stack exchange,提问作者PetGriffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:13:14