[英]Plot Circle on Raster with Known Coordinates and Radius
我正在嘗試將具有定義半徑的圓繪制到光柵圖像上。 我已經成功繪制了柵格並將點放在圖像上:
# open image to save
png("RasterImage.png",
width=10, height=10, units="in", res=144)
# plot raster
plot(VI.SOS.mean, main="VI Mean SOS",
col=terrain.colors(length(seq(100,220,20))-1), axes=F, breaks=seq(100,200,20))
# add points
points(sensors$X, sensors$Y)
# close png file
dev.off()
這就是結果圖像的樣子:
我的柵格中的像素為30 m:
class : RasterLayer
dimensions : 2871, 3205, 9201555 (nrow, ncol, ncell)
resolution : 30, 30 (x, y)
extent : 254265, 350415, 4731885, 4818015 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=16 +datum=WGS84 +units=m +no_defs
data source : in memory
names : layer
values : 38.6, 309 (min, max)
我想在每個點上放置一個半徑為x(例如300 m)的圓。 我可以通過弄亂點的大小來手動完成此操作(例如,使用cex
),但是如果我更改圖像的大小或裁剪柵格,則圓不再是正確的大小。 有沒有辦法使用柵格中定義的單位在地圖上放置圓?
謝謝!
您可以嘗試以下方法:
library(dismo)
cs <- circles(sensors[, c('X','Y')], d=150)
plot(VI.SOS.mean)
plot(polygons(cs), add=TRUE)
重疊的圓合並。 如果您不希望這樣做,可以使用內部函數dismo :::。generateCircles
pls <- dismo:::.generateCircles(sensors[, c('X','Y')], d=150, lonlat=FALSE, crs=NA)
plot(pls, add=TRUE)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.