污染模型R.

时间:2015-03-25 08:13:53

标签: r gis gaussian

我是R的新手,我试图在R和GIS中制作污染模型。

我有这段代码:

setwd("D:/+gis/hranice")
library("foreign", lib.loc="D:/Program Files/R/R-3.1.1/library")
y <- read.csv("distancematrix.csv",header=T,sep= ",")             #load distance matrix
sub_districts <- read.dbf("ku_pl.dbf")            #load sub_district data

#Set-Up and Assumptions
length <- 3550                     #sets width of distance matrix 
width <- 9                    #sets length of distance matrix 
x <- matrix(0,length,width)       #ground level concentration (micro-g/m^3)
Q <- 1000                        #assume source strength 
s <- 9                           #assume 10 stacks per firm all at the same height
alpha <- .008                     #assumes neutral horizontal dispersion
beta <- .006                      #assumes neutral vertical dispersion
u <- 3                           #assumes constant wind speed in all directions
PM_before <- 0                    #sets initial PM Level Vector Before Intervention
PM_after <- 0                     #sets initial PM Level Vector After Intervention
PM_data <- 0                      #Sets initial value for final data
set.seed(1)                       #saves specific randomized values on next line
H <- 100    #random stack heights between 5 and 30 meters

#Gaussian Plume Model
for (j in 1:width) {
  for (i in 1:length) {
    x[i,j] <- (Q*s / (pi*(y[i,j]*alpha/((1+.0001*y[i,j])^.5)*(y[i,j]*beta/(1+.00015*y[i,j])^.5))*u))*
  (exp(-.5*(H[j]/(y[i,j]*beta/(1+.00015*y[i,j])^.5))^2))
  }
}

PM_before <- rowSums(x)*1000 #sum over all industry contributions to PM, convert from g to mg
PM_after <- .60 * PM_before #assume the treatment reduces PM to 60% original concentration
PM_data <- cbind(sub_districts,PM_before,PM_after)
write.dbf(PM_data, "ku_pl.dbf")`  

如果我运行此模型,我会收到此消息

Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
3: In min(x) : no non-missing arguments to min; returning Inf
4: In max(x) : no non-missing arguments to max; returning -Inf

它告诉我什么?它适用于一个源但不适用于此。

1 个答案:

答案 0 :(得分:-1)

你可能会在某个地方除以零......

 > 1/0
 [1] Inf

 > -1/0
 [1] -Inf