我想在流网络线上插入/推断值(浓度)。到目前为止,理论上最好的匹配是R中的 rtop 包,但不知何故有一个错误,我无法执行示例数据。有没有人有任何其他“准备好”的建议使用任何类型的操作系统程序?
然而,我试图解决R中的问题,但我遇到了几个问题。 我的数据框(我还有shapefile,流网络,集水区) StartID | EndID | 放电 | 长度 |的值
首先,我想进行反距离加权插值( 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值。但我真的卡住了。我不希望使用即用型脚本,但如果能得到一些反馈和指示,我会很高兴。
非常感谢,西莉亚