Я пытаюсь интерполировать мой неравномерно распределенный набор точек по следующим координатам, которые представляют концентрации ТЧ, а затем создать контурную карту, которая представляет концентрацию ТЧ по всей области. Я использовал interp2xyz от AKIMA для интерполяции, но заметил эти маленькие треугольные белые пятна на контурной карте. Они пропускают значения из-за неспособности экстраполировать, используя средние значения? Как мне исправить это, чтобы получить гладкую контурную карту?
library(tidyr)
library(dplyr)
library(ggplot2)
library(akima)
site <- c(1:20)
long <- c(171.2496,171.1985,171.2010, 171.2076, 171.2236,171.2165,171.2473,171.2448,171.2416,171.2243,171.2282,171.2344,171.2153,171.2532,171.2444,171.2443,171.2562,171.2330,171.2356,171.2243)
lati <- c(-44.40450,-44.38520,-44.38010,-44.38530,-44.38750,-44.39195,-44.41436,-44.38798,-44.38934,-44.37958,-44.37836,-44.37336,-44.37909,-44.40801, -44.40472,-44.39558,-44.39919,-44.40971,-44.39577,-44.39780)
PM <- c(57,26,12,39,44,48,31,44,46,33,29,12,29,51,50,43,28,40,45,33)
fixed <- cbind(site,long,lati,PM)
### interpolate from fixed monitors
interpdf <-interp2xyz(interp(x=fixed$long, y=fixed$lati, z=fixed$PM, duplicate="mean"), data.frame=TRUE) %>%
filter(!is.na(z)) %>%
tbl_df()
ggplot(interpdf, aes(x=x,y=y,z=z, fill=z)) +
geom_contour(binwidth = 0.0005, aes(color= ..level..)) +
scale_color_distiller("PM", palette = "Spectral", limits = c(0, 70)) +
theme_bw()