光栅堆栈校正绘制纬度和经度坐标

时间:2017-06-12 19:58:48

标签: r coordinates r-raster

我从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度经度的热带降雨量。

2 个答案:

答案 0 :(得分:0)

如果在任何处理之前切换坐标,那就很奇怪。也许您想评估下载数据的来源,以及是否有更好的数据。

无论如何,(在此期间)raster包对您有帮助..特别是转置t()函数。这是一个例子:

# data before transpose
x <- getData('worldclim',var='tmean',res=10)
plot(x)

Normal

# data after transpose
y <- t(x)
plot(y)

Transposed

raster中还有一些其他功能可能对您有用:fliprotate

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)