1

我想沿流网络线相互/外推值(浓度)。到目前为止,理论上最好的匹配是R 中的rtop包,但不知何故存在一个错误,我无法执行示例数据。有没有人使用任何类型的操作系统程序有任何其他“准备好”的建议?

但是,我试图在 R 中解决这个问题,但我遇到了几个问题。我的数据框(我还有 shapefile、流网络、集水 结束ID | 放电| 长度| 价值

首先,我想进行反距离加权插值(IDW),因此要找到我有观察值的片段,并根据观察值之间的距离在 NA 值的观察值之间进行插值。其次我还要考虑出院。当 2 条水流汇合时,流量较高的水流对下一段的浓度影响更大。

我能够查找 NA 值并检查该段的上游或下游是否有观测值并按排放加权并取平均值:

for(i in 1:nrow(DF)) {
if(is.na(DF[i,c("Value")]))
{ a<-merge(DF[i,], DF, by.x=c("StartID"),by.y=c("EndID"), x.all)
a<-a[complete.cases(a[,8]),]
b<-merge(DF[i,], DF, by.x=c("EndID"),by.y=c("StartID"), x.all)
b<-b[complete.cases(b[,8]),]
DF[i,c("Value")] <- mean((sum(a[,c("Discharge.y")]*a[,c("Value.y")])/sum(a[,c("Discharge.y")])),(sum(b[,c("Discharge.y")]*b[,c("Values.y")])/sum(b[,c("Discharge.y")])), na.rm=TRUE, trim=0)    

但我认为最好寻找彼此接近的观察结果并插入 NA 值。但我真的卡住了。我不希望有现成的脚本,但如果我能得到一些反馈和指导,我会很高兴。

非常感谢,西莉亚

4

0 回答 0