从R中的.nc文件映射温度数据

从R中的.nc文件映射温度数据,r,mapping,netcdf,temperature,R,Mapping,Netcdf,Temperature,我从[NARR]()下载了温度数据,特别是“2m处的气温”——月平均值 我使用包“ncdf4”打开了该文件。数据有4个维度-时间、x、y、nbnds。y对应于lat,x对应于lon。有一个叫做空气的变量(不是维度),我不知道如何使用它,尽管这是温度信息 我的最终目标是在北美地图上绘制温度数据,使用每年每个月的平均温度数据(12张地图,每个月一张) 我很难确定如何使用数据,因为所有维度都是很长的数字列表,似乎没有意义(例如,x坐标看起来像这样:6232896 6265359 6297822 633

我从[NARR]()下载了温度数据,特别是“2m处的气温”——月平均值

我使用包“ncdf4”打开了该文件。数据有4个维度-时间、x、y、nbnds。y对应于lat,x对应于lon。有一个叫做空气的变量(不是维度),我不知道如何使用它,尽管这是温度信息

我的最终目标是在北美地图上绘制温度数据,使用每年每个月的平均温度数据(12张地图,每个月一张)

我很难确定如何使用数据,因为所有维度都是很长的数字列表,似乎没有意义(例如,x坐标看起来像这样:6232896 6265359 6297822 6330285 6362748 6395211 6427674 6460137 6492600 6525063 6557526 6589989,y值和时间也是如此)

以下是我用来查看尺寸的代码:

temp2m <- nc_open("air.2m.mon.mean.nc")
time <- temp2m$dim$time$vals
lat <- temp2m$dim$x$vals
lon <- temp2m$dim$y$vals
nbnds <- temp2m$dim$nbnds$vals

temp2m您可以使用
光栅
包将其读入
堆栈

> library(raster)
> air = stack("./air.2m.mon.mean.nc")
(注意,您可能需要使用netcdf驱动程序编译光栅包…)

然后可以按切片或按时间名称打印它们:

> plot(air[[23]])
> plot(air[["X1979.10.01.01.01.15"]])

堆栈打印如下:

> air
class       : RasterStack 
dimensions  : 277, 349, 96673, 450  (nrow, ncol, ncell, nlayers)
resolution  : 32462.99, 32463  (x, y)
extent      : -16231.49, 11313351, -16231.5, 8976020  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=lcc +x_0=5632642.22547 +y_0=4612545.65137 +lat_0=50 +lon_0=-107 +lat_1=50 +lat_2=50 +ellps=WGS84 
names       : X1979.01.01.00.01.15, X1979.02.01.00.01.15, X1979.03.01.00.01.15, X1979.04.01.01.01.15, X1979.05.01.01.01.15, X1979.06.01.01.01.15, X1979.07.01.01.01.15, X1979.08.01.01.01.15, X1979.09.01.01.01.15, X1979.10.01.01.01.15, X1979.11.01.00.01.15, X1979.12.01.00.01.15, X1980.01.01.00.01.15, X1980.02.01.00.01.15, X1980.03.01.00.01.15, ... 
这些坐标不是真正的lat长,而是在一个由“coord.ref.”字符串描述的变换坐标系中。如果要将其放置在lat-long贴图上,则需要对其进行扭曲:

> air_ll = projectRaster(air[[1]],crs="+init=epsg:4326")
> plot(air_ll)


您最好将任何其他数据转换到此系统,并保持网格未投影。只需查看如何在R中处理空间数据,即可获得有关投影和变换的更多信息

那帮了大忙!非常感谢。我想知道您是否知道,是否可以平均多次来创建一个光栅层?例如,如果我想要1978-2016年12月的平均温度?我不确定这些文件是否可以用mean这样的简单函数处理。这是另一个问题-您可能应该查看光栅软件包的文档和教程,然后如果遇到问题,请在gis.stackexchange.com上提问-可能
zApply
会满足您的要求。。。