我有一个概率曲面的 NetCDF 文件。它是一个 30x30 的网格,纬度/经度间隔为 0.25 度,并在 z 维度中描述概率表面。我可以轻松地将其导入 NetCDF 查看器 Panoply:
然后轻而易举地(选中一个框)将原始数据插值/平滑到更精细的网格大小:
然而,我不仅仅是想可视化数据,我想在 R 中将其与测深和点数据一起绘制。这一切都没有问题,但我还没有找到一种直接的方法来在 R 中插入网格数据。这是我用来导入和绘制数据的代码:
library(RNetCDF)
nc <- open.nc("132235-1.nc")
print.nc(nc)
tmp <- read.nc(nc)
probs<-tmp$likelihoods
xran <- range(tmp$longitude)
yran <- range(tmp$latitude)
zran <- range(probs,na.rm=T)
lon <- tmp$longitude
lat <- tmp$latitude[30:1]
z <- array(probs, dim=dim(probs))
z <- z[,rev(seq(ncol(z)))]
z <- z[,seq(ncol(z))]
prob.pal<-colorRampPalette(
c("#C1FFC1","#8FBC8F","#2F4F4F")
)
zbreaks <- seq(0.0001, 0.063, by=0.001)
cols<- c(prob.pal(length(zbreaks)-1))
png("ProbTest.png", width=7.5, height=6, units="in", res=200)
layout(matrix(1:2, 1,2), widths=c(6,1.5), heights=c(6))
par(mar=c(2,2,1,1), ps=10)
image(lon, lat, z=z, col=cols, breaks=zbreaks, useRaster=TRUE, ylim=c(13,28), xlim=c(-115,-100))
dev.off()
我最终得到了这个,它与使用 Panoply 相同,但具有不同的配色方案:
有没有一种直接的方法来插值/平滑这些数据?我知道如何使用点数据创建内核利用率密度等,但不使用网格数据。
非常感谢你的协助!