将气候研究单元(CRU)CDF光栅投射到R:如何进行立体极化视图中?

时间:2017-01-04 11:55:13

标签: r gis

如何将气候研究单位(CRU)CDF投射到R的极地视图中?

cruts 及其功能 cruts2raster()可以很好地获取时间序列数据,我可以使用栅格可视化一个月的数据(或更多) 包和 plot() image()函数。在引入所有数据并检查RasterStack之后,它会绘制并在查询时给出坐标参考系统,但我无法将其转换为极坐标投影。

我使用 rgdal (已将最新的proj.4安装到我的Mac的/ usr / local / lib / pkgconfig中)但似乎无法投射到此极坐标视图中:

library(cruts)
library(raster)
## Bring the downloaded file into R
r <- cruts2raster("cru_ts3.24.2011.2015.pre.dat.nc", 
                  timeRange=c("2011-01-01","2015-01-01"))
## get the first layer
r1 <- r[[1]]

## admire its colors (beautiful!)
plot(r1)

# check its coordinate reference system and projection
r1 
# gives this 
# coord. ref. : +init=epsg:4326 
# .             +proj=longlat 
# .             +datum=WGS84 
# .             +no_defs 
# .             +ellps=WGS84 +towgs84=0,0,0

## define the stereo polar projection to make it really gorgeous
newproj <- "+proj=stere 
            +lat_0=90 
            +lat_ts=70 
             +lon_0=-45 +datum=WGS84"
## try to project
x <- projectRaster(r1,crs=newproj)
# and FAIL

“if(value [1]!= nrow(x)| value [2]!= ncol(x)){的错误{: 缺少需要TRUE / FALSE的值 另外:警告信息: 在dim<-*tmp*中,value = c(nr,nc)): 通过强制将NA引入整数范围“

我一直无法弄清楚“缺失值”。

projectRaster()的文档中有这样的说法:“当将预测的极地数据转换为(例如)经度/纬度时,projectExtent不能很好地工作。使用这些数据你可能需要调整返回的对象。例如,做ymax(对象)&lt; - 90“,但我不知道如何实现他们的建议。

1 个答案:

答案 0 :(得分:1)

这解决了我的问题:

r1e&lt; - extent(-180,180,60,90)

r1c&lt; - crop(r1,r1e)

积(R,C)

x&lt; - projectRaster(r1c,crs = newproj)

积(x)的