R: 将netCDF文件作为栅格读取

3

我正在尝试将一个netCDF文件作为栅格图像读入R。该netCDF文件描述了海洋经度、纬度和深度的平均年温度。 我只关心表层海洋(即netCDF文件中的第一级),并且t_an是netCDF文件中变量的名称。因此,我使用以下代码:

MyRast <- raster("Temperature.nc", level = 1, varname = "t_an")

这给我带来了以下警告:
Warning message:
In .getCRSfromGridMap4(atts) : cannot process these parts of the CRS: epsg_code=EPSG:4326

如您所见,netCDF 文件具有 CRS EPSG 4326 (或 WGS 84),而创建的栅格具有以下 CRS:

+proj=longlat +lon_0=0 +a=6378137 +rf=298.257232666016

有什么方法可以正确地读取带有CRS的netCDF文件吗?

您能提供一下 netCDF 的链接吗? - Richard Telford
从此链接https://www.nodc.noaa.gov/cgi-bin/OC5/woa13/woa13.pl下载,选择netCDF格式和1/4º作为可用网格,并且文件名为t00_04v2.nc,位于年度标题下。 - Dan
你是否坚定地决定使用netCDF? - MikeJewski
不是死板的设定。只是看起来最容易处理(即,加载文件并在单个命令中提取我想要的变量)。为了给你一些背景:最终,我想使用这个栅格图与extract函数和SpatialPolygonsDataFrame一起使用,以获取那些多边形中找到的栅格单元格。 - Dan
1
这里没有任何东西表明你得到的坐标参考系统不正确。你获得的信息是从文件中提取出来的。它与WGS84椭球略有不同。因此,该文件显然存在矛盾的信息。如果EPSG代码正确,请使用Geo-sp的建议。 - Robert Hijmans
显示剩余3条评论
1个回答

7

在读取数据后,您只需要设置投影即可:

r <- raster("Temperature.nc",  varname = "t_an")
proj4string(r)=CRS("+init=EPSG:4326")

4
或者 crs(r) <- "+init=EPSG:4326" - Robert Hijmans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接