2015-06-17 49 views
1

我有下面的代碼,它創建的平行於X和Y軸的範圍。如何創建不平行於X和Y軸的範圍R柵格

有沒有辦法創建一個不直的範圍 - 例如,我想創建2條與一條對角線平行的線。但是一行低於對角線10個像素,另一行高於對角線10個像素。創建以類似的方式,但周圍的其他對角線2條線路,並使用這4條線,我建議用use="pol"參數試圖select()我的程度

library(raster) 
r1 <- brick(system.file("external/rlogo.grd", package="raster")) 
x <- crop(r1, extent(0,50,0,50)) 
plotRGB(x) 

png("aaa.png",width=20,height=20) 
par(mai=c(0,0,0,0)) 
image(crop(x,extent(c(0,30,0,30)))) 
dev.off() 

回答

0

的邊緣。這將允許在圖上交互選擇一個區域,儘管由此產生的區域可能不如您想要的那樣精確。

編輯用代碼:

這是我會怎麼做呢: x1 <- select(x, use = "pol")

(如果你使用RStudio在圖選項卡)這將打開x作爲在新窗口中的圖像。現在,您可以使用鼠標選擇一個區域:只需點擊您想要的區域周圍的點。完成單擊Esc後,新圖像將被保存爲x1對象。您可以打印/保存。

+0

我將不勝感激,如果您可以提供一些示例代碼 – user2543622

1

範圍根據定義爲矩形(至少在光柵包中)。但是你可以定義一個多邊形並用它來裁剪你的柵格數據。

library(raster) 
r <- brick(system.file("external/rlogo.grd", package="raster")) 
plotRGB(r) 
p <- spPolygons(rbind(c(20, 20), c(30, 50), c(70, 50), c(60, 20))) 
plot(p, add=TRUE, lwd=4, border='red') 

x <- crop(r, p) 
m <- mask(x, p) 
plotRGB(m) 
plot(p, add=TRUE, lwd=4, border='red') 
+0

這是產生預期的輸出。但我也想在原始尺寸下保存該輸出並且沒有任何背景。請添加該部分 – user2543622

相關問題