Khi tôi muốn thực hiện việc tìm kiếm, đôi khi nó chỉ hoạt động, tùy thuộc vào giá trị nào tôi sử dụng trong khả năng lưu trữ của mình. Là kết quả của hàm krige tôi nhận được var1.pred: NA NA NA ...
và var1.var: NA NA NA ...
(nhưng chỉ khi tôi sử dụng các giá trị "sai" trong khả năng lưu trữ của mình.)
Ví dụ:
- nó luôn hoạt động (cho đến nay) khi tôi chỉ sử dụng 10 giá trị
- nó hoạt động khi tôi sử dụng 50 giá trị, nhưng chỉ với một số giá trị nhất định
- nó hoạt động không phải khi tôi sử dụng 50 giá trị và các giá trị "sai"
- nó hoạt động khi tôi sử dụng 25 giá trị và các giá trị "sai" được đề cập trước đó
Tôi không hiểu tại sao đôi khi nó hoạt động và đôi khi không. Điều kỳ lạ là khi tôi thêm Zwiesel;49.02999878;13.22999954;2.2
vào dữ liệu, nó hoạt động khi tôi sử dụng ít hơn ~ 20 giá trị, nhưng nó không hoạt động khi tôi sử dụng hơn 50 giá trị ...
Lỗi của tôi ở đâu?
myWeatherTable.csv:
Place;Latitude;Longitude;Temperature
Aachen;50.77999878;6.09999990;3
Abbikenhausen;53.52999878;8.00000000;7.9
Adelbach;49.04000092;9.76000023;3.1
Adendorf;51.61999893;11.69999981;1.9
Alberzell;48.45999908;11.34000015;4.6
...
...
Mã của tôi để thực hiện phép nội suy
WeatherData <- read.csv(file="myWeatherTable", header = TRUE, sep ";")
coordinates(WeatherData) = ~Longitude + Latitude
vario <- variogram(log(Temperature) ~1, WeatherData)
vario.fit <- fit.variogram(vario, vgm("Sph"))
min_lon <- min(WeatherData$Longitude)
max_lon <- max(WeatherData$Longitude)
min_lat <- min(WeatherData$Latitude)
max_lat <- max(WeatherData$Latitude)
Longitude.range <- as.numeric(c(min_lon,max_lon))
Latitude.range <- as.numeric(c(min_lat,max_lat))
grd <- expand.grid(Longitude = seq(from = Longitude.range[1], to = Longitude.range[2], by = 0.1),
Latitude = seq(from = Latitude.range[1],to = Latitude.range[2], by = 0.1))
coordinates(grd) <- ~Longitude + Latitude
gridded(grd) <- TRUE
plot1 <- WU_data_spatial %>% as.data.frame %>%
ggplot(aes(Longitude, Latitude)) + geom_point(size=1) + coord_equal() +
ggtitle("Points with measurements")
plot2 <- grd %>% as.data.frame %>%
ggplot(aes(Longitude, Latitude)) + geom_point(size=1) + coord_equal() +
ggtitle("Points at which to estimate")
grid.arrange(plot1, plot2, ncol = 2)
kriged <- krige(Temperature~ 1, WeatherData, grd, model=variogram_fit)
Cảnh báo :
1: In predict.gstat(g, newdata = newdata, block = block, ... :
Covariance matrix singular at location [5.88,47.4,0]: skipping...
2: In predict.gstat(g, newdata = newdata, block = block, ... :
Covariance matrix singular at location [5.98,47.4,0]: skipping...
3: In predict.gstat(g, newdata = newdata, block = block, ... :
Covariance matrix singular at location [6.08,47.4,0]: skipping...
4: In predict.gstat(g, newdata = newdata, block = block, ... :
Covariance matrix singular at location [6.18,47.4,0]: skipping...
...
...