如何解决如何使用 R Package Trip 过滤 GPS 跟踪数据? 最小可重复示例
目的是通过设置最大“企鹅”速度、删除点,然后编写一个删除所有错误点的 csv 来过滤生物学上不切实际的 GPS 轨迹(使用 R 中的旅行包)。
我一直在遵循一位以前学生的脚本,但一直无法让它发挥作用。将纬度/经度分配给对象(坐标)后,问题就开始了。 IE。这一行没有错误:
coordinates(GPSdataalltrips.obj)<-c("Lat","Long")
但是,我在下一行看到一条警告消息,然后看到错误消息(参见下面 MRE 中的警告 + 错误)
对出了什么问题有什么想法吗?
最小可重复示例
设置:
library(trip)
library(sp)
library(rgdal)
GPSdataalltrips.obj <- structure(list(Deployment = c(1,1,1),Device = c(2,2,2),`Box no.` = c("C23","C23","C23"),`Bird no.` = c(10825325,10825325,10825325),`Breeding Stage` = c(1,Lat = c(-41.09482,-41.09491,-41.09484,-41.09496,-41.09564),Long = c(174.78327,174.78326,174.78332,174.78323,174.78325,174.78277),Time = c("18/09/2020,4:13:44 AM","18/09/2020,4:14:02 AM",4:15:01 AM",4:16:01 AM",4:17:02 AM",4:18:02 AM"),Tripid = c(1,`Trip no.` = c(1,Complete = c(0,0)),row.names = c(NA,-6L),class = c("tbl_df","tbl","data.frame"))
警告信息:
coordinates(GPSdataalltrips.obj)<-c("Lat","Long")
proj4string(GPSdataalltrips.obj)<- CRS("+init=epsg:3857")
Warning messages:
1: In showSRID(uprojargs,format = "PROJ",multiline = "NO",prefer_proj = prefer_proj) :
discarded ellps WGS 84 in Proj4 deFinition: +proj=merc +a=6378137 +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null +wktext +no_defs
2: In showSRID(uprojargs,prefer_proj = prefer_proj) :
discarded datum WGS_1984 in Proj4 deFinition
和错误:
trip.obj<-trip(GPSdataalltrips.obj,c("Time","Tripid"))
Error in unclass(adjusted) - unclass(x[[tor[1]]]) :
non-numeric argument to binary operator
In addition: Warning messages:
1: In sp::proj4string(x) : CRS object has comment,which is lost in output
2: In force_internal(obj,TORnames) :
ordering input records by trip ID,then time
解决方法
首先,我必须诚实,我只喜欢 tidyverse 的几个工具。所以让我以传统方式进行。
allTrips <- structure(list(Deployment = c(1,1,1),Device = c(2,2,2),`Box no.` = c("C23","C23","C23"),`Bird no.` = c(10825325,10825325,10825325),`Breeding Stage` = c(1,Lat = c(-41.09482,-41.09491,-41.09484,-41.09496,-41.09564),Long = c(174.78327,174.78326,174.78332,174.78323,174.78325,174.78277),Time = c("18/09/2020,4:13:44 AM","18/09/2020,4:14:02 AM",4:15:01 AM",4:16:01 AM",4:17:02 AM",4:18:02 AM"),Tripid = c(1,`Trip no.` = c(1,Complete = c(0,0)),row.names = c(NA,-6L),class = c("tbl_df","tbl","data.frame"))
#到目前为止一切顺利。但是,我会将其用作简单的 data.frame。
allTripsDf = as.data.frame(allTrips)
#接下来,我会正确定义时间戳
allTripsDf$Time = as.POSIXct(allTripsDf$Time,format = c("%d/%m/%Y,%I:%M:%S %p"))
#接下来,我将按照您的 CRS 定义以不同的方式定义坐标和 CRS。
sp::coordinates(allTripsDf) <- ~Long+Lat
sp::proj4string(allTripsDf) <- sp::CRS("+init=epsg:3857",doCheckCRSArgs = FALSE)
#最后创建对象“trip”。
tr <- trip(allTripsDf,c("Time","Tripid"))
tr
#输出:
Object of class trip
tripID ("Tripid") No.Records startTime ("Time") endTime ("Time") tripDuration
1 1 6 2020-09-17 19:13:44 2020-09-17 19:18:02 4.3 mins
data.columns data.class
1 Deployment numeric
2 Device numeric
3 Box no. character
4 Bird no. numeric
5 Breeding Stage numeric
6 Time POSIXct **trip DateTime**
7 Tripid numeric **trip ID**
8 Trip no. numeric
9 Complete numeric
供您参考,我在 Microsoft R-Open V.3.5(64 位)上运行此代码
,library(readxl)
library(tidyverse)
library(trip)
library(sp)
library(rgdal)
setwd("D:/Courtney/Courtney Thesis Desktop/Foraging data/GPS data for all trips")
allTripsDf = read_xlsx("GPS data for all trips.xlsx")
allTripsDf = allTripsDf %>% rename(TripID=Tripid,Time=time,Lat=y,Long=x) %>% mutate(Deployment=as.factor(Deployment),Time = as.POSIXct(Time,%I:%M:%S %p"))) %>% arrange(TripID,Time)
sp::coordinates(allTripsDf) <- ~Long+Lat
sp::proj4string(allTripsDf) <- sp::CRS("+init=epsg:3857",doCheckCRSArgs = FALSE)
tr <- trip(allTripsDf,"TripID"))
tr
filter<-speedfilter(tr,max.speed=7.2)
tracks.filtered<-subset(tr,filter==TRUE)
write.csv(tracks.filtered,file= "alltracksfiltered.csv")
tracks.filtered<-trip(tracks.filtered,"TripID"))
summary(tracks.filtered)
Object of class trip
tripID ("TripID") No.Records startTime ("Time") endTime ("Time") tripDuration tripDistance meanSpeed maxSpeed
1 1 1800 2020-09-17 16:13:44 2020-09-19 21:51:46 2.234745 days 1.17660003 0.02345576 0.26928410
2 2 940 2020-09-17 16:24:51 2020-09-19 06:30:51 1.5875 days 1.17241745 0.02549042 0.13454383
3 3 1943 2020-09-17 16:37:01 2020-09-19 18:37:02 2.083345 days 1.60473172 0.02590134 0.33962331
4 4 875 2020-09-20 15:44:01 2020-09-21 22:40:35 1.289282 days 0.94451710 0.02219599 0.25349928
5 5 938 2020-09-18 14:27:02 2020-09-20 04:00:00 1.56456 days 0.99592446 0.02253615 0.56183868
6 6 858 2020-09-21 15:58:00 2020-09-22 17:55:00 1.08125 days 0.79782599 0.02319607 0.35638181
7 7 1908 2020-09-17 14:44:00 2020-09-19 21:57:41 2.301169 days 1.59492851 0.02289163 0.18317205
8 8 897 2020-09-20 16:27:01 2020-09-21 21:15:32 1.200359 days 0.83761965 0.02135898 0.35455887
9 9 259 2020-10-02 16:20:59 2020-10-03 20:19:11 1.165417 days 0.91318834 0.01612964 0.06638808
10 10 165 2020-09-29 15:25:14 2020-09-30 08:24:03 16.98028 hours 0.56592496 0.03436422 0.10410670
11 11 21 2020-10-06 13:50:34 2020-10-06 14:51:07 1.009167 hours 0.01794772 0.01710078 0.04587768
12 12 66 2020-10-06 15:46:55 2020-10-06 22:33:54 6.783056 hours 0.29428118 0.03939214 0.07306933
13 13 67 2020-09-28 15:51:02 2020-09-29 07:21:24 15.50611 hours 0.48236092 0.03167416 0.11855739
14 14 56 2020-09-30 15:06:02 2020-09-30 22:54:34 7.808889 hours 0.33093319 0.03686727 0.07233184
15 15 175 2020-09-29 16:00:15 2020-10-01 01:41:31 1.403657 days 1.04897563 0.01982784 0.05564086
16 16 360 2020-10-02 13:43:34 2020-10-04 17:50:18 2.171343 days 1.27621209 0.01760442 0.24219294
17 17 245 2020-10-07 15:12:00 2020-10-08 08:02:26 16.84056 hours 0.31151573 0.02172707 0.06500334
18 18 458 2020-10-09 12:09:03 2020-10-10 07:47:04 19.63361 hours 0.23487030 0.02115819 0.08490136
19 19 306 2020-10-11 12:12:01 2020-10-11 17:22:09 5.168889 hours 0.10528737 0.01986299 0.14923605
20 20 804 2020-10-07 14:27:01 2020-10-09 00:20:44 1.412303 days 0.99639926 0.01798060 0.09781349
21 21 177 2020-10-08 16:16:00 2020-10-09 07:42:00 15.43333 hours 0.20802642 0.02354949 0.09661910
22 22 153 2020-10-14 16:40:09 2020-10-15 11:17:02 18.61472 hours 0.48583514 0.04204171 0.09885848
23 23 247 2020-10-16 15:25:00 2020-10-17 01:59:29 10.57472 hours 0.52001738 0.03624685 0.24219288
24 24 4761 2020-10-16 16:26:24 2020-10-25 07:55:17 8.645058 days 4.13800059 0.01851673 0.26508868
25 25 63 2020-10-26 16:23:03 2020-10-27 07:15:11 14.86889 hours 0.08537073 0.02760054 0.07437073
26 26 128 2020-10-27 04:00:01 2020-10-29 07:26:51 2.143634 days 0.29954487 0.02714203 0.08512836
Total trip duration: 3153705 seconds (876 hours,105 seconds)
Derived from Spatial data:
Object of class SpatialPointsDataFrame
Coordinates:
min max
Long 174.34849 175.03964
Lat -41.18152 -40.11535
Is projected: TRUE
proj4string : [+init=epsg:3857]
Number of points: 18670
Data attributes:
Deployment Device Box.no. Bird.no. Breeding.Stage Time
1:10159 Min. : 2.000 Length:18670 Min. :10824948 Min. :1.000 Min. :2020-09-18 02:44:00
2: 1169 1st Qu.: 4.000 Class :character 1st Qu.:10825123 1st Qu.:1.000 1st Qu.:2020-09-19 19:02:00
3: 1990 Median : 5.000 Mode :character Median :10825325 Median :2.000 Median :2020-09-22 05:51:31
4: 5352 Mean : 5.575 Mean :11250465 Mean :1.703 Mean :2020-10-01 23:05:27
3rd Qu.: 7.000 3rd Qu.:12125033 3rd Qu.:2.000 3rd Qu.:2020-10-17 23:46:47
Max. :10.000 Max. :12211624 Max. :4.000 Max. :2020-10-29 20:26:51
TripID Trip.no. Complete
Min. : 1.00 Min. :1.000 Min. :0.000
1st Qu.: 3.00 1st Qu.:1.000 1st Qu.:0.000
Median : 8.00 Median :1.000 Median :0.000
Mean :12.03 Mean :1.092 Mean :0.333
3rd Qu.:24.00 3rd Qu.:1.000 3rd Qu.:1.000
Max. :26.00 Max. :3.000 Max. :1.000
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。