從here我發現了一些包來計算座標之間的距離。假設你的數據被稱爲dtf
並使用RSEIS
包:
dtf <- data.frame(rbind(c(-85.01478,37.99030,-68.3167),
c(-85.00752,37.97601,-68.0247),c(-85.00027,37.96172,-67.9565),
c(-84.99302,37.94743,-67.8917)))
names(dtf) <- c('lon','lat','int')
library(RSEIS)
travelint <- function(i,data){
ddeg <- GreatDist(dtf$lon[i],dtf$lat[i],dtf$lon[i+1],dtf$lat[i+1])$ddeg;
dint <- dtf$int[i+1] - dtf$int[i]; return(list(ddeg,dint))}
out <- sapply(1:(nrow(dtf)-1),data=dtf,travelint)
out <- data.frame(matrix(as.numeric(out),ncol=2,byrow=T))
out$X1 <- cumsum(out$X1)
這將需要數據,計算點和它們之間的強度變化之間的行進距離。之後,它可以繪製這樣的:
ggplot(out,aes(X1,X2)) + geom_line() +
labs(x="Distance (Degrees)",y="Intensity Change")
![enter image description here](https://i.stack.imgur.com/kHaou.png)
相反,如果你想增加強度,你可以再次使用cumsum
得到強度的累計變動額,然後將其添加到第一強度:
out2 <- out
out2 <- rbind(c(0,0),out2)
out2$X2 <- cumsum(out2$X2) + dtf$int[1]
ggplot(out2,aes(X1,X2)) + geom_line() +
labs(x="Distance (Degrees)",y="Intensity")
![enter image description here](https://i.stack.imgur.com/fzCSN.png)
要獲得的距離,你需要兩個百分點;你如何配對數據來繪製距離? – DiscreteCircle
@DiscreteCircle我相信這是一次旅行,點數是有序的。所以歐普要求第一點到第二點,第二和第三點之間的距離...... – agstudy