我正在研究特定海底结构周围鲸鱼分布的模式.我正在尝试创建一个同时显示的交互式3D图:
x=经度,y=纬度,z=深度),和x=经度,y=纬度,z=固定深度 - 例如30米).坐标在UTM坐标系中投影.
我通常使用R和ggplot2生成数字的包.在这里,plotly包装似乎是一个很好的选择.
我从一个测深光栅bathy_ras和一个数据点开始points.
> bathy_ras
class : RasterLayer
dimensions : 784, 821, 643664 (nrow, ncol, ncell)
resolution : 102, 111 (x, y)
extent : 755070, 838812, -2612148, -2525124 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +zone=58S +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0
data source : in memory
names : bathymetry
values : -1949.42, …Run Code Online (Sandbox Code Playgroud) 我正在对南太平洋岛屿泻湖中宽吻海豚的分布进行建模。我想使用肥皂膜平滑器来模拟海豚在二维表面(经度 x 纬度)上存在的概率,考虑到陆地边界(显然海豚不能在陆地上行走)。
我想知道如何将我的研究区域(陆地和近海水域)的边界固定为等于零的条件,因为我预计在陆地上以及最近海处找到海豚的概率为零我研究区域的水域(这种海豚只在泻湖浅水区发现)。到目前为止,我已经测试了下面将描述的几种方法,但是我的模型预测的地图并不符合我对如何处理边界条件的期望。
这是数据集映射后的样子。海豚位置以蓝色显示,而缺席位置以粉色显示。陆地以黑色显示,泻湖周围的珊瑚礁以灰色显示。
第 1 步:创建边界和结对象
我创建了一个名为soap_bnd的边界多边形,将其转换为名为bound的列表列表,并用结soap_knots填充它。边界包括由研究区域发现的两个岛屿形成的两个内部“洞”。以下代码的灵感来自:Gavin Simpson 的优秀博客文章https://www.fromthebottomoftheheap.net/2016/03/27/soap-film-smoothers/和https://journals.plos.org/plosone/article/file? type=supplementary&id=info:doi/10.1371/journal.pone.0205921.s001我使用David L Miller 创建的 函数autocrunch (参见https://github.com/dill/soap_checker)。
位置位于投影 UTM 坐标系中(因此坐标列称为 utmx 和 utmy)
## boundary of the soap film (one polygon with two inner loops)
# soap_bnd is initially a SpatialPolygonDataFrame
crds <- tidy(soap_bnd)
crds <- crds %>% dplyr::select(long, lat, piece)
names(crds) <- c("x", "y", "piece")
bound <- split(crds, crds$piece)
bound <-lapply(bound,`[`, c(1, 2))
nr <- seq(1, 3) …Run Code Online (Sandbox Code Playgroud)