我希望也許有人可以幫助我解決以下情況。我正在做一個專案,我需要圍繞 R 中的質心繪制一個圓(半徑)。我還使用這個質心與其他幾何圖形進行交集。我面臨的問題是緩沖區邊界不是一個很好定義的圓,當我同時繪制圓和交點時,它看起來不太好。
我的代碼看起來有點像這樣:
使用 SF 和 ggplot2
半徑 100 公里
circle = st_buffer(centroid,100000)
和交叉路口
intersection = st_intersection(geometry,circle)
為了情節
ggplot() geom_sf(data= circle, fill = "yellow")
緩沖區的邊界是“低質量”
uj5u.com熱心網友回復:
沒那么糟糕!也就是說,如果你真的想平滑圓/緩沖區邊界,你可以使用 package smoothr。
這是一種可能性:
library(smoothr)
# Smooth circle border
circle_smooth <- smooth(densify(circle, max_distance = 10), method = "ksmooth")
# Plot
ggplot2::ggplot()
ggplot2::geom_sf(data= circle_smooth, fill = "yellow")
uj5u.com熱心網友回復:
你也可以使用 sf::st_buffer(..., nQuadSegs=)
來自https://geocompr.robinlovelace.net/geometric-operations.html
st_buffer() 的第三個也是最后一個引數是 nQuadSegs,意思是“每象限的段數”,默認設定為 30(意思是緩沖區創建的圓由 4×30=120 行組成)。很少需要設定此引數。它可能有用的不尋常情況包括緩沖操作的輸出消耗的記憶體是主要問題(在這種情況下應該減少)或需要非常高的精度(在這種情況下應該增加)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/324587.html
