通过循环绘制和拟合变异函数

时间:2015-09-19 21:07:29

标签: r geospatial spatial

我有50个数据帧文件的数据。在每个数据帧的第二列中,我有各自的数据,我想要进行变差函数分析,包括拟合各种模式,并在每个文件的各个图中绘制它们。所以,我有一个循环,如下所示:

# Loading libraries 
library(foreign)
library(maptools)
library(rgdal)
library(rgeos)
library(sp)


#set working directory 
setwd('c:/data/monthly')
Data=list.files(,pattern='dbf')

#load study area shape file 
studyarea=readShapeSpatial("c:/data/study-areat.shp")
#Setting the projection for study area
proj4string(studyarea)=CRS("+init=epsg:32639")

#Looping 
for(i in 1:length(Data)){

#reading dataframes
Data2=read.dbf(Data[i])
Filename=Data[i]
colnames(Data2)[4] <- "prec"

#setting coordinates for dbf files
coordinates(Data2)=~longitude+latitude

#Setting the projection for dbf files
proj4string(Data2)=CRS(proj4string(studyarea))

#defining varigram function

variogram= function(prec) {return(variogram(prec~ 1, Data2,plot.nu=T,pch=("+")))}

#fitting variograms
FitVGM = function(model_type) {return(autofitVariogram(prec~ 1, Data2, model = model_type), verbose=TRUE)}

#Defining Model options
model_options = c("Sph", "Exp", "Gau", "Ste")
#using lappy to list variogram fittings
listVGM = lapply(model_options, FitVGM)

#naming every fit by specific names
names(listVGM) = model_options
lapply(names(listVGM), function(x) {png(filename = sprintf('%s.png', x))
print(plot(listVGM[[x]]))
dev.off()
 })
dev.new()}

但是我收到这样的错误:

Error in return(autofitVariogram(prec ~ 1, Data2, model = model_type),  : multi-argument returns are not permitted

0 个答案:

没有答案