在使用ggOceanMaps绘制海底深度数据时,地图显示为上下颠倒

编程语言 2026-07-09

我正在尝试为我在阿拉斯加研究的区域绘制海底地形图。

当我使用推荐的 ggOceanMaps 代码时,地图会被绘制成上下颠倒的样子。

我的代码:

library(ggOceanMaps)
library(terra)

dt <- data.frame(lon = c(-172, -172, -164, -164), lat = c(57, 52, 52, 57))

basemap(data = dt, bathymetry = TRUE) + 
  geom_polygon(data = transform_coord(dt), aes(x = lon, y = lat), 
              # color = "red",
              fill = NA)

解决方案

这之所以会发生,是因为 ggOceanMaps 数据的坐标参考系(CRS)是WGS 84 Arctic Polar Stereographic/EPSG:3995。这也是你需要对dt对象应用 transform_coord() 以使其与海底地形的CRS相匹配的原因。一个线索是经度网格线并非平行,而纬线网格线是弯曲的。

使用 rotate = TRUE 将绘图定向,使北方位于顶部。

library(ggOceanMaps)

dt <- data.frame(lon = c(-172, -172, -164, -164), lat = c(57, 52, 52, 57))

# Create ggplot() object
p <- basemap(data = dt, bathymetry = TRUE)

# Examine CRS of p
p$coordinates$crs$input
# [1] "EPSG:3995"
format(p$coordinates$crs)
# [1] "WGS 84 / Arctic Polar Stereographic"

# Use the rotate parameter to orientate your map so north at top
basemap(data = dt, bathymetry = TRUE, rotate = TRUE) + 
  geom_polygon(data = transform_coord(dt), aes(x = lon, y = lat), 
               fill = NA)

围绕阿拉斯加的海底地形数据绘图,北方在图的顶部

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章