2015-04-03 20 views
0

我遇到了將密度im從spatstat導出到ArcGIS可讀的文件格式的問題。這是我的代碼帶正方形像素的R-spatstat im? (用於導出到弧光柵)

library(raster) 
library(spatstat) 
library(maptools) 
library(sp) 
# make a spatstat ppp with California boundary as window 
ca <- readShapePoly("ca.shp") 
o3 <- readShapePoints("o3.shp") 
o3 <- as(o3, "SpatialPoints") 
o3p <- as.ppp(o3) 
o3p$window <- as.owin(ca) 
# calculate density 
d.o3p <- density.ppp(o3p) 

這一切都正常工作。但是,當我嘗試導出到ASCII光柵文件

writeRaster(raster(d.o3p), filename="grid.asc", format="ascii", NAflag=-9999) 

我得到這個問題

Error in .startAsciiWriting(x, filename, ...) : 
x has unequal horizontal and vertical resolutions. Such data cannot be 
stored in arc-ascii format 

我使用的數據是美國加利福尼亞州,所以長寬比不是1所以...我如何使密度變成方形像素?

回答

0

您是否必須爲ArcGIS使用ascii格式?用任意窗口獲得完美的正方形像素可能很困難。像素分辨率由參數eps或參數dimyx(不是兩者)控制,它們被髮送到as.mask,您可以在該幫助文件中閱讀更多內容。基本上eps是pixelsize,所以最簡單的就是將它設置爲給定的值。但是,如果窗口大小與一個方向上的窗口不完全吻合,則像素可能會略微非正方形。例如。這個完美的作品:

X <- runifpoint(100, win = owin(c(0,9),c(0,10))) 
d <- density.ppp(X, eps = 1) 

但是這給非方形像素:

d2 <- density.ppp(X, eps = 2) 
+0

會給予好評,如果我能(沒有足夠的口碑......),因爲這是有幫助的。自從我發佈spatstat.options(npixel = c(nx,ny))後,我發現它允許指定不同的圖像大小爲默認值,這可以啓用寫入函數來控制它。 – 2015-04-03 23:13:41