我想把一个栅格投影到另一个。
当这样做时,所有的值都会丢失。
这是我想投影的原始栅格rb
:
class : RasterLayer
dimensions : 900, 900, 810000 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : -523.4622, 376.5378, -4658.645, -3758.645 (xmin, xmax, ymin, ymax)
crs : +proj=stere +lat_0=90 +lon_0=10 +k=0.93301270189 +x_0=0 +y_0=0 +ellps=WGS84 +units=km +no_defs
source : memory
names : layer
values : 0, 2500 (min, max)
创建一个dest_raster
:
dest_raster_crs<- "+proj=longlat +datum=WGS84 +zone=34 +no_defs +ellps=WGS84 +towgs84=0,0,0"
dest_raster<-raster(ncols=900,nrows=900,crs= dest_raster_crs)
extent(dest_raster) <- extent(-523.4622, 376.5378, -4658.645, -3758.645)
dest_raster
看起来像这样:
class : RasterLayer
dimensions : 900, 900, 810000 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : -523.4622, 376.5378, -4658.645, -3758.645 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
现在如果我用
做投影new_raster<-projectRaster(rb, dest_raster,res=c(1,1), dest_raster_crs,over=T)
我得到这个错误:
Warning message:
In rgdal::rawTransform(projto_int, projfrom, nrow(xy), xy[, 1], :
29700 projected point(s) not finite
如果我看new_raster
所有的值都是NA
class : RasterLayer
dimensions : 900, 900, 810000 (nrow, ncol, ncell)
resolution : 1, 1 (x, y)
extent : -523.4622, 376.5378, -4658.645, -3758.645 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
source : memory
names : layer
values : NA, NA (min, max)
我做错了什么?谢谢你!
我的错误是我在做扩展时使用了错误的系统
正确的做法是:
extent(dest_raster) <- extent(3.5889,14.6209, 47.0705, 54.7405)