使用projectRaster将全局映射从正弦转换为wgs84,并且缺少部分数据

时间:2017-12-13 19:16:04

标签: r raster projection

我正在尝试将全局地图从正弦转换为wgs84。我在光栅包中使用projectRaster。 原始栅格在这里:

> ras_sinu
class       : RasterLayer 
dimensions  : 33600, 86400, 2903040000  (nrow, ncol, ncell)
resolution  : 463.3127, 463.3127  (x, y)
extent      : -20015109, 20015109, -6671703, 8895604  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs 
data source : C:\Users\jw2495\Desktop\Gap-filling\MODIS_fPAR\2015.01.09\sinu.tif 
names       : sinu 
values      : 0, 1  (min, max)

plot here

我用

llprj <-  "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0"
ras_wgs84=projectRaster(ras_sinu, crs=llprj)

在此处获得结果:

 > ras_wgs84
class       : RasterLayer 
dimensions  : 33583, 85106, 2858114798  (nrow, ncol, ncell)
resolution  : 0.00423, 0.00417  (x, y)
extent      : -179.9998, 179.9986, -60.02026, 80.02085  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0 
data source : C:\Users\jw2495\AppData\Local\Temp\RtmpEPstLE\raster\r_tmp_2017-12-13_123847_5260_78184.grd 
names       : sinu 
values      : 0, 1  (min, max)

plot here

部分数据似乎缺失。谁知道发生了什么? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

以下是基于您的信息的可重现示例,表明它有效:

示例数据:

library(raster)
library(maptools)
sincrs <- "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m"
llcrs <- "+proj=longlat +ellps=WGS84 +datum=WGS84"
data(wrld_simpl)
w <- spTransform(wrld_simpl, sincrs)
ras_sinu <- raster(nrow=336, ncol=864, ext=extent(-20015109, 20015109, -6671703, 8895604), crs=sincrs)
rs <- rasterize(w, ras_sinu)
plot(rs)

变换:

rll <- projectRaster(rs, crs=llcrs)
plot(rll)

也许您需要更新raster。这是

packageVersion("raster")
#[1] ‘2.6.7’