使用 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 轻松绘制,并以通常的方式添加地图。
例如 rasterVis
和 ggplot2
应该可以这样:
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")
作为脚本运行时却不行。另外,我需要使用函数locator
和identify
,这些在生成的图形中似乎不起作用。
@Antonioserrano 这已经被多次覆盖了。采购脚本时,您需要一个 print() 语句来包含绘图命令 (cran.r-project.org/doc/FAQ/…)。对于使用locator
和identify
,ggplot 不是最佳选择。您可以使用 ggmap
包中的 gglocator
。另一种选择是使用晶格或基础图形并使用提供的标准工具。 rasterVis
手册非常适合阅读此内容。以上是关于使用 r 包在地图上绘制 netcdf 变量轮廓的简单方法的主要内容,如果未能解决你的问题,请参考以下文章
每年绘制 X 轴上的月份和来自 NetCDF 的 Y 轴上的变量