【问题标题】:R - Plotting netcdf climate dataR - 绘制 netcdf 气候数据
【发布时间】:2013-12-29 12:37:57
【问题描述】:

我一直在尝试绘制以下网格化 netcdf 文件:“air.1999.nc”,可在以下网站找到:

http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.html

我已经根据我在这里和其他地方找到的答案尝试了下面的代码,但没有运气。

library(ncdf);
temp.nc <- open.ncdf("air.1999.nc");
temp <- get.var.ncdf(temp.nc,"air");

temp.nc$dim$lon$vals -> lon
temp.nc$dim$lat$vals -> lat

lat <- rev(lat)
temp <- temp[nrow(temp):1,]

temp[temp==-32767] <- NA
temp <- t(temp)

image(lon,lat,temp)
library(maptools)
data(wrld_simpl)
plot(wrld_simpl, add = TRUE)

此代码是从此处找到的代码修改而来的:The variable from a netcdf file comes out flipped

有人对使用这些类型的 netcdf 文件有任何想法或经验吗?谢谢

【问题讨论】:

标签: r maps netcdf


【解决方案1】:

在问题中,您将整个部分从 lat &lt;- rev(lat) 链接到 temp &lt;- t(temp) 非常特定于该特定 OP 数据集,并且绝对没有普遍价值。

temp.nc <- open.ncdf("~/Downloads/air.1999.nc")
temp.nc
[1] "file ~/Downloads/air.1999.nc has 4 dimensions:"
[1] "lon   Size: 144"
[1] "lat   Size: 73"
[1] "level   Size: 12"
[1] "time   Size: 365"
[1] "------------------------"
[1] "file ~/Downloads/air.1999.nc has 2 variables:"
[1] "short air[lon,lat,level,time]  Longname:Air temperature Missval:32767"
[1] "short head[level,time]  Longname:Missing Missval:NA"

正如您从这些信息中看到的那样,在您的情况下,缺失值由值 32767 表示,因此您的第一步应该是以下步骤:

temp <- get.var.ncdf(temp.nc,"air")
temp[temp=="32767"] <- NA

另外,在您的情况下,您的数据有 4 个维度,而不仅仅是 2 个维度,它们是经度、纬度、水平(我假设它代表高度)和时间。

temp.nc$dim$lon$vals -> lon
temp.nc$dim$lat$vals -> lat
temp.nc$dim$time$vals -> time
temp.nc$dim$level$vals -> lev

如果您查看lat,您会发现这些值是相反的(image 会皱眉头)所以让我们反转它们:

lat <- rev(lat)
temp <- temp[, ncol(temp):1, , ] #lat being our dimension number 2

那么经度是从0到360表示的不是标准的,应该是-180到180所以我们改一下:

lon <- lon -180

现在让我们绘制 1000 级(即第一个)和第一个日期的数据:

temp11 <- temp[ , , 1, 1] #Level is the third dimension and time the fourth.
image(lon,lat,temp11) 

然后让我们叠加一张世界地图:

library(maptools)
data(wrld_simpl)
plot(wrld_simpl,add=TRUE)

【讨论】:

  • 感谢您的回复和有效的代码示例,非常感谢。
  • lon 调整不正确。你可以在太平洋看到非洲。我相信应该是lon[lon &gt; 180] &lt;- lon[lon &gt; 180] - 360
猜你喜欢
  • 2019-07-16
  • 2017-04-20
  • 2020-08-16
  • 2014-10-31
  • 2019-05-20
  • 2018-06-20
  • 1970-01-01
  • 1970-01-01
  • 2015-04-12
相关资源
最近更新 更多