我从TRMM(横跨热带地区的降雨量)卫星下载降水数据作为netCDF文件,并一直试图将R中的数据绘制为rasterstack。但是,R坚持不正确地绘制纬度和经度轴,使得经度绘制在x轴上(应该是)但使用纬度坐标,而纬度在y轴上,但使用经度坐标。我尝试过同时使用plot()
和levelplot()
函数,但似乎都不起作用。任何人都可以帮我纠正这个吗?
这些是堆栈的特征:
class : RasterStack
dimensions : 1440, 186, 267840, 12 (nrow, ncol, ncell, nlayers)
resolution : 0.25, 0.25 (x, y)
extent : -23.25, 23.25, -180, 180 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
names : X2016.01.16, X2016.02.15, X2016.03.16, X2016.04.15, X2016.05.16, X2016.06.15, X2016.07.16, X2016.08.16, X2016.09.15, X2016.10.16, X2016.11.15, X2016.12.16
Date : 2016-01-16, 2016-02-15, 2016-03-16, 2016-04-15, 2016-05-16, 2016-06-15, 2016-07-16, 2016-08-16, 2016-09-15, 2016-10-16, 2016-11-15, 2016-12-16
在下图中,您可以看到当前输出。它应显示从-23到23度纬度和-180到180度经度的热带降雨量。
答案 0 :(得分:0)
如果在任何处理之前切换坐标,那就很奇怪。也许您想评估下载数据的来源,以及是否有更好的数据。
无论如何,(在此期间)raster
包对您有帮助..特别是转置t()
函数。这是一个例子:
# data before transpose
x <- getData('worldclim',var='tmean',res=10)
plot(x)
# data after transpose
y <- t(x)
plot(y)
raster
中还有一些其他功能可能对您有用:flip
和rotate
HTH
答案 1 :(得分:0)
感谢您的回复。看起来很奇怪,坐标开箱即用,我尝试下载一组新数据并发生同样的问题。但是,由于您的输入,我能够通过使用transpose()和flip()函数来解决问题。我必须转置数据,然后在图像被“镜像”时沿x和y维度翻转。这是我用过的代码,以防其他人遇到TRMM数据集的这个问题:
a.t = t(test.rasterstack)
a.flipy = flip(a.t, direction = 2)
a.t.flipxy = flip(a.t.flipy, direction = 1)
levelplot(a.t.flipxy)