我有一个不寻常的尺寸和范围的栅格,这些是海洋数据的全球地图。
rodd=rast(ymin=-91,ymax=91,xmin=-1,xmax=359,nrows=91,ncols=180,crs='WGS84')
我想把它变成这种格式这样我就可以把它和格式良好的数据堆叠在一起
r=rast(ymin=-90,ymax=90,xmin=-180,xmax=180,nrows=90,ncols=180,crs='WGS84')
我尝试过不同的方法,但在所有情况下,数据都被转移或修改,我的数据对位置非常敏感。例如,距离海岸100公里的数据现在距离海岸50公里。
我尝试了不同的功能从terra
:首先rotate
,然后resample
。我还试图删除底部一行,因为它包含NA值,然后是crop
。但在所有情况下,我都经历了数据的地理变化,这使得数据无法使用。我还尝试了用"mean"重新取样。但我得到以下错误"错误:[样本]不是一个有效的翘曲方法"为什么采样模糊数据相邻的细胞?
是否有一种方法来减少数据移动和信息丢失?
这个怎么样?
library(terra)
#> terra 1.6.33
r = rast(ymin = -91, ymax = 91, xmin = -1, xmax = 359, nrows = 91, ncols = 180, crs = 'WGS84')
# `?rotate`:
# Rotate a SpatRaster that has longitude coordinates from 0 to 360,
# to standard coordinates between -180 and 180 degrees (or vice-versa).
r2 <- rotate(r, left = TRUE)
r2
#> class : SpatRaster
#> dimensions : 91, 180, 1 (nrow, ncol, nlyr)
#> resolution : 2, 2 (x, y)
#> extent : -181, 179, -91, 91 (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 (EPSG:4326)
# adjust for shift in x and y and dimension
r3 <- shift(r2, dx = 1, dy = -1)
r3
#> class : SpatRaster
#> dimensions : 91, 180, 1 (nrow, ncol, nlyr)
#> resolution : 2, 2 (x, y)
#> extent : -180, 180, -92, 90 (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 (EPSG:4326)
# now you can crop the bottom row (-92° to -90°) consisting of `NA`
r4 <- crop(r3, ext(-180, 180, -90, 90), snap = "in")
r4
#> class : SpatRaster
#> dimensions : 90, 180, 1 (nrow, ncol, nlyr)
#> resolution : 2, 2 (x, y)
#> extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax)
#> coord. ref. : lon/lat WGS 84 (EPSG:4326)
创建于2022-12-16与reprex v2.0.2