2014-09-23 76 views
1

使用時,光柵化錯誤有誰知道爲什麼rasterize會回來的多邊形使用時,出現以下錯誤:R:對多邊形

Error in rv[[ii]] : subscript out of bounds 

使用其他常用R的功能和如mean,也給了同樣的錯誤,但rasterize選項,如'last',工作正常。在過去的版本raster(當前使用raster_2.3-0)中,我沒有遇到過這個問題。我附代碼我從一個例子抓起?rasterize

library(raster) 

p1 <- rbind(c(-180,-20), c(-140,55), c(10, 0), c(-140,-60), c(-180,-20)) 
hole <- rbind(c(-150,-20), c(-100,-10), c(-110,20), c(-150,-20)) 
p1 <- Polygons(list(Polygon(p1), Polygon(hole, hole=TRUE)), 1) 
p2 <- Polygons(list(Polygon(rbind(c(-10,0), c(140,60), c(160,0), c(140,-55), c(-10,0)))), 2) 
p3 <- Polygons(list(Polygon(rbind(c(-125,0), c(0,60), c(40,5), c(15,-45), c(-125,0)))), 3) 
pols <- SpatialPolygons(list(p1 , p2, p3)) 

r <- raster(ncol=90, nrow=45) 
r <- rasterize(pols, r, fun='sum') # works 
r <- rasterize(pols, r, fun=sum) # returns error: "Error in rv[[ii]] : subscript out of bounds" 
+0

你在你的環境中有一個''sum'',其中'rasterize'正在嘗試(當然,失敗)視爲閉包,或者沒有這樣的對象,所以'fun'參數返回'NULL'這無疑會玷污事情。對象名稱和字符串之間有區別。 – 2014-09-23 12:01:53

+0

我從來沒有使用對象名稱的總和,平均值,分鐘等,所以不幸的是,這不是問題... – 2014-09-23 12:04:53

+0

不,這仍然是問題 - 在你的環境中根本沒有什麼叫做「總和」,所以如我所說,你基本上寫了'rasterize(pols,r,fun = NULL)' – 2014-09-23 12:07:56

回答

1

軟件包的維護者羅伯特Hijmans已經修復了這個問題;暫時可以從R-forge(install.packages(「raster」,repos =「http://R-Forge.R-project.org」))安裝更新的軟件包,更新的版本應該位於CRAN下週。爲了記錄,我昨天只是給Hijmans發了電子郵件,他對於解決這個問題非常敏感。

+0

非常感謝莎拉 – 2014-10-03 18:50:47