pac*_*met 2 r netcdf grib r-maptools
在Joe Wheatley的优秀帖子(http://joewheatley.net/ncep-global-forecast-system/)之后,我设法制作了温度全球地图.但是,我不是只绘制海岸线,而是尝试使用maptools包绘制国家边界.只有东半球国家边界被绘制出来才会出现问题.我应该遗漏一些我无法弄清楚的东西,仍在寻找stackoverflow和谷歌.希望你能帮忙.
这是我正在使用的代码(大部分来自Joe的帖子)
loc=file.path("ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.2013052100/gfs.t00z.sfluxgrbf03.grib2")
download.file(loc,"temp.grb",mode="wb")
system("wgrib2 -s temp.grb | grep :TMP: | wgrib2 -i temp.grb -netcdf TMP.nc",intern=T)
system("wgrib2 -s temp.grb | grep :LAND: | wgrib2 -i temp.grb -netcdf temp.nc",intern=T)
library(ncdf)
landFrac <-open.ncdf("LAND.nc")
lon <- get.var.ncdf(landFrac,"longitude")
lat <- get.var.ncdf(landFrac,"latitude")
temp=open.ncdf("TMP.nc")
t2m.mean <- get.var.ncdf(temp,"TMP_2maboveground")
library("fields")
library("sp", lib.loc="/usr/lib/R/site-library")
library("maptools", lib.loc="/usr/lib/R/site-library")
day="DIA"
png(filename="gfs.png",width=1215,height=607,bg="white")
rgb.palette <- colorRampPalette(c("snow1","snow2","snow3","seagreen","orange","firebrick"), space = "rgb")#colors
image.plot(lon,lat,t2m.mean,col=rgb.palette(200),main=as.expression(paste("GFS 24hr Average 2M Temperature",day,"00 UTC",sep="")),axes=T,legend.lab="o C")
data(wrld_simpl)
plot(wrld_simpl, add = TRUE)
dev.off()
Run Code Online (Sandbox Code Playgroud)
这是产生的图像

这是一张全球地图,我应该在image.plot中使用xlim和ylim来提取一个区域(即欧洲)
编辑:为temp.nc文件添加了网址
http://ubuntuone.com/29DKAeRjUCiCzLblgfSLc9
任何帮助将不胜感激,谢谢
数据集wrld_simpl在经度[-180,180]上对齐,但您的网格数据显然为[0,360].由于您已加载maptools,请尝试将此修改后的副本添加到您的绘图中:
plot(elide(wrld_simpl, shift = c(360, 0)), add = TRUE)
Run Code Online (Sandbox Code Playgroud)
还有其他工具可以裁剪和移动/组合这样的最新数据,包括?在包栅格中旋转.这真的取决于你需要什么.
另一种图形替代方法是在地图包中使用"world2"
library(maps)
map("world2", add = TRUE)
Run Code Online (Sandbox Code Playgroud)
其中任何一个都可以完成上面开始的情节.
以下是与此相关的另一个讨论:修复太平洋中心(0°-360°经度)显示的地图库数据
| 归档时间: |
|
| 查看次数: |
4355 次 |
| 最近记录: |