使用 r 包在地图上绘制 netcdf 变量轮廓的简单方法

Posted

技术标签:

【中文标题】使用 r 包在地图上绘制 netcdf 变量轮廓的简单方法【英文标题】:Simple way to contour netcdf variables on a map using r package 【发布时间】:2015-09-23 22:55:55 【问题描述】:

我必须使用 R 包绘制地图,以便绘制国家/地区限制,以及从 NetCDF 文件读取的气象变量值的等高线。

我执行以下操作:

r=raster('netcdffile.nc')
map('worldHires', xlim=c(-10,50), ylim =c(30,50))
plot(r, add = TRUE)
contour(r, add = TRUE)

但未显示国家/地区限制。 栅格的绘图似乎消除了先前绘制的国家/地区限制。 我需要一个简单的 wway,拜托。

【问题讨论】:

【参考方案1】:

附加一个带有正确坐标的示例 netcdf 文件会有所帮助。我手头没有任何 netCDF 文件可供测试。您是否尝试过出色的rasterVis 软件包?您可以使用格子或 ggplot 轻松绘制,并以通常的方式添加地图。

例如 rasterVisggplot2 应该可以这样:

r=raster('netcdffile.nc')
library(rasterVis)
library(maps)
world <- data.frame(map(plot=FALSE)[c("x","y")])
gplot(r) + 
  geom_tile(aes(fill=value)) + 
  geom_path(data=world, aes(x,y)) +  
  stat_contour(aes(z=value)) +
  coord_equal()

【讨论】:

您好,感谢您的回复。当我将代码复制并粘贴到控制台上时,您的代码似乎可以工作,但在以source("script.R") 作为脚本运行时却不行。另外,我需要使用函数locatoridentify,这些在生成的图形中似乎不起作用。 @Antonioserrano 这已经被多次覆盖了。采购脚本时,您需要一个 print() 语句来包含绘图命令 (cran.r-project.org/doc/FAQ/…)。对于使用locatoridentify,ggplot 不是最佳选择。您可以使用 ggmap 包中的 gglocator。另一种选择是使用晶格或基础图形并使用提供的标准工具。 rasterVis 手册非常适合阅读此内容。

以上是关于使用 r 包在地图上绘制 netcdf 变量轮廓的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

绘制 NetCDF 的部分并覆盖形状文件-R

每年绘制 X 轴上的月份和来自 NetCDF 的 Y 轴上的变量

Python3.7 函数从 netCDF4 的时间步长绘制日期时间

在黑板上怎么绘制中国地图?

R 绘制交互式地图 Mapview

在 MKMapView 上绘制网格