使用 sf/mapview 连接两组坐标以创建线条

2023-12-05

我有一个数据集,其中一只鸟在一个位置(Blong、Blat)捕获,然后在另一个位置(Elong、Elat)再次遇到。这些坐标采用纬度/经度格式,我想用一条线连接捕获和遭遇位置并将它们绘制在地图视图中。

在下面的数据中,每一行都是一只单独的鸟,有它的捕获/遭遇坐标,以及它所属的飞行路线(我想用它来为地图视图中的线条着色)。

dat <- structure(list(Blong = c(-75.58333, -76.08333, -81.08333, -94.25, 
    -75.41667, -99.41667, -77.41667, -116.08333, -89.58333, -77.58333
    ), Blat = c(37.58333, 40.58333, 42.75, 41.91667, 38.25, 28.25, 
    38.91667, 43.58333, 44.25, 38.91667), Elong = c(-65.91667, -75.75, 
    -80.58333, -95.41667, -73.58333, -89.41667, -77.58333, -116.41667, 
    -96.41667, -77.41667), Elat = c(45.91667, 40.58333, 42.75, 29.75, 
    45.58333, 48.25, 38.75, 43.58333, 34.08333, 38.91667), Flyway = structure(c(2L, 
    2L, 2L, 1L, 2L, 2L, 2L, 3L, 2L, 2L), .Label = c("Central", "Eastern", 
    "West"), class = "factor")), .Names = c("Blong", "Blat", "Elong", 
    "Elat", "Flyway"), row.names = c(NA, -10L), class = c("tbl_df", 
    "tbl", "data.frame"))

看一下数据:

# A tibble: 10 x 5
    Blong  Blat  Elong  Elat Flyway 
    <dbl> <dbl>  <dbl> <dbl> <fct>  
 1  -75.6  37.6  -65.9  45.9 Eastern
 2  -76.1  40.6  -75.8  40.6 Eastern
 3  -81.1  42.8  -80.6  42.8 Eastern
 4  -94.2  41.9  -95.4  29.8 Central
 5  -75.4  38.2  -73.6  45.6 Eastern
 6  -99.4  28.2  -89.4  48.2 Eastern
 7  -77.4  38.9  -77.6  38.8 Eastern
 8 -116.   43.6 -116.   43.6 West   
 9  -89.6  44.2  -96.4  34.1 Eastern
10  -77.6  38.9  -77.4  38.9 Eastern

我查看了一些示例,但没有找到与我的数据集非常相似的示例。


棘手的是创建一个有效的LINESTRING宽格式坐标对中的对象。sf期望矩阵行中的线串坐标。这是一种有效的方法。这sfc的一列sf对象是一个列表,所以这里我们使用lapply循环您提供的数据行。

library(sf)
library(mapview)

b = dat[, c("Blong", "Blat")]
names(b) = c("long", "lat")
e = dat[, c("Elong", "Elat")]
names(e) = c("long", "lat")

dat$geometry = do.call(
  "c", 
  lapply(seq(nrow(b)), function(i) {
    st_sfc(
      st_linestring(
        as.matrix(
          rbind(b[i, ], e[i, ])
        )
      ),
      crs = 4326
    )
  }))

dat_sf = st_as_sf(dat)

mapview(dat_sf, zcol = "Flyway")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 sf/mapview 连接两组坐标以创建线条 的相关文章

  • 将 r 数据框中的列字符串转换为数字

    我有一个数据框 其中有一列字符串 如下所示 mydata lt c 1 356670 35 355030 1 356670 35 355030 1 356620 35 355890 1 356930 35 358660 1 357000 3
  • ggplot2 中的小时刻度

    我正在处理就寝时间和醒来时间 因此我想创建一个具有 24 小时 x 轴的图表 从第一天中午 12 点开始 到第二天中午 12 点结束 这意味着晚上 11 59 之后 它应该再次从 0 开始 同样的问题 仅涉及数字 我想创建一个从 10 到
  • dmvnorm MVN 密度 - RcppArmadillo 实现比 R 包慢,包括一些 Fortran

    The solution现已上线RCPP画廊 http gallery rcpp org articles dmvnorm arma 我从 RcppArmadillo 中的 mvtnorm 包重新实现了 dmvnorm 我有点喜欢犰狳 但我
  • 生成因子变量水平的预测值

    我正在使用连续结果变量对多个因子变量进行回归lm 例如 fit lt lm dv factor hour factor weekday factor month factor year count data df 我想生成预测值 yhat
  • R中的不定积分

    我正在计算方程的不定积分 我将加速度计的数据通过可视化 C 程序输入到 R 中 然后就可以很简单地得出一个方程来表示加速度曲线 这一切都很好 但是我还需要计算撞击速度 根据我在高中时代的理解 我的加速度曲线的不定积分将产生速度方程 我知道执
  • 选择一个单元格内的最小值或最大值(分隔字符串)

    我有一个数据框 其中每个样本的列可以有多个值 例如 Gene Pvalue1 Pvalue2 Pvalue3 Beta Ace 0 0381 0 00357 0 01755 0 001385 0 0037 NA 0 039 0 03 1 1
  • 在 R 中使用 gsub 删除尾随空格[重复]

    这个问题在这里已经有答案了 有没有人有一个技巧可以用 gsub 删除变量上的尾随空格 以下是我的数据示例 正如您所看到的 我在变量中同时包含尾随空格和嵌入空格 county lt c mississippi mississippi cany
  • ggplot堆叠条 - 隐藏标签但保留标签位置

    我在 ggplot 中有一个堆积条形图 其中 geom text 标签位于每个条形的中心 我想隐藏小条上的标签 以便图表看起来不会过于拥挤 我可以使用下面的代码来完成此操作 但它会弄乱标签的位置 正如您在下面的链接图片中看到的那样 它们不再
  • 如何从多边形数据中提取栅格值然后加入到空间数据框中?

    我想将多边形数据和栅格数据合并到一个数据框中 以便随后在 R 中使用 randomForests 包 这涉及首先提取每个多边形的平均栅格值 到目前为止 我有以下内容 load libraries library raster library
  • 在 R 中使用 spplot 将多个绘图放在一个页面上?

    我知道如何在使用简单函数图时绘制两个图 old par lt par mfrow c 1 2 plot faithful main Faithful eruptions plot large islands main Islands yla
  • R:使用带有 .Call 和 C/C++ 包装器的 Fortran 子例程而不是 .Fortran 的优点?

    我有一个 R 包 它使用大量 Fortran 子例程来进行递归线性代数计算的嵌套循环 很大程度上依赖于 BLAS 和 LAPACK 例程 作为 Fortran 的接口 我使用 Fortran功能 我刚刚读过乔纳森卡拉汉的博客文章 http
  • 在嵌套 tibbles 上应用 ntile

    我正在尝试申请ntile在一些嵌套的小标题上 但我似乎无法让它工作 你能看出我错在哪里吗 data iris iris gt group by Species gt mutate quintile ntile Petal Length 5
  • 在 R 中按组检查重叠开始和结束时间

    我想检查数据的重叠 这是数据 ID lt c rep 1 3 rep 3 5 rep 4 4 rep 5 5 Begin lt c 0 2 5 3 7 8 7 25 25 10 15 17 20 1 NA 10 11 13 End lt c
  • 删除 R 中具有重复属性的行

    我有一个大数据框 其中包含以下列 ID time OS IP 该数据帧的每一行对应一个条目 在该数据框中对于某些IDs存在多个条目 行 我想删除这些多行 显然 同一 ID 的其他属性会有所不同 或者换句话说 我只想要每个 ID 一个条目 行
  • 使用 R 读取和转换二进制原始数据

    我有一个file https drive google com file d 0BxMpk0nhnJy6SFhxd2xuMzJYYlk edit usp sharing其中包含原始 二进制数据和 ascii 它包含一个时间戳和一个代表速度的
  • R 中的转换会导致文档错误

    每当我运行此代码时 tm map 行都会给我警告消息 警告信息 在 tm map SimpleCorpus docs toSpace 中 转换删除文档 texts lt read csv Data fast food Domino s Do
  • R-在多个图的外缘绘制居中图例

    我想在具有多个绘图的设备中的绘图区域之外绘制居中图例 SO 中提出了许多关于更改 R 图中图例位置的问题 略有不同 例如 1 R 组合图的通用标题和图例 https stackoverflow com questions 8736966 r
  • 分组和计数以获得接近值

    我想计算每country的次数status is open以及次数status is closed 然后计算closerate per country Data customer lt c 1 2 3 4 5 6 7 8 9 country
  • 将天气 iframe 嵌入到 Shiny Dashboard 中

    我正在尝试将 Forecast io 的天气预报嵌入到闪亮的仪表板中 我最初在使用 符号时遇到了麻烦 但看到一篇文章提供了如何使用特殊字符格式化 HTML 代码的示例 但是 当我运行该应用程序时 我看到一个简单的 未找到 即使我知道该链接有
  • 有没有一种简单的方法可以根据多个标准进行排名,从而保留 R 中的联系?

    当单个标准排序良好时 rank 函数会返回明显的结果 rank c 2 4 1 3 5 1 2 4 1 3 5 当单个标准具有联系时 排名函数 默认情况下 将平均排名分配给联系 rank c 2 4 1 1 5 1 3 0 4 0 1 5

随机推荐